diff --git a/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.h b/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.h
deleted file mode 100644
index 18370f703d2f9f4b6753a134ed0d03ea7fd789b2..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-/**
-    @class AcerMC_acset 
-     AcerMC acset common block access
-     @author Borut Paul Kersevan (February 2003)
-*/
-#ifndef AcerMC_acset_h
-#define  AcerMC_acset_h
-extern "C" {
-  void* acermc_acset_address_(void);
-}
-class AcerMC_acset {
- public:
-  AcerMC_acset();
-  ~AcerMC_acset();
-  int& acset12();
-  inline void init(); 
- private:
-  struct ACERMC_ACSET;
-  friend struct ACERMC_ACSET;
-  struct ACERMC_ACSET {
-    int acset12;
-  };
-  static ACERMC_ACSET* s_acermc_acset;
-};
-#include "AcerMC_i/AcerMC_acset.icc"
-#endif
-
-
diff --git a/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.icc b/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.icc
deleted file mode 100644
index 2949dd209ba2c679f9fdb6f2f6a547d889ca3759..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.icc
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//     AcerMC acset common block access
-//     Borut Paul Kersevan (February 2003)
-//     Inline implementations for AcerMC_acset
-//     initialise pointer
-void AcerMC_acset::init(void) {
-  if (!s_acermc_acset) s_acermc_acset = static_cast<ACERMC_ACSET*>(acermc_acset_address_());
-}
-   
-
diff --git a/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.inc b/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.inc
deleted file mode 100644
index b59be17d36ad65e4490551b6b068d055723d60fc..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/AcerMC_i/AcerMC_acset.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-C     AcerMC acset common block access
-c     Borut Paul Kersevan (February 2003)
-      INTEGER ACSET12
-      COMMON/ACERMC_ACSET/ACSET12
-      SAVE /ACERMC_ACSET/
diff --git a/Generators/AcerMC_i/CMakeLists.txt b/Generators/AcerMC_i/CMakeLists.txt
deleted file mode 100644
index f5591742b432647e1274f32bb4c120fd365b6760..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/CMakeLists.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-################################################################################
-# Package: AcerMC_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( AcerMC_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs(
-   PRIVATE
-   Generators/GeneratorFortranCommon )
-
-# External dependencies:
-find_package( Herwig )
-find_package( Pythia6 )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( AcerMC_i
-   AcerMC_i/*.h AcerMC_i/*.icc AcerMC_i/*.inc src/*.cxx src/*.F
-   PUBLIC_HEADERS AcerMC_i
-   PRIVATE_INCLUDE_DIRS ${HERWIG_INCLUDE_DIRS} ${PYTHIA6_INCLUDE_DIRS}
-   LINK_LIBRARIES GeneratorFortranCommonLib
-   PRIVATE_LINK_LIBRARIES ${HERWIG_LIBRARIES} ${PYTHIA6_LIBRARIES} )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-atlas_install_runtime( share/*.events share/*.dat )
diff --git a/Generators/AcerMC_i/doc/AcerMC.pdf b/Generators/AcerMC_i/doc/AcerMC.pdf
deleted file mode 100644
index 51475c297d63ab1a6825140aae985d4fa4f8235a..0000000000000000000000000000000000000000
Binary files a/Generators/AcerMC_i/doc/AcerMC.pdf and /dev/null differ
diff --git a/Generators/AcerMC_i/doc/AcerMC.tex b/Generators/AcerMC_i/doc/AcerMC.tex
deleted file mode 100644
index 586e08699bdb0e9bdf19e9fdb45de87625661afc..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/doc/AcerMC.tex
+++ /dev/null
@@ -1,54 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\textwidth=6.5in
-\textheight=9.0in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}   
-\def\topfraction{1.}
-\def\textfraction{0.}           
-\begin{document}
-\title{Acermc\_i: An interface between Acermc and Athena\\
-Version in release 6.5.0 and later}
-\author{  Borut Kersevan (Borut.Kersevan@cern.ch), Ian Hinchliffe (I\_Hinchliffe@lbl.gov) and Georgios Stavropoulos (George.Stavropoulos@cern.ch) }
-%\today
-
-\maketitle           
-
-This package runs Acermc  from within Athena. \\See the example
-in {\bf Acermc\_i/share/jobOptions.AcermcPythia.py } and {\bf
-  Acermc\_i/share/jobOptions.AcermcHerwig.py }  which show how to
-read Acermc events and hadronize them using Pythia or Herwig
-
-Users must first run 
-Acermc in standalone mode and make a file of events. An athena job
-then takes these events hadronizes them and passes them down the
-Athena event chain. The events must be made with a version of Acermc
-that is compatible, recent versions that support the Les Houches
-interface should be acceptable. There is a compatible version in  /afs/cern.ch/atlas/offline/external/acermc
-
-
-To hadronize {\bf AcerMC} generated events with Herwig, you only need to run athena with the jobOptions
-file jobOptions.AcerMCHerwig.py by typing in the prompt \\
-{\it athena jobOptions.AcerMCHerwig.py}\\
-
-To hadronize {\bf AcerMC} generated events with Pythia, you only need to run athena with the jobOptions
-file jobOptions.AcerMCPythia.py by typing in the prompt \\
-{\it athena jobOptions.AcerMCPythia.py}\\
-
-
-More infomation about ACerMC  here
-
-http://borut.home.cern.ch/borut/
-
-\end{document}
-
-
-
-
-
-
-
diff --git a/Generators/AcerMC_i/doc/packagedoc.h b/Generators/AcerMC_i/doc/packagedoc.h
deleted file mode 100644
index 83ef525fae0c07765b5981d283a6c1d050e50d90..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/doc/packagedoc.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-@page AcerMC_i_page AcerMC_i
-@author  Borut.Kersevan@cern.ch, Giorgios.Stavropoulos@cern.ch, Ian.Hinchliffe@cern.ch,  Judith.Katzy@cern.ch
-
-@section AcerMC_i_The interface between AcerMC and Athena
- 
-This package runs AcerMC  from within Athena. See the example
-in AcerMC_i/share/jobOptions.AcerMCPythia.py  and 
-  AcerMC_i/share/jobOptions.AcerMCHerwig.py  which show how to
-read AcerMC events and hadronize them using Pythia or Herwig
-
-Users must first run 
-AcerMC in standalone mode and make a file of events. An athena job
-then takes these events hadronizes them and passes them down the
-Athena event chain. The events must be made with a version of AcerMC
- that supports the Les Houches
-interface. There  are compatible versions in  /afs/cern.ch/atlas/offline/external/acermc
-To hadronize AcerMC generated events with Herwig, you only need to run athena with the jobOptions
-file jobOptions.AcerMCHerwig.py by typing in the prompt 
- athena jobOptions.AcerMCHerwig.py
-
-To hadronize  AcerMC generated events with Pythia, you only need to run athena with the jobOptions
-file jobOptions.AcerMCPythia.py by typing in the prompt  athena jobOptions.AcerMCPythia.py
-
-Example jobOption files to run with Tauola and Photos are also provided, see 
-jobOptions.AcerMCHerwig.AtlasTauolaPhotos.py and jobOptions.AcerMCPythia.AtlasTauolaPhotos.py
-
-
-
-The  AcerMC generator home page is here
-https://twiki.cern.ch/twiki/bin/view/AtlasProtected/AcerMCForAtlas
-
-
-
-
-*/
diff --git a/Generators/AcerMC_i/share/AcerMC_p004_r000696.events b/Generators/AcerMC_i/share/AcerMC_p004_r000696.events
deleted file mode 100644
index 0dc76f6172dbc5450754b2e50a67793eb29e1b49..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/share/AcerMC_p004_r000696.events
+++ /dev/null
@@ -1,900 +0,0 @@
- 7
-  7877.74193  0.00776119889  0.127733508
- -1 -1 0 0 0 501  0.  0.  493.29684  493.29684  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -287.273409  287.273409  0.  0.  9. 6 1 1 502 2 0  65.8085123  22.1509118
-  231.301892  298.239817  175.  0.  9. -6 1 1 0 2 501 -103.276531 -23.4497627
-  171.245287  266.769341  175.  0.  9. 24 2 1 0 2 0  37.4680186  1.29885092
- -196.523747  215.561091  80.246254  0.  9. -13 1 5 0 5 0 -14.3494336
- -22.569091 -33.6436996  42.9788296  0.10566  0.  9. 14 1 5 0 5 0  51.8174522
-  23.8679419 -162.880048  172.582261  0.  0.  9.
- 7
-  7685.71061  0.00776011684  0.127979636
- 1 -1 0 501 0 0  0.  0.  750.209488  750.209488  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -101.724795  101.724795  0.  0.  9. 6 1 1 501 2 0  67.9394278  61.3402769
-  505.158794  542.391742  175.  0.  9. -6 1 1 0 2 502 -52.9220532 -29.9080233
-  97.6421711  209.414009  175.  0.  9. -24 2 1 0 2 0 -15.0173746 -31.4322536
-  45.6837284  100.128531  82.0073876  0.  9. 13 1 5 0 5 0 -43.9711568
- -36.8255184  40.5276725  70.2288035  0.10566  0.  9. -14 1 5 0 5 0  28.9537822
-  5.39326486  5.15605586  29.8997277  0.  0.  9.
- 7
-  12409.0351  0.00778112968  0.123365166
- -1 -1 0 0 0 501  0.  0.  530.4787  530.4787  0.  0.  9. 2 -1 0 502 0 0  0.  0.
- -389.816839  389.816839  0.  0.  9. 6 1 1 502 2 0 -119.118769 -167.696667
- -127.537306  298.667403  175.  0.  9. -6 1 1 0 2 501  122.845779  90.7360154
- -87.5820359  248.233202  175.  0.  9. 24 2 1 0 2 0 -3.72700936  76.9606521
-  355.781203  373.394933  83.1064281  0.  9. -13 1 5 0 5 0  7.07857973
-  64.7556837  350.136008  356.144129  0.10566  0.  9. 14 1 5 0 5 0 -10.8055891
-  12.2049684  5.64519511  17.250804  0.  0.  9.
- 7
-  10535.6357  0.00777400378  0.124903714
- -1 -1 0 0 0 501  0.  0.  49.4133544  49.4133544  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -2366.86596  2366.86596  0.  0.  9. 6 1 1 502 2 0 -5.09777196  8.36082553
- -1870.16042  1878.3559  175.  0.  9. -6 1 1 0 2 501 -52.8572717 -34.9059968
- -218.75361  287.211528  175.  0.  9. 24 2 1 0 2 0  57.9550437  26.5451712
- -228.538575  250.711886  81.0131859  0.  9. -13 1 5 0 5 0  61.830505
-  45.042565 -133.956849  154.26047  0.10566  0.  9. 14 1 5 0 5 0 -3.8754613
- -18.4973938 -94.5817258  96.4514159  0.  0.  9.
- 7
-  16096.9665  0.00779248622  0.12099556
- -1 -1 0 0 0 501  0.  0.  173.758067  173.758067  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -807.386721  807.386721  0.  0.  9. 6 1 1 502 2 0 -68.5498478  58.8176878
- -1.24810613  196.939483  175.  0.  9. -6 1 1 0 2 501  107.394489 -148.905744
- -173.431619  307.262141  175.  0.  9. 24 2 1 0 2 0 -38.844641  90.088056
- -458.948928  476.943164  84.9464491  0.  9. -13 1 5 0 5 0  4.87561486
- -12.0929944 -108.801517  109.580078  0.10566  0.  9. 14 1 5 0 5 0 -43.7202559
-  102.18105 -350.147411  367.363086  0.  0.  9.
- 7
-  9309.87427  0.00776853058  0.12609218
- 2 -1 0 501 0 0  0.  0.  538.656962  538.656962  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -317.028368  317.028368  0.  0.  9. 6 1 1 501 2 0 -257.647977  203.625954
-  118.205588  390.440226  175.  0.  9. -6 1 1 0 2 502  267.447482 -151.265267
-  54.5163496  357.779777  175.  0.  9. 24 2 1 0 2 0 -9.79950427 -52.3606864
-  48.9066564  107.465326  79.4937954  0.  9. -13 1 5 0 5 0 -28.5853754
- -66.2926137  39.1318655  82.1166754  0.10566  0.  9. 14 1 5 0 5 0  18.7858711
-  13.9319273  9.77479086  25.3486506  0.  0.  9.
- 7
-  10305.304  0.00777304234  0.125114462
- 1 -1 0 501 0 0  0.  0.  1404.21801  1404.21801  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -76.474221  76.474221  0.  0.  9. 6 1 1 501 2 0 -78.893539 -52.1757159
-  1087.63509  1105.67698  175.  0.  9. -6 1 1 0 2 502  23.5199464  24.4833564
-  193.753456  263.283164  175.  0.  9. -24 2 1 0 2 0  55.3735926  27.6923596
-  46.355247  111.732091  80.6359082  0.  9. 13 1 5 0 5 0  50.4222576
- -19.6082324  25.0669931  59.6259352  0.10566  0.  9. -14 1 5 0 5 0  4.95133503
-  47.3005919  21.288254  52.1061558  0.  0.  9.
- 7
-  8169.46638  0.00776279376  0.127372574
- -1 -1 0 0 0 501  0.  0.  92.4614185  92.4614185  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1674.18635  1674.18635  0.  0.  9. 6 1 1 502 2 0 -182.852294 -83.5267926
- -287.396748  391.961194  175.  0.  9. -6 1 1 0 2 501  146.495462  64.1503989
- -329.399153  405.838633  175.  0.  9. 24 2 1 0 2 0  36.3568322  19.3763937
- -964.929031  968.847942  76.6879151  0.  9. -13 1 5 0 5 0  2.09192466
-  12.3823853 -806.810511  806.908242  0.10566  0.  9. 14 1 5 0 5 0  34.2649075
-  6.99400842 -158.11852  161.9397  0.  0.  9.
- 7
-  8670.59636  0.00776540639  0.126786018
- 1 -1 0 501 0 0  0.  0.  840.493423  840.493423  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -92.3004175  92.3004175  0.  0.  9. 6 1 1 501 2 0  32.2434513 -16.5825642
-  302.833731  351.636019  175.  0.  9. -6 1 1 0 2 502 -31.5526225 -30.2993792
-  455.12061  489.56449  175.  0.  9. -24 2 1 0 2 0 -0.690828761  46.8819434
- -9.76133561  91.5933308  78.0747124  0.  9. 13 1 5 0 5 0  0.440571291
- -8.94525875 -30.6832335  31.963788  0.10566  0.  9. -14 1 5 0 5 0 -1.13140005
-  55.8272021  20.9218979  59.6295428  0.  0.  9.
- 7
-  8819.91558  0.00776615604  0.126618786
- 2 -1 0 501 0 0  0.  0.  469.342302  469.342302  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -128.08749  128.08749  0.  0.  9. 6 1 1 501 2 0  12.7547369  11.1183593
-  247.0629  303.234856  175.  0.  9. -6 1 1 0 2 502 -6.72787745  36.9585587
-  87.2772337  199.131903  175.  0.  9. 24 2 1 0 2 0 -6.02685948 -48.076918
-  6.91467747  95.0630321  81.4951178  0.  9. -13 1 5 0 5 0 -11.1650535
- -50.3872883  37.6070109  63.8579335  0.10566  0.  9. 14 1 5 0 5 0  5.13819406
-  2.31037025 -30.6923334  31.2050986  0.  0.  9.
- 7
-  7239.36809  0.00775749487  0.128580288
- 2 -1 0 501 0 0  0.  0.  1552.60391  1552.60391  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -56.6924077  56.6924077  0.  0.  9. 6 1 1 501 2 0 -89.4933116  30.7424673
-  263.60908  330.255808  175.  0.  9. -6 1 1 0 2 502  112.008478 -14.610732
-  497.859605  539.674494  175.  0.  9. 24 2 1 0 2 0 -22.5151661 -16.1317353
-  734.442816  739.366014  80.5523894  0.  9. -13 1 5 0 5 0  28.2684698
-  4.53565343  186.172501  188.361063  0.10566  0.  9. 14 1 5 0 5 0 -50.7836359
- -20.6673887  548.270314  551.004951  0.  0.  9.
- 7
-  9692.5639  0.00777030084  0.125702637
- 1 -1 0 501 0 0  0.  0.  1885.13641  1885.13641  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -462.890277  462.890277  0.  0.  9. 6 1 1 501 2 0 -170.162608  579.682765
-  1366.22881  1504.05904  175.  0.  9. -6 1 1 0 2 502  117.979184 -601.981905
-  200.080767  668.549635  175.  0.  9. -24 2 1 0 2 0  52.1834244  22.2991393
- -144.063449  175.418011  82.4429491  0.  9. 13 1 5 0 5 0  51.5478906
-  43.3733966 -137.860844  153.440738  0.10566  0.  9. -14 1 5 0 5 0  0.63553386
- -21.0742572 -6.20260469  21.9772729  0.  0.  9.
- 7
-  16132.1921  0.00779258177  0.120976039
- -1 -1 0 0 0 501  0.  0.  200.192315  200.192315  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -626.286104  626.286104  0.  0.  9. 6 1 1 502 2 0  112.284731  195.116519
- -55.3382817  290.457643  175.  0.  9. -6 1 1 0 2 501 -14.036261 -192.428083
- -247.586954  359.374295  175.  0.  9. 24 2 1 0 2 0 -98.2484704 -2.68843573
- -123.168553  176.646482  79.8341861  0.  9. -13 1 5 0 5 0 -5.72361254
-  28.092716 -22.0268063  36.1545543  0.10566  0.  9. 14 1 5 0 5 0 -92.5248579
- -30.7811517 -101.141747  140.491927  0.  0.  9.
- 7
-  10531.3763  0.00777398619  0.124907562
- -1 -1 0 0 0 501  0.  0.  325.467431  325.467431  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -238.106141  238.106141  0.  0.  9. 6 1 1 502 2 0  60.283708  86.2843561
- -0.597189334  204.216728  175.  0.  9. -6 1 1 0 2 501 -109.614326 -126.603879
-  82.6365121  255.925059  175.  0.  9. 24 2 1 0 2 0  49.330618  40.3195225
-  5.32196664  103.431785  81.3058242  0.  9. -13 1 5 0 5 0 -3.51612059
- -1.96769056  30.8369222  31.0992258  0.10566  0.  9. 14 1 5 0 5 0  52.8467386
-  42.2872131 -25.5149555  72.3325592  0.  0.  9.
- 7
-  51359.2572  0.00784353016  0.111450344
- 2 -1 0 501 0 0  0.  0.  1659.56094  1659.56094  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -114.515538  114.515538  0.  0.  9. 6 1 1 501 2 0  124.782489  5.58952139
-  789.244499  818.005985  175.  0.  9. -6 1 1 0 2 502 -241.201819 -182.6025
-  540.749872  643.861331  175.  0.  9. 24 2 1 0 2 0  116.419329  177.012978
-  215.051028  312.20916  79.6276324  0.  9. -13 1 5 0 5 0  112.503778
-  185.378497  208.980443  301.156312  0.10566  0.  9. 14 1 5 0 5 0  3.91555154
- -8.36551869  6.0705849  11.052848  0.  0.  9.
- 7
-  10406.3632  0.00777346676  0.125021333
- 1 -1 0 501 0 0  0.  0.  660.079752  660.079752  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -143.897341  143.897341  0.  0.  9. 6 1 1 501 2 0  106.309771  51.3224876
-  62.4442109  220.136423  175.  0.  9. -6 1 1 0 2 502 -56.3507926 -89.2469023
-  433.755247  479.488306  175.  0.  9. -24 2 1 0 2 0 -49.9589782  37.9244146
-  19.9829534  104.352364  80.9687387  0.  9. 13 1 5 0 5 0 -34.9585248
- -21.5603345  8.30228566  41.9032885  0.10566  0.  9. -14 1 5 0 5 0 -15.0004534
-  59.4847491  11.6806677  62.4490751  0.  0.  9.
- 7
-  8610.70313  0.00776510211  0.126854033
- -1 -1 0 0 0 501  0.  0.  183.072157  183.072157  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -2228.1873  2228.1873  0.  0.  9. 6 1 1 502 2 0 -160.655908 -38.1099915
-  27.6408428  242.181148  175.  0.  9. -6 1 1 0 2 501  137.645849  78.2228055
- -249.765684  343.617642  175.  0.  9. 24 2 1 0 2 0  23.0100584 -40.112814
- -1822.9903  1825.46066  82.9126388  0.  9. -13 1 5 0 5 0  19.9212298
-  13.4924622 -180.941729  182.534442  0.10566  0.  9. 14 1 5 0 5 0  3.08882863
- -53.6052762 -1642.04857  1642.92622  0.  0.  9.
- 7
-  15055.4523  0.00778956364  0.121595974
- -1 -1 0 0 0 501  0.  0.  161.904734  161.904734  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -487.442327  487.442327  0.  0.  9. 6 1 1 502 2 0 -29.5675854  59.1873262
-  4.69105687  187.148037  175.  0.  9. -6 1 1 0 2 501  85.9639138  14.3157616
- -165.96858  256.44747  175.  0.  9. 24 2 1 0 2 0 -56.3963284 -73.5030878
- -164.26007  205.751553  82.2744279  0.  9. -13 1 5 0 5 0 -58.760232
- -89.5436059 -148.897137  183.415351  0.10566  0.  9. 14 1 5 0 5 0  2.36390357
-  16.0405181 -15.3629325  22.3362028  0.  0.  9.
- 7
-  11445.9931  0.00777761062  0.124119844
- -1 -1 0 0 0 501  0.  0.  107.918765  107.918765  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1821.85478  1821.85478  0.  0.  9. 6 1 1 502 2 0  205.02791 -14.4728694
- -478.528616  549.418369  175.  0.  9. -6 1 1 0 2 501 -205.646809  84.9952596
- -1242.07435  1273.92641  175.  0.  9. 24 2 1 0 2 0  0.618898577 -70.5223902
-  6.66695413  106.428764  79.4282255  0.  9. -13 1 5 0 5 0  3.07674203
-  17.6977244  0.888573389  17.9854529  0.10566  0.  9. 14 1 5 0 5 0 -2.45784346
- -88.2201146  5.77838074  88.4433112  0.  0.  9.
- 7
-  14494.6912  0.00778790618  0.121939342
- 2 -1 0 501 0 0  0.  0.  1670.8071  1670.8071  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -47.1582211  47.1582211  0.  0.  9. 6 1 1 501 2 0  33.0024893 -28.4406225
-  347.238969  391.277312  175.  0.  9. -6 1 1 0 2 502 -120.660306  10.0396462
-  536.454335  577.120402  175.  0.  9. 24 2 1 0 2 0  87.6578164  18.4009763
-  739.955577  749.56761  79.3401371  0.  9. -13 1 5 0 5 0  1.41111134
-  3.34444888 -0.747990211  3.7077253  0.10566  0.  9. 14 1 5 0 5 0  86.246705
-  15.0565274  740.703568  745.859885  0.  0.  9.
- 7
-  48942.34  0.00784139615  0.111816826
- 2 -1 0 501 0 0  0.  0.  1794.76326  1794.76326  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -191.847391  191.847391  0.  0.  9. 6 1 1 501 2 0 -75.9687914  323.874701
-  417.340945  561.662304  175.  0.  9. -6 1 1 0 2 502  52.3462221 -528.599179
-  944.534756  1097.69218  175.  0.  9. 24 2 1 0 2 0  23.6225694  204.724478
-  241.04017  327.256168  80.7842706  0.  9. -13 1 5 0 5 0  37.2305944
-  189.583387  238.196256  306.700905  0.10566  0.  9. 14 1 5 0 5 0 -13.608025
-  15.1410907  2.84391385  20.5552625  0.  0.  9.
- 7
-  18353.2779  0.007798224  0.119835156
- -1 -1 0 0 0 501  0.  0.  103.143526  103.143526  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1483.42852  1483.42852  0.  0.  9. 6 1 1 502 2 0  106.892553 -174.331089
- -328.785034  424.902277  175.  0.  9. -6 1 1 0 2 501 -180.518881  93.9554754
- -966.346228  1002.92808  175.  0.  9. 24 2 1 0 2 0  73.6263279  80.3756136
- -85.1537286  158.741687  77.8889605  0.  9. -13 1 5 0 5 0  82.1400765
-  89.4730007 -78.4650724  144.600099  0.10566  0.  9. 14 1 5 0 5 0 -8.51374864
- -9.09738703 -6.68865618  14.1415872  0.  0.  9.
- 7
-  72812.519  0.00785901767  0.108866589
- 2 -1 0 501 0 0  0.  0.  3883.82478  3883.82478  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -42.2219329  42.2219329  0.  0.  9. 6 1 1 501 2 0 -31.6103136 -41.8331648
-  1418.57796  1430.29286  175.  0.  9. -6 1 1 0 2 502  217.267424 -136.693455
-  1003.68417  1050.6651  175.  0.  9. 24 2 1 0 2 0 -185.65711  178.526619
-  1419.34071  1445.08875  86.0995615  0.  9. -13 1 5 0 5 0 -51.2636578
-  9.55421409  379.926414  383.488379  0.10566  0.  9. 14 1 5 0 5 0 -134.393453
-  168.972405  1039.4143  1061.60038  0.  0.  9.
- 7
-  10162.121  0.0077724339  0.125248226
- 2 -1 0 501 0 0  0.  0.  1258.7021  1258.7021  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -489.100987  489.100987  0.  0.  9. 6 1 1 501 2 0  409.844268  479.25962
- -59.5017836  657.135884  175.  0.  9. -6 1 1 0 2 502 -371.319332 -432.294231
-  784.280448  985.127997  175.  0.  9. 24 2 1 0 2 0 -38.5249368 -46.9653892
-  44.822447  105.539205  73.7533282  0.  9. -13 1 5 0 5 0  2.74787848
-  11.4270108  30.400331  32.5932309  0.10566  0.  9. 14 1 5 0 5 0 -41.2728153
- -58.3924  14.422116  72.9459737  0.  0.  9.
- 7
-  76097.3598  0.00786097995  0.108548457
- 2 -1 0 501 0 0  0.  0.  1970.368  1970.368  0.  0.  9. -1 -1 0 0 0 502  0.  0.
- -81.8623156  81.8623156  0.  0.  9. 6 1 1 501 2 0  135.642445  95.6689409
-  1040.76999  1068.35322  175.  0.  9. -6 1 1 0 2 502  119.618156 -28.8319547
-  467.494429  514.116549  175.  0.  9. 24 2 1 0 2 0 -255.260601 -66.8369862
-  380.24126  469.760546  80.4139156  0.  9. -13 1 5 0 5 0 -240.941827
- -45.9899961  366.407053  440.93331  0.10566  0.  9. 14 1 5 0 5 0 -14.3187744
- -20.84699  13.8342063  28.8272364  0.  0.  9.
- 7
-  164066.947  0.00789530247  0.103293121
- -1 -1 0 0 0 501  0.  0.  385.679806  385.679806  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -648.159726  648.159726  0.  0.  9. 6 1 1 502 2 0  138.274357 -137.331389
- -97.0200044  279.316289  175.  0.  9. -6 1 1 0 2 501  192.548838 -82.101421
- -213.751754  346.598486  175.  0.  9. 24 2 1 0 2 0 -330.823195  219.43281
-  48.2918385  407.924756  80.4721095  0.  9. -13 1 5 0 5 0 -26.6507426
-  27.5300022  28.4585766  47.7290776  0.10566  0.  9. 14 1 5 0 5 0 -304.172453
-  191.902808  19.8332619  360.195678  0.  0.  9.
- 7
-  13578.6885  0.00778505727  0.122534436
- 2 -1 0 501 0 0  0.  0.  2681.73563  2681.73563  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -189.129678  189.129678  0.  0.  9. 6 1 1 501 2 0 -27.6225509  77.8719375
-  5.45002953  193.602032  175.  0.  9. -6 1 1 0 2 502  43.69857 -160.624868
-  2540.02299  2551.4803  175.  0.  9. 24 2 1 0 2 0 -16.0760191  82.7529309
- -52.8670618  125.782984  76.9411914  0.  9. -13 1 5 0 5 0 -17.7765014
- -6.97699865  4.0345399  19.5184832  0.10566  0.  9. 14 1 5 0 5 0  1.70048231
-  89.7299295 -56.9016017  106.264501  0.  0.  9.
- 7
-  17649.3604  0.00779651248  0.120178779
- 2 -1 0 501 0 0  0.  0.  598.816588  598.816588  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -205.401641  205.401641  0.  0.  9. 6 1 1 501 2 0 -132.171794  2.83699156
-  295.606265  368.083544  175.  0.  9. -6 1 1 0 2 502  80.1903602 -94.8972351
- -67.1020066  224.863644  175.  0.  9. 24 2 1 0 2 0  51.9814337  92.0602436
-  164.910688  211.271041  79.1375996  0.  9. -13 1 5 0 5 0  4.28507854
- -1.26728224  69.1751843  69.3194431  0.10566  0.  9. 14 1 5 0 5 0  47.6963552
-  93.3275258  95.7355039  141.951598  0.  0.  9.
- 7
-  27549.4634  0.00781604418  0.116379191
- -1 -1 0 0 0 501  0.  0.  419.757504  419.757504  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -440.134549  440.134549  0.  0.  9. 6 1 1 502 2 0 -108.535977  133.72712
- -45.7525329  249.762477  175.  0.  9. -6 1 1 0 2 501  105.017701 -278.864581
- -142.605394  373.83883  175.  0.  9. 24 2 1 0 2 0  3.51827591  145.137461
-  167.980882  236.290745  80.8608599  0.  9. -13 1 5 0 5 0 -22.7400336
-  70.6794887  36.041904  82.533201  0.10566  0.  9. 14 1 5 0 5 0  26.2583096
-  74.4579724  131.938978  153.757545  0.  0.  9.
- 7
-  12918.2191  0.00778288262  0.122992907
- -1 -1 0 0 0 501  0.  0.  310.852384  310.852384  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -922.661772  922.661772  0.  0.  9. 6 1 1 502 2 0  322.771573  239.236802
- -305.237695  534.051295  175.  0.  9. -6 1 1 0 2 501 -265.162125 -183.315714
- -406.871512  547.800174  175.  0.  9. 24 2 1 0 2 0 -57.609448 -55.9210885
-  100.299819  151.662686  80.5946641  0.  9. -13 1 5 0 5 0  0.349145659
- -0.627579803 -12.9370448  12.9573937  0.10566  0.  9. 14 1 5 0 5 0 -57.9585937
- -55.2935086  113.236864  138.705292  0.  0.  9.
- 7
-  32379.4592  0.00782315421  0.115059484
- -1 -1 0 0 0 501  0.  0.  94.8671463  94.8671463  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1824.50166  1824.50166  0.  0.  9. 6 1 1 502 2 0  256.536126  100.589903
- -414.811393  527.847141  175.  0.  9. -6 1 1 0 2 501 -110.442232 -33.03377
- -333.265367  393.674385  175.  0.  9. 24 2 1 0 2 0 -146.093893 -67.556133
- -981.557758  997.847284  79.6009698  0.  9. -13 1 5 0 5 0 -135.00617
- -27.7885668 -724.448367  737.444451  0.10566  0.  9. 14 1 5 0 5 0 -11.0877232
- -39.7675662 -257.109391  260.402834  0.  0.  9.
- 7
-  13434.6597  0.00778459209  0.122632196
- 2 -1 0 501 0 0  0.  0.  3259.03199  3259.03199  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -93.3345658  93.3345658  0.  0.  9. 6 1 1 501 2 0  96.5500272  159.490224
-  334.240119  420.833098  175.  0.  9. -6 1 1 0 2 502 -166.31073 -113.709207
-  2801.73042  2814.41066  175.  0.  9. 24 2 1 0 2 0  69.7607029 -45.7810169
-  29.7268868  117.122795  76.6263928  0.  9. -13 1 5 0 5 0  86.356159
- -33.5694935  23.2421485  95.5222786  0.10566  0.  9. 14 1 5 0 5 0 -16.5954561
- -12.2115234  6.48473827  21.6005161  0.  0.  9.
- 7
-  36263.4589  0.0078281481  0.114151707
- 4 -1 0 501 0 0  0.  0.  348.101042  348.101042  0.  0.  9. -3 -1 0 0 0 502  0.
-  0. -449.640195  449.640195  0.  0.  9. 6 1 1 501 2 0 -17.2942821  171.116963
- -197.458179  314.952123  175.  0.  9. -6 1 1 0 2 502  63.2951924 -4.75839636
- -98.7762012  210.738372  175.  0.  9. 24 2 1 0 2 0 -46.0009103 -166.358566
-  194.695228  272.050742  79.4614255  0.  9. -13 1 5 0 5 0  11.0765292
- -44.012688  16.0704939  48.146424  0.10566  0.  9. 14 1 5 0 5 0 -57.0774396
- -122.345878  178.624734  223.904318  0.  0.  9.
- 7
-  9719.39219  0.00777042234  0.125675997
- 1 -1 0 501 0 0  0.  0.  343.690202  343.690202  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -435.036161  435.036161  0.  0.  9. 6 1 1 501 2 0 -24.437141  97.0031198
-  83.8248422  218.308001  175.  0.  9. -6 1 1 0 2 502 -31.9764049 -105.046846
- -323.289657  383.66461  175.  0.  9. -24 2 1 0 2 0  56.4135459  8.04372616
-  148.118856  176.753753  77.8171189  0.  9. 13 1 5 0 5 0  39.8036387
-  21.8428357  148.366546  155.158249  0.10566  0.  9. -14 1 5 0 5 0  16.6099072
- -13.7991096 -0.247689912  21.595504  0.  0.  9.
- 7
-  9088.38655  0.00776747285  0.126326173
- 2 -1 0 501 0 0  0.  0.  2111.11553  2111.11553  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -65.7572413  65.7572413  0.  0.  9. 6 1 1 501 2 0 -59.0181102 -253.875371
-  543.449825  627.613379  175.  0.  9. -6 1 1 0 2 502  68.9000266  203.690395
-  1233.96201  1264.72299  175.  0.  9. 24 2 1 0 2 0 -9.88191643  50.1849756
-  267.946452  284.536404  80.9288581  0.  9. -13 1 5 0 5 0 -39.8770888
-  29.152911  88.1622303  101.057728  0.10566  0.  9. 14 1 5 0 5 0  29.9951723
-  21.0320646  179.784222  183.478676  0.  0.  9.
- 7
-  13935.9069  0.00778619024  0.122297027
- -1 -1 0 0 0 501  0.  0.  476.338293  476.338293  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -482.009079  482.009079  0.  0.  9. 6 1 1 502 2 0  88.5784172 -40.4636388
-  245.434603  316.775293  175.  0.  9. -6 1 1 0 2 501 -124.752193  118.918481
-  104.315285  266.85463  175.  0.  9. 24 2 1 0 2 0  36.1737763 -78.4548423
- -355.420674  374.717449  81.397831  0.  9. -13 1 5 0 5 0 -14.6781196
- -62.6277575 -219.638014  228.863609  0.10566  0.  9. 14 1 5 0 5 0  50.8518959
- -15.8270847 -135.78266  145.85384  0.  0.  9.
- 7
-  12803.7708  0.00778249464  0.123075091
- 2 -1 0 501 0 0  0.  0.  188.127491  188.127491  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -451.05295  451.05295  0.  0.  9. 6 1 1 501 2 0 -74.5565228  44.086374
- -84.2354213  212.656741  175.  0.  9. -6 1 1 0 2 502  15.4737216  9.21269652
-  40.0914876  180.434579  175.  0.  9. 24 2 1 0 2 0  59.0828011 -53.2990705
- -218.781525  246.089121  79.7679848  0.  9. -13 1 5 0 5 0  75.9908021
- -46.2538166 -203.994052  222.547977  0.10566  0.  9. 14 1 5 0 5 0 -16.908001
- -7.0452539 -14.7874727  23.5411438  0.  0.  9.
- 7
-  115472.438  0.00787957336  0.105631246
- 2 -1 0 501 0 0  0.  0.  4889.72807  4889.72807  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -206.343005  206.343005  0.  0.  9. 6 1 1 501 2 0 -378.244282  425.793495
-  1236.18796  1372.28076  175.  0.  9. -6 1 1 0 2 502  126.140984 -212.617129
-  46.8429738  306.4912  175.  0.  9. 24 2 1 0 2 0  252.103297 -213.176365
-  3400.35413  3417.29911  80.7757075  0.  9. -13 1 5 0 5 0  85.0564673
- -42.6103329  704.470277  710.864703  0.10566  0.  9. 14 1 5 0 5 0  167.04683
- -170.566032  2695.88386  2706.4344  0.  0.  9.
- 7
-  13477.9916  0.00778473256  0.122602658
- 2 -1 0 501 0 0  0.  0.  159.499537  159.499537  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -610.76967  610.76967  0.  0.  9. 6 1 1 501 2 0  45.4701442 -17.1067859
-  49.129575  188.145931  175.  0.  9. -6 1 1 0 2 502  14.3975094 -41.3881128
- -286.406018  338.487328  175.  0.  9. 24 2 1 0 2 0 -59.8676535  58.4948988
- -213.993689  243.635948  80.9900425  0.  9. -13 1 5 0 5 0 -36.2856957
-  45.4835971 -208.078995  216.060845  0.10566  0.  9. 14 1 5 0 5 0 -23.5819578
-  13.0113016 -5.91469412  27.5751031  0.  0.  9.
- 7
-  36258.9668  0.00782814263  0.114152692
- 1 -1 0 501 0 0  0.  0.  234.03758  234.03758  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -1474.39907  1474.39907  0.  0.  9. 6 1 1 501 2 0 -49.3021901  257.534577
-  46.9636302  318.724563  175.  0.  9. -6 1 1 0 2 502  204.677739 -182.40001
- -913.028929  969.231431  175.  0.  9. -24 2 1 0 2 0 -155.375549 -75.1345673
- -374.29619  420.480657  83.1840145  0.  9. 13 1 5 0 5 0  7.79280503
- -16.1654875 -30.5314699  35.4151467  0.10566  0.  9. -14 1 5 0 5 0 -163.168354
- -58.9690798 -343.76472  385.06551  0.  0.  9.
- 7
-  6524.87575  0.00775294522  0.129637023
- -1 -1 0 0 0 501  0.  0.  172.834403  172.834403  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -380.814209  380.814209  0.  0.  9. 6 1 1 502 2 0 -13.4388991  10.4808664
-  36.155343  179.506717  175.  0.  9. -6 1 1 0 2 501  16.5910703 -3.94350722
- -93.6209327  199.200135  175.  0.  9. 24 2 1 0 2 0 -3.15217118 -6.53735913
- -150.514216  174.941759  88.867411  0.  9. -13 1 5 0 5 0  29.4769245
-  27.887916 -83.5272018  92.8624227  0.10566  0.  9. 14 1 5 0 5 0 -32.6290957
- -34.4252751 -66.987014  82.0793367  0.  0.  9.
- 7
-  13085.9601  0.00778344516  0.122873956
- 1 -1 0 501 0 0  0.  0.  2661.79837  2661.79837  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -76.8542289  76.8542289  0.  0.  9. 6 1 1 501 2 0  286.009783  7.77694847
-  521.894413  620.371547  175.  0.  9. -6 1 1 0 2 502 -207.94948 -30.588056
-  717.190505  767.571388  175.  0.  9. -24 2 1 0 2 0 -78.0603036  22.8111075
-  1345.85922  1350.70966  80.4101503  0.  9. 13 1 5 0 5 0 -94.4012987
-  22.6853667  1205.2099  1209.1142  0.10566  0.  9. -14 1 5 0 5 0  16.340995
-  0.125740851  140.649324  141.595467  0.  0.  9.
- 7
-  11557.6255  0.00777803324  0.124028687
- 3 -1 0 501 0 0  0.  0.  76.5727725  76.5727725  0.  0.  9. -4 -1 0 0 0 502  0.
-  0. -1567.20724  1567.20724  0.  0.  9. 6 1 1 501 2 0  31.2022321 -12.6951868
- -547.741225  576.003643  175.  0.  9. -6 1 1 0 2 502  38.5361178 -2.2039936
- -76.7304361  194.94217  175.  0.  9. -24 2 1 0 2 0 -69.7383498  14.8991804
- -866.162805  872.834198  80.7224204  0.  9. 13 1 5 0 5 0 -46.5629167
-  19.5387079 -200.807893  207.059623  0.10566  0.  9. -14 1 5 0 5 0 -23.1754331
- -4.63952752 -665.354912  665.774575  0.  0.  9.
- 7
-  6957.17464  0.00775575338  0.128982592
- 2 -1 0 501 0 0  0.  0.  388.913052  388.913052  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -348.55352  348.55352  0.  0.  9. 6 1 1 501 2 0 -223.559706 -45.3585241
-  81.7632108  298.90895  175.  0.  9. -6 1 1 0 2 502  243.494056  35.9993662
-  59.2283858  307.763401  175.  0.  9. 24 2 1 0 2 0 -19.9343498  9.35915788
- -100.632064  130.79422  80.5936934  0.  9. -13 1 5 0 5 0 -28.3650797
- -3.91355978  0.309161931  28.6356499  0.10566  0.  9. 14 1 5 0 5 0  8.43072996
-  13.2727177 -100.941226  102.15857  0.  0.  9.
- 7
-  11308.953  0.0077770862  0.124233158
- 1 -1 0 501 0 0  0.  0.  250.279096  250.279096  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -388.820067  388.820067  0.  0.  9. 6 1 1 501 2 0  25.8566119 -80.9030512
-  125.049869  231.249514  175.  0.  9. -6 1 1 0 2 502 -69.2716455  26.5717956
- -105.225634  217.26034  175.  0.  9. -24 2 1 0 2 0  43.4150336  54.3312556
- -158.365207  190.58931  80.0499577  0.  9. 13 1 5 0 5 0  66.1339168
-  36.1930125 -127.996762  148.54902  0.10566  0.  9. -14 1 5 0 5 0 -22.7188831
-  18.1382431 -30.3684454  42.0402901  0.  0.  9.
- 7
-  7107.04606  0.00775668679  0.128766628
- -1 -1 0 0 0 501  0.  0.  2412.08867  2412.08867  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -72.6131443  72.6131443  0.  0.  9. 6 1 1 502 2 0  263.094428 -72.2974213
-  460.56342  563.195578  175.  0.  9. -6 1 1 0 2 501 -239.595436  63.2067165
-  1217.94744  1255.15817  175.  0.  9. 24 2 1 0 2 0 -23.4989925  9.09070479
-  660.964663  666.348065  80.6883768  0.  9. -13 1 5 0 5 0 -6.4323381
-  42.3609188  455.320624  457.33216  0.10566  0.  9. 14 1 5 0 5 0 -17.0666544
- -33.2702141  205.644039  209.015905  0.  0.  9.
- 7
-  12025.9973  0.00777976349  0.123656977
- 2 -1 0 501 0 0  0.  0.  115.524734  115.524734  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -956.370019  956.370019  0.  0.  9. 6 1 1 501 2 0  188.360212 -55.5404912
- -197.293074  328.806741  175.  0.  9. -6 1 1 0 2 502 -115.240556  69.9387812
- -228.462967  317.792615  175.  0.  9. 24 2 1 0 2 0 -73.1196558 -14.39829
- -415.089243  425.295397  54.9845485  0.  9. -13 1 5 0 5 0 -70.6808854
- -13.2404756 -416.206994  422.373497  0.10566  0.  9. 14 1 5 0 5 0 -2.43877046
- -1.15781435  1.11775108  2.92190056  0.  0.  9.
- 7
-  19942.6314  0.00780186111  0.119111914
- -1 -1 0 0 0 501  0.  0.  210.562283  210.562283  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1411.2974  1411.2974  0.  0.  9. 6 1 1 502 2 0 -91.5645369 -306.455206
- -710.045203  798.177955  175.  0.  9. -6 1 1 0 2 501 -18.9820557  271.101567
- -11.4493373  323.438503  175.  0.  9. 24 2 1 0 2 0  110.546593  35.3536393
- -479.240577  500.243225  84.2693543  0.  9. -13 1 5 0 5 0  91.4123185
-  58.7100871 -313.918235  332.186327  0.10566  0.  9. 14 1 5 0 5 0  19.1342741
- -23.3564477 -165.322342  168.056898  0.  0.  9.
- 7
-  60307.1066  0.00785064882  0.110246414
- -1 -1 0 0 0 501  0.  0.  156.997539  156.997539  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1478.51406  1478.51406  0.  0.  9. 6 1 1 502 2 0 -216.880581 -146.707949
- -152.12604  349.753829  175.  0.  9. -6 1 1 0 2 501 -14.4421236  164.727679
- -845.114714  878.742091  175.  0.  9. 24 2 1 0 2 0  231.322704 -18.0197302
- -324.275763  407.015676  81.6828367  0.  9. -13 1 5 0 5 0  156.615901
-  23.9138732 -233.71648  282.354065  0.10566  0.  9. 14 1 5 0 5 0  74.7068027
- -41.9336033 -90.5592832  124.661611  0.  0.  9.
- 7
-  6743.49474  0.00775438759  0.129299996
- 2 -1 0 501 0 0  0.  0.  349.340801  349.340801  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -328.124953  328.124953  0.  0.  9. 6 1 1 501 2 0  185.892435 -31.9515582
-  74.0725615  267.747351  175.  0.  9. -6 1 1 0 2 502 -191.655688  47.3813074
- -132.956344  295.430669  175.  0.  9. 24 2 1 0 2 0  5.76325271 -15.4297492
-  80.0996315  114.287734  79.8401084  0.  9. -13 1 5 0 5 0 -12.6763306
-  28.3063553  47.4160431  56.6589041  0.10566  0.  9. 14 1 5 0 5 0  18.4395833
- -43.7361045  32.6835884  57.6288298  0.  0.  9.
- 7
-  7902.59339  0.00776133701  0.127702163
- 1 -1 0 501 0 0  0.  0.  459.042397  459.042397  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -146.516473  146.516473  0.  0.  9. 6 1 1 501 2 0 -35.6454528 -23.5964809
-  182.165804  256.196745  175.  0.  9. -6 1 1 0 2 502  71.5062982  35.6127473
-  157.633917  248.706394  175.  0.  9. -24 2 1 0 2 0 -35.8608453 -12.0162664
- -27.2737979  100.655731  89.203841  0.  9. 13 1 5 0 5 0 -43.8015548
-  16.6362556 -45.8836312  65.5794174  0.10566  0.  9. -14 1 5 0 5 0  7.9407095
- -28.652522  18.6098333  35.0763137  0.  0.  9.
- 7
-  10451.0587  0.00777365318  0.124980477
- -2 -1 0 0 0 501  0.  0.  100.315411  100.315411  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -819.121302  819.121302  0.  0.  9. 6 1 1 502 2 0 -82.4106214  1.90483776
- -82.5194621  210.308346  175.  0.  9. -6 1 1 0 2 501  19.3890721  0.767341035
- -535.726552  563.918844  175.  0.  9. -24 2 1 0 2 0  63.0215493 -2.6721788
- -100.559877  145.209522  83.6340857  0.  9. 13 1 5 0 5 0  79.6568618
- -16.5369353 -89.2973695  120.80032  0.10566  0.  9. -14 1 5 0 5 0 -16.6353125
-  13.8647565 -11.2625072  24.4092024  0.  0.  9.
- 7
-  11549.4987  0.00777800261  0.124035289
- -1 -1 0 0 0 501  0.  0.  433.085844  433.085844  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -366.588246  366.588246  0.  0.  9. 6 1 1 502 2 0  22.9964132  195.158717
- -36.2284194  265.618633  175.  0.  9. -6 1 1 0 2 501  45.7486891 -176.412861
- -124.291126  281.580759  175.  0.  9. 24 2 1 0 2 0 -68.7451023 -18.7458559
-  227.017144  252.474697  84.4357334  0.  9. -13 1 5 0 5 0 -56.2260026
-  24.2061252  94.3672061  112.483246  0.10566  0.  9. 14 1 5 0 5 0 -12.5190997
- -42.9519811  132.649937  139.991451  0.  0.  9.
- 7
-  17748.2361  0.00779675692  0.120129572
- 2 -1 0 501 0 0  0.  0.  423.06777  423.06777  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -179.031818  179.031818  0.  0.  9. 6 1 1 501 2 0  76.0050945  94.6604757
-  49.9982906  218.774334  175.  0.  9. -6 1 1 0 2 502 -66.5617005  11.1074583
-  68.5756958  199.703434  175.  0.  9. 24 2 1 0 2 0 -9.44339396 -105.767934
-  125.461966  183.62182  81.854958  0.  9. -13 1 5 0 5 0  21.0175386
-  0.0675096943  36.1989813  41.8583193  0.10566  0.  9. 14 1 5 0 5 0
- -30.4609326 -105.835444  89.2629849  141.7635  0.  0.  9.
- 7
-  8062.18532  0.00776221389  0.127503549
- -2 -1 0 0 0 501  0.  0.  529.061279  529.061279  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -222.748156  222.748156  0.  0.  9. 6 1 1 502 2 0 -129.979239 -107.542734
-  189.252232  308.060788  175.  0.  9. -6 1 1 0 2 501  147.512545  71.7298033
-  206.871104  316.742434  175.  0.  9. -24 2 1 0 2 0 -17.5333065  35.8129304
- -89.8102126  127.006213  80.4656508  0.  9. 13 1 5 0 5 0  2.97081951
- -10.7876635  9.97048362  14.9873667  0.10566  0.  9. -14 1 5 0 5 0 -20.504126
-  46.6005939 -99.7806962  112.018846  0.  0.  9.
- 7
-  120718.029  0.00788155934  0.105329686
- 3 -1 0 501 0 0  0.  0.  171.248592  171.248592  0.  0.  9. -4 -1 0 0 0 502  0.
-  0. -1399.80572  1399.80572  0.  0.  9. 6 1 1 501 2 0  132.594939  82.7240974
- -785.899726  820.175636  175.  0.  9. -6 1 1 0 2 502  181.578747  41.938333
- -148.443766  295.618364  175.  0.  9. -24 2 1 0 2 0 -314.173686 -124.66243
- -294.213632  455.260309  80.3396569  0.  9. 13 1 5 0 5 0 -253.103823
- -125.542218 -213.926305  354.382376  0.10566  0.  9. -14 1 5 0 5 0 -61.0698637
-  0.879787927 -80.2873272  100.877932  0.  0.  9.
- 7
-  12250.8829  0.00778057072  0.123484378
- 2 -1 0 501 0 0  0.  0.  1396.36509  1396.36509  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -57.9406007  57.9406007  0.  0.  9. 6 1 1 501 2 0 -105.465192 -90.4535183
-  512.101323  558.728477  175.  0.  9. -6 1 1 0 2 502  150.415752  29.149949
-  584.528354  629.104931  175.  0.  9. 24 2 1 0 2 0 -44.9505598  61.3035693
-  241.794812  266.472283  82.2439398  0.  9. -13 1 5 0 5 0  18.5376988
- -3.28005431  23.3202161  29.9707971  0.10566  0.  9. 14 1 5 0 5 0 -63.4882586
-  64.5836236  218.474596  236.501485  0.  0.  9.
- 7
-  12778.4811  0.00778240845  0.123093365
- -1 -1 0 0 0 501  0.  0.  64.4555644  64.4555644  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1035.8448  1035.8448  0.  0.  9. 6 1 1 502 2 0 -98.6148003 -4.41075215
- -379.131446  429.080397  175.  0.  9. -6 1 1 0 2 501  34.6116316 -42.5985344
- -470.085877  504.597198  175.  0.  9. 24 2 1 0 2 0  64.0031687  47.0092866
- -122.171914  166.622772  80.813939  0.  9. -13 1 5 0 5 0  75.9510739
-  24.0802839 -61.4347777  100.611474  0.10566  0.  9. 14 1 5 0 5 0 -11.9479051
-  22.9290027 -60.7371365  66.0112972  0.  0.  9.
- 7
-  9044.41365  0.00776725983  0.126373412
- -4 -1 0 0 0 501  0.  0.  1142.77043  1142.77043  0.  0.  9. 3 -1 0 502 0 0  0.
-  0. -159.464857  159.464857  0.  0.  9. 6 1 1 502 2 0 -49.6405859  150.048042
- -17.9255379  236.484519  175.  0.  9. -6 1 1 0 2 501  45.1031119 -200.561629
-  728.882839  777.27373  175.  0.  9. -24 2 1 0 2 0  4.53747401  50.513587
-  272.348273  288.47704  80.4562586  0.  9. 13 1 5 0 5 0 -28.5216126
-  12.0152737  184.066043  186.649856  0.10566  0.  9. -14 1 5 0 5 0  33.0590866
-  38.4983134  88.2822298  101.827184  0.  0.  9.
- 7
-  25863.126  0.00781326758  0.116903485
- -2 -1 0 0 0 501  0.  0.  22.8292462  22.8292462  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -4247.05775  4247.05775  0.  0.  9. 6 1 1 502 2 0 -7.92446241  30.8913178
- -691.706428  714.21275  175.  0.  9. -6 1 1 0 2 501 -6.47678614 -169.39593
- -2108.62356  2122.65288  175.  0.  9. -24 2 1 0 2 0  14.4012486  138.504612
- -1423.89851  1433.02136  81.6843214  0.  9. 13 1 5 0 5 0 -17.2307427
-  100.950222 -699.047326  706.509038  0.10566  0.  9. -14 1 5 0 5 0  31.6319912
-  37.5543898 -724.851184  726.512322  0.  0.  9.
- 7
-  10236.0099  0.00777274893  0.125178928
- -1 -1 0 0 0 501  0.  0.  62.8508951  62.8508951  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -2379.50348  2379.50348  0.  0.  9. 6 1 1 502 2 0  231.92397 -157.399853
- -737.694152  808.319927  175.  0.  9. -6 1 1 0 2 501 -175.708852  181.969505
- -1309.4409  1345.08252  175.  0.  9. 24 2 1 0 2 0 -56.2151187 -24.5696516
- -269.51753  288.951931  84.2004282  0.  9. -13 1 5 0 5 0 -5.16463483
- -44.3639919 -165.285375  171.21362  0.10566  0.  9. 14 1 5 0 5 0 -51.0504839
-  19.7943403 -104.232155  117.738311  0.  0.  9.
- 7
-  6909.96889  0.00775545525  0.129051732
- -2 -1 0 0 0 501  0.  0.  278.391811  278.391811  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -396.598532  396.598532  0.  0.  9. 6 1 1 502 2 0 -127.098334 -62.2343635
-  145.57738  268.038945  175.  0.  9. -6 1 1 0 2 501  137.731395  44.2148075
- -185.828922  293.397809  175.  0.  9. -24 2 1 0 2 0 -10.6330614  18.019556
- -77.9551788  113.553588  79.8726555  0.  9. 13 1 5 0 5 0  11.8071642
-  21.3519663 -86.0685071  89.460129  0.10566  0.  9. -14 1 5 0 5 0 -22.4402256
- -3.33241034  8.11332834  24.0934592  0.  0.  9.
- 7
-  18018.3142  0.00779741781  0.119996751
- -1 -1 0 0 0 501  0.  0.  91.0024642  91.0024642  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -3870.75837  3870.75837  0.  0.  9. 6 1 1 502 2 0  377.581628 -55.4477062
- -1180.33259  1252.77785  175.  0.  9. -6 1 1 0 2 501 -482.679814  77.8191856
- -1260.25788  1363.05192  175.  0.  9. 24 2 1 0 2 0  105.098186 -22.3714794
- -1339.16544  1345.93106  81.3647347  0.  9. -13 1 5 0 5 0  4.79883184
-  13.927376 -472.029929  472.259744  0.10566  0.  9. 14 1 5 0 5 0  100.299354
- -36.2988554 -867.135512  873.671313  0.  0.  9.
- 7
-  14181.5878  0.00778695292  0.12213777
- -1 -1 0 0 0 501  0.  0.  42.4195054  42.4195054  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1763.21854  1763.21854  0.  0.  9. 6 1 1 502 2 0  64.0506858 -69.147629
- -1025.8874  1044.96595  175.  0.  9. -6 1 1 0 2 501 -70.4250603 -18.4237855
- -394.008946  437.226685  175.  0.  9. 24 2 1 0 2 0  6.37437457  87.5714144
- -300.902692  323.445411  79.7816915  0.  9. -13 1 5 0 5 0  32.2902511
-  83.7136361 -200.148536  219.340103  0.10566  0.  9. 14 1 5 0 5 0 -25.9158765
-  3.85777838 -100.754156  104.105308  0.  0.  9.
- 7
-  8231.78501  0.00776312716  0.1272974
- -1 -1 0 0 0 501  0.  0.  44.2779279  44.2779279  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -2331.91124  2331.91124  0.  0.  9. 6 1 1 502 2 0  124.504977  38.3713714
- -1390.2613  1407.27586  175.  0.  9. -6 1 1 0 2 501 -95.7022427 -7.87571633
- -275.418754  340.149138  175.  0.  9. 24 2 1 0 2 0 -28.8027347 -30.4956551
- -621.953257  628.764173  82.2128268  0.  9. -13 1 5 0 5 0 -32.3055878
- -11.7519031 -593.604761  594.599345  0.10566  0.  9. 14 1 5 0 5 0  3.50285303
- -18.743752 -28.3484963  34.1648279  0.  0.  9.
- 7
-  10495.5921  0.00777383813  0.124939969
- 2 -1 0 501 0 0  0.  0.  181.564748  181.564748  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -574.172546  574.172546  0.  0.  9. 6 1 1 501 2 0 -8.49886096  88.3827095
- -195.689548  277.133782  175.  0.  9. -6 1 1 0 2 502  16.3760524 -151.321882
-  26.7056473  233.462371  175.  0.  9. 24 2 1 0 2 0 -7.87719148  62.939173
- -223.623898  245.14114  77.8661756  0.  9. -13 1 5 0 5 0 -32.0616331
-  13.7750869 -37.9637384  51.5650845  0.10566  0.  9. 14 1 5 0 5 0  24.1844416
-  49.1640861 -185.660159  193.576056  0.  0.  9.
- 7
-  7488.98051  0.00775898025  0.128239271
- -3 -1 0 0 0 501  0.  0.  317.577647  317.577647  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1134.35391  1134.35391  0.  0.  9. 6 1 1 502 2 0 -98.4926756  264.844897
- -345.390138  479.335972  175.  0.  9. -6 1 1 0 2 501  117.251371 -239.059448
-  145.44005  350.25007  175.  0.  9. 24 2 1 0 2 0 -18.7586955 -25.7854484
- -616.82617  622.345511  76.3061791  0.  9. -13 1 5 0 5 0 -33.3032116
- -46.196745 -463.293006  466.780102  0.10566  0.  9. 14 1 5 0 5 0  14.544516
-  20.4112966 -153.533164  155.565409  0.  0.  9.
- 7
-  109676.642  0.0078772726  0.105982964
- 2 -1 0 501 0 0  0.  0.  2336.9297  2336.9297  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -696.151663  696.151663  0.  0.  9. 6 1 1 501 2 0 -212.033528 -393.178282
-  82.4767371  486.800565  175.  0.  9. -6 1 1 0 2 502 -91.9480291  289.256904
- -416.302123  544.1107  175.  0.  9. 24 2 1 0 2 0  303.981557  103.921378
-  1974.60343  2002.1701  80.1372898  0.  9. -13 1 5 0 5 0  37.3785723
- -0.0340829272  122.013362  127.610464  0.10566  0.  9. 14 1 5 0 5 0
-  266.602985  103.955461  1852.59006  1874.55964  0.  0.  9.
- 7
-  19866.4808  0.00780169349  0.119145039
- 2 -1 0 501 0 0  0.  0.  170.945015  170.945015  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -472.007142  472.007142  0.  0.  9. 6 1 1 501 2 0 -85.9659809  99.8599601
- -104.258447  242.604586  175.  0.  9. -6 1 1 0 2 502 -29.4570201 -108.333987
- -110.953628  235.668573  175.  0.  9. 24 2 1 0 2 0  115.423001  8.47402702
- -85.8500514  164.678997  79.7161373  0.  9. -13 1 5 0 5 0  116.190564
- -10.059884 -87.8657101  146.020008  0.10566  0.  9. 14 1 5 0 5 0 -0.767563323
-  18.533911  2.01565871  18.6589895  0.  0.  9.
- 7
-  24639.2551  0.00781113796  0.117309082
- 2 -1 0 501 0 0  0.  0.  331.971746  331.971746  0.  0.  9. -3 -1 0 0 0 502  0.
-  0. -307.428483  307.428483  0.  0.  9. 6 1 1 501 2 0 -130.399673 -5.9282335
-  98.4789391  239.504321  175.  0.  9. -6 1 1 0 2 502  15.7147534 -64.8843497
- -135.90818  231.415137  175.  0.  9. 24 2 1 0 2 0  114.684919  70.8125832
-  61.9725033  168.480771  79.8631721  0.  9. -13 1 5 0 5 0  2.14393704
- -14.0238196  13.1061086  19.3143788  0.10566  0.  9. 14 1 5 0 5 0  112.540982
-  84.8364028  48.8663947  149.166392  0.  0.  9.
- 7
-  9058.56357  0.00776732849  0.126358182
- -2 -1 0 0 0 501  0.  0.  225.052789  225.052789  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -1945.82165  1945.82165  0.  0.  9. 6 1 1 502 2 0 -0.36877625  48.6118665
-  170.141887  248.870471  175.  0.  9. -6 1 1 0 2 501 -6.17193153 -99.0457858
- -728.560664  755.826568  175.  0.  9. -24 2 1 0 2 0  6.54070778  50.4339192
- -1162.35008  1166.1774  79.5339389  0.  9. 13 1 5 0 5 0 -17.1600367
-  35.5395975 -1036.53143  1037.28248  0.10566  0.  9. -14 1 5 0 5 0  23.7007445
-  14.8943217 -125.818655  128.894918  0.  0.  9.
- 7
-  9905.16515  0.00777125467  0.125493818
- 2 -1 0 501 0 0  0.  0.  206.649619  206.649619  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -1691.79137  1691.79137  0.  0.  9. 6 1 1 501 2 0  2.59893503 -28.9863164
-  87.6387418  197.869932  175.  0.  9. -6 1 1 0 2 502  25.33736  80.4889966
- -1587.52093  1599.36492  175.  0.  9. 24 2 1 0 2 0 -27.936295 -51.5026802
-  14.7404393  101.206129  81.1938255  0.  9. -13 1 5 0 5 0  4.9190315
- -58.7415186  27.7279324  65.143014  0.10566  0.  9. 14 1 5 0 5 0 -32.8553265
-  7.2388384 -12.9874931  36.0631147  0.  0.  9.
- 7
-  95259.8248  0.00787098293  0.1069576
- -1 -1 0 0 0 501  0.  0.  1119.89416  1119.89416  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -223.394315  223.394315  0.  0.  9. 6 1 1 502 2 0 -74.7064757 -38.5033974
-  480.415499  518.157911  175.  0.  9. -6 1 1 0 2 501 -198.529508 -80.3651002
- -36.3628358  278.961952  175.  0.  9. 24 2 1 0 2 0  273.235983  118.868498
-  452.447183  546.168613  69.3114586  0.  9. -13 1 5 0 5 0  275.101224
-  109.246763  440.555103  530.758277  0.10566  0.  9. 14 1 5 0 5 0 -1.86524053
-  9.62173436  11.8920801  15.4103362  0.  0.  9.
- 7
-  26562.7297  0.00781444062  0.116681365
- 1 -1 0 501 0 0  0.  0.  200.740372  200.740372  0.  0.  9. -4 -1 0 0 0 502  0.
-  0. -535.132752  535.132752  0.  0.  9. 6 1 1 501 2 0  161.885708 -75.0033429
- -299.130503  389.790381  175.  0.  9. -6 1 1 0 2 502 -25.6162933  36.0011132
- -31.4709937  183.214896  175.  0.  9. -24 2 1 0 2 0 -136.269414  39.0022297
- -3.79088322  162.867847  80.1313769  0.  9. 13 1 5 0 5 0 -75.6980248
-  1.47344605  33.0972  82.6304896  0.10566  0.  9. -14 1 5 0 5 0 -60.5713897
-  37.5287837 -36.8880832  80.2373575  0.  0.  9.
- 7
-  7120.27171  0.00775676823  0.128747823
- -1 -1 0 0 0 501  0.  0.  297.350848  297.350848  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1284.20653  1284.20653  0.  0.  9. 6 1 1 502 2 0 -84.455235  53.8558324
- -545.771424  581.828656  175.  0.  9. -6 1 1 0 2 501  64.9792831 -70.2496271
- -699.967621  727.830329  175.  0.  9. 24 2 1 0 2 0  19.4759519  16.3937948
-  258.883368  271.898388  79.1205771  0.  9. -13 1 5 0 5 0  3.01034799
-  41.7166777  212.289184  216.370174  0.10566  0.  9. 14 1 5 0 5 0  16.4656039
- -25.322883  46.594184  55.5282135  0.  0.  9.
- 7
-  21481.7081  0.00780511968  0.118471882
- 2 -1 0 501 0 0  0.  0.  1720.62676  1720.62676  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -157.920051  157.920051  0.  0.  9. 6 1 1 501 2 0 -378.672075  169.453132
-  1094.71077  1183.69066  175.  0.  9. -6 1 1 0 2 502  303.153685 -72.9830419
-  394.552672  532.471119  175.  0.  9. 24 2 1 0 2 0  75.51839 -96.4700905
-  73.4432657  162.385032  77.2365187  0.  9. -13 1 5 0 5 0 -15.9441879
- -20.0026335  11.7121504  28.1337539  0.10566  0.  9. 14 1 5 0 5 0  91.4625779
- -76.4674571  61.7311153  134.251278  0.  0.  9.
- 7
-  10211.8954  0.00777264636  0.125201481
- -2 -1 0 0 0 501  0.  0.  28.3129586  28.3129586  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -2595.26895  2595.26895  0.  0.  9. 6 1 1 502 2 0  17.8652744  50.9507954
- -1679.25586  1689.21295  175.  0.  9. -6 1 1 0 2 501 -15.282706  10.1476761
- -690.38708  712.457617  175.  0.  9. -24 2 1 0 2 0 -2.58256837 -61.0984715
- -197.313052  221.91134  81.0710159  0.  9. 13 1 5 0 5 0 -40.1647866
- -22.7806949 -71.3243615  84.9667338  0.10566  0.  9. -14 1 5 0 5 0  37.5822183
- -38.3177766 -125.98869  136.944606  0.  0.  9.
- 7
-  8736.35667  0.0077657381  0.126711962
- 1 -1 0 501 0 0  0.  0.  333.560391  333.560391  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -239.629021  239.629021  0.  0.  9. 6 1 1 501 2 0  92.6843241 -19.4767904
-  155.255475  252.386592  175.  0.  9. -6 1 1 0 2 502 -117.373764 -21.199809
- -79.5559907  226.230387  175.  0.  9. -24 2 1 0 2 0  24.6894397  40.6765994
-  18.231885  94.5724332  79.6705047  0.  9. 13 1 5 0 5 0  44.6895085
-  51.4258647  21.9180836  71.5694438  0.10566  0.  9. -14 1 5 0 5 0 -20.0000688
- -10.7492654 -3.68619862  23.0029893  0.  0.  9.
- 7
-  23450.4644  0.00780896677  0.117725732
- -1 -1 0 0 0 501  0.  0.  244.634175  244.634175  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1360.30258  1360.30258  0.  0.  9. 6 1 1 502 2 0  280.041914 -117.672288
- -213.206991  410.307765  175.  0.  9. -6 1 1 0 2 501 -362.331356  16.6440263
- -154.812211  431.45435  175.  0.  9. 24 2 1 0 2 0  82.2894424  101.028261
- -747.649204  763.174642  80.4856468  0.  9. -13 1 5 0 5 0 -12.8202245
-  32.6826698 -139.447891  143.799306  0.10566  0.  9. 14 1 5 0 5 0  95.1096669
-  68.3455917 -608.201313  619.375335  0.  0.  9.
- 7
-  7506.52015  0.00775908277  0.128215805
- -2 -1 0 0 0 501  0.  0.  69.4012293  69.4012293  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -1211.83514  1211.83514  0.  0.  9. 6 1 1 502 2 0  12.3564402 -85.719621
- -197.655985  277.837045  175.  0.  9. -6 1 1 0 2 501 -44.260461  89.7756173
- -359.66203  412.311079  175.  0.  9. -24 2 1 0 2 0  31.9040208 -4.05599626
- -585.115893  591.088243  77.3975786  0.  9. 13 1 5 0 5 0  16.6572837
- -38.0894537 -206.700058  210.839268  0.10566  0.  9. -14 1 5 0 5 0  15.2467372
-  34.0334575 -378.415834  380.248975  0.  0.  9.
- 7
-  10059.0378  0.00777199059  0.125345881
- -1 -1 0 0 0 501  0.  0.  138.556763  138.556763  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -1073.15362  1073.15362  0.  0.  9. 6 1 1 502 2 0 -116.102102  114.156323
- -97.1580277  258.023345  175.  0.  9. -6 1 1 0 2 501  67.5427461 -79.1017341
- -135.401679  244.494829  175.  0.  9. 24 2 1 0 2 0  48.5593561 -35.0545888
- -702.037154  709.192213  80.6882509  0.  9. -13 1 5 0 5 0  49.7299533
- -10.1850092 -644.542905  646.538761  0.10566  0.  9. 14 1 5 0 5 0 -1.17059726
- -24.8695796 -57.4942496  62.6534518  0.  0.  9.
- 7
-  6503.77481  0.00775280348  0.129670243
- -2 -1 0 0 0 501  0.  0.  123.111287  123.111287  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -1364.37174  1364.37174  0.  0.  9. 6 1 1 502 2 0  114.770124 -8.53322236
- -1167.78418  1186.41893  175.  0.  9. -6 1 1 0 2 501 -115.655046  2.98441878
- -33.5497772  212.451368  175.  0.  9. -24 2 1 0 2 0  0.884921398  5.54880358
- -39.9265016  88.612729  78.9082879  0.  9. 13 1 5 0 5 0  2.34523934 -34.565522
- -33.0616903  47.8890592  0.10566  0.  9. -14 1 5 0 5 0 -1.46031794  40.1143256
- -6.86481123  40.7236698  0.  0.  9.
- 7
-  17299.0699  0.00779563545  0.120355682
- -2 -1 0 0 0 501  0.  0.  88.1692562  88.1692562  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -954.498393  954.498393  0.  0.  9. 6 1 1 502 2 0  64.1590071 -40.3299931
- -393.311543  437.10623  175.  0.  9. -6 1 1 0 2 501 -153.047564 -13.7596726
- -221.848941  321.643962  175.  0.  9. -24 2 1 0 2 0  88.8885566  54.0896657
- -251.168653  283.917458  81.8325316  0.  9. 13 1 5 0 5 0  100.704413
-  44.6503798 -242.827771  266.646531  0.10566  0.  9. -14 1 5 0 5 0 -11.8158565
-  9.4392859 -8.34088166  17.2709261  0.  0.  9.
- 7
-  77062.3638  0.00786154052  0.108457946
- -1 -1 0 0 0 501  0.  0.  404.074516  404.074516  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -471.201447  471.201447  0.  0.  9. 6 1 1 502 2 0  240.763593 -208.690468
- -164.53242  399.017213  175.  0.  9. -6 1 1 0 2 501 -38.2325868  36.7272371
- -6.80792517  182.980787  175.  0.  9. 24 2 1 0 2 0 -202.531007  171.963231
-  104.213414  293.277962  67.5378873  0.  9. -13 1 5 0 5 0 -102.478151
-  121.282245  82.8824944  179.110785  0.10566  0.  9. 14 1 5 0 5 0 -100.052855
-  50.680986  21.3309198  114.167177  0.  0.  9.
- 7
-  13152.3295  0.00778366577  0.122827374
- 2 -1 0 501 0 0  0.  0.  1637.75443  1637.75443  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -54.5613303  54.5613303  0.  0.  9. 6 1 1 501 2 0  57.0286346  3.08838239
-  448.61856  484.917948  175.  0.  9. -6 1 1 0 2 502 -61.5016506 -84.6979351
-  285.874224  351.148494  175.  0.  9. 24 2 1 0 2 0  4.473016  81.6095527
-  848.700318  856.249321  78.680001  0.  9. -13 1 5 0 5 0  38.552993
-  23.1525776  390.172756  392.75586  0.10566  0.  9. 14 1 5 0 5 0 -34.079977
-  58.456975  458.527562  463.493461  0.  0.  9.
- 7
-  11648.7182  0.00777837512  0.123955051
- -1 -1 0 0 0 501  0.  0.  275.184403  275.184403  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -309.327791  309.327791  0.  0.  9. 6 1 1 502 2 0  23.9383996  133.081543
- -126.012827  254.534824  175.  0.  9. -6 1 1 0 2 501  9.69979592 -69.4813272
- -0.669747158  188.539623  175.  0.  9. 24 2 1 0 2 0 -33.6381955 -63.6002159
-  92.5391857  141.437747  79.14935  0.  9. -13 1 5 0 5 0  14.0664045
-  3.21572827 -3.74147751  14.9068596  0.10566  0.  9. 14 1 5 0 5 0 -47.7046
- -66.8159442  96.2806632  126.530887  0.  0.  9.
- 7
-  26188.6883  0.00781381731  0.116799278
- 1 -1 0 501 0 0  0.  0.  3239.74692  3239.74692  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -38.3717515  38.3717515  0.  0.  9. 6 1 1 501 2 0 -147.726071 -33.5002203
-  1111.32522  1135.17135  175.  0.  9. -6 1 1 0 2 502  56.7559723  140.462489
-  1761.17699  1776.32214  175.  0.  9. -24 2 1 0 2 0  90.9700983 -106.962269
-  328.872966  366.625187  80.8709711  0.  9. 13 1 5 0 5 0  9.95398713
- -63.8911437  185.097192  196.066677  0.10566  0.  9. -14 1 5 0 5 0  81.0161112
- -43.0711254  143.775774  170.55851  0.  0.  9.
- 7
-  15745.5596  0.00779152159  0.121193027
- 2 -1 0 501 0 0  0.  0.  1420.51096  1420.51096  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -64.9545666  64.9545666  0.  0.  9. 6 1 1 501 2 0 -20.9068046 -8.96766544
-  303.77859  351.317442  175.  0.  9. -6 1 1 0 2 502 -28.0111933  91.9157609
-  953.470353  974.147754  175.  0.  9. 24 2 1 0 2 0  48.9179979 -82.9480954
-  98.3074536  160.000333  81.6234892  0.  9. -13 1 5 0 5 0 -8.50379557
- -37.4543167  1.2890905  38.4293286  0.10566  0.  9. 14 1 5 0 5 0  57.4217935
- -45.4937788  97.0183631  121.571004  0.  0.  9.
- 7
-  14956.2584  0.00778927494  0.121655633
- 2 -1 0 501 0 0  0.  0.  171.861763  171.861763  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -1115.3977  1115.3977  0.  0.  9. 6 1 1 501 2 0  13.1228708 -194.522351
- -60.2992955  268.834819  175.  0.  9. -6 1 1 0 2 502  2.19987213  103.696862
- -868.17455  891.689367  175.  0.  9. 24 2 1 0 2 0 -15.322743  90.8254889
- -15.0620915  126.735277  85.7374358  0.  9. -13 1 5 0 5 0 -49.1621635
-  61.673736  2.06955915  78.8977964  0.10566  0.  9. 14 1 5 0 5 0  33.8394206
-  29.1517529 -17.1316506  47.8374804  0.  0.  9.
- 7
-  18120.1525  0.00779766447  0.11994726
- 1 -1 0 501 0 0  0.  0.  2641.57596  2641.57596  0.  0.  9. -2 -1 0 0 0 502  0.
-  0. -24.2148798  24.2148798  0.  0.  9. 6 1 1 501 2 0  26.284384 -34.1049785
-  901.349121  919.189456  175.  0.  9. -6 1 1 0 2 502  72.5722864 -9.19985667
-  942.957788  961.844979  175.  0.  9. -24 2 1 0 2 0 -98.8566704  43.3048352
-  773.054175  784.756408  81.1289884  0.  9. 13 1 5 0 5 0  13.2426867
-  10.3363636  140.486575  141.487449  0.10566  0.  9. -14 1 5 0 5 0 -112.099357
-  32.9684716  632.567599  643.268959  0.  0.  9.
- 7
-  6892.69506  0.00775534566  0.129077169
- 2 -1 0 501 0 0  0.  0.  653.953102  653.953102  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -113.589564  113.589564  0.  0.  9. 6 1 1 501 2 0 -31.3598128  149.31018
-  285.395981  367.903294  175.  0.  9. -6 1 1 0 2 502  45.0746484 -134.065645
-  178.715419  287.349129  175.  0.  9. 24 2 1 0 2 0 -13.7148356 -15.2445349
-  76.2521374  112.290242  79.8386963  0.  9. -13 1 5 0 5 0 -19.6337846
- -43.5430758  66.3005738  81.7145164  0.10566  0.  9. 14 1 5 0 5 0  5.91894892
-  28.2985409  9.95156358  30.5757255  0.  0.  9.
- 7
-  14420.2589  0.00778768142  0.121986064
- -2 -1 0 0 0 501  0.  0.  1913.74381  1913.74381  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -92.9305324  92.9305324  0.  0.  9. 6 1 1 502 2 0 -63.6063539 -264.953794
-  848.015585  907.745402  175.  0.  9. -6 1 1 0 2 501  151.045067  247.560466
-  454.519089  566.845128  175.  0.  9. -24 2 1 0 2 0 -87.4387128  17.3933279
-  518.278601  532.08381  80.9469999  0.  9. 13 1 5 0 5 0 -97.4959977
-  7.38248767  355.902833  369.08916  0.10566  0.  9. -14 1 5 0 5 0  10.0572849
-  10.0108403  162.375768  162.99465  0.  0.  9.
- 7
-  20630.1312  0.00780334637  0.118819264
- -2 -1 0 0 0 501  0.  0.  210.863525  210.863525  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -593.338057  593.338057  0.  0.  9. 6 1 1 502 2 0 -78.484128 -127.484081
- -117.179426  258.394983  175.  0.  9. -6 1 1 0 2 501  74.3607684  246.399709
- -254.374941  401.962624  175.  0.  9. -24 2 1 0 2 0  4.12335962 -118.915628
- -10.920165  143.843976  80.0868951  0.  9. 13 1 5 0 5 0  7.72249755
-  2.84764734 -20.0619299  21.6849777  0.10566  0.  9. -14 1 5 0 5 0 -3.59913793
- -121.763275  9.14176485  122.158998  0.  0.  9.
- 7
-  11096.8281  0.00777626193  0.124411712
- -1 -1 0 0 0 501  0.  0.  98.8354574  98.8354574  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -708.235721  708.235721  0.  0.  9. 6 1 1 502 2 0  14.8204696 -75.6380819
- -147.400364  241.438674  175.  0.  9. -6 1 1 0 2 501  31.8189412  26.1467596
- -412.617747  450.082773  175.  0.  9. 24 2 1 0 2 0 -46.6394108  49.4913223
- -49.3821527  115.549731  79.3001751  0.  9. -13 1 5 0 5 0 -34.3841912
-  70.6630076 -29.1933974  83.831968  0.10566  0.  9. 14 1 5 0 5 0 -12.2552197
- -21.1716853 -20.1887553  31.7177633  0.  0.  9.
- 7
-  8444.22209  0.0077642452  0.127045998
- -1 -1 0 0 0 501  0.  0.  415.093919  415.093919  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -184.976143  184.976143  0.  0.  9. 6 1 1 502 2 0 -121.194944  93.3376402
-  190.280411  300.386025  175.  0.  9. -6 1 1 0 2 501  85.741659 -66.5965819
-  33.9411546  208.719282  175.  0.  9. 24 2 1 0 2 0  35.4532847 -26.7410583
-  5.89621025  90.9647538  79.1694483  0.  9. -13 1 5 0 5 0  40.4259138
-  18.5983772  8.39933745  45.2848118  0.10566  0.  9. 14 1 5 0 5 0 -4.97262915
- -45.3394355 -2.5031272  45.679942  0.  0.  9.
- 7
-  11570.7856  0.00777808279  0.124018008
- -2 -1 0 0 0 501  0.  0.  147.66877  147.66877  0.  0.  9. 1 -1 0 502 0 0  0.
-  0. -762.157976  762.157976  0.  0.  9. 6 1 1 502 2 0 -59.6661864 -13.8921552
- -486.636136  520.761725  175.  0.  9. -6 1 1 0 2 501  75.0937022  83.6099786
-  16.587985  208.638093  175.  0.  9. -24 2 1 0 2 0 -15.4275157 -69.7178234
- -144.441055  180.426927  81.1915909  0.  9. 13 1 5 0 5 0 -23.8393809
-  9.79442867 -20.4930159  32.9275231  0.10566  0.  9. -14 1 5 0 5 0  8.41186518
- -79.5122521 -123.948039  147.499404  0.  0.  9.
- 7
-  8571.10455  0.00776489978  0.126899302
- 2 -1 0 501 0 0  0.  0.  262.81202  262.81202  0.  0.  9. -1 -1 0 0 0 502  0.
-  0. -227.066457  227.066457  0.  0.  9. 6 1 1 501 2 0 -29.1392102 -20.5509565
-  69.7906153  191.747661  175.  0.  9. -6 1 1 0 2 502  74.5251478  26.7974523
- -70.2141627  204.51682  175.  0.  9. 24 2 1 0 2 0 -45.3859376 -6.24649585
-  36.1691108  93.6139966  73.1879343  0.  9. -13 1 5 0 5 0 -55.0356012
-  19.5040755  29.0052321  65.1969402  0.10566  0.  9. 14 1 5 0 5 0  9.64966354
- -25.7505714  7.16387874  28.4170564  0.  0.  9.
- 7
-  148068.982  0.00789070159  0.103965305
- -1 -1 0 0 0 501  0.  0.  1063.10094  1063.10094  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -496.21877  496.21877  0.  0.  9. 6 1 1 502 2 0  56.7973552  236.020072
-  429.205568  523.234014  175.  0.  9. -6 1 1 0 2 501 -9.97064289  137.34843
-  474.788386  524.416834  175.  0.  9. 24 2 1 0 2 0 -46.8267123 -373.368502
- -337.111784  511.668862  81.0178343  0.  9. -13 1 5 0 5 0 -28.528934
- -33.9396126 -29.7671639  53.4031141  0.10566  0.  9. 14 1 5 0 5 0 -18.2977783
- -339.428889 -307.34462  458.265748  0.  0.  9.
- 7
-  27637.7455  0.00781618487  0.11635276
- -1 -1 0 0 0 501  0.  0.  758.495786  758.495786  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -194.554099  194.554099  0.  0.  9. 6 1 1 502 2 0 -137.096696 -1.36315735
-  514.385628  560.370357  175.  0.  9. -6 1 1 0 2 501 -0.947567324  47.2905377
- -47.7488729  187.462657  175.  0.  9. 24 2 1 0 2 0  138.044264 -45.9273803
-  97.3049315  205.216872  107.145564  0.  9. -13 1 5 0 5 0  81.2047166
-  27.6481203  61.6637164  105.645869  0.10566  0.  9. 14 1 5 0 5 0  56.8395471
- -73.5755007  35.6412152  99.571003  0.  0.  9.
- 7
-  8459.44373  0.00776432424  0.127028265
- -1 -1 0 0 0 501  0.  0.  182.204064  182.204064  0.  0.  9. 2 -1 0 502 0 0  0.
-  0. -563.74405  563.74405  0.  0.  9. 6 1 1 502 2 0 -26.7611443 -22.3904697
- -266.795857  320.971215  175.  0.  9. -6 1 1 0 2 501 -3.52390275 -10.3212584
-  94.2180412  199.050209  175.  0.  9. 24 2 1 0 2 0  30.285047  32.7117281
- -208.962171  225.92669  73.4196095  0.  9. -13 1 5 0 5 0 -2.12208519
-  43.8365444 -68.559464  81.4036678  0.10566  0.  9. 14 1 5 0 5 0  32.4071322
- -11.1248163 -140.402707  144.523022  0.  0.  9.
diff --git a/Generators/AcerMC_i/share/inparmAcerMC.dat b/Generators/AcerMC_i/share/inparmAcerMC.dat
deleted file mode 100644
index e2ae6a47881ee6e8cac9a66756b40bbf7b654df6..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/share/inparmAcerMC.dat
+++ /dev/null
@@ -1,19 +0,0 @@
-  -----------------------------------------------------------------------------
-      
-        AcerMC 1.0 (February 2002),  B. P. Kersevan, E. Richter-Was
-      
-        Header file for process:
-                    q + q~ ->  (W->) l nu_l t t~ (MG)         ID=    4
-      
-  -----------------------------------------------------------------------------
-      
-                   Beam Code:   2212  2212
-           Beam Energy (GeV):      7000.00
-                  PDF Choice:      4    55
-                  Event File: AcerMC_p004_r000696.events              
-          # of stored events:       100
-          Cross-section (pb):    0.633082E-01 +/-    0.286712E-02
-      
-  -----------------------------------------------------------------------------
-      
-        Please consult the control card output for more info!
diff --git a/Generators/AcerMC_i/share/jobOptions.AcerMCHerwig.AtlasTauolaPhotos.py b/Generators/AcerMC_i/share/jobOptions.AcerMCHerwig.AtlasTauolaPhotos.py
deleted file mode 100644
index a7bfffbba8b64f0f8e6a022fa52a6d337b26dc8f..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/share/jobOptions.AcerMCHerwig.AtlasTauolaPhotos.py
+++ /dev/null
@@ -1,79 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" )
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls  += ["TruthExamples","Herwig_i","Tauola_i","Photos_i"]
-theApp.TopAlg = ["Herwig","Tauola","Photos","PrintMC"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 2
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["HERWIG 330020611 841000366", "HERWIG_INIT 824021 3247532",
-		      "TAUOLA 1048027510 345500367","TAUOLA_INIT 920021 3347532", 
-		      "PHOTOS 2045027510 245500367","PHOTOS_INIT 930021 3447532"]
-# AtRndmGenSvc.ReadFromFile = true;
-Herwig = Algorithm( "Herwig" )
-Herwig.HerwigCommand = [      "iproc acermc",
-                              "acset12 0",
-			      "rmass 5 4.8",	
-			      "rmass 6 175.0",
-                              "modpdf 55",	     
-                              "autpdf CTEQ  ",
- 			      "taudec TAUOLA",
- 			      "maxpr 5"]
-Tauola = Algorithm( "Tauola" )
-Tauola.TauolaCommand = [        "tauola polar 1",
-			        "tauola radcor 1",
-			        "tauola phox 0.01",
-			        "tauola dmode 0",
-			        "tauola jak1 0",
-			        "tauola jak2 0"]
-Photos = Algorithm( "Photos" )
-Photos.PhotosCommand = [        "photos pmode 1",
-			        "photos xphcut 0.01",
-			        "photos alpha -1.",
-			        "photos interf 1",
-			        "photos isec 1",
-                                "photos itre 0",
-                                "photos iexp 0",
-			        "photos iftop 0"]
-
-#-- PrintMC
-PrintMC = Algorithm( "PrintMC" )
-#event SVC key
-PrintMC.McEventKey = "GEN_EVENT"
-# do you want output at all? TRUE/FALSE
-PrintMC.VerboseOutput = TRUE
-# Event print style Vertex(traditional)/Barcode(barcode ordered)
-PrintMC.PrintStyle = "Barcode"
-# First and last event to print, if no last events => job end are printed
-PrintMC.FirstEvent = 1
-PrintMC.LastEvent = 10
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/AcerMC_i/share/jobOptions.AcerMCHerwig.py b/Generators/AcerMC_i/share/jobOptions.AcerMCHerwig.py
deleted file mode 100644
index 49677f3aaeddb8958e7495ac2f1523e09a7dd39b..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/share/jobOptions.AcerMCHerwig.py
+++ /dev/null
@@ -1,54 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" )
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls  += [ "Herwig_i","TruthExamples" ]
-theApp.TopAlg = ["Herwig","PrintMC"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["HERWIG 330020611 841000366", "HERWIG_INIT 824021 3247532"]
-Herwig = Algorithm( "Herwig" )
-Herwig.HerwigCommand = ["iproc acermc","acset12 0","rmass 5 4.8","rmass 6 175.0"]
-
-
-#-- PrintMC
-PrintMC = Algorithm( "PrintMC" )
-#event SVC key
-PrintMC.McEventKey = "GEN_EVENT"
-# do you want output at all? TRUE/FALSE
-PrintMC.VerboseOutput = TRUE
-# Event print style Vertex(traditional)/Barcode(barcode ordered)
-PrintMC.PrintStyle = "Barcode"
-# First and last event to print, if no last events => job end are printed
-PrintMC.FirstEvent = 1
-PrintMC.LastEvent = 5
-
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/AcerMC_i/share/jobOptions.AcerMCPythia.AtlasTauolaPhotos.py b/Generators/AcerMC_i/share/jobOptions.AcerMCPythia.AtlasTauolaPhotos.py
deleted file mode 100644
index 47a0540fefc9d2159a4512c8b4784746f2704ca9..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/share/jobOptions.AcerMCPythia.AtlasTauolaPhotos.py
+++ /dev/null
@@ -1,79 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" )
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls  += ["TruthExamples","Pythia_i","Tauola_i","Photos_i" ]
-theApp.TopAlg = ["Pythia","Tauola","Photos","PrintMC"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 2
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532",
-		      "TAUOLA 1048027510 345500367","TAUOLA_INIT 920021 3347532", 
-		      "PHOTOS 2045027510 245500367","PHOTOS_INIT 930021 3447532"]
-# AtRndmGenSvc.ReadFromFile = true;
-Pythia = Algorithm( "Pythia" )
-Pythia.PythiaCommand = [      "pyinit user acermc",
-                              "acermc acset12 0",	
-                              "pydat1 parj 90 1 20000.",
-                              "pydat3 mdcy 15 1 0",
-			      "pyinit pylistf 1",
-			      "pyinit dumpr 1 5",
-			      "pypars mstp 128 0"]
-Tauola = Algorithm( "Tauola" )
-Tauola.TauolaCommand = [        "tauola polar 1",
-			        "tauola radcor 1",
-			        "tauola phox 0.01",
-			        "tauola dmode 0",
-			        "tauola jak1 0",
-			        "tauola jak2 0"]
-Photos = Algorithm( "Photos" )
-Photos.PhotosCommand = [        "photos pmode 1",
-			        "photos xphcut 0.01",
-			        "photos alpha -1.",
-			        "photos interf 1",
-			        "photos isec 1",
-                                "photos itre 0",
-                                "photos iexp 0",
-			        "photos iftop 0"]
-
-#-- PrintMC
-PrintMC = Algorithm( "PrintMC" )
-#event SVC key
-PrintMC.McEventKey = "GEN_EVENT"
-# do you want output at all? TRUE/FALSE
-PrintMC.VerboseOutput = TRUE
-# Event print style Vertex(traditional)/Barcode(barcode ordered)
-PrintMC.PrintStyle = "Barcode"
-# First and last event to print, if no last events => job end are printed
-PrintMC.FirstEvent = 1
-PrintMC.LastEvent = 10
-
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/AcerMC_i/share/jobOptions.AcerMCPythia.py b/Generators/AcerMC_i/share/jobOptions.AcerMCPythia.py
deleted file mode 100644
index dc34e66f2bb5113520c83414c1f533d97d00c2d3..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/share/jobOptions.AcerMCPythia.py
+++ /dev/null
@@ -1,56 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" )
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls  += [ "TruthExamples", "Pythia_i" ]
-theApp.TopAlg = ["Pythia","PrintMC"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-#Pythia.PythiaCommand = {"pyinit user acermc","acermc acset12 0","pyinit pylistf 1","pyinit dumpr 1 1"};
-# with MSTP(128)=0
-Pythia = Algorithm( "Pythia" )
-Pythia.PythiaCommand = ["pyinit user acermc","acermc acset12 0","pyinit pylistf 1","pyinit dumpr 1 1","pypars mstp 128 0"]
-
-#-- PrintMC
-PrintMC = Algorithm( "PrintMC" )
-#event SVC key
-PrintMC.McEventKey = "GEN_EVENT"
-# do you want output at all? TRUE/FALSE
-PrintMC.VerboseOutput = TRUE
-# Event print style Vertex(traditional)/Barcode(barcode ordered)
-PrintMC.PrintStyle = "Barcode"
-# First and last event to print, if no last events => job end are printed
-PrintMC.FirstEvent = 1
-PrintMC.LastEvent = 5
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/AcerMC_i/src/AcerMC_acset.cxx b/Generators/AcerMC_i/src/AcerMC_acset.cxx
deleted file mode 100644
index 4c82044a68a3d52a84d075a758ffe7d02a8181d7..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/src/AcerMC_acset.cxx
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//--------------------------------------------------------------------------
-//     AcerMC acset common block access
-//     Borut Paul Kersevan (February 2003)
-//------------------------------------------------------------------------
-
-#include "AcerMC_i/AcerMC_acset.h"
-// set pointer to zero at start
-AcerMC_acset::ACERMC_ACSET* AcerMC_acset::s_acermc_acset =0;
-// Constructor
-AcerMC_acset::AcerMC_acset() 
-{
-}
-// Destructor
-AcerMC_acset::~AcerMC_acset() 
-{
-}
-// access acset12 in common
-int& AcerMC_acset::acset12() {
-  init(); 
-  return s_acermc_acset->acset12;
-}
-
diff --git a/Generators/AcerMC_i/src/AcerMC_acset12-hw.F b/Generators/AcerMC_i/src/AcerMC_acset12-hw.F
deleted file mode 100644
index 419f2c2d283a89f367f10823fada6e9b126c081d..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/src/AcerMC_acset12-hw.F
+++ /dev/null
@@ -1,265 +0,0 @@
-
-c     Switching routines that enables the choice of top pair decays
-c     for AcerMC 1.x generator as done in the fortran setup
-c     Adapted for Herwig 6.5 by Borut Paul Kersevan (February 2003)
-      SUBROUTINE ACERMC_ACSET12_HW(IAMOD)
-
-#include "HERWIG65.INC"
-#include "GeneratorFortranCommon/heprup.inc"
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "AcerMC_i/AcerMC_acset.inc"
-
-      INTEGER IAMOD,IACPROC,ISEM,IDBOS,IWP,JJ
-      DOUBLE PRECISION VLBRAT_T,VLBRAT_W,VLBRAT,ACBRAT,RWP,BRTMP
-      LOGICAL NOIMP
-C W/Z/H BR ARRAY FROM HERWIG
-      DOUBLE PRECISION BRMODE(12,3)
-      DATA BRMODE/
-     & 0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,0.108D0,0.108D0,
-     & 4*0.0D0,0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,0.108D0,
-     & 0.108D0,4*0.0D0,0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
-     & 0.033D0,0.033D0,0.033D0,0.067D0,0.067D0,0.067D0/
-
-      DOUBLE PRECISION HWRGEN
-      EXTERNAL HWRGEN
-
-      IACPROC=LPRUP(NPRUP)-600
-      NOIMP=(IACPROC.EQ.1.OR.IACPROC.EQ.2.OR.IACPROC.EQ.4.OR.
-     #     IACPROC.EQ.7.OR.IACPROC.EQ.8.OR.IACPROC.EQ.9.OR.
-     #     IACPROC.EQ.10.OR.IACPROC.EQ.92.OR.IACPROC.EQ.93) ! ONLY RELEVANT CHANS
-      IF (.NOT.NOIMP) THEN 
-         ACSET12=0
-         RETURN
-      ENDIF
-
-      ISEM=ACSET12
-
-      IF (IAMOD.EQ.-1) THEN ! INIT
-
-C 'SEMI-LEPTONIC' DECAYS FOR TOP PAIRS - BR
-         
-         IDBOS=198              ! W DECAY
-            
-         IF (ISEM.GE.1) THEN
-            VLBRAT_T=(1.D0)**2  ! FORCE ONLY T-B DECAYS BR=1 IN HERWIG
-            VLBRAT_W=0.D0
-            DO JJ=1,5           ! HADRONIC W BR
-             VLBRAT_W=VLBRAT_W+BRMODE(JJ,IDBOS-197)
-            ENDDO
-            IF (ISEM.EQ.1) THEN ! ELECTRON BR
-             VLBRAT_W=VLBRAT_W*BRMODE(6,IDBOS-197)
-            ELSEIF (ISEM.EQ.2) THEN ! MUON BR
-             VLBRAT_W=VLBRAT_W*BRMODE(7,IDBOS-197)
-            ELSEIF (ISEM.EQ.3) THEN ! TAU BR
-             VLBRAT_W=VLBRAT_W*BRMODE(8,IDBOS-197)
-            ELSEIF (ISEM.EQ.4) THEN ! E+MU BR
-             VLBRAT_W=VLBRAT_W*(BRMODE(6,IDBOS-197)+BRMODE(7,IDBOS-197))
-            ELSEIF (ISEM.EQ.5) THEN ! SL DECAY MODE FOR WTT -> W^(+/-) E/MU^(+/-) JJ BB 
-               IF (IACPROC.NE.4) THEN
-               WRITE(*,*) 
-     #'        ----<             STOPPED BY ACERMC                >----'
-               WRITE(*,*) 
-     #'        ----<  ACSET12=5 WORKS ONLY FOR ONLY FOR PROC=4    >----'
-               STOP
-               ENDIF
-               VLBRAT_W=0.5D0*VLBRAT_W*
-     #              (BRMODE(6,IDBOS-197)+BRMODE(7,IDBOS-197))
-            ENDIF
-            VLBRAT=VLBRAT_T*VLBRAT_W
-            ACBRAT=2.D0*VLBRAT  ! SEMI-LEPTONICS ALLOW 2 OPTIONS 1-2+2-1
-            WRITE(*,*) ' '
-            WRITE(*,*)
-     #'        ----<          ACERMC  1.3  & HERWIG 6.5           >----'
-            WRITE(*,*) ' '
-            WRITE(*,*)
-     #'             --<  BRANCHING MODE FOR TOP -> W -> ACTIVE >--'
-            WRITE(*,*) ' '
-            WRITE(*,24) ISEM,ACBRAT
- 24         FORMAT (
-     #'               THE ACERMC ACSET12 SWITCH IS SET TO ',I2/
-     #'               THE PROCESS CROSS-SECTION SHOULD BE '/
-     #'               MULTIPLIED BY THE BRANCHING RATIO =',D15.6/
-     #'               IF NOT ALREADY DONE AT GENERATION TIME'/)  
-
-            WRITE(*,*)
-     #'             -->  BRANCHING MODE FOR TOP -> W -> ACTIVE <--'
-            WRITE(*,*) ' '
-            WRITE(*,*)
-     #'        ---->          ACERMC  1.3  & HERWIG 6.5           <----'
-            WRITE(*,*) ' '
-         
-         ENDIF
-      
-      ELSEIF (IAMOD.EQ.0) THEN ! SWAP THE BR-S
-               
-C 'SEMI-LEPTONIC' DECAYS FOR TOP PAIRS - SWITCH
-C  ALLOWED W+/- DECAY MODES
-         IF(ISEM.EQ.0) RETURN   ! <---- BUGFIX THANKS TO BJARTE MOHN
-
-C FORCE ONLY T-B DECAYS
-         RWP=HWRGEN(9)
-         IF (ISEM.EQ.5) THEN ! SL DECAY MODE FOR WTT -> W^(+/-) E/MU^(+/-) JJ BB  
-            IWP=-24*INT(SIGN(1,IDUP(6)))
-            IF (IWP.EQ.-24) RWP=1.D0
-            IF (IWP.EQ.24) RWP=-1.D0
-         ENDIF
-
-         IF (RWP.GT.0.5D0) THEN
-            BRTMP=0.D0
-            CALL ACMODK(6,BRTMP,100,12,-11,5,0,0) ! SWITCH OFF LEPTONIC DECAYS
-            CALL ACMODK(6,BRTMP,100,14,-13,5,0,0)
-            CALL ACMODK(6,BRTMP,100,16,-15,5,0,0)
-            BRTMP=0.5D0
-            CALL ACMODK(6,BRTMP,100,2,-1,5,0,0)
-            CALL ACMODK(6,BRTMP,100,4,-3,5,0,0)
-            IF (ISEM.EQ.1) THEN
-               BRTMP=1.D0
-               CALL ACMODK(-6,BRTMP,100,-12,11,-5,0,0)
-            ELSEIF (ISEM.EQ.2) THEN
-               BRTMP=1.D0
-               CALL ACMODK(-6,BRTMP,100,-14,13,-5,0,0)
-            ELSEIF (ISEM.EQ.3) THEN
-               BRTMP=1.D0
-               CALL ACMODK(-6,BRTMP,100,-16,15,-5,0,0)            
-            ELSEIF (ISEM.EQ.4) THEN
-               BRTMP=0.D0
-               CALL ACMODK(-6,BRTMP,100,-2,1,-5,0,0)
-               CALL ACMODK(-6,BRTMP,100,-4,3,-5,0,0)
-               CALL ACMODK(-6,BRTMP,100,-16,15,-5,0,0)
-               BRTMP=0.5D0
-               CALL ACMODK(-6,BRTMP,100,-12,11,-5,0,0)
-               CALL ACMODK(-6,BRTMP,100,-14,13,-5,0,0)
-            ELSEIF (ISEM.EQ.5) THEN
-               BRTMP=0.D0
-               CALL ACMODK(-6,BRTMP,100,-2,1,-5,0,0)
-               CALL ACMODK(-6,BRTMP,100,-4,3,-5,0,0)
-               CALL ACMODK(-6,BRTMP,100,-16,15,-5,0,0)
-               BRTMP=0.5D0
-               CALL ACMODK(-6,BRTMP,100,-12,11,-5,0,0)
-               CALL ACMODK(-6,BRTMP,100,-14,13,-5,0,0)
-            ENDIF
-         ELSE
-            BRTMP=0.D0
-            CALL ACMODK(-6,BRTMP,100,-12,11,-5,0,0) ! SWITCH OFF LEPTONIC DECAYS
-            CALL ACMODK(-6,BRTMP,100,-14,13,-5,0,0)
-            CALL ACMODK(-6,BRTMP,100,-16,15,-5,0,0)
-            BRTMP=0.5D0
-            CALL ACMODK(-6,BRTMP,100,-2,1,-5,0,0)
-            CALL ACMODK(-6,BRTMP,100,-4,3,-5,0,0)
-            IF (ISEM.EQ.1) THEN
-               BRTMP=1.D0
-               CALL ACMODK(6,BRTMP,100,12,-11,5,0,0)
-            ELSEIF (ISEM.EQ.2) THEN
-               BRTMP=1.D0
-               CALL ACMODK(6,BRTMP,100,14,-13,5,0,0)
-            ELSEIF (ISEM.EQ.3) THEN
-               BRTMP=1.D0
-               CALL ACMODK(6,BRTMP,100,16,-15,5,0,0)
-            ELSEIF (ISEM.EQ.4) THEN
-               BRTMP=0.D0
-               CALL ACMODK(6,BRTMP,100,2,-1,5,0,0)
-               CALL ACMODK(6,BRTMP,100,4,-3,5,0,0)
-               CALL ACMODK(6,BRTMP,100,16,-15,5,0,0)
-               BRTMP=0.5D0
-               CALL ACMODK(6,BRTMP,100,12,-11,5,0,0)
-               CALL ACMODK(6,BRTMP,100,14,-13,5,0,0)
-            ELSEIF (ISEM.EQ.5) THEN
-               BRTMP=0.D0
-               CALL ACMODK(6,BRTMP,100,2,-1,5,0,0)
-               CALL ACMODK(6,BRTMP,100,4,-3,5,0,0)
-               CALL ACMODK(6,BRTMP,100,16,-15,5,0,0)
-               BRTMP=0.5D0
-               CALL ACMODK(6,BRTMP,100,12,-11,5,0,0)
-               CALL ACMODK(6,BRTMP,100,14,-13,5,0,0)
-            ENDIF
-         ENDIF
-         
-      ENDIF ! IAMOD FLAG
-      
-      RETURN
-      END
-
-CC -----------------------------------------------------------
-      SUBROUTINE ACMODK(IDKTMP,BRTMP,IMETMP,
-     & IATMP,IBTMP,ICTMP,IDTMP,IETMP)
-
-C-------------------------------------------------------------C
-C                                                             C  
-C    HERWIG INTERFACE - AN ANALOGUE TO HWMODK BUT DOES NOT    C
-C    PROTEST AFTER REMOVAL/ADDITION OF BRANCHING MODES        C
-C    SINCE THOSE ARE DONE OFTEN FOR SEMI-LEPTONIC TOP DECAYS  C
-C                                                             C
-C-------------------------------------------------------------C
-
-#include "HERWIG65.INC"
-      DOUBLE PRECISION HWUPCM,BRTMP,EPS
-      INTEGER IDKTMP,IMETMP,IATMP,IBTMP,ICTMP,IDTMP,IETMP,IDKY,ITMP(5),
-     & L,I,J,K
-      LOGICAL MATCH(5)
-      CHARACTER*8 CDUM
-      EXTERNAL HWUPCM
-      PARAMETER (EPS=1.D-6)
-C Convert to internal format
-      CALL HWUIDT(1,IDKTMP,IDKY,CDUM)
-      IF (IDKY.EQ.20) THEN
-        WRITE(*,10) IDKTMP
-  10    FORMAT(1X,'ACMODK:Particle decaying,',I7,',  not recognised')
-        RETURN
-      ENDIF
-      CALL HWUIDT(1,IATMP,ITMP(1),CDUM)
-      CALL HWUIDT(1,IBTMP,ITMP(2),CDUM)
-      CALL HWUIDT(1,ICTMP,ITMP(3),CDUM)
-      CALL HWUIDT(1,IDTMP,ITMP(4),CDUM)
-      CALL HWUIDT(1,IETMP,ITMP(5),CDUM)
-
-C First search to see if mode pre-exists
-      IF ((ITMP(2).GE.1.AND.ITMP(2).LE.13).OR.
-     &     (ITMP(3).GE.1.AND.ITMP(3).LE.13)) THEN
-C Partonic respect order
-         L=LSTRT(IDKY)
-         DO 30 K=1,NMODES(IDKY)
-            IF (ITMP(1).EQ.IDKPRD(1,L).AND.
-     &           ITMP(2).EQ.IDKPRD(2,L).AND.
-     &           ITMP(3).EQ.IDKPRD(3,L).AND.
-     &           ITMP(4).EQ.IDKPRD(4,L).AND.
-     &           ITMP(5).EQ.IDKPRD(5,L)) GOTO 90
- 30      L=LNEXT(L)
-      ELSE
-C Allow for different order in matching
-         L=LSTRT(IDKY)
-         DO 70 I=1,NMODES(IDKY)
-            DO 40 J=1,5
- 40         MATCH(J)=.FALSE.
-            DO 60 J=1,5
-               DO 50 K=1,5
-            IF (.NOT.MATCH(K).AND.ITMP(K).EQ.IDKPRD(J,L)) THEN
-               MATCH(K)=.TRUE.
-               GOTO 60
-            ENDIF
- 50            CONTINUE
- 60         CONTINUE
-            IF (MATCH(1).AND.MATCH(2).AND.MATCH(3).AND.
-     &           MATCH(4).AND.MATCH(5)) GOTO 90
- 70      L=LNEXT(L)
-      ENDIF
-
-      WRITE (*,*)'MODE NOT FOUND??'
-
-C A Pre-existing mode, line L, add/update ME code and BR, scaling all
-C other branching fractions
- 90   IF (IMETMP.GT.0) NME(L)=IMETMP
-C--> HERE JUST UPDATE THE BRANCHINGS, DO NOT(!) REMOVE THE MODES
-      BRFRAC(L)=BRTMP
-
-      IF (ABS(BRTMP-1.).LT.EPS) THEN
-         BRFRAC(L)=ONE
-         J=LSTRT(IDKY) ! SET OTHERS TO 0
-         DO 100 I=1,NMODES(IDKY)
-            IF (J.NE.L) BRFRAC(J)=0.D0
- 100     J=LNEXT(J)
-      ENDIF
-
-      IF (ABS(BRTMP).LT.EPS)  BRFRAC(L)=0.D0
-
-  999 RETURN
-      END
diff --git a/Generators/AcerMC_i/src/AcerMC_acset12-py.F b/Generators/AcerMC_i/src/AcerMC_acset12-py.F
deleted file mode 100644
index 5d78740100afa9d4d77dbb10069c4aa1666ac9a6..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/src/AcerMC_acset12-py.F
+++ /dev/null
@@ -1,173 +0,0 @@
-
-c     Switching routine that enables the choice of top pair decays
-c     for AcerMC 1.x generator as done in the fortran setup
-c     Adapted for Pythia 6.2 by Borut Paul Kersevan (February 2003)
-      SUBROUTINE ACERMC_ACSET12_PY(IAMOD)
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-#include "GeneratorFortranCommon/heprup.inc"
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "AcerMC_i/AcerMC_acset.inc"
-
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-
-      INTEGER IAMOD,IACPROC,ISEM,IWP,JJ
-      DOUBLE PRECISION VLBRAT_T,VLBRAT_W,VLBRAT,ACBRAT,RWP
-      LOGICAL NOIMP
-
-      DOUBLE PRECISION PYR
-      EXTERNAL PYR
-
-      IACPROC=LPRUP(NPRUP)-600
-      NOIMP=(IACPROC.EQ.1.OR.IACPROC.EQ.2.OR.IACPROC.EQ.4.OR.
-     #     IACPROC.EQ.7.OR.IACPROC.EQ.8.OR.IACPROC.EQ.9.OR.
-     #     IACPROC.EQ.10.OR.IACPROC.EQ.92.OR.IACPROC.EQ.93) ! ONLY RELEVANT CHANS
-      IF (.NOT.NOIMP) THEN 
-         ACSET12=0
-         RETURN
-      ENDIF
-
-      ISEM=ACSET12
-
-      IF (IAMOD.EQ.-1) THEN ! INIT
-
-C 'SEMI-LEPTONIC' DECAYS FOR TOP PAIRS - BR
-         
-            
-         IF (ISEM.GE.1) THEN
-            VLBRAT_T=BRAT(46)**2  ! FORCE ONLY T-B DECAYS BR=1 IN HERWIG
-            VLBRAT_W=0.D0
-            DO JJ=190,200       ! HADRONIC W BR
-               VLBRAT_W=VLBRAT_W+BRAT(JJ)
-            ENDDO
-            IF (ISEM.EQ.1) THEN ! ELECTRON BR
-               VLBRAT_W=VLBRAT_W*BRAT(206)
-            ELSEIF (ISEM.EQ.2) THEN ! MUON BR
-               VLBRAT_W=VLBRAT_W*BRAT(207)
-            ELSEIF (ISEM.EQ.3) THEN ! TAU BR
-               VLBRAT_W=VLBRAT_W*BRAT(208)
-            ELSEIF (ISEM.EQ.4) THEN ! E+MU BR
-               VLBRAT_W=VLBRAT_W*(BRAT(206)+BRAT(207))
-            ELSEIF (ISEM.EQ.5) THEN ! SL DECAY MODE FOR WTT -> W^(+/-) E/MU^(+/-) JJ BB 
-               IF (IACPROC.NE.4) THEN
-               WRITE(*,*) 
-     #'        ----<             STOPPED BY ACERMC                >----'
-               WRITE(*,*) 
-     #'        ----<  ACSET12=5 WORKS ONLY FOR ONLY FOR PROC=4    >----'
-               STOP
-               ENDIF
-               VLBRAT_W=0.5D0*VLBRAT_W*(BRAT(206)+BRAT(207))
-            ENDIF
-            VLBRAT=VLBRAT_T*VLBRAT_W
-            ACBRAT=2.D0*VLBRAT  ! SEMI-LEPTONICS ALLOW 2 OPTIONS 1-2+2-1
-            WRITE(*,*) ' '
-            WRITE(*,*)
-     #'        ----<          ACERMC  1.3  & PYTHIA 6.2           >----'
-            WRITE(*,*) ' '
-            WRITE(*,*)
-     #'             --<  BRANCHING MODE FOR TOP -> W -> ACTIVE >--'
-            WRITE(*,*) ' '
-            WRITE(*,24) ISEM,ACBRAT
- 24         FORMAT (
-     #'               THE ACERMC ACSET12 SWITCH IS SET TO ',I2/
-     #'               THE PROCESS CROSS-SECTION SHOULD BE '/
-     #'               MULTIPLIED BY THE BRANCHING RATIO =',D15.6/
-     #'               IF NOT ALREADY DONE AT GENERATION TIME'/)  
-
-            WRITE(*,*)
-     #'             -->  BRANCHING MODE FOR TOP -> W -> ACTIVE <--'
-            WRITE(*,*) ' '
-            WRITE(*,*)
-     #'        ---->          ACERMC  1.3  & PYTHIA 6.2           <----'
-            WRITE(*,*) ' '
-         
-         ENDIF
-      
-      ELSEIF (IAMOD.EQ.0) THEN ! SWAP THE BR-S
-               
-C 'SEMI-LEPTONIC' DECAYS FOR TOP PAIRS - SWITCH
-C  ALLOWED W+/- DECAY MODES
-
-         IF(ISEM.EQ.0) RETURN   ! <---- BUGFIX THANKS TO BJARTE MOHN
-C FORCE ONLY T-B DECAYS
-         MDME(44,1)=0
-         MDME(45,1)=0
-
-         RWP=PYR(9)
-         IF (ISEM.EQ.5) THEN ! SL DECAY MODE FOR WTT -> W^(+/-) E/MU^(+/-) JJ BB  
-            IWP=-24*SIGN(1,IDUP(6))
-            IF (IWP.EQ.-24) RWP=1.D0
-            IF (IWP.EQ.24) RWP=-1.D0
-            print *,'iwps',iwp,idup(6)
-         ENDIF
-
-         IF (RWP.GT.0.5D0) THEN
-            MDME(190,1)=2
-            MDME(191,1)=2
-            MDME(192,1)=2
-            MDME(194,1)=2
-            MDME(195,1)=2
-            MDME(196,1)=2
-            MDME(198,1)=2
-            MDME(199,1)=2
-            MDME(200,1)=2
-            IF (ISEM.EQ.1) THEN
-               MDME(206,1)=3
-               MDME(207,1)=0
-               MDME(208,1)=0
-            ELSEIF (ISEM.EQ.2) THEN
-               MDME(206,1)=0
-               MDME(207,1)=3
-               MDME(208,1)=0
-            ELSEIF (ISEM.EQ.3) THEN
-               MDME(206,1)=0
-               MDME(207,1)=0
-               MDME(208,1)=3
-            ELSEIF (ISEM.EQ.4) THEN
-               MDME(206,1)=3
-               MDME(207,1)=3
-               MDME(208,1)=0
-            ELSEIF (ISEM.EQ.5) THEN
-               MDME(206,1)=3
-               MDME(207,1)=3
-               MDME(208,1)=0
-            ENDIF
-         ELSE
-            MDME(190,1)=3
-            MDME(191,1)=3
-            MDME(192,1)=3
-            MDME(194,1)=3
-            MDME(195,1)=3
-            MDME(196,1)=3
-            MDME(198,1)=3
-            MDME(199,1)=3
-            MDME(200,1)=3
-            IF (ISEM.EQ.1) THEN
-               MDME(206,1)=2
-               MDME(207,1)=0
-               MDME(208,1)=0
-            ELSEIF (ISEM.EQ.2) THEN
-               MDME(206,1)=0
-               MDME(207,1)=2
-               MDME(208,1)=0
-            ELSEIF (ISEM.EQ.3) THEN
-               MDME(206,1)=0
-               MDME(207,1)=0
-               MDME(208,1)=2
-            ELSEIF (ISEM.EQ.4) THEN
-               MDME(206,1)=2
-               MDME(207,1)=2
-               MDME(208,1)=0
-            ELSEIF (ISEM.EQ.5) THEN
-               MDME(206,1)=2
-               MDME(207,1)=2
-               MDME(208,1)=0
-            ENDIF
-         ENDIF
-      ENDIF ! IAMOD FLAG
-      
-      RETURN
-      END
diff --git a/Generators/AcerMC_i/src/gacermc_acset.F b/Generators/AcerMC_i/src/gacermc_acset.F
deleted file mode 100644
index a14ae3da656e70b5c092d786262132aefd5e8163..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/src/gacermc_acset.F
+++ /dev/null
@@ -1,9 +0,0 @@
-C     AcerMC acset common block access
-c     Borut Paul Kersevan (February 2003)
-      FVOIDP FUNCTION ACERMC_ACSET_ADDRESS() 
-      IMPLICIT NONE
-#include "AcerMC_i/AcerMC_acset.inc"
-      FVOIDP GETADDR
-      ACERMC_ACSET_ADDRESS = GETADDR(ACSET12)
-      RETURN
-      END
diff --git a/Generators/AcerMC_i/src/initacermc.F b/Generators/AcerMC_i/src/initacermc.F
deleted file mode 100644
index 900c5a8330f7f4994c4dec3f679ee170f7515552..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/src/initacermc.F
+++ /dev/null
@@ -1,73 +0,0 @@
-      SUBROUTINE INITACERMC
-C-------------------------------------------------------------C
-C    ACERMC 3.x - PYTHIA 6.3 INTERFACE                        C
-C    Borut Paul Kersevan (January 2006)                       C
-C-------------------------------------------------------------C
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
- 
-#include "GeneratorFortranCommon/heprup.inc"
-
-      CHARACTER DUMM*200,EVTFIL*140
-      COMMON /ACFIL/EVTFIL
-
-CC OPEN HEADER FILE ------------------------------------------
-
-      OPEN (21,FILE='inparmAcerMC.dat',STATUS='OLD',ERR=100)
-      READ(21,FMT='(A200)') DUMM ! TEXT 
-      READ(21,FMT='(A200)') DUMM ! TEXT 
-      READ(21,FMT='(A200)') DUMM ! TEXT 
-      READ(21,FMT='(A200)') DUMM ! TEXT 
-      READ(21,FMT='(A200)') DUMM ! TEXT 
-      READ(21,FMT='(60x,6x,I4)') IDPROC ! TEXT 
-      READ(21,FMT='(A200)') DUMM ! TEXT 
-      READ(21,FMT='(A200)') DUMM ! TEXT 
-      READ(21,FMT='(A200)') DUMM ! TEXT 
-      READ(21,FMT='(30x,I6,I6)') IDBMUP(1),IDBMUP(2) ! BEAM CODE
-      READ(21,FMT='(30x,F12.2)') EBMUP(1) ! BEAM ENERGY
-      EBMUP(2)=EBMUP(1)
-      READ(21,FMT='(30x,I6,I6)')PDFGUP(1),PDFSUP(1) ! PDF SET
-      PDFGUP(2)=PDFGUP(1)
-      PDFSUP(2)=PDFSUP(1)
-      READ(21,FMT='(30x,A140)') EVTFIL ! EVENT FILE NAME
-      READ(21,FMT='(A200)') DUMM ! NO OF STORED EVENTS - TREATED AS DUMMY
-      READ(21,FMT='(30x,D15.6,5x,D15.6)') XSECUP(1),XERRUP(1) ! X-SEC INFO
-      CLOSE(21)
-
-C Fix pdf in HERWIG
-      IF (PDFSUP(1).GT.100) THEN
-         PDFGUP(1)=-1
-         PDFGUP(2)=-1
-      ENDIF
-
-C DECIDE ON WEIGHTING STRATEGY: UNWEIGHTED ON INPUT +/-1 WEIGHT
-      IDWTUP=-3
-
-C PROCESS TAGS
-      NPRUP=1
-      LPRUP(NPRUP)=600+IDPROC
-      XMAXUP(NPRUP)=1.D0
-
-CC -----------------------------------------------------------
-
-
-CC OPEN EVENT FILE -------------------------------------------
-      IUNIT=22
-      OPEN(IUNIT,FILE=EVTFIL,STATUS='OLD',ERR=200)
-CC -----------------------------------------------------------
-
-      RETURN
-
-C ERROR HANDLING
- 100  WRITE (*,*)
-     #     'INITACERMC: inparmAcerMC.dat file could not be opened!'
-      WRITE (*,*)'Please link an *.inparm file to inparmAcerMC.dat!'
-      STOP
-C ERROR HANDLING
- 200  WRITE (*,*) 'INITCERMC: Missing event data file:',
-     # ' ',EVTFIL
-      STOP
-
-      END
diff --git a/Generators/AcerMC_i/src/useacermc.F b/Generators/AcerMC_i/src/useacermc.F
deleted file mode 100644
index 425a898adb657dfd96b5f1161d74a6ce301feb60..0000000000000000000000000000000000000000
--- a/Generators/AcerMC_i/src/useacermc.F
+++ /dev/null
@@ -1,56 +0,0 @@
-      SUBROUTINE USEACERMC
-C-------------------------------------------------------------C
-C    ACERMC 3.x - PYTHIA 6.3 INTERFACE                        C
-C    Borut Paul Kersevan (January 2006)                       C
-C-------------------------------------------------------------C
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
- 
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/heprup.inc"
-
-      CHARACTER EVTFIL*140
-      COMMON /ACFIL/EVTFIL
-
-CC COMMUNICATE HERWIG STATUS
-      COMMON /EVTCON/ ISTG
-
-C UNWEIGHTED EVENTS
-      XWGTUP=1.D0
-
-      IDPROC=LPRUP(NPRUP)-600
-
-CC READ EVENT FILE -------------------------------------------
-      IUNIT=22
-      READ (IUNIT,*,ERR=200,END=100) NUP
-      IF (IDPROC.EQ.17.OR.IDPROC.EQ.18
-     &     .OR.IDPROC.EQ.20.OR.IDPROC.EQ.103) THEN
-         READ(IUNIT,*) XWGTUP
-      ENDIF
-      READ (IUNIT,*,ERR=200,END=100) SCALUP,AQEDUP,AQCDUP
-      READ (IUNIT,*,ERR=200,END=100) (IDUP(I),ISTUP(I),
-     &MOTHUP(1,I),ICOLUP(1,I),MOTHUP(2,I),ICOLUP(2,I),
-     &(PUP(J,I),J=1,5),VTIMUP(I),SPINUP(I),I=1,NUP)
-CC -----------------------------------------------------------
-
-
-C PROCESS ID FOR EVENT
-      IDPRUP=LPRUP(NPRUP)
-
-      ISTG=0
-      RETURN
-
-C RETURN WITH ZERO PARTICLES AT THE END OF THE RECORD
- 100  NUP=0
-      ISTG=1
-      RETURN
-
-C ERROR HANDLING
- 200  WRITE (*,*) 'USEACERMC: event data file:'
-      WRITE (*,*) '  ',EVTFIL
-      WRITE (*,*) 'could not be read         !'
-      STOP
-
-      END
diff --git a/Generators/AlpGen_i/AlpGen_i/alpsho.inc b/Generators/AlpGen_i/AlpGen_i/alpsho.inc
deleted file mode 100755
index b11e893ab7b4ce1f28a7d29c23e6600fafbd81b4..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/AlpGen_i/alpsho.inc
+++ /dev/null
@@ -1,54 +0,0 @@
-c process code
-      integer ihrd
-      integer itopprc
-c--event file data
-      integer Nunit,NunitOut,NunitIni
-c      character*100 filename,tmpstr
-      character*100 filename
-c total number of input events
-      common/AHio/Nunit,NunitOut,NunitIni,filename
-c inputs for the matching algorithm
-      integer iexc,npfst,nplst,nljets,njstart,njlast
-     $     ,ickkw
-      double precision etclus,rclus,etaclmax
-      common/AHopts/etclus,rclus,etaclmax,iexc,npfst
-     $     ,nplst,nljets,njstart,njlast,ickkw
-c process and particles parameters
-      double precision mc,mb,mt,mw,mz,mh
-      double precision ebeam
-      integer ndns,ih1,ih2 
-      integer nw,nz,nh,nph
-      integer ihvy,ihvy2
-c pdf set type
-      character pdftyp*25
-c total number of partons
-      integer npart
-      common/AHppara/mc,mb,mt,mw,mz,mh,
-     &     ebeam,ih1,ih2,
-     &     ihrd,itopprc,
-     &     nw,nz,nh,nph,
-     &     ihvy,ihvy2,
-     &     npart,ndns,pdftyp
-c weight information
-      real *8 maxwgt,avgwgt,errwgt,totlum
-      integer unwev
-      common/AHwgts/maxwgt,avgwgt,errwgt,totlum,unwev
-c general parameters
-      integer nparam
-      parameter (nparam=200)
-      integer parlen,partyp
-      character chpar*8,chpdes*70
-      double precision parval
-      common/AHpars/parval(nparam),chpar(nparam),chpdes(nparam)
-     $     ,parlen(nparam),partyp(nparam)
-c global event cuts
-      double precision ptjmin,ptjmax,etajmax,drjmin,
-     +     ptbmin,ptbmax,etabmax,drbmin,
-     +     ptcmin,ptcmax,etacmax,drcmin,
-     +     ptphmin,etaphmax,drphjmin,drphmin,drphlmin,
-     +     ptlmin,etalmax,drlmin,metmin,mllmin,mllmax
-      common/AHcuts/ptjmin,ptjmax,etajmax,drjmin,
-     +     ptbmin,ptbmax,etabmax,drbmin,
-     +        ptcmin,ptcmax,etacmax,drcmin,
-     +        ptphmin,etaphmax,drphjmin,drphmin,drphlmin,
-     +        ptlmin,etalmax,drlmin,metmin,mllmin,mllmax
diff --git a/Generators/AlpGen_i/CMakeLists.txt b/Generators/AlpGen_i/CMakeLists.txt
deleted file mode 100644
index 764a93f020e855467687b5a7936ecb88e8de0ade..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-################################################################################
-# Package: AlpGen_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( AlpGen_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs(
-   PRIVATE
-   Generators/GeneratorFortranCommon )
-
-# External dependencies:
-find_package( Pythia6 )
-find_package( AlpGen COMPONENTS alpgen atoher )
-find_package( Tauola )
-
-# Component(s) in the package:
-atlas_add_library( AlpGen_i
-   AlpGen_i/*.inc src/*.F
-   PUBLIC_HEADERS AlpGen_i
-   INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS} ${ALPGEN_INCLUDE_DIRS}
-   ${TAUOLA_INCLUDE_DIRS}
-   LINK_LIBRARIES ${PYTHIA6_LIBRARIES} ${ALPGEN_LIBRARIES}
-   ${TAUOLA_LIBRARIES} GeneratorFortranCommonLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
diff --git a/Generators/AlpGen_i/doc/Alpgen.pdf b/Generators/AlpGen_i/doc/Alpgen.pdf
deleted file mode 100755
index 33f7378ac97c3064db65a8d40219845b290db298..0000000000000000000000000000000000000000
Binary files a/Generators/AlpGen_i/doc/Alpgen.pdf and /dev/null differ
diff --git a/Generators/AlpGen_i/doc/Alpgen.tex b/Generators/AlpGen_i/doc/Alpgen.tex
deleted file mode 100755
index 8b2259b35fa8eed960de08a875565b12bc00201b..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/doc/Alpgen.tex
+++ /dev/null
@@ -1,113 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\textwidth=6.5in
-\textheight=9.0in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}   
-\def\topfraction{1.}
-\def\textfraction{0.}           
-
-\def\jimmy{{\sc Jimmy}}
-\def\herwig{{HERWIG}}
-\def\pythia{{\sc Pythia}}
-\def\alpgen{{AlpGen}}
-
-
-\begin{document}
-\title{\alpgen\_i: An interface between \alpgen\ and Athena\\
-Version in release 10.4.0 and later}
-\author{  Ian Hinchliffe (I\_Hinchliffe@lbl.gov), Georgios Stavropoulos (George.Stavropoulos@cern.ch) and Jon Butterworth (J.Butterworth@ucl.ac.uk)}
-%\today
-
-\maketitle           
-
-\section{Introduction}
-
-\noindent
-This package runs \alpgen\  from within Athena. See the examples in 
-\\ {\bf \alpgen\_i/share/jobOptions.AlpgenPythia.py } 
-and 
-\\ {\bf \alpgen\_i/share/jobOptions.AlpgenHerwig.py }  
-which show how to read Alpgen events, add parton showers and
-hadronize them using \pythia\ or \herwig. Note that on ATLAS we use the
-``new'' (i.e. \pythia 6.4) shower and this does not work with the \alpgen\
-parton shower matching, so \herwig\ should be used in general.
-
-\bigskip
-
-\noindent
-Users must first run \alpgen\ in standalone mode and make a file of
-events. An athena job then takes these events hadronizes them and
-passes them down the Athena event chain. The events must be made with
-a version of \alpgen\ that is compatible, recent versions that support
-the Les Houches interface should be acceptable. The current release is
-compatible with versions 2.13 to 2.11. It is recommended that you use
-the latest compatible version of the standalone \alpgen.
-
-Within the {\tt GeneratorModules}, {\tt m\_ExternalProcess = 4} is used to
-signify \alpgen\ to both the \herwig\ and \pythia\ interfaces.
-
-\bigskip
-
-\section{\alpgen\ and \pythia}
-
-\noindent
-To hadronize {\bf \alpgen} generated events with \pythia, you need to link the file with the input parameters 
-and the one with the unweighted events produced by \alpgen\ to the files inparmAlpGen.dat and alpgen.unw\_events 
-respectively. Then you only need to run athena with the jobOptions file jobOptions.AlpgenPythia.py by typing 
-in the prompt \\ {\it athena jobOptions.AlpgenPythia.py}
-
-
-\bigskip
-
-\section{\alpgen\ and \herwig}
-
-\noindent
-To hadronize {\bf \alpgen} generated events with \herwig, you need to
-link the file with the input parameters and the one with the
-unweighted events produced by \alpgen\ to the files inparmAlpGen.dat
-and alpgen.unw\_events respectively. Then you only need to run athena
-with the jobOptions file jobOptions.AlpgenHerwig.py by typing in the
-prompt \\ {\it athena jobOptions.AlpgenHerwig.py}\\
-
-\medskip
-
-\noindent
-The program flow in \herwig\ is a little complex, especially at the
-end of a run. The interface Herwig.cxx (in Herwig\_i) calls HWHGUP (a
-\herwig\ routine) which calls UPEVNT (modified by ATLAS to make sure
-it calls the right routine in usealpgen.f, which is in
-AlpGen\_i). When the end of a file is found, UPEVNT calls ALSFIN (in
-atoher\_65.f in Herwig\_i), which then calls HWUGUP (\herwig\
-routine). ATLAS uses a modified version of HWUGUP which instead of
-abruptly stopping the program (which is bad for Athena!) sets IERROR
-and GENEV such that events generation is terminated more
-gracefully. This still leads to some confusing apparent error messages
-from Athena, but the \herwig\ and \alpgen\ output is at least
-consistent.
-
-\medskip
-
-\noindent
-To specify \alpgen\ running with \herwig\ you need to set the line\\
-{\tt job.Herwig.HerwigCommand = ["iproc alpgen"]} \\
-in your jobOptions file.  It is also possible to specify Higgs decay information 
-for the events by adding a second argument to the {\tt iproc} parameter, 
-which will be interpreted as the ID value (last two digits of IPROC) controlling 
-the Higgs decay.  e.g. \\
-{\tt job.Herwig.HerwigCommand = ["iproc alpgen 12"]}\\ 
-would force any Higgs particles present in your input events to decay to two photons. See the \herwig\ manual for more information.
-
-
-\end{document}
-
-
-
-
-
-
-
diff --git a/Generators/AlpGen_i/doc/packagedoc.h b/Generators/AlpGen_i/doc/packagedoc.h
deleted file mode 100644
index 79d5311a5db348e437d8d6659d842267e7a3e1f0..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/doc/packagedoc.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-@page AlpGen_i_page AlpGen_i
-
-@author Ian Hinchliffe, Georgios Stavropoulos, Jon Butterworth and Judith Katzy
-      
-@section AlpGen_i_An interface between AlpGen and Athena
-
-This package runs AlpGen from within Athena.
-
-LIke for the other Les Houche type generators, users must first run AlpGen in standalone mode and make a file of events. An athena job then takes these events 
-hadronizes them and passes them down the Athena event chain. See the examples in 
-AlpGen_i/share/jobOptions.AlpgenPythia.py
-AlpGen_i/share/jobOptions.AlpgenHerwig.py
-
-which show how to read the AlpGen events, add parton showers and hadronize them using Pythia or Herwig. Note that in ATLAS we use the "new" (i.e. PYTHIA ^.4) shower and this does not work with the AlpGen parton shower matching, so HERWIG should be used in general.
-
-The events must be made with a version of AlpGen that is compatible with LesHouches interface, AlpGen version 2.13 and 2.12 are. It is recommended that you use the latest compatible version of standalone Alpgen.
-
-Within the GeneratorModuls, m_ExternalProcess=4 is used to signify AlpGen to both the HERWIG and Pythia interfaces.
-
-@section AlpGen_i_AlpGen and Pythia
-To hadronize AlpGen generated events with Pythia, you need to link the file with the input parameters 
-and the one with the unweighted events produced by Alpgen to the files inparmAlpGen.dat and alpgen.unw_events 
-respectively. Then you only need to run athena with the jobOptions file jobOptions.AlpgenPythia.py by typing 
-in the prompt 
-
-athena jobOptions.AlpgenPythia.py
-
-
-@section AlpGen_i_Alpgen and Herwig
-
-To hadronize Alpgen generated events with Herwig, you need to
-link the file with the input parameters and the one with the
-unweighted events produced by Alpgen to the files inparmAlpGen.dat
-and alpgen.unw_events respectively. Then you only need to run athena
-with the jobOptions file jobOptions.AlpgenHerwig.py by typing in the
-prompt 
-
-  athena jobOptions.AlpgenHerwig.py
-
-
-
-
-The program flow in Herwig is a little complex, especially at the
-end of a run. The interface Herwig.cxx (in Herwig_i) calls HWHGUP (a
-Herwig routine) which calls UPEVNT (modified by ATLAS to make sure
-it calls the right routine in usealpgen.f, which is in
-AlpGen_i). When the end of a file is found, UPEVNT calls ALSFIN (in
-atoher_65.f in Herwig_i), which then calls HWUGUP (Herwig 
-routine). ATLAS uses a modified version of HWUGUP which instead of
-abruptly stopping the program (which is bad for Athena!) sets IERROR
-and GENEV such that events generation is terminated more
-gracefully. This still leads to some confusing apparent error messages
-from Athena, but the Herwig and Alpgen output is at least
-consistent.
-
-To specify Alpgen running with Herwig\ you need to set the line
-
- job.Herwig.HerwigCommand = ["iproc alpgen"]
-
-in your jobOptions file.  It is also possible to specify Higgs decay information 
-for the events by adding a second argument to the  iproc parameter, 
-which will be interpreted as the ID value (last two digits of IPROC) controlling 
-the Higgs decay.  e.g.
-
- job.Herwig.HerwigCommand = ["iproc alpgen 12"]
-
-would force any Higgs particles present in your input events to decay to two photons. See the Herwig manual for more information.
-
-
-
-last update Feb.28, 2008
-
-
-
-*/
diff --git a/Generators/AlpGen_i/share/alpgen.unw_events b/Generators/AlpGen_i/share/alpgen.unw_events
deleted file mode 100755
index 1b4d6485120d3021414d5ee37a7ca6d0221e4fdb..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/share/alpgen.unw_events
+++ /dev/null
@@ -1,1520 +0,0 @@
-       1    3  7 0.100000E+01 0.965398E+02
-      -3    0    1    319.206
-      21    2    3   -100.063
-      -5    0    1     -29.017     13.572     17.083      4.700
-       5    2    0     -69.874     54.016    -24.540      4.700
-      -4    0    3      75.985    -19.338     65.437      0.000
-     -11    0    0     -14.287    -16.493    127.563      0.001
-      12    0    0      37.193    -31.756     33.600      0.000
-       2    2  7 0.100000E+01 0.148058E+03
-      21    2    3    268.529
-      -1    0    1   -599.438
-      -5    0    1      67.748     49.481     65.099      4.700
-       5    2    0      -3.322     31.661     16.405      4.700
-      -2    0    3    -162.716   -157.254     57.055      0.000
-     -11    0    0     110.310     69.637   -382.036      0.001
-      12    0    0     -12.020      6.476    -87.432      0.000
-       3    1  7 0.100000E+01 0.104390E+03
-       2    3    0    794.914
-      -1    0    1   -698.598
-       5    2    0    -398.279    122.004    386.323      4.700
-      -5    0    1     484.609   -149.185     45.094      4.700
-      21    3    2     -21.703     43.099     15.234      0.000
-      12    0    0     -18.054    -44.160   -205.396      0.000
-     -11    0    0     -46.574     28.242   -144.938      0.001
-       4    2  7 0.100000E+01 0.816653E+02
-      21    2    3    164.392
-      -1    0    1   -310.293
-      -5    0    1     -13.595    -23.441     -3.313      4.700
-       5    2    0     -46.022    123.914     76.689      4.700
-      -4    0    3      46.449   -105.823   -100.208      0.000
-     -11    0    0     -16.501    -26.711    -59.285      0.001
-      12    0    0      29.669     32.061    -59.785      0.000
-       5    2  7 0.100000E+01 0.922374E+02
-      21    3    2    120.674
-       3    1    0   -147.666
-       5    1    0      35.349    -49.499      9.924      4.700
-      -5    0    2     -25.532     -5.790    -29.104      4.700
-       4    3    0     -41.399     22.992    -46.951      0.000
-      11    0    0     -16.127    -16.520     16.963      0.001
-     -12    0    0      47.709     48.816     22.177      0.000
-       6    2  7 0.100000E+01 0.113982E+03
-      21    3    2    283.719
-      -2    0    3   -247.205
-      -5    0    2     169.513    -77.646      1.525      4.700
-       5    1    0      37.036    -18.706     40.049      4.700
-      -1    0    1    -140.937     49.237     53.038      0.000
-     -12    0    0     -17.947    -22.122     -5.653      0.000
-      11    0    0     -47.665     69.236    -52.445      0.001
-       7    3  7 0.100000E+01 0.115671E+03
-      -2    0    3     77.526
-      21    2    1   -276.627
-      -5    0    3      37.083     14.106    -26.894      4.700
-       5    2    0       6.712     46.621    -11.366      4.700
-      -1    0    1      34.675    -33.246     11.991      0.000
-     -12    0    0      16.568     -2.243    -20.006      0.000
-      11    0    0     -95.037    -25.239   -152.826      0.001
-       8    2  7 0.100000E+01 0.883417E+02
-      21    2    3     92.375
-      -1    0    1   -158.905
-      -5    0    1      39.799      1.160     25.385      4.700
-       5    2    0     -23.891    -10.529     19.384      4.700
-      -2    0    3       7.470     37.486    -15.543      0.000
-     -11    0    0     -38.593    -20.729    -13.656      0.001
-      12    0    0      15.216     -7.388    -82.099      0.000
-       9    1  7 0.100000E+01 0.845703E+02
-       1    1    0    186.890
-      -2    0    3    -75.800
-       5    1    0     -16.901    -12.290     -0.930      4.700
-      -5    0    2     -37.642     12.876    -17.576      4.700
-      21    2    3      29.021     -6.376    -11.392      0.000
-      11    0    0      15.855     30.964    133.122      0.001
-     -12    0    0       9.667    -25.174      7.866      0.000
-      10    1  7 0.100000E+01 0.122254E+03
-       1    1    0    213.249
-      -2    0    3    -76.475
-       5    1    0     -54.050    -41.102     47.661      4.700
-      -5    0    2     -15.783     29.668     -5.047      4.700
-      21    2    3     -21.430     -0.803      6.621      0.000
-      11    0    0     100.456     10.770     52.959      0.001
-     -12    0    0      -9.193      1.467     34.579      0.000
-      11    1  7 0.100000E+01 0.101409E+03
-       2    3    0    169.850
-      -1    0    1    -67.086
-       5    3    0     -24.858     18.869     14.404      4.700
-      -5    0    2     -14.525    -13.791     13.534      4.700
-      21    2    1     -20.711      9.252    -26.308      0.000
-      12    0    0      72.203      9.026     85.527      0.000
-     -11    0    0     -12.109    -23.356     15.607      0.001
-      12    3  7 0.100000E+01 0.892605E+02
-       2    3    0    548.505
-      21    1    2    -59.429
-       5    3    0     -37.725    -15.977     12.876      4.700
-      -5    0    2       4.085    -46.952     28.225      4.700
-       1    1    0      69.683     77.110     80.304      0.000
-      12    0    0     -16.145    -35.119    321.362      0.000
-     -11    0    0     -19.899     20.937     46.309      0.001
-      13    1  7 0.100000E+01 0.953158E+02
-       1    1    0    441.666
-      -2    0    3   -452.366
-       5    2    0     175.343    -97.657    -78.317      4.700
-      -5    0    3     -61.899    189.518   -180.285      4.700
-      21    1    2     -99.084    -42.752    -36.601      0.000
-      11    0    0      14.395     -7.822    168.623      0.001
-     -12    0    0     -28.754    -41.287    115.880      0.000
-      14    1  7 0.100000E+01 0.143408E+03
-       2    3    0    175.681
-      -1    0    1   -250.391
-       5    2    0      -9.303    -72.246    -47.126      4.700
-      -5    0    1      94.811      5.044    -80.853      4.700
-      21    3    2     -13.072    -26.881     26.741      0.000
-      12    0    0     -72.112    120.395      5.238      0.000
-     -11    0    0      -0.325    -26.312     21.290      0.001
-      15    1  7 0.100000E+01 0.110990E+03
-       2    3    0    296.716
-      -3    0    1   -177.773
-       5    3    0    -116.223    -33.840     19.734      4.700
-      -5    0    2      66.053     14.454    -39.354      4.700
-      21    2    1      20.267    -51.021    -36.535      0.000
-      12    0    0      17.215     80.881    171.780      0.000
-     -11    0    0      12.688    -10.473      3.317      0.001
-      16    1  7 0.100000E+01 0.954285E+02
-      -2    0    3    306.948
-       1    1    0   -181.028
-      -5    0    3     -48.987    107.146    136.626      4.700
-       5    2    0      52.548   -132.878     69.874      4.700
-      21    1    2      -3.121    -25.641     -4.340      0.000
-     -12    0    0      15.505     -0.085     11.446      0.000
-      11    0    0     -15.945     51.459    -87.686      0.001
-      17    2  7 0.100000E+01 0.864245E+02
-      21    3    2    158.161
-       1    1    0   -195.965
-       5    1    0      35.967    -26.531      7.213      4.700
-      -5    0    2      56.922     38.925     35.874      4.700
-       2    3    0    -113.575    -36.354    -83.871      0.000
-      11    0    0      32.135    -20.905      4.627      0.001
-     -12    0    0     -11.449     44.865     -1.647      0.000
-      18    3  7 0.100000E+01 0.270397E+03
-       2    3    0    504.482
-      21    1    2   -245.782
-       5    3    0      13.981    -48.359      2.945      4.700
-      -5    0    2     -18.634    -16.952      6.792      4.700
-       1    1    0      88.594    309.444    241.755      0.000
-      12    0    0       7.329      1.024      5.033      0.000
-     -11    0    0     -91.270   -245.157      2.176      0.001
-      19    3  7 0.100000E+01 0.935948E+02
-      -1    0    1    138.763
-      21    2    3   -121.801
-      -5    0    1     -44.986      1.603    -37.401      4.700
-       5    2    0       7.478    -56.797     21.429      4.700
-      -2    0    3      36.591      7.320     -8.068      0.000
-     -11    0    0      15.331     16.954     59.345      0.001
-      12    0    0     -14.415     30.920    -18.343      0.000
-      20    2  7 0.100000E+01 0.124633E+03
-      21    2    1    146.172
-       3    1    0   -123.124
-       5    2    0      -0.367    -60.586     33.993      4.700
-      -5    0    3       2.499    -35.555     -7.625      4.700
-       4    3    0      36.539      9.132     -5.033      0.000
-      11    0    0     -26.942     -8.723     -2.061      0.001
-     -12    0    0     -11.730     95.732      3.774      0.000
-      21    2  7 0.100000E+01 0.935581E+02
-      21    2    1    203.148
-      -2    0    3  -1277.295
-      -5    0    3      -8.313     23.361      5.576      4.700
-       5    2    0     -84.268     89.141    141.060      4.700
-      -1    0    1      45.760   -102.821   -126.079      0.000
-     -12    0    0      29.398    -36.965   -347.748      0.000
-      11    0    0      17.423     27.285   -746.956      0.001
-      22    2  7 0.100000E+01 0.112728E+03
-      21    2    1    114.711
-      -2    0    3   -736.608
-      -5    0    3      19.209     42.096     10.726      4.700
-       5    2    0      77.491     -2.791     43.227      4.700
-      -1    0    1     -39.282     14.949    -14.374      0.000
-     -12    0    0     -23.181    -12.516   -485.077      0.000
-      11    0    0     -34.237    -41.739   -176.399      0.001
-      23    2  7 0.100000E+01 0.165315E+03
-      21    1    2    218.895
-      -3    0    1   -183.905
-      -5    0    2     -16.974    -16.575     12.833      4.700
-       5    3    0       2.216    -27.748      4.504      4.700
-      -4    0    3     152.454      0.715     77.531      0.000
-     -11    0    0    -119.252     12.219    -68.931      0.001
-      12    0    0     -18.445     31.388      9.053      0.000
-      24    2  7 0.100000E+01 0.133987E+03
-      21    2    3    114.557
-      -1    0    1   -209.816
-      -5    0    1     -15.612    -18.242    -25.974      4.700
-       5    2    0      35.975    -36.739    -57.307      4.700
-      -2    0    3     -64.945    -42.476      3.671      0.000
-     -11    0    0      62.620     78.159    -29.004      0.001
-      12    0    0     -18.038     19.298     13.355      0.000
-      25    1  7 0.100000E+01 0.943952E+02
-      -1    0    1     87.281
-       2    3    0   -221.048
-      -5    0    2      92.190     -8.804    -36.752      4.700
-       5    3    0     -16.767     29.027    -10.893      4.700
-      21    2    1     -28.722     -4.029     16.071      0.000
-     -11    0    0      -9.762     16.455      6.748      0.001
-      12    0    0     -36.939    -32.650   -108.941      0.000
-      26    2  7 0.100000E+01 0.115490E+03
-      21    1    2     83.899
-       2    2    0   -371.787
-       5    3    0     -24.328      7.840     -8.160      4.700
-      -5    0    3       3.673     35.673    -31.622      4.700
-       3    1    0     -44.000      8.357     47.145      0.000
-      12    0    0      -4.431      0.029   -119.017      0.000
-     -11    0    0      69.087    -51.898   -176.234      0.001
-      27    3  7 0.100000E+01 0.811996E+02
-      -4    0    3    166.400
-      21    2    1   -152.783
-      -5    0    3     -33.450     -8.499     23.294      4.700
-       5    2    0     -26.564     77.311    -42.418      4.700
-      -1    0    1      62.783    -57.927    -20.688      0.000
-     -12    0    0     -30.977    -32.740     24.968      0.000
-      11    0    0      28.207     21.855     28.461      0.001
-      28    3  7 0.100000E+01 0.958028E+02
-      -4    0    3     46.264
-      21    3    2   -329.156
-      -5    0    2       5.254     36.571    -27.994      4.700
-       5    1    0      12.209    -50.153    -32.374      4.700
-      -3    0    1      34.601     13.062    -17.515      0.000
-     -12    0    0     -54.568    -27.063   -177.902      0.000
-      11    0    0       2.504     27.583    -27.106      0.001
-      29    3  7 0.100000E+01 0.844681E+02
-       1    1    0    381.503
-      21    3    2    -41.173
-       5    1    0      23.521    -27.090     -2.197      4.700
-      -5    0    2      33.224     10.727     23.620      4.700
-       2    3    0     -33.485      5.110     38.678      0.000
-      11    0    0     -37.465     37.705    199.754      0.001
-     -12    0    0      14.205    -26.451     80.475      0.000
-      30    3  7 0.100000E+01 0.824587E+02
-      -3    0    1    498.353
-      21    2    3    -36.050
-      -5    0    1     -47.339     31.137     26.941      4.700
-       5    2    0       2.262    -29.140     21.027      4.700
-      -4    0    3      27.371     -6.324     25.577      0.000
-     -11    0    0      28.159    -32.347    224.212      0.001
-      12    0    0     -10.453     36.674    164.547      0.000
-      31    2  7 0.100000E+01 0.175967E+03
-      21    3    2    124.368
-      -2    0    3   -958.944
-      -5    0    2      -3.303     85.894     46.795      4.700
-       5    1    0     -23.095     17.072    -21.108      4.700
-      -1    0    1     103.885     33.022    -49.451      0.000
-     -12    0    0     -51.082   -134.092   -745.877      0.000
-      11    0    0     -26.405     -1.896    -64.936      0.001
-      32    3  7 0.100000E+01 0.195568E+03
-      -1    0    1   1141.512
-      21    1    2   -115.219
-      -5    0    2     -16.568    -63.105    -50.898      4.700
-       5    3    0     -32.552     10.237      2.957      4.700
-      -2    0    3    -113.312    -20.585    124.157      0.000
-     -11    0    0     170.241     75.523    887.175      0.001
-      12    0    0      -7.809     -2.069     62.902      0.000
-      33    1  7 0.100000E+01 0.102747E+03
-      -1    0    1    176.753
-       2    3    0    -81.643
-      -5    0    1       6.733     19.905    -12.137      4.700
-       5    2    0     -19.671    -29.903     23.455      4.700
-      21    3    2     -42.537    -21.818    -13.486      0.000
-     -11    0    0      64.182     12.971    100.497      0.001
-      12    0    0      -8.707     18.845     -3.219      0.000
-      34    2  7 0.100000E+01 0.131654E+03
-      21    1    2    450.295
-       2    3    0    -98.487
-       5    3    0     -32.364     16.297    -23.120      4.700
-      -5    0    2      27.339      4.362    -22.500      4.700
-       1    1    0     -84.937    -73.312    131.642      0.000
-      12    0    0      32.589     64.487    130.570      0.000
-     -11    0    0      57.373    -11.833    135.218      0.001
-      35    2  7 0.100000E+01 0.105244E+03
-      21    1    2     46.936
-      -1    0    1   -215.908
-      -5    0    2      18.528    -16.928    -12.054      4.700
-       5    3    0       1.119    -24.827    -20.756      4.700
-      -2    0    3      13.718    -17.371      8.333      0.000
-     -11    0    0      -5.436     71.809   -114.986      0.001
-      12    0    0     -27.929    -12.683    -29.509      0.000
-      36    3  7 0.100000E+01 0.100487E+03
-      -1    0    1   1000.847
-      21    2    3   -119.621
-      -5    0    1     -30.150     72.967     86.433      4.700
-       5    2    0     -66.775     39.044     25.066      4.700
-      -2    0    3     147.787   -144.313     74.820      0.000
-     -11    0    0     -56.616      6.315    247.525      0.001
-      12    0    0       5.754     25.986    447.382      0.000
-      37    2  7 0.100000E+01 0.139423E+03
-      21    1    2     61.839
-       2    3    0   -755.920
-       5    3    0     -16.205    -20.738    -12.550      4.700
-      -5    0    2     -32.167     17.577      3.882      4.700
-       1    1    0       9.538    110.228    -99.214      0.000
-      12    0    0     -13.155    -78.397   -349.364      0.000
-     -11    0    0      51.989    -28.670   -236.835      0.001
-      38    1  7 0.100000E+01 0.104739E+03
-       2    3    0    205.271
-      -1    0    1   -403.725
-       5    3    0     -34.088    145.064     12.706      4.700
-      -5    0    2      76.534    -98.274     22.810      4.700
-      21    2    1     -72.086   -106.994   -142.172      0.000
-      12    0    0       6.715    -20.872    -24.104      0.000
-     -11    0    0      22.925     81.076    -67.694      0.001
-      39    1  7 0.100000E+01 0.815969E+02
-       1    1    0     70.793
-      -2    0    3   -457.105
-       5    1    0      89.536    -17.821    -70.462      4.700
-      -5    0    2     -91.359      4.474    -18.350      4.700
-      21    2    3     -10.173     20.199    -19.970      0.000
-      11    0    0      11.650     18.319    -18.137      0.001
-     -12    0    0       0.346    -25.171   -259.394      0.000
-      40    2  7 0.100000E+01 0.100711E+03
-      21    2    1    185.035
-      -4    0    3   -323.898
-      -5    0    3       6.036   -134.801     59.218      4.700
-       5    2    0     -65.688     20.722    -67.805      4.700
-      -3    0    1      10.368     78.771     21.573      0.000
-     -12    0    0      11.602     48.957   -123.379      0.000
-      11    0    0      37.683    -13.649    -28.471      0.001
-      41    3  7 0.100000E+01 0.940315E+02
-       1    1    0    325.577
-      21    2    1   -118.558
-       5    2    0     -24.398    -16.488     -2.674      4.700
-      -5    0    3     -13.466    -69.222    -46.591      4.700
-       2    3    0      69.700     48.816     40.657      0.000
-      11    0    0     -53.093      4.430    147.573      0.001
-     -12    0    0      21.257     32.464     68.054      0.000
-      42    3  7 0.100000E+01 0.155622E+03
-       2    3    0    442.637
-      21    1    2   -335.935
-       5    3    0    -134.745    -66.927    -73.326      4.700
-      -5    0    2     189.063   -114.959    -79.406      4.700
-       1    1    0     -82.833     51.740     37.235      0.000
-      12    0    0      27.629    126.844    229.358      0.000
-     -11    0    0       0.887      3.301     -7.159      0.001
-      43    3  7 0.100000E+01 0.116712E+03
-      -3    0    1    367.592
-      21    2    3   -141.492
-      -5    0    1      40.738    -45.154    -30.511      4.700
-       5    2    0     -13.794    -83.452    -13.027      4.700
-      -4    0    3      49.736     92.902     81.712      0.000
-     -11    0    0     -16.302     48.072    118.936      0.001
-      12    0    0     -60.378    -12.369     68.991      0.000
-      44    2  7 0.100000E+01 0.227358E+03
-      21    1    2     94.145
-      -1    0    1  -1843.196
-      -5    0    2      39.149      5.635     12.554      4.700
-       5    3    0      14.360    -21.763      2.452      4.700
-      -2    0    3     138.530    -75.227    -94.370      0.000
-     -11    0    0    -167.573     73.216  -1130.027      0.001
-      12    0    0     -24.465     18.139   -539.659      0.000
-      45    2  7 0.100000E+01 0.227988E+03
-      21    3    2    127.804
-       1    1    0   -660.154
-       5    1    0     199.657     -5.650   -166.479      4.700
-      -5    0    2      11.134    -20.818     -4.072      4.700
-       2    3    0       1.571     46.807     25.911      0.000
-      11    0    0     -21.636    -24.775    -95.307      0.001
-     -12    0    0    -190.726      4.436   -292.403      0.000
-      46    3  7 0.100000E+01 0.102608E+03
-       2    3    0    443.261
-      21    2    3    -94.144
-       5    2    0      21.588    -56.333      4.225      4.700
-      -5    0    1      39.596    -18.112     39.333      4.700
-       1    1    0     -99.670    125.239    102.346      0.000
-      12    0    0     -17.485      5.372     74.589      0.000
-     -11    0    0      55.971    -56.166    128.624      0.001
-      47    2  7 0.100000E+01 0.921110E+02
-      21    3    2    128.723
-       1    1    0   -128.711
-       5    1    0      22.367    -19.614      2.279      4.700
-      -5    0    2      34.352     -3.236     24.811      4.700
-       2    3    0     -55.792     67.754      3.177      0.000
-      11    0    0     -11.982    -35.020    -55.887      0.001
-     -12    0    0      11.055     -9.884     25.633      0.000
-      48    2  7 0.100000E+01 0.103529E+03
-      21    2    3    108.158
-      -1    0    1   -275.408
-      -5    0    1     -69.477      7.783      0.924      4.700
-       5    2    0      -0.606    -76.350      6.498      4.700
-      -4    0    3      13.361     36.416     -5.119      0.000
-     -11    0    0     -15.852     -7.587    -42.288      0.001
-      12    0    0      72.575     39.738   -127.265      0.000
-      49    1  7 0.100000E+01 0.199787E+03
-       1    1    0    674.014
-      -2    0    3   -127.680
-       5    1    0      23.492    -13.275      0.512      4.700
-      -5    0    2     -39.902    168.227     61.969      4.700
-      21    2    3      45.965     25.531    -13.525      0.000
-      11    0    0       7.837      2.965      5.607      0.001
-     -12    0    0     -37.391   -183.448    491.770      0.000
-      50    2  7 0.100000E+01 0.157088E+03
-      21    2    3    106.753
-       2    3    0   -290.743
-       5    2    0      43.519    -17.417    -13.156      4.700
-      -5    0    1      55.819    -79.515    -91.963      4.700
-       1    1    0     -30.032    -18.852      7.276      0.000
-      12    0    0      -1.222     75.148    -28.005      0.000
-     -11    0    0     -68.085     40.636    -58.143      0.001
-      51    3  7 0.100000E+01 0.108089E+03
-      -1    0    1     89.187
-      21    2    3   -148.151
-      -5    0    1     -25.932    -10.777    -17.859      4.700
-       5    2    0     -17.262    -47.242     14.082      4.700
-      -2    0    3     -19.280     21.784      3.830      0.000
-     -11    0    0      36.057    -21.440    -33.022      0.001
-      12    0    0      26.417     57.675    -25.997      0.000
-      52    1  7 0.100000E+01 0.814638E+02
-       1    1    0    129.260
-      -2    0    3   -350.686
-       5    1    0      -7.687    -97.006    -19.782      4.700
-      -5    0    2      13.563     76.003     32.869      4.700
-      21    2    3     -18.825     19.788     16.797      0.000
-      11    0    0       9.954     20.116    -14.225      0.001
-     -12    0    0       2.995    -18.901   -237.085      0.000
-      53    2  7 0.100000E+01 0.130765E+03
-      21    1    2    257.849
-       4    3    0   -408.707
-       5    3    0     -35.563    -46.808     27.882      4.700
-      -5    0    2     107.768    -57.307     86.290      4.700
-       3    1    0    -104.401    202.074   -122.239      0.000
-      12    0    0       0.256    -97.474   -118.415      0.000
-     -11    0    0      31.939     -0.484    -24.376      0.001
-      54    2  7 0.100000E+01 0.103269E+03
-      21    2    3    408.082
-      -3    0    1   -282.950
-      -5    0    1      97.689   -136.578    134.793      4.700
-       5    2    0      81.477    144.984     23.979      4.700
-      -4    0    3    -187.829    -72.610    -14.038      0.000
-     -11    0    0     -34.897     19.774      1.085      0.001
-      12    0    0      43.559     44.431    -20.687      0.000
-      55    3  7 0.100000E+01 0.988447E+02
-       1    1    0    105.767
-      21    2    1   -203.603
-       5    2    0       4.558    -60.683      6.707      4.700
-      -5    0    3     -50.965    -37.325     -0.623      4.700
-       2    3    0      16.366     49.012    -32.707      0.000
-      11    0    0     -15.742      5.588    -56.177      0.001
-     -12    0    0      45.782     43.408    -15.036      0.000
-      56    3  7 0.100000E+01 0.166739E+03
-      -4    0    3    137.788
-      21    2    1   -500.826
-      -5    0    3     -14.052     14.361    -19.459      4.700
-       5    2    0      -6.759     98.661    -61.236      4.700
-      -3    0    1     161.335   -152.868    -95.460      0.000
-     -12    0    0       9.515      7.293     -2.919      0.000
-      11    0    0    -150.038     32.552   -183.965      0.001
-      57    1  7 0.100000E+01 0.164686E+03
-       1    1    0    111.780
-      -2    0    3  -1369.851
-       5    2    0      57.751    151.988   -173.898      4.700
-      -5    0    3    -172.723   -248.255   -315.104      4.700
-      21    1    2      25.141    -15.915    -12.206      0.000
-      11    0    0      78.153     39.141   -331.452      0.001
-     -12    0    0      11.677     73.041   -425.411      0.000
-      58    2  7 0.100000E+01 0.138614E+03
-      21    1    2    243.568
-      -1    0    1   -149.755
-      -5    0    2      85.134     28.927     45.219      4.700
-       5    3    0      24.671    -27.929      5.057      4.700
-      -2    0    3     -49.635    -96.530     -2.339      0.000
-     -11    0    0     -35.027     29.122    -19.527      0.001
-      12    0    0     -25.143     66.409     65.403      0.000
-      59    2  7 0.100000E+01 0.996958E+02
-      21    3    2     73.750
-      -2    0    3  -1727.810
-      -5    0    2      -4.865   -103.024    -23.596      4.700
-       5    1    0     -16.096    126.653   -139.813      4.700
-      -1    0    1     -25.621     12.455    -27.006      0.000
-     -12    0    0      40.688      6.031  -1117.562      0.000
-      11    0    0       5.894    -42.116   -346.083      0.001
-      60    1  7 0.100000E+01 0.981673E+02
-       1    1    0    322.891
-      -2    0    3    -62.595
-       5    1    0      33.518     17.331     28.693      4.700
-      -5    0    2       3.446     31.013      8.051      4.700
-      21    2    3      16.787    -31.595    -21.734      0.000
-      11    0    0     -29.224     30.452    123.947      0.001
-     -12    0    0     -24.526    -47.200    121.339      0.000
-      61    1  7 0.100000E+01 0.113016E+03
-      -1    0    1    477.993
-       2    3    0    -82.300
-      -5    0    1     -25.444    -10.071     -8.417      4.700
-       5    2    0     -18.762     24.693    -11.663      4.700
-      21    3    2      17.999     60.336     -3.975      0.000
-     -11    0    0      21.376     -9.887    274.338      0.001
-      12    0    0       4.832    -65.071    145.410      0.000
-      62    2  7 0.100000E+01 0.858803E+02
-      21    2    1    530.162
-      -2    0    3   -835.122
-      -5    0    3     304.512    295.645    -36.484      4.700
-       5    2    0     179.364      6.777      6.459      4.700
-      -1    0    1    -512.016   -313.209   -297.970      0.000
-     -12    0    0      -5.830     30.242     36.808      0.000
-      11    0    0      33.970    -19.455    -13.774      0.001
-      63    2  7 0.100000E+01 0.279816E+03
-      21    3    2    130.090
-       1    1    0  -1266.203
-       5    3    0     -80.672   -277.385   -219.566      4.700
-      -5    0    2      15.170    -17.624     10.002      4.700
-       2    1    0      80.214     27.403    -82.313      0.000
-      11    0    0     -48.109    144.269   -479.823      0.001
-     -12    0    0      33.397    123.337   -364.412      0.000
-      64    1  7 0.100000E+01 0.948476E+02
-       1    1    0    108.115
-      -2    0    3   -186.217
-       5    2    0     -30.761    -35.944      6.384      4.700
-      -5    0    3      31.179    -17.463     28.661      4.700
-      21    1    2     -33.227     15.296     15.299      0.000
-      11    0    0      24.984     28.010     -6.555      0.001
-     -12    0    0       7.825     10.100   -121.892      0.000
-      65    2  7 0.100000E+01 0.915102E+02
-      21    2    3     50.944
-      -1    0    1   -196.000
-      -5    0    1     -12.664    -32.686     -7.608      4.700
-       5    2    0      25.346    -20.464    -29.817      4.700
-      -2    0    3     -30.408     13.241    -14.695      0.000
-     -11    0    0      32.014      4.234     -3.186      0.001
-      12    0    0     -14.288     35.675    -89.750      0.000
-      66    3  7 0.100000E+01 0.166415E+03
-       2    3    0    196.683
-      21    2    3   -163.250
-       5    2    0     -22.115      1.168     -5.197      4.700
-      -5    0    1       0.624     23.761    -10.209      4.700
-       1    1    0      23.425    120.753     71.241      0.000
-      12    0    0      -7.666   -154.215    -27.435      0.000
-     -11    0    0       5.732      8.533      5.033      0.001
-      67    1  7 0.100000E+01 0.898431E+02
-       2    3    0    365.408
-      -1    0    1    -85.774
-       5    3    0    -100.930     54.194    120.905      4.700
-      -5    0    2      30.578    -24.074     24.812      4.700
-      21    2    1      37.159     -7.696    -32.628      0.000
-      12    0    0      38.634    -47.805    119.851      0.000
-     -11    0    0      -5.442     25.381     46.694      0.001
-      68    3  7 0.100000E+01 0.820607E+02
-      -2    0    3    237.122
-      21    2    1   -216.750
-      -5    0    3      78.416    -44.911    -96.826      4.700
-       5    2    0      -7.741     35.350     34.542      4.700
-      -1    0    1     -77.791     -5.139    -65.055      0.000
-     -12    0    0     -21.763     32.211    119.140      0.000
-      11    0    0      28.880    -17.512     28.571      0.001
-      69    3  7 0.100000E+01 0.946751E+02
-       2    3    0   2411.586
-      21    1    2    -35.247
-       5    3    0      29.415     -3.844     10.256      4.700
-      -5    0    2      46.686     37.222     47.887      4.700
-       1    1    0     -26.150    -32.332     38.321      0.000
-      12    0    0       2.369    -15.403   1509.755      0.000
-     -11    0    0     -52.320     14.357    770.120      0.001
-      70    2  7 0.100000E+01 0.912135E+02
-      21    3    2     81.933
-       1    1    0   -202.321
-       5    1    0      80.041    -23.865    -46.340      4.700
-      -5    0    2      -1.452    -20.732    -16.531      4.700
-       2    3    0     -47.413     14.919    -51.467      0.000
-      11    0    0       2.409     49.676      3.528      0.001
-     -12    0    0     -33.584    -19.998     -9.578      0.000
-      71    3  7 0.100000E+01 0.849318E+02
-       1    1    0   3907.100
-      21    3    2    -46.353
-       5    1    0     -26.128    -16.030      2.242      4.700
-      -5    0    2      14.664    -16.602     13.124      4.700
-       2    3    0      19.601     58.708     13.489      0.000
-      11    0    0      19.094     18.465   2081.553      0.001
-     -12    0    0     -27.231    -44.542   1750.340      0.000
-      72    2  7 0.100000E+01 0.974684E+02
-      21    2    3     65.497
-      -1    0    1  -1039.936
-      -5    0    1      18.914    -20.108     26.925      4.700
-       5    2    0       6.108    -40.920      3.860      4.700
-      -2    0    3      13.816     21.983    -15.581      0.000
-     -11    0    0     -63.955     31.963   -765.535      0.001
-      12    0    0      25.118      7.082   -224.108      0.000
-      73    3  7 0.100000E+01 0.112808E+03
-       2    3    0    659.559
-      21    1    2   -366.917
-       5    3    0    -163.896   -113.756    107.042      4.700
-      -5    0    2     -14.230     46.813     37.166      4.700
-       1    1    0     174.791    145.983   -241.211      0.000
-      12    0    0     -13.950    -53.285    358.512      0.000
-     -11    0    0      17.284    -25.755     31.134      0.001
-      74    3  7 0.100000E+01 0.124890E+03
-      -1    0    1    182.698
-      21    2    3   -448.383
-      -5    0    1      35.759    -25.099    -10.392      4.700
-       5    2    0      38.728    198.690   -221.925      4.700
-      -2    0    3    -127.355    -93.995    -21.534      0.000
-     -11    0    0       7.643    -67.492     17.983      0.001
-      12    0    0      45.225    -12.103    -29.818      0.000
-      75    2  7 0.100000E+01 0.103572E+03
-      21    2    3    121.808
-      -3    0    1   -425.486
-      -5    0    1     -27.818     10.003    -24.931      4.700
-       5    2    0      23.622     93.414    -18.900      4.700
-      -4    0    3     -52.539    -71.153     36.835      0.000
-     -11    0    0      66.721    -49.216   -254.802      0.001
-      12    0    0      -9.985     16.952    -41.880      0.000
-      76    2  7 0.100000E+01 0.860850E+02
-      21    3    2     70.175
-       3    1    0   -117.070
-       5    1    0      19.415      7.918     -6.583      4.700
-      -5    0    2     -24.578    -11.370    -18.077      4.700
-       4    3    0      11.657    -26.569     19.292      0.000
-      11    0    0     -19.719    -24.574    -13.984      0.001
-     -12    0    0      13.224     54.594    -27.543      0.000
-      77    1  7 0.100000E+01 0.208068E+03
-       1    1    0    478.660
-      -2    0    3   -481.422
-       5    1    0     290.541    187.594    244.665      4.700
-      -5    0    2     -40.374     17.957    -37.865      4.700
-      21    2    3     -58.468   -214.314   -121.580      0.000
-      11    0    0     -76.417     41.533    -34.716      0.001
-     -12    0    0    -115.282    -32.769    -53.266      0.000
-      78    2  7 0.100000E+01 0.109513E+03
-      21    2    1     58.882
-      -2    0    3  -1326.637
-      -5    0    3      44.960    -30.999    -15.148      4.700
-       5    2    0      28.131      6.296      3.640      4.700
-      -1    0    1     -72.521    -49.631    -83.918      0.000
-     -12    0    0      -0.965     52.844  -1118.458      0.000
-      11    0    0       0.395     21.490    -53.872      0.001
-      79    3  7 0.100000E+01 0.103699E+03
-       1    1    0    667.528
-      21    3    2   -112.058
-       5    1    0     -67.165      4.397     42.441      4.700
-      -5    0    2     -25.458    -56.267    -15.369      4.700
-       2    3    0      67.121     -8.428    -25.675      0.000
-      11    0    0       4.174     75.414    356.819      0.001
-     -12    0    0      21.328    -15.116    197.254      0.000
-      80    2  7 0.100000E+01 0.110295E+03
-      21    3    2    218.882
-       1    1    0   -115.791
-       5    1    0     -38.997   -108.810     37.934      4.700
-      -5    0    2      41.655     24.829      1.559      4.700
-       2    3    0     -39.432     18.060     20.666      0.000
-      11    0    0      -5.053     50.782     -4.358      0.001
-     -12    0    0      41.827     15.139     47.289      0.000
-      81    3  7 0.100000E+01 0.888904E+02
-       1    1    0    214.998
-      21    3    2   -120.370
-       5    1    0     -57.947     10.127     -2.326      4.700
-      -5    0    2      -7.336    -21.295     22.780      4.700
-       2    3    0      96.196    -10.711    -34.826      0.000
-      11    0    0      24.319     20.561     24.819      0.001
-     -12    0    0     -55.232      1.318     84.181      0.000
-      82    1  7 0.100000E+01 0.809852E+02
-       1    1    0    115.707
-      -2    0    3   -123.495
-       5    1    0      55.002      1.210     45.110      4.700
-      -5    0    2     -14.418     19.931     -2.338      4.700
-      21    2    3     -39.015    -30.572    -35.842      0.000
-      11    0    0     -39.638     -1.059     -0.637      0.001
-     -12    0    0      38.069     10.490    -14.081      0.000
-      83    3  7 0.100000E+01 0.996239E+02
-      -2    0    3    602.175
-      21    3    2   -181.500
-      -5    0    2      24.526     17.013      1.403      4.700
-       5    1    0      53.578     96.367    -55.774      4.700
-      -1    0    1     -85.664   -171.695     57.270      0.000
-     -12    0    0      24.693     72.363    348.845      0.000
-      11    0    0     -17.133    -14.049     68.930      0.001
-      84    2  7 0.100000E+01 0.860880E+02
-      21    2    1     63.438
-      -2    0    3   -138.107
-      -5    0    3     -16.446    -17.291      4.682      4.700
-       5    2    0      24.676     10.383    -20.170      4.700
-      -3    0    1       4.418    -21.091     19.134      0.000
-     -12    0    0     -19.757      4.386    -85.947      0.000
-      11    0    0       7.110     23.614      7.633      0.001
-      85    2  7 0.100000E+01 0.965607E+02
-      21    2    3    343.980
-      -1    0    1   -589.753
-      -5    0    1    -139.795   -118.942    164.842      4.700
-       5    2    0       4.746    216.162     -8.119      4.700
-      -2    0    3      84.077    -81.140   -101.475      0.000
-     -11    0    0      61.349     -6.945   -293.791      0.001
-      12    0    0     -10.377     -9.136     -7.230      0.000
-      86    2  7 0.100000E+01 0.145615E+03
-      21    3    2     91.382
-      -2    0    1  -1372.812
-      -5    0    2      -4.630    133.848    -95.606      4.700
-       5    3    0     -64.919     -1.661    -14.052      4.700
-      -1    0    1     -31.097    -64.311    -23.282      0.000
-     -12    0    0      84.882    -45.675  -1077.494      0.000
-      11    0    0      15.764    -22.202    -70.995      0.001
-      87    3  7 0.100000E+01 0.106561E+03
-       2    3    0    512.761
-      21    1    2    -98.430
-       5    3    0      26.148     14.505     -0.917      4.700
-      -5    0    2     -32.677     86.905    -38.147      4.700
-       1    1    0      14.965    -32.006     37.635      0.000
-      12    0    0     -38.370    -15.506    208.420      0.000
-     -11    0    0      29.934    -53.898    207.339      0.001
-      88    1  7 0.100000E+01 0.114143E+03
-       2    3    0    276.936
-      -1    0    1   -172.626
-       5    2    0       4.437     20.337    -11.684      4.700
-      -5    0    1     -35.920   -115.523   -100.434      4.700
-      21    3    2     -12.875     27.409     11.395      0.000
-      12    0    0      40.285     57.708    211.520      0.000
-     -11    0    0       4.073     10.070     -6.489      0.001
-      89    1  7 0.100000E+01 0.140531E+03
-      -1    0    1    853.895
-       2    3    0    -93.767
-      -5    0    1      26.345     20.700     16.129      4.700
-       5    2    0     -69.787     67.606     10.516      4.700
-      21    3    2     -33.411     -2.427    -24.510      0.000
-     -11    0    0      54.373    -96.271    681.937      0.001
-      12    0    0      22.481     10.392     76.056      0.000
-      90    2  7 0.100000E+01 0.187029E+03
-      21    2    1    432.914
-      -2    0    3   -373.011
-      -5    0    3      81.233     28.410     -9.461      4.700
-       5    2    0       5.146    161.335    -11.698      4.700
-      -1    0    1      24.661   -316.957    157.578      0.000
-     -12    0    0     -93.246    131.216    -46.830      0.000
-      11    0    0     -17.793     -4.004    -29.686      0.001
-      91    3  7 0.100000E+01 0.966011E+02
-       3    1    0    404.759
-      21    3    2    -43.220
-       5    1    0      36.663     11.610     30.339      4.700
-      -5    0    2      18.717     27.156     -8.098      4.700
-       4    3    0      -5.323    -19.825     14.375      0.000
-      11    0    0     -62.522    -35.483    290.392      0.001
-     -12    0    0      12.464     16.543     34.531      0.000
-      92    2  7 0.100000E+01 0.835794E+02
-      21    2    1    151.759
-      -4    0    3   -262.843
-      -5    0    3     -78.582    -51.420    -47.056      4.700
-       5    2    0     -32.437     65.915     54.068      4.700
-      -1    0    1      88.280    -13.384    -23.372      0.000
-     -12    0    0       5.214    -39.613    -53.342      0.000
-      11    0    0      17.525     38.503    -41.382      0.001
-      93    3  7 0.100000E+01 0.110079E+03
-       2    3    0    711.943
-      21    1    2    -99.324
-       5    3    0    -107.300     22.842     45.842      4.700
-      -5    0    2     -21.015    -23.090      4.814      4.700
-       1    1    0     190.059    -42.623    188.809      0.000
-      12    0    0     -47.344     59.364    190.018      0.000
-     -11    0    0     -14.401    -16.493    183.136      0.001
-      94    3  7 0.100000E+01 0.909315E+02
-       2    3    0    217.502
-      21    1    2   -145.996
-       5    3    0       4.794     25.136      0.676      4.700
-      -5    0    2     -63.284     31.366    -73.784      4.700
-       1    1    0      31.083    -88.909     63.978      0.000
-      12    0    0      32.663     49.676     27.995      0.000
-     -11    0    0      -5.256    -17.270     52.640      0.001
-      95    3  7 0.100000E+01 0.958570E+02
-       2    3    0     81.013
-      21    1    2   -254.764
-       5    3    0     -65.702     21.064    -44.635      4.700
-      -5    0    2     -24.369    -10.809    -27.996      4.700
-       1    1    0      81.232     41.158    -60.796      0.000
-      12    0    0      39.095    -44.000     -6.770      0.000
-     -11    0    0     -30.255     -7.412    -33.555      0.001
-      96    1  7 0.100000E+01 0.115027E+03
-       2    3    0    255.399
-      -1    0    1    -84.173
-       5    2    0     -12.322    -37.144      3.855      4.700
-      -5    0    1      73.132      0.792     29.896      4.700
-      21    3    2     -36.835    -42.320     56.145      0.000
-      12    0    0      -9.755     88.270     86.042      0.000
-     -11    0    0     -14.220     -9.598     -4.713      0.001
-      97    3  7 0.100000E+01 0.128737E+03
-       2    3    0   2655.228
-      21    1    2    -50.247
-       5    3    0     -11.062    -66.895     15.327      4.700
-      -5    0    2     -47.913     -1.419     18.170      4.700
-       1    1    0      15.011    -22.092     31.291      0.000
-      12    0    0      -0.439     36.730    357.850      0.000
-     -11    0    0      44.403     53.676   2182.343      0.001
-      98    3  7 0.100000E+01 0.347111E+03
-       2    3    0    824.009
-      21    1    2   -301.280
-       5    3    0     111.845    256.758     -6.181      4.700
-      -5    0    2     -53.156     99.393    -68.663      4.700
-       1    1    0       4.969    -24.539      3.362      0.000
-      12    0    0     -45.815   -207.996    297.616      0.000
-     -11    0    0     -17.843   -123.616    296.595      0.001
-      99    3  7 0.100000E+01 0.114266E+03
-      -4    0    3    177.911
-      21    2    1    -89.567
-      -5    0    3     -31.792    -20.244      5.048      4.700
-       5    2    0      -4.433    -49.037    -17.323      4.700
-      -3    0    1     -20.671     11.382     -1.112      0.000
-     -12    0    0      37.521     63.652    108.974      0.000
-      11    0    0      19.375     -5.753     -7.244      0.001
-     100    3  7 0.100000E+01 0.846583E+02
-       2    3    0   1086.319
-      21    1    2    -68.395
-       5    3    0      42.370     -3.854     22.189      4.700
-      -5    0    2      18.867    -75.085     59.235      4.700
-       1    1    0     -55.195     53.184      7.733      0.000
-      12    0    0      14.458     12.935    828.523      0.000
-     -11    0    0     -20.501     12.819    100.244      0.001
-     101    2  7 0.100000E+01 0.865308E+02
-      21    2    1    157.273
-      -2    0    3   -160.513
-      -5    0    3      20.276     14.559    -27.917      4.700
-       5    2    0      51.262     38.198     62.793      4.700
-      -1    0    1     -40.725    -61.178     30.110      0.000
-     -12    0    0     -47.137    -18.416    -22.428      0.000
-      11    0    0      16.324     26.837    -45.797      0.001
-     102    3  7 0.100000E+01 0.500844E+03
-      -2    0    3   1297.608
-      21    2    1   -213.906
-      -5    0    3     -32.365    -31.569     28.283      4.700
-       5    2    0      -0.056   -459.219    411.721      4.700
-      -1    0    1     -39.625      1.722     36.198      0.000
-     -12    0    0      28.122     34.946     54.511      0.000
-      11    0    0      43.924    454.121    552.990      0.001
-     103    3  7 0.100000E+01 0.132038E+03
-       1    1    0   1314.532
-      21    2    1   -106.561
-       5    2    0      21.664    -42.131    -37.309      4.700
-      -5    0    3       2.426    -83.224     11.748      4.700
-       2    3    0     -70.919     31.687     64.436      0.000
-      11    0    0      49.556     98.666   1155.027      0.001
-     -12    0    0      -2.727     -4.998     14.069      0.000
-     104    2  7 0.100000E+01 0.153559E+03
-      21    1    2    428.492
-       2    2    0   -699.631
-       5    3    0      86.265    324.175    131.243      4.700
-      -5    0    3      10.078     80.762    -79.486      4.700
-       1    1    0    -141.840   -282.286    -22.114      0.000
-      12    0    0     -19.743    -16.603    -77.413      0.000
-     -11    0    0      65.240   -106.048   -223.370      0.001
-     105    2  7 0.100000E+01 0.142003E+03
-      21    2    1    210.826
-       3    1    0    -98.200
-       5    3    0      10.295     18.629      7.790      4.700
-      -5    0    3     -28.928     37.855    -17.096      4.700
-       4    2    0     -30.060     49.943     49.624      0.000
-      11    0    0       7.878    -42.057     70.236      0.001
-     -12    0    0      40.816    -64.369      2.071      0.000
-     106    3  7 0.100000E+01 0.908686E+02
-       4    3    0    182.431
-      21    1    2    -71.271
-       5    3    0     -25.973    -54.953     31.563      4.700
-      -5    0    2     -31.323    -14.022     17.860      4.700
-       3    1    0      35.854     32.504     29.867      0.000
-      12    0    0      25.458     50.140     43.280      0.000
-     -11    0    0      -4.015    -13.670    -11.409      0.001
-     107    2  7 0.100000E+01 0.884737E+02
-      21    2    1    289.321
-      -2    0    3   -180.205
-      -5    0    3     -29.731    125.084    -78.594      4.700
-       5    2    0     -16.602   -130.565    124.721      4.700
-      -1    0    1      16.822     27.605      7.325      0.000
-     -12    0    0      21.369     -4.980     74.399      0.000
-      11    0    0       8.143    -17.144    -18.734      0.001
-     108    2  7 0.100000E+01 0.153879E+03
-      21    2    1    297.395
-      -2    0    3   -441.849
-      -5    0    3     164.102      7.019     94.389      4.700
-       5    2    0       2.898    -22.672     -0.254      4.700
-      -1    0    1    -186.810    145.342      6.994      0.000
-     -12    0    0      17.871   -129.058   -170.880      0.000
-      11    0    0       1.939     -0.631    -74.703      0.001
-     109    3  7 0.100000E+01 0.153127E+03
-       3    1    0    346.547
-      21    3    2   -271.588
-       5    1    0      46.531     28.486     13.133      4.700
-      -5    0    2      34.342     10.616     36.956      4.700
-       4    3    0    -183.867     40.729   -175.777      0.000
-      11    0    0      45.861    -80.118    149.789      0.001
-     -12    0    0      57.133      0.287     50.857      0.000
-     110    3  7 0.100000E+01 0.899412E+02
-       2    3    0   1555.068
-      21    1    2    -41.691
-       5    3    0      -9.148    -29.502     -2.766      4.700
-      -5    0    2      32.259    -28.164     32.961      4.700
-       1    1    0       5.332     29.149      4.555      0.000
-      12    0    0     -12.708     14.150   1385.714      0.000
-     -11    0    0     -15.735     14.366     92.914      0.001
-     111    3  7 0.100000E+01 0.936476E+02
-       2    3    0    545.873
-      21    2    3    -41.317
-       5    2    0      27.881     14.342    -11.616      4.700
-      -5    0    1      21.635     -4.399     22.298      4.700
-       1    1    0      -9.865    -36.971     29.519      0.000
-      12    0    0       7.909     15.858    328.845      0.000
-     -11    0    0     -47.560     11.169    135.510      0.001
-     112    1  7 0.100000E+01 0.108398E+03
-       2    2    0    121.420
-      -1    0    1   -146.334
-       5    3    0     -61.619     22.855     33.316      4.700
-      -5    0    3       8.836    -26.824    -13.926      4.700
-      21    2    1     -13.729    -25.339     23.836      0.000
-      12    0    0      -0.285     -4.740     13.220      0.000
-     -11    0    0      66.798     34.048    -81.360      0.001
-     113    2  7 0.100000E+01 0.874642E+02
-      21    2    3     28.283
-      -1    0    1   -576.885
-      -5    0    1     -11.111     24.339    -26.101      4.700
-       5    2    0      -8.457     18.189     -2.223      4.700
-      -2    0    3      18.681     -8.148     -0.966      0.000
-     -11    0    0     -19.791    -53.931   -342.744      0.001
-      12    0    0      20.678     19.551   -176.568      0.000
-     114    2  7 0.100000E+01 0.866254E+02
-      21    2    3     61.077
-      -1    0    1   -181.116
-      -5    0    1       3.684    -25.844    -22.342      4.700
-       5    2    0     -37.290     15.209    -29.649      4.700
-      -2    0    3      33.810     42.833    -31.944      0.000
-     -11    0    0       7.276    -25.255    -61.392      0.001
-      12    0    0      -7.479     -6.943     25.288      0.000
-     115    2  7 0.100000E+01 0.844064E+02
-      21    1    2     71.671
-       2    3    0  -1286.390
-       5    3    0      16.244     46.873    -30.069      4.700
-      -5    0    2       1.206    -46.311     32.995      4.700
-       1    1    0     -22.512     24.570    -13.888      0.000
-      12    0    0     -11.874    -27.024  -1148.177      0.000
-     -11    0    0      16.935      1.892    -55.580      0.001
-     116    1  7 0.100000E+01 0.900411E+02
-       2    3    0    132.229
-      -1    0    1    -71.109
-       5    3    0      11.135    -23.228      7.976      4.700
-      -5    0    2     -35.664     27.251     21.206      4.700
-      21    2    1     -14.612    -14.423     -0.096      0.000
-      12    0    0     -12.757    -22.994     35.008      0.000
-     -11    0    0      51.898     33.395     -2.975      0.001
-     117    1  7 0.100000E+01 0.887530E+02
-       2    3    0    209.177
-      -1    0    1   -199.932
-       5    2    0      -1.589     63.898    -50.285      4.700
-      -5    0    1     -62.516      2.406    -14.865      4.700
-      21    3    2      58.144   -103.376    114.655      0.000
-      12    0    0     -24.771    -14.828     -8.821      0.000
-     -11    0    0      30.732     51.900    -31.439      0.001
-     118    1  7 0.100000E+01 0.984966E+02
-      -1    0    1    214.587
-       2    3    0   -286.252
-      -5    0    2     -93.483    -62.000      8.724      4.700
-       5    3    0     105.510     92.107     48.383      4.700
-      21    2    1     -57.645      3.855     20.127      0.000
-     -11    0    0      48.809     12.800    -60.866      0.001
-      12    0    0      -3.192    -46.762    -88.034      0.000
-     119    3  7 0.100000E+01 0.106815E+03
-       4    3    0    648.415
-      21    1    2   -171.989
-       5    3    0      -5.579     44.450    -10.492      4.700
-      -5    0    2     -93.140     25.229    -92.275      4.700
-       3    1    0      36.227   -101.882     92.566      0.000
-      12    0    0      62.402     52.626    316.079      0.000
-     -11    0    0       0.089    -20.424    170.548      0.001
-     120    3  7 0.100000E+01 0.929786E+02
-      -3    0    1    147.773
-      21    2    3    -84.477
-      -5    0    1     -28.749     39.087    -23.293      4.700
-       5    2    0      21.155    -17.323     20.324      4.700
-      -4    0    3     -30.428      5.295     32.289      0.000
-     -11    0    0      26.984    -55.805     26.793      0.001
-      12    0    0      11.037     28.747      7.183      0.000
-     121    2  7 0.100000E+01 0.190813E+03
-      21    2    3    292.396
-      -3    0    1   -331.641
-      -5    0    1     -23.840      7.355     -0.465      4.700
-       5    2    0      27.418    136.833    -29.621      4.700
-      -4    0    3     162.377    -95.182    122.305      0.000
-     -11    0    0     -68.797     -4.546    -97.327      0.001
-      12    0    0     -97.158    -44.459    -34.137      0.000
-     122    1  7 0.100000E+01 0.100560E+03
-       2    3    0    159.769
-      -1    0    1    -71.376
-       5    3    0     -37.900      1.290      5.996      4.700
-      -5    0    2      19.754     27.543     35.147      4.700
-      21    2    1      -9.771     24.699     -8.211      0.000
-      12    0    0      -9.102    -62.034     41.283      0.000
-     -11    0    0      37.018      8.502     14.176      0.001
-     123    3  7 0.100000E+01 0.857914E+02
-       1    1    0    436.984
-      21    2    1    -43.749
-       5    2    0      22.490      2.887     13.724      4.700
-      -5    0    3      12.888    -44.492     33.479      4.700
-       2    3    0     -64.781     46.934     67.097      0.000
-      11    0    0       0.742    -22.413     17.344      0.001
-     -12    0    0      28.662     17.084    261.590      0.000
-     124    3  7 0.100000E+01 0.999584E+02
-       1    1    0    134.370
-      21    2    1   -108.695
-       5    3    0     -24.051     18.590     14.186      4.700
-      -5    0    3      21.488      3.044     18.685      4.700
-       2    2    0      54.180      7.693    -47.605      0.000
-      11    0    0     -72.963    -17.526     34.232      0.001
-     -12    0    0      21.346    -11.801      6.178      0.000
-     125    3  7 0.100000E+01 0.960621E+02
-       1    1    0    151.594
-      21    3    2   -165.195
-       5    1    0      35.137     -3.077    -16.369      4.700
-      -5    0    2      18.656     70.005    -84.696      4.700
-       2    3    0     -40.035    -16.218     17.556      0.000
-      11    0    0     -23.738    -70.536     57.184      0.001
-     -12    0    0       9.980     19.827     12.725      0.000
-     126    1  7 0.100000E+01 0.833902E+02
-       1    1    0    180.290
-      -4    0    3   -286.384
-       5    2    0      61.210    -59.860    -62.280      4.700
-      -5    0    3     -73.724    123.369   -115.942      4.700
-      21    1    2      33.460    -56.584      0.373      0.000
-      11    0    0     -32.680     30.336     40.045      0.001
-     -12    0    0      11.733    -37.261     31.710      0.000
-     127    2  7 0.100000E+01 0.835626E+02
-      21    3    2     42.486
-      -2    0    3   -426.864
-      -5    0    2      21.621      3.178    -11.760      4.700
-       5    1    0      -8.797     22.085     11.434      4.700
-      -1    0    1       5.601    -38.530    -19.597      0.000
-     -12    0    0     -27.904     15.699   -362.270      0.000
-      11    0    0       9.479     -2.432     -2.184      0.001
-     128    2  7 0.100000E+01 0.836814E+02
-      21    2    3     37.848
-      -1    0    1  -1376.892
-      -5    0    3      14.763     15.932     -7.820      4.700
-       5    2    0     -11.958    -20.804      2.903      4.700
-      -2    0    1     -25.537      0.558      3.971      0.000
-     -11    0    0     -12.563    -30.889   -602.880      0.001
-      12    0    0      35.295     35.204   -735.218      0.000
-     129    3  7 0.100000E+01 0.120038E+03
-       3    1    0    898.247
-      21    3    2   -104.489
-       5    1    0      25.426    -90.159     57.009      4.700
-      -5    0    2      40.682     14.804     47.671      4.700
-       4    3    0     -37.828    159.867     40.562      0.000
-      11    0    0      14.385    -42.124    438.002      0.001
-     -12    0    0     -42.664    -42.388    210.514      0.000
-     130    1  7 0.100000E+01 0.975697E+02
-       1    1    0    108.605
-      -2    0    3   -146.437
-       5    2    0     -29.077     23.886    -43.033      4.700
-      -5    0    3      -6.360     48.575     13.613      4.700
-      21    1    2      19.193    -19.652     29.618      0.000
-      11    0    0      45.392    -18.430    -36.563      0.001
-     -12    0    0     -29.148    -34.378     -1.467      0.000
-     131    2  7 0.100000E+01 0.806905E+02
-      21    1    2    327.920
-      -3    0    1   -188.557
-      -5    0    2     118.274     43.469    129.968      4.700
-       5    3    0      28.988     19.826      0.576      4.700
-      -4    0    3    -141.192    -65.920    -82.165      0.000
-     -11    0    0      11.649     32.521     80.336      0.001
-      12    0    0     -17.719    -29.896     10.648      0.000
-     132    1  7 0.100000E+01 0.994768E+02
-      -1    0    1     70.257
-       2    3    0   -164.705
-      -5    0    2      36.978    -19.966      2.840      4.700
-       5    3    0     -14.562    -13.893    -16.963      4.700
-      21    2    1     -25.218    -24.627      2.843      0.000
-     -11    0    0       6.731     46.156     -0.339      0.001
-      12    0    0      -3.930     12.329    -82.830      0.000
-     133    2  7 0.100000E+01 0.132419E+03
-      21    2    1    179.195
-       1    1    0   -320.163
-       5    3    0     -58.157     21.076    -14.792      4.700
-      -5    0    3     -20.740    -48.464     11.969      4.700
-       2    2    0     110.173    -73.057     58.753      0.000
-      11    0    0       8.985     86.703   -148.764      0.001
-     -12    0    0     -40.261     13.742    -48.132      0.000
-     134    2  7 0.100000E+01 0.101108E+03
-      21    3    2    171.091
-       3    1    0   -265.195
-       5    1    0      40.347    -96.464    -13.281      4.700
-      -5    0    2     -45.614    -49.138    -24.675      4.700
-       4    3    0     -53.468    128.120      4.314      0.000
-      11    0    0      70.024     22.030    -72.496      0.001
-     -12    0    0     -11.288     -4.547     12.034      0.000
-     135    3  7 0.100000E+01 0.125942E+03
-       2    3    0    641.190
-      21    2    3    -59.103
-       5    2    0       0.162     63.637     18.808      4.700
-      -5    0    1      43.232     33.559     24.925      4.700
-       1    1    0      28.618    -32.325     38.671      0.000
-      12    0    0     -62.237     -1.424    231.059      0.000
-     -11    0    0      -9.776    -63.447    268.624      0.001
-     136    1  7 0.100000E+01 0.941443E+02
-       2    3    0    134.018
-      -1    0    1   -377.452
-       5    2    0     -52.649    113.760    -77.271      4.700
-      -5    0    1     -42.694   -151.628   -132.035      4.700
-      21    3    2      47.146     29.323    -28.497      0.000
-      12    0    0      -9.715      9.510     26.587      0.000
-     -11    0    0      57.912     -0.965    -32.217      0.001
-     137    1  7 0.100000E+01 0.893413E+02
-       3    1    0     97.188
-      -4    0    3   -109.512
-       5    2    0       4.610    -27.802    -12.019      4.700
-      -5    0    3      19.564    -13.586     24.430      4.700
-      21    1    2     -43.272      7.478      7.954      0.000
-      11    0    0      43.580     19.617    -45.077      0.001
-     -12    0    0     -24.482     14.294     12.388      0.000
-     138    3  7 0.100000E+01 0.141181E+03
-       1    1    0    417.605
-      21    2    1   -229.651
-       5    2    0     -96.018    -63.752    -40.169      4.700
-      -5    0    3    -122.091    -70.023    129.618      4.700
-       2    3    0     103.489    115.690    -10.484      0.000
-      11    0    0     123.032     22.060    112.527      0.001
-     -12    0    0      -8.412     -3.975     -3.537      0.000
-     139    3  7 0.100000E+01 0.813022E+02
-       1    1    0   1287.126
-      21    2    1    -62.564
-       5    2    0      39.124     44.950     14.962      4.700
-      -5    0    3      21.989      6.816    -15.374      4.700
-       2    3    0     -68.451    -42.332     85.056      0.000
-      11    0    0      32.297    -26.124    919.495      0.001
-     -12    0    0     -24.960     16.690    220.424      0.000
-     140    2  7 0.100000E+01 0.121135E+03
-      21    2    1    168.646
-       1    1    0   -310.206
-       5    2    0      23.825    -71.679     30.110      4.700
-      -5    0    3     -79.150    -35.044     49.229      4.700
-       2    3    0       4.081     32.020     12.624      0.000
-      11    0    0      71.009     65.476   -165.587      0.001
-     -12    0    0     -19.765      9.226    -67.936      0.000
-     141    3  7 0.100000E+01 0.140771E+03
-       2    3    0    801.582
-      21    2    3   -160.936
-       5    2    0     -94.148    -99.600    -78.087      4.700
-      -5    0    1     -23.894     -8.314     24.600      4.700
-       1    1    0     104.779     -6.861     62.935      0.000
-      12    0    0      17.278     86.379    589.719      0.000
-     -11    0    0      -4.016     28.396     41.480      0.001
-     142    2  7 0.100000E+01 0.838942E+02
-      21    2    3    147.373
-      -3    0    1   -543.559
-      -5    0    1      20.778     38.706    -14.717      4.700
-       5    2    0      32.827     97.773     68.427      4.700
-      -4    0    3     -34.058   -122.733   -104.695      0.000
-     -11    0    0     -41.472     15.505   -244.935      0.001
-      12    0    0      21.924    -29.250   -100.266      0.000
-     143    3  7 0.100000E+01 0.927511E+02
-       2    1    0    614.163
-      21    2    3    -64.817
-       5    2    0     -63.956    -29.597     81.429      4.700
-      -5    0    3      65.335     33.082     11.731      4.700
-       1    1    0       0.816     42.675     13.799      0.000
-      12    0    0     -36.050    -45.986    256.598      0.000
-     -11    0    0      33.854     -0.174    185.788      0.001
-     144    3  7 0.100000E+01 0.818511E+02
-      -3    0    1    272.546
-      21    2    3    -85.404
-      -5    0    1      -9.451     32.456     19.800      4.700
-       5    2    0       5.398     38.103    -32.723      4.700
-      -4    0    3      -5.720    -82.258     52.383      0.000
-     -11    0    0      27.738     23.648     22.049      0.001
-      12    0    0     -17.965    -11.949    125.633      0.000
-     145    3  7 0.100000E+01 0.124388E+03
-       2    3    0    401.723
-      21    1    2   -342.077
-       5    3    0     -34.569    -16.526     35.463      4.700
-      -5    0    2     173.104    125.815   -125.897      4.700
-       1    1    0    -163.712    -17.795    -79.020      0.000
-      12    0    0      34.592    -85.758    231.350      0.000
-     -11    0    0      -9.415     -5.737     -2.249      0.001
-     146    1  7 0.100000E+01 0.121991E+03
-       1    1    0    193.287
-      -2    0    3   -213.107
-       5    2    0     -54.532    -74.508    -82.550      4.700
-      -5    0    3      55.752     -6.713    -30.582      4.700
-      21    1    2     -26.461     -6.969    -31.698      0.000
-      11    0    0     -12.740     -0.927     56.210      0.001
-     -12    0    0      37.981     89.117     68.800      0.000
-     147    2  7 0.100000E+01 0.864016E+02
-      21    2    3     76.944
-      -1    0    1  -1395.934
-      -5    0    1      33.107    -57.051    -19.553      4.700
-       5    2    0     -30.867      6.135     14.185      4.700
-      -2    0    3      -4.349     82.436    -38.616      0.000
-     -11    0    0     -29.446    -43.307   -702.180      0.001
-      12    0    0      31.555     11.786   -572.825      0.000
-     148    3  7 0.100000E+01 0.109373E+03
-      -1    0    1    300.542
-      21    1    2   -378.351
-      -5    0    2      69.746   -188.516   -185.235      4.700
-       5    3    0     -72.758     49.619     27.676      4.700
-      -2    0    3     -43.625     81.276    -78.402      0.000
-     -11    0    0      47.363     19.142    140.839      0.001
-      12    0    0      -0.726     38.479     17.313      0.000
-     149    1  7 0.100000E+01 0.893763E+02
-       1    1    0    231.217
-      -2    0    3    -76.671
-       5    2    0     -37.109      5.676     31.621      4.700
-      -5    0    3     -43.175     49.169     39.971      4.700
-      21    1    2      67.179    -18.114      8.640      0.000
-      11    0    0      11.166     16.067     49.601      0.001
-     -12    0    0       1.939    -52.798     24.713      0.000
-     150    2  7 0.100000E+01 0.221030E+03
-      21    2    3    227.830
-      -1    0    1   -701.597
-      -5    0    1      29.370    -13.072    -33.149      4.700
-       5    2    0       8.641    -47.129    -46.731      4.700
-      -2    0    3     167.521     72.196    145.272      0.000
-     -11    0    0    -127.480      0.364   -223.290      0.001
-      12    0    0     -78.052    -12.360   -315.870      0.000
-     151    1  7 0.100000E+01 0.106959E+03
-       1    1    0     58.357
-      -2    0    3   -235.846
-       5    2    0      26.519    -12.205    -29.317      4.700
-      -5    0    3      59.065     39.906    -50.277      4.700
-      21    1    2     -16.832    -12.014     -2.076      0.000
-      11    0    0     -33.232     33.389    -47.885      0.001
-     -12    0    0     -35.521    -49.076    -47.933      0.000
-     152    1  7 0.100000E+01 0.823058E+02
-      -1    0    1     99.105
-       2    3    0   -129.263
-      -5    0    2       2.153    -39.855    -36.006      4.700
-       5    3    0       4.619    -23.559     18.441      4.700
-      21    2    1       8.840     55.458     13.684      0.000
-     -11    0    0     -46.389     -4.972     -6.320      0.001
-      12    0    0      30.777     12.927    -19.956      0.000
-     153    1  7 0.100000E+01 0.135669E+03
-       1    1    0    186.134
-      -2    0    3   -155.691
-       5    2    0       4.766     21.290      1.372      4.700
-      -5    0    3     -68.701     99.240     -1.965      4.700
-      21    1    2      55.166    -11.619    -10.303      0.000
-      11    0    0      29.866    -59.132     54.407      0.001
-     -12    0    0     -21.097    -49.780    -13.068      0.000
-     154    3  7 0.100000E+01 0.983863E+02
-       2    2    0   2692.894
-      21    1    2   -628.733
-       5    3    0    -490.441     44.006   -211.840      4.700
-      -5    0    3    -145.568    172.802    201.254      4.700
-       3    1    0     650.118   -271.703    409.982      0.000
-      12    0    0     -48.434     36.010   1029.609      0.000
-     -11    0    0      34.324     18.886    635.156      0.001
-     155    3  7 0.100000E+01 0.102405E+03
-       1    1    0    315.848
-      21    3    2   -241.328
-       5    1    0       2.882     32.462    -27.485      4.700
-      -5    0    2     -72.645    157.930    -38.581      4.700
-       2    3    0      29.258   -141.618    -18.728      0.000
-      11    0    0      49.703    -57.109    160.906      0.001
-     -12    0    0      -9.197      8.335     -1.593      0.000
-     156    3  7 0.100000E+01 0.926057E+02
-       1    1    0     67.933
-      21    3    2   -210.018
-       5    1    0     -20.235    -10.322      5.796      4.700
-      -5    0    2       1.841     46.475     -8.158      4.700
-       2    3    0      57.668    -12.359    -62.368      0.000
-      11    0    0     -37.196     22.515    -22.588      0.001
-     -12    0    0      -2.078    -46.310    -54.768      0.000
-     157    2  7 0.100000E+01 0.858939E+02
-      21    3    2    238.182
-       1    1    0   -179.977
-       5    1    0      56.044     80.267     60.356      4.700
-      -5    0    2       3.380    -59.367     50.933      4.700
-       2    3    0     -54.611      8.889     52.743      0.000
-      11    0    0       4.976    -46.423   -116.935      0.001
-     -12    0    0      -9.789     16.634     11.108      0.000
-     158    3  7 0.100000E+01 0.934682E+02
-       1    1    0    344.161
-      21    3    2    -44.549
-       5    1    0      50.676     -5.349     59.186      4.700
-      -5    0    2     -24.118    -13.856      9.595      4.700
-       2    3    0      -0.051    -20.374     -9.556      0.000
-      11    0    0     -43.228     -7.451    123.992      0.001
-     -12    0    0      16.721     47.030    116.395      0.000
-     159    3  7 0.100000E+01 0.864181E+02
-       1    1    0    180.633
-      21    3    2   -180.086
-       5    1    0     -11.163    -32.232    -17.645      4.700
-      -5    0    2      -3.983     95.730   -102.750      4.700
-       2    3    0     -14.909    -53.619     26.365      0.000
-      11    0    0       2.727      1.561    -10.366      0.001
-     -12    0    0      27.328    -11.440    104.943      0.000
-     160    3  7 0.100000E+01 0.862553E+02
-       2    3    0     65.980
-      21    2    3   -190.293
-       5    2    0      44.740     15.968    -45.425      4.700
-      -5    0    1     -52.698    -17.616    -41.735      4.700
-       1    1    0      -8.016     28.437     -6.720      0.000
-      12    0    0       5.733     10.330     22.238      0.000
-     -11    0    0      10.241    -37.119    -52.672      0.001
-     161    3  7 0.100000E+01 0.103251E+03
-      -2    0    3    195.963
-      21    2    1   -239.600
-      -5    0    3     -15.791    -47.802    -25.199      4.700
-       5    2    0    -150.120      9.259    -41.369      4.700
-      -1    0    1     104.077     19.306    -23.384      0.000
-     -12    0    0      54.656    -22.605     40.662      0.000
-      11    0    0       7.178     41.843      5.651      0.001
-     162    1  7 0.100000E+01 0.972305E+02
-      -1    0    1     53.166
-       2    3    0   -256.255
-      -5    0    1       7.191     23.782     13.367      4.700
-       5    2    0      -2.118     41.552    -15.869      4.700
-      21    3    2     -18.617    -12.389    -15.362      0.000
-     -11    0    0      29.738    -29.005    -30.562      0.001
-      12    0    0     -16.194    -23.940   -154.663      0.000
-     163    3  7 0.100000E+01 0.876043E+02
-       3    1    0    196.357
-      21    2    1   -109.544
-       5    2    0      12.875     29.634    -11.717      4.700
-      -5    0    3      17.008    -89.861     20.954      4.700
-       4    3    0     -11.095     30.998    -26.765      0.000
-      11    0    0     -48.860     23.975     73.341      0.001
-     -12    0    0      30.073      5.254     31.001      0.000
-     164    2  7 0.100000E+01 0.818574E+02
-      21    3    2     94.583
-      -2    0    3   -187.277
-      -5    0    2     -25.984     54.094     36.279      4.700
-       5    1    0     -15.620    -22.537    -10.872      4.700
-      -1    0    1      32.387    -19.372     -2.424      0.000
-     -12    0    0      17.026    -32.368   -116.629      0.000
-      11    0    0      -7.810     20.183      0.951      0.001
-     165    2  7 0.100000E+01 0.867256E+02
-      21    3    2    187.702
-       1    1    0   -513.767
-       5    1    0     -62.776     22.744    -72.333      4.700
-      -5    0    2    -112.422   -106.203    -57.185      4.700
-       2    3    0     207.275     88.481    -15.276      0.000
-      11    0    0     -49.807    -35.533   -158.958      0.001
-     -12    0    0      17.730     30.510    -22.313      0.000
-     166    2  7 0.100000E+01 0.859189E+02
-      21    2    3    166.917
-      -1    0    1    -96.271
-      -5    0    1     -10.617    -27.425    -16.462      4.700
-       5    2    0       3.105     47.221    -31.789      4.700
-      -2    0    3      34.957     -7.084     20.328      0.000
-     -11    0    0     -50.387    -11.311     32.656      0.001
-      12    0    0      22.942     -1.402     65.912      0.000
-     167    2  7 0.100000E+01 0.859533E+02
-      21    2    1     76.740
-      -2    0    3   -125.952
-      -5    0    3     -21.402     12.014      0.637      4.700
-       5    2    0      -8.068     24.054     27.072      4.700
-      -1    0    1      23.316     -6.355      4.776      0.000
-     -12    0    0      -4.381    -29.501    -94.492      0.000
-      11    0    0      10.534     -0.212     12.794      0.001
-     168    1  7 0.100000E+01 0.879228E+02
-       2    3    0     54.949
-      -1    0    1   -535.988
-       5    2    0      -3.756     21.620     -1.699      4.700
-      -5    0    1      14.654     22.142    -22.025      4.700
-      21    3    2      23.985    -36.949     20.110      0.000
-      12    0    0       8.842    -27.604    -85.317      0.000
-     -11    0    0     -43.724     20.790   -392.107      0.001
-     169    2  7 0.100000E+01 0.240036E+03
-      21    2    1    111.711
-      -2    0    3   -660.377
-      -5    0    3      37.453      6.792     -2.303      4.700
-       5    2    0      18.419     13.417     13.762      4.700
-      -1    0    1     120.205    121.733   -133.702      0.000
-     -12    0    0    -154.114   -102.164   -388.752      0.000
-      11    0    0     -21.962    -39.777    -37.671      0.001
-     170    3  7 0.100000E+01 0.931551E+02
-       1    1    0   1018.651
-      21    2    1    -62.964
-       5    2    0      13.355    -55.558      1.253      4.700
-      -5    0    3     -43.470    -49.657     56.973      4.700
-       2    3    0       4.388     65.861     46.470      0.000
-      11    0    0      30.322      2.095    105.408      0.001
-     -12    0    0      -4.595     37.259    745.583      0.000
-     171    2  7 0.100000E+01 0.170534E+03
-      21    2    1    140.795
-      -2    0    3   -447.365
-      -5    0    3       8.359    -22.671    -21.638      4.700
-       5    2    0      44.380     66.927     17.946      4.700
-      -1    0    1     -49.530    106.091      9.806      0.000
-     -12    0    0     -15.729   -154.812   -292.287      0.000
-      11    0    0      12.520      4.465    -20.398      0.001
-     172    3  7 0.100000E+01 0.122794E+03
-       2    3    0    472.115
-      21    2    3    -70.019
-       5    2    0      39.851      3.456      1.060      4.700
-      -5    0    1       6.530    -21.070      7.721      4.700
-       1    1    0     -80.114    -68.834     56.655      0.000
-      12    0    0      42.043     73.585    331.230      0.000
-     -11    0    0      -8.309     12.863      5.431      0.001
-     173    2  7 0.100000E+01 0.936447E+02
-      21    2    1    192.163
-      -2    0    3  -1066.480
-      -5    0    3      76.664     99.818    -61.965      4.700
-       5    2    0      52.230     68.997     41.260      4.700
-      -1    0    1    -108.565   -212.276    -92.187      0.000
-     -12    0    0     -47.840     32.725   -423.310      0.000
-      11    0    0      27.511     10.736   -338.116      0.001
-     174    3  7 0.100000E+01 0.834748E+02
-      -1    0    1    354.852
-      21    2    3    -66.989
-      -5    0    1     -18.573     -8.515     -9.963      4.700
-       5    2    0       8.822    -36.205    -22.130      4.700
-      -2    0    3      -4.233     27.248      3.241      0.000
-     -11    0    0       2.226    -28.469    186.808      0.001
-      12    0    0      11.757     45.941    129.908      0.000
-     175    1  7 0.100000E+01 0.903488E+02
-       1    1    0     79.812
-      -2    0    3   -778.965
-       5    1    0     -47.702    -40.333    -56.313      4.700
-      -5    0    2      40.199     38.836     38.451      4.700
-      21    2    3      32.831    -30.972    -42.497      0.000
-      11    0    0     -20.220     -5.265    -45.945      0.001
-     -12    0    0      -5.109     37.732   -592.850      0.000
-     176    3  7 0.100000E+01 0.127992E+03
-       2    3    0    318.481
-      21    1    2   -183.689
-       5    3    0      45.476    -36.938    -48.790      4.700
-      -5    0    2      73.801     32.739    -22.953      4.700
-       1    1    0     -38.545     62.484    -24.466      0.000
-      12    0    0     -96.315    -58.789    200.404      0.000
-     -11    0    0      15.583      0.504     30.598      0.001
-     177    3  7 0.100000E+01 0.134236E+03
-      -2    0    3    404.702
-      21    3    2    -90.742
-      -5    0    2      50.792     10.429     -1.603      4.700
-       5    1    0      73.998     71.743     51.587      4.700
-      -1    0    1     -56.918      1.169     47.046      0.000
-     -12    0    0     -38.268    -53.173     51.287      0.000
-      11    0    0     -29.604    -30.167    165.644      0.001
-     178    3  7 0.100000E+01 0.154019E+03
-       2    3    0    679.057
-      21    1    2   -329.232
-       5    3    0    -196.693    199.226   -195.808      4.700
-      -5    0    2      -4.641    -22.810     -2.797      4.700
-       1    1    0      73.986   -144.212    174.863      0.000
-      12    0    0      97.350    -19.718    350.820      0.000
-     -11    0    0      29.998    -12.486     22.747      0.001
-     179    1  7 0.100000E+01 0.825499E+02
-      -4    0    3    149.371
-       3    1    0    -97.726
-      -5    0    3     -26.752     26.019     -1.797      4.700
-       5    2    0      -8.122    -58.207      8.332      4.700
-      21    1    2      51.425     23.626     15.998      0.000
-     -12    0    0      14.858    -20.423     39.701      0.000
-      11    0    0     -31.410     28.985    -10.590      0.001
-     180    2  7 0.100000E+01 0.870903E+02
-      21    2    1     25.523
-      -2    0    3  -1630.254
-      -5    0    3     -34.567     30.883    -38.348      4.700
-       5    2    0       9.637    -21.293    -27.417      4.700
-      -1    0    1      -6.814    -20.068     -3.787      0.000
-     -12    0    0      12.102     31.051  -1331.585      0.000
-      11    0    0      19.642    -20.573   -203.593      0.001
-     181    3  7 0.100000E+01 0.168807E+03
-       2    3    0    513.649
-      21    1    2    -91.549
-       5    3    0     105.602     23.421      7.966      4.700
-      -5    0    2      12.849     16.525     -7.574      4.700
-       1    1    0      29.072    -23.648     31.678      0.000
-      12    0    0    -135.225    -24.718    385.440      0.000
-     -11    0    0     -12.297      8.419      4.590      0.001
-     182    3  7 0.100000E+01 0.260981E+03
-       2    3    0   1501.986
-      21    2    3   -347.702
-       5    2    0      90.940     80.125   -107.810      4.700
-      -5    0    1       7.439   -100.230    -87.162      4.700
-       1    1    0     139.076     92.621    -12.826      0.000
-      12    0    0    -201.389    -88.700   1185.170      0.000
-     -11    0    0     -36.067     16.183    176.912      0.001
-     183    2  7 0.100000E+01 0.984604E+02
-      21    3    2    136.269
-       3    1    0   -202.672
-       5    1    0      36.724    -81.056     54.918      4.700
-      -5    0    2      24.366      6.116     24.090      4.700
-       4    3    0     -45.319     20.364    -21.702      0.000
-      11    0    0       6.715     50.665    -70.911      0.001
-     -12    0    0     -22.485      3.911    -52.797      0.000
-     184    3  7 0.100000E+01 0.818684E+02
-      -2    0    3    753.908
-      21    3    2   -198.078
-      -5    0    2     316.548    -65.180    176.911      4.700
-       5    1    0     -27.539    -29.305     16.500      4.700
-      -1    0    1    -276.248    102.994    192.669      0.000
-     -12    0    0      32.683    -10.525     70.120      0.000
-      11    0    0     -45.443      2.017     99.630      0.001
-     185    2  7 0.100000E+01 0.853612E+02
-      21    3    2     89.003
-       1    1    0   -280.070
-       5    1    0     -17.239    -17.023     -4.587      4.700
-      -5    0    2     -49.719    -17.529     25.944      4.700
-       2    3    0      54.691     60.414    -34.254      0.000
-      11    0    0       3.301     -2.237   -170.035      0.001
-     -12    0    0       8.966    -23.624     -8.134      0.000
-     186    3  7 0.100000E+01 0.833363E+02
-      -1    0    1    220.382
-      21    1    2    -87.167
-      -5    0    2     -14.218     18.268     -7.577      4.700
-       5    3    0     -44.156     17.656      6.740      4.700
-      -2    0    3      48.816    -16.268    -23.185      0.000
-     -11    0    0     -15.274    -40.533    125.073      0.001
-      12    0    0      24.833     20.877     32.163      0.000
-     187    3  7 0.100000E+01 0.126884E+03
-       2    2    0    124.338
-      21    1    2   -184.748
-       5    3    0      41.358     -6.386     13.461      4.700
-      -5    0    3     -11.449     92.724     13.086      4.700
-       1    1    0     -19.534     11.256    -17.350      0.000
-      12    0    0      10.536    -72.537     -9.953      0.000
-     -11    0    0     -20.911    -25.058    -59.654      0.001
-     188    3  7 0.100000E+01 0.386122E+03
-       1    1    0   1147.309
-      21    3    2   -323.049
-       5    1    0     -28.406    -75.369    -54.492      4.700
-      -5    0    2     147.886   -203.642    -75.662      4.700
-       2    3    0     -78.728    -96.438     64.494      0.000
-      11    0    0      -0.452    295.349    707.794      0.001
-     -12    0    0     -40.299     80.101    182.127      0.000
-     189    2  7 0.100000E+01 0.104828E+03
-      21    1    2     81.849
-       2    3    0   -197.551
-       5    3    0     -18.443     76.118      5.647      4.700
-      -5    0    2      12.727    -23.016    -22.972      4.700
-       1    1    0     -26.394      5.981     -2.556      0.000
-      12    0    0      12.353    -56.472   -102.180      0.000
-     -11    0    0      19.757     -2.610      6.358      0.001
-     190    3  7 0.100000E+01 0.122787E+03
-      -1    0    1    441.188
-      21    1    2   -131.450
-      -5    0    2     -40.948     39.765    -53.308      4.700
-       5    3    0     -56.833     28.482     -3.186      4.700
-      -2    0    3       4.995    -68.479     33.364      0.000
-     -11    0    0      33.291     22.474     49.059      0.001
-      12    0    0      59.496    -22.242    283.808      0.000
diff --git a/Generators/AlpGen_i/share/inparmAlpGen.dat b/Generators/AlpGen_i/share/inparmAlpGen.dat
deleted file mode 100755
index e28e229f1c8f2eb8fc2990f704c1992a75774388..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/share/inparmAlpGen.dat
+++ /dev/null
@@ -1,48 +0,0 @@
- W b bbar + 1 jets
- W-> ell nu
- =======================================
-  b mass:  4.7
- Generation cuts for the partonic event sample:
-      Light jets:
- ptmin=  20. |etamax|=  1. dR(j-j),dR(Q-j)>  0.7
-  b quarks:
- ptmin=  20. |etamax|=  1. dR(QQ)>  0.7
-      Leptons:
- ptmin(lep)=  0. |etamax|=  10. Et(miss)>  0. dR(l-j)>  0.
-************** run parameters 
-   1 ! hard process code
-   0.000   4.700 174.300  80.419  91.188 120.000 ! mc,mb,mt,mw,mz,mh
- 2 -1.  ! ih2
- 3  7000.  ! ebeam
- 4  5.  ! ndns
- 5  1.  ! iqopt
- 6  1.  ! qfac
- 7  0.  ! ickkw
- 10  1.  ! njets
- 11  5.  ! ihvy
- 20  0.  ! mc
- 21  4.7  ! mb
- 30  20.  ! ptjmin
- 31  20.  ! ptbmin
- 33  0.  ! ptlmin
- 34  0.  ! metmin
- 40  1.  ! etajmax
- 41  1.  ! etabmax
- 43  10.  ! etalmax
- 50  0.7  ! drjmin
- 51  0.7  ! drbmin
- 55  0.  ! drlmin
- 90  12345.  ! iseed1
- 91  67890.  ! iseed2
- 151  1.  ! iwdecmod
- 160  1.  ! cluopt
- 190  12345.  ! iseed3
- 191  67890.  ! iseed4
- 501    0.        ! min ETCLUS used for parton-jet matching
- 502    0.        ! min RCLUS value for parton-jet matching
- 503    6.        ! max ETACLUS value for parton-jet matching
- 504    0.        ! 0 inclusive 1 exclusive
-
-************** end parameters 
-               0.38348200               0.01238310  ! Crosssection +- error (pb)
- 190  495.460022 ! unwtd events, lum (pb-1)
diff --git a/Generators/AlpGen_i/share/jobOptions.AlpgenHerwig.py b/Generators/AlpGen_i/share/jobOptions.AlpgenHerwig.py
deleted file mode 100755
index 93ce449f7d8eb9e17a2a507299d1414ba191136f..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/share/jobOptions.AlpgenHerwig.py
+++ /dev/null
@@ -1,54 +0,0 @@
-##############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-# make sure we are loading the ParticleProperty service
-from PartPropSvc.PartPropSvcConf import PartPropSvc
-ServiceMgr += PartPropSvc()
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-ServiceMgr.MessageSvc.OutputLevel = DEBUG
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["HERWIG 330020611 841000366", "HERWIG_INIT 824021 3247532"]
-# AtRndmGenSvc.ReadFromFile = true;
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Herwig_i.Herwig_iConf import Herwig
-job += Herwig()
-job.Herwig.HerwigCommand = ["iproc alpgen 12","modpdf 10042", "autpdf HWLHAPDF", "msflag 1", "jmbug 0"]
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
-
diff --git a/Generators/AlpGen_i/share/jobOptions.AlpgenPythia.py b/Generators/AlpGen_i/share/jobOptions.AlpgenPythia.py
deleted file mode 100755
index d9214b00877fcc0988ffce596af6e90ed87e6517..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/share/jobOptions.AlpgenPythia.py
+++ /dev/null
@@ -1,55 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-# make sure we are loading the ParticleProperty service
-from PartPropSvc.PartPropSvcConf import PartPropSvc
-ServiceMgr += PartPropSvc()
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Pythia_i.Pythia_iConf import Pythia
-job += Pythia()
-job.Pythia.PythiaCommand = ["pyinit user alpgen", "pyinit pylistf 1","pyinit dumpr 1 1"]
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
-
diff --git a/Generators/AlpGen_i/src/initalpgen.F b/Generators/AlpGen_i/src/initalpgen.F
deleted file mode 100755
index 244adeaf8031ff1f6abd5e64bd87d2a902d97233..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/src/initalpgen.F
+++ /dev/null
@@ -1,418 +0,0 @@
-C----------------------------------------------------------------------
-      SUBROUTINE INITALPGEN
-C----------------------------------------------------------------------
-C     HERWIG/PYTHIA UNIVERSAL EVENT INITIALITION ROUTINE
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-#include "AlpGen_i/alpsho.inc"
-      CHARACTER *3 CSHO
-C--   GUP Event common block
-#include "GeneratorFortranCommon/hepeup.inc"
-C--   GUP common block
-#include "GeneratorFortranCommon/heprup.inc"
-C     CALSIM AND JET VARIABLES
-C      INTEGER NCY,NCPHI,NJMAX,JETNO,NCJET
-      INTEGER NCY,NCPHI
-      DOUBLE PRECISION YCMIN,YCMAX,PI,ET,DELPHI,CPHCAL,SPHCAL,DELY,
-     &         CTHCAL,STHCAL
-C     &         CTHCAL,STHCAL,PCJET,ETJET
-      PARAMETER (NCY=100)
-      PARAMETER (NCPHI=60,PI=3.141593D0)
-      COMMON/CALOR_M/DELY,DELPHI,ET(NCY,NCPHI),
-     $     CTHCAL(NCY),STHCAL(NCY),CPHCAL(NCPHI),SPHCAL(NCPHI),YCMIN
-     $     ,YCMAX
-C
-      INTEGER IEND,INORAD
-      COMMON/SHVETO/IEND,INORAD(MAXNUP)
-C     LOCAL VARIABLES
-      CHARACTER*70 STDUMMY
-      INTEGER I,NTMP,IHEPMIN
-      DOUBLE PRECISION TMP
-      DOUBLE PRECISION PBEAM1,PBEAM2
-C     USER ACCESS TO MATCHING PARAMETERS
-      INTEGER IUSRMAT
-      PARAMETER (IUSRMAT=1)
-c -- oj (ver206 backword compatibility)
-      INTEGER IVER206
-      DOUBLE PRECISION VETCLUS,VRCLUS
-
-C
-c Open the file with the input parameters
-      FILENAME = 'inparmAlpGen.dat'
-      NUNITINI=71
-      OPEN(UNIT=NUNITINI,FILE=FILENAME,STATUS='OLD',ERR=900)
-c Open the file with the unweighted alpgen events
-      FILENAME = 'alpgen.unw_events'
-      NUNIT=72
-      OPEN(UNIT=NUNIT,FILE=FILENAME,STATUS='OLD',ERR=901)
-C      WRITE(*,*) 'INPUT NAME OF FILE CONTAINING EVENTS'
-C      WRITE(*,*) '(FOR "file.unw" ENTER "file")'
-C      READ(*,*) FILENAME
-C      CALL STRCATH(FILENAME,'.unw',TMPSTR)
-C      call GETUNIT(NUNIT)
-C      OPEN(UNIT=NUNIT,FILE=TMPSTR,STATUS='OLD')
-C      CALL STRCATH(FILENAME,'_unw.par',TMPSTR)
-C      CALL GETUNIT(NUNITINI)
-C      OPEN(UNIT=NUNITINI,FILE=TMPSTR,STATUS='OLD')
-C     OPEN A LOG FILE
-C      CALL ALSHCD(CSHO)
-C      IF(CSHO.EQ.'HER') THEN
-C        CALL STRCATH(FILENAME,'.her-log',TMPSTR)
-C      ELSE
-C        CALL STRCATH(FILENAME,'.pyt-log',TMPSTR)
-C      ENDIF
-C      CALL GETUNIT(NUNITOUT)
-C      OPEN(UNIT=NUNITOUT,FILE=TMPSTR,STATUS='UNKNOWN')
-C     START READING FILE
-      DO I=1,10000
-        READ(NUNITINI,'(A)') STDUMMY
-        IF(STDUMMY(1:4).EQ.'****') GOTO 10
-        WRITE(*,*) STDUMMY
-C         WRITE(NUNITOUT,*) STDUMMY
-      ENDDO
-C
-C     READ IN INPUT PARAMETERS
- 10   READ(NUNITINI,*) IHRD
-C
-c     IF(IHRD.EQ.12) THEN
-c     WRITE(*,*) 'HJET PROCESSES NOT AVAILABLE AS YET'
-c     STOP
-c     ENDIF
-      READ(NUNITINI,*) MC,MB,MT,MW,MZ,MH
-      IVER206 = 1
-      DO I=1,1000
-        READ(NUNITINI,*,ERR=20) NTMP,TMP
-        IF(NTMP.LE.200.AND.NTMP.GE.1) THEN
-           PARVAL(NTMP)=TMP
-        ENDIF
-c-- BC
-        IF (NTMP.EQ.501) ETCLUS = TMP
-        IF (NTMP.EQ.502) RCLUS = TMP
-        IF (NTMP.EQ.503) ETACLMAX = TMP
-        IF (NTMP.EQ.504) THEN
-c -- oj
-           IEXC = TMP
-           IVER206 = 0
-        ENDIF
-
-c-- BC END
-      ENDDO
- 20   CONTINUE
-
-      IF (IVER206.EQ.1) THEN
-         WRITE(*,*) 'PARAMETERS USED AS V2.06 (=BACKWARD COMPATIBILITY)'
-         IEXC = ETACLMAX
-         ETACLMAX = PARVAL(40)+PARVAL(50) ! ETAJMAX+DRJMIN
-      ENDIF
-
-      READ(NUNITINI,*) AVGWGT,ERRWGT
-      READ(NUNITINI,*) UNWEV,TOTLUM
-      CLOSE(NUNITINI)
-C      WRITE(NUNITOUT,*) " "
-C      WRITE(NUNITOUT,*) "INPUT CROSS SECTION (PB):",AVGWGT," +/-",ERRWGT
-C      WRITE(NUNITOUT,*) "NUMBER OF INPUT EVENTS:",UNWEV
-C      WRITE(NUNITOUT,*) "INTEGRATED LUMINOSITY:",TOTLUM
-C     WRITE PARAMETER VALUES
-      CALL AHSPAR
-      PBEAM1=DBLE(EBEAM)
-      PBEAM2=DBLE(EBEAM)
-      IH1=1
-C     CONVERT PDF TYPES
-      CALL PDFCONVH(NDNS,NTMP,PDFTYP)
-C     DEFINE RANGE FOR PARTONS TO BE USED IN MATCHING
-      NLJETS=PARVAL(10)     !  NJETS
-      DO I=1,MAXNUP
-        INORAD(I)=0
-      ENDDO
-      CALL ALSHCD(CSHO)
-      IF(CSHO.EQ.'HER') THEN
-        NPFST=149
-        NPLST=149
-C     HERWIG: ALL SHOWERS ORIGINATE FROM IHEP=6
-        IEND=6
-C     HERWIG: HEPEVT EVENT RECORD FOR FINAL STATE STARTS AT 7=6+1
-        IHEPMIN=6
-      ELSE
-        NPFST=1
-        NPLST=1
-C     PYTHIA: ALL SHOWERS ORIGINATE FROM IHEP=O
-        IEND=0
-C     PYTHIA: HEPEVT EVENT RECORD FOR FINAL STATE STARTS AT 1=0+1
-        IHEPMIN=0
-        IDPRUP=661
-      ENDIF
-      IF(IHRD.LE.2) THEN
-C        NLJETS=NPART-6
-        NJSTART=4
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM THE W
-        INORAD(IHEPMIN+2+NLJETS+1)=1
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM HEAVY QUARK
-C     PAIR
-        INORAD(IHEPMIN+1)=1
-        INORAD(IHEPMIN+2)=1
-      ELSEIF(IHRD.LE.4) THEN
-C        NLJETS=NPART-4
-        NJSTART=2
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM THE W
-        IF(CSHO.EQ.'HER'.AND.NLJETS.EQ.0) THEN
-C     ALLOW RADIATION FROM IHEPMIN+1 IN HERWIG WHEN NJET=0
-          INORAD(IHEPMIN+NLJETS+1)=0
-        ELSE
-          INORAD(IHEPMIN+NLJETS+1)=1
-        ENDIF
-      ELSEIF(IHRD.EQ.5) THEN
-C        NLJETS=NPART-3*(NW+NZ)-NH-2
-        NJSTART=2
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM THE W
-        IF(CSHO.EQ.'HER'.AND.NLJETS.EQ.0.AND.(NW+NZ+NH+NPH).EQ.1) THEN
-C     ALLOW RADIATION FROM IHEPMIN+1 IN HERWIG WHEN NJET=0 AND NW+NZ+NH
-C     +NPH=1
-          INORAD(IHEPMIN+NLJETS+1)=0
-        ELSE
-          DO I=1,NW+NZ+NH+NPH
-            INORAD(IHEPMIN+NLJETS+I)=1
-          ENDDO
-        ENDIF
-      ELSEIF(IHRD.EQ.6) THEN
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM HEAVY QUARK
-C     PAIR
-C     NLJETS=NPART-8  (IHVY.EQ.6)     NLJETS=NPART-4  (IHVY.LT.6)
-        INORAD(IHEPMIN+1)=1
-        INORAD(IHEPMIN+2)=1
-        NJSTART=4
-        NJLAST=155
-      ELSEIF(IHRD.EQ.9) THEN
-C     NLJETS=NPART-2
-        NJSTART=2
-        NJLAST=155
-      ELSEIF(IHRD.EQ.10) THEN
-C        NLJETS=NPART-4
-        NJSTART=3
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM THE W
-        INORAD(IHEPMIN+NLJETS+1+1)=1
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM THE CHARM
-        INORAD(IHEPMIN+1)=1
-      ELSEIF(IHRD.EQ.11) THEN
-C        NLJETS=NPART-2-NPH
-        NJSTART=2
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING THE HARD PHOTONS
-        DO I=1,NPH
-          INORAD(IHEPMIN+NLJETS+I)=1
-        ENDDO
-      ELSEIF(IHRD.EQ.12) THEN
-C        NLJETS=NPART-2-NH
-        NJSTART=2
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING THE HIGGS DECAY PRODUCTS
-        IF(NLJETS+NH.GT.1) THEN
-          DO I=1,NH
-            INORAD(IHEPMIN+NLJETS+I)=1
-          ENDDO
-        ELSE
-          IF(CSHO.EQ.'HER'.AND.NLJETS.EQ.0) THEN
-C     ALLOW RADIATION FROM IHEPMIN+1 IN HERWIG WHEN NJET=0
-            INORAD(IHEPMIN+1)=0
-          ELSE
-            INORAD(IHEPMIN+NLJETS+1)=1
-          ENDIF
-        ENDIF
-      ELSEIF(IHRD.EQ.14) THEN
-C        NLJETS=NPART-4-NPH
-        NJSTART=2
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM THE W
-        IF(CSHO.EQ.'HER'.AND.NLJETS.EQ.0.AND.NPH.EQ.0) THEN
-C     ALLOW RADIATION FROM IHEPMIN+1 IN HERWIG WHEN NJET=0
-          INORAD(IHEPMIN+NLJETS+1)=0
-        ELSE
-          INORAD(IHEPMIN+NLJETS+1)=1
-        ENDIF
-      ELSEIF(IHRD.EQ.15) THEN
-C        NLJETS=NPART-6-NPH
-        NJSTART=2
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM THE W
-        INORAD(IHEPMIN+2+NLJETS+NPH+1)=1
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM HEAVY QUARK
-C     PAIR
-C     NOTICE THAT HERE THE LIGHT JETS PRECEDE THE QQ PAIR
-        INORAD(IHEPMIN+NLJETS+1)=1
-        INORAD(IHEPMIN+NLJETS+2)=1
-      ELSEIF(IHRD.EQ.16) THEN
-C     DO NOT INCLUDE IN MATCHING RADIATION ORIGINATING FROM HEAVY QUARK
-C     PAIR
-C     NLJETS=NPART-8  (IHVY.EQ.6)     NLJETS=NPART-4  (IHVY.LT.6)
-        INORAD(IHEPMIN+1)=1
-        INORAD(IHEPMIN+2)=1
-        NJSTART=4
-        NJLAST=155
-C     DO NOT INCLUDE IN MATCHING THE HARD PHOTONS
-        DO I=1,NPH
-          INORAD(IHEPMIN+2+NLJETS+I)=1
-        ENDDO
-      ENDIF
-C
-C     INPUT JET MATCHING CRITERIA
-C
-      IF(ICKKW.EQ.1) THEN
-        WRITE(*,*) ' '
-        WRITE(*,*) 'based on interface of v2.11 '
-        WRITE(*,*) 'INPUT 0 FOR INCLUSIVE JET SAMPLE, 1 FOR EXCLUSIVE'
-        WRITE(*,*) '(SELECT 0 FOR HIGHEST PARTON MULTIPLICITY SAMPLE)'
-        WRITE(*,*) '(SELECT 1 OTHERWISE)'
-        WRITE(*,*) 'IEXC = ',IEXC
-Cbc        READ(*,*) IEXC
-        IF(NLJETS.GT.0) THEN
-          WRITE(*,*) 'INPUT ET(CLUS), R(CLUS), ETACLMAX'
-C --oj          ETCLUS=MAX(PTJMIN+5,1.2*PTJMIN)
-C --oj          RCLUS=DRJMIN
-          VETCLUS=MAX(PTJMIN+5,1.2D0*PTJMIN)
-          VRCLUS=DRJMIN
-C -- oj          WRITE(*,*) '(SUGGESTED VALUES:',ETCLUS,RCLUS,ETAJMAX,')'
-          WRITE(*,*) '(SUGGESTED VALUES:',VETCLUS,VRCLUS,ETAJMAX,')'
-Cbc          READ(*,*) ETCLUS,RCLUS,ETACLMAX
-        ELSEIF(NLJETS.EQ.0) THEN
-          WRITE(*,*) 'INPUT ET(CLUS), R(CLUS), ETACLMAX'
-          WRITE(*,*) '(MUST MATCH VALUES USED IN PROCESSING',
-     +         ' OF NJET>0 EVENTS; THESE DEFAULT TO:'
-          WRITE(*,*)
-     +         'ETCLUS=MAX(PTJMIN+5,1.2*PTJMIN) RCLUS=DRJMIN, ',
-     +         ' ETACLMAX=ETAJMAX)'
-Cbc          READ(*,*) ETCLUS,RCLUS,ETACLMAX
-        ENDIF
-        WRITE(*,*) ' '
-        WRITE(*,*) 'JET PARAMETERS FOR MATCHING:'
-        WRITE(*,*) 'ET>',ETCLUS,' ETACLUS<',ETACLMAX,' R=',RCLUS
-        WRITE(*,*) 'DR(PARTON-JET)<',1.5*RCLUS
-      ENDIF
-C
-C     CALORIMETER ETA RANGE
-C     YCMAX=ETAJMAX+DRJMIN
-      YCMAX=ETACLMAX+RCLUS      ! MLM August 24
-      YCMIN=-YCMAX
-C     FROM NOW ON, PROCESS THE INFORMATION READ IN, TO COMPLETE SETTING
-C     UP THE GUP COMMON
-C
-C--   SET UP THE BEAMS
-C--   ID'S OF BEAM PARTICLES
-      IF(IH1.EQ.1) THEN
-        IDBMUP(1) = 2212
-      ELSEIF(IH1.EQ.-1) THEN
-        IDBMUP(1) =-2212
-      ELSE
-        WRITE(*,*) 'BEAM 1 NOT PROPERLY INITIALISED, STOP'
-        STOP
-      ENDIF
-      IF(IH2.EQ.1) THEN
-        IDBMUP(2) = 2212
-      ELSEIF(IH2.EQ.-1) THEN
-        IDBMUP(2) =-2212
-      ELSE
-        WRITE(*,*) 'BEAM 2 NOT PROPERLY INITIALISED, STOP'
-        STOP
-      ENDIF
-      EBMUP(1) = ABS(PBEAM1)
-      EBMUP(2) = ABS(PBEAM2)
-C--   PDF'S FOR THE BEAMS; WILL BE EVALUATED USING THE NDNS VARIABLE
-C     READ IN EARLIER
-      PDFGUP(1) = -1
-      PDFGUP(2) = -1
-      PDFSUP(1) = -1
-      PDFSUP(2) = -1
-C--   WHAT DO DO WITH THE WEIGHTS(WE ARE GENERATING UNWEIGHTED EVENTS)
-      IDWTUP = 3
-C--   ONLY ONE PROCESS
-      NPRUP  = 1
-C--   CROSS SECTION
-      XSECUP(1) = avgwgt
-C--   ERROR ON THE CROSS SECTION
-      XERRUP(1) = errwgt
-C--   MAXIMUM WEIGHT
-      XMAXUP(1) = avgwgt
-C--   HERWIG/PYTHIA SPECIFIC PART
-      CALL ALSHIN(I)
-      LPRUP(1) = I
-      RETURN
-
- 900  WRITE (*,*)
-     &        'INITALPGEN: File inparmAlpGen.dat could not be opened'
- 901  WRITE (*,*)
-     &        'INITALPGEN: File alpgen.unw_events could not be opened'
-      STOP
-
-      END
-
-c-------------------------------------------------------------------
-      subroutine AHspar
-c     set list of parameters types and assign default values
-c-------------------------------------------------------------------
-      implicit none
-#include "AlpGen_i/alpsho.inc"
-c
-      ih2=parval(2)
-      ebeam=parval(3)
-      ndns=parval(4)
-      ickkw=parval(7)
-      ihvy=parval(11)
-      ihvy2=parval(12)
-      nw=parval(13)
-      nz=parval(14)
-      nh=parval(15)
-      nph=parval(16)
-      ptjmin=parval(30)
-      ptbmin=parval(31)
-      ptcmin=parval(32)
-      ptlmin=parval(33)
-      metmin=parval(34)
-      ptphmin=parval(35)
-      etajmax=parval(40)
-      etabmax=parval(41)
-      etacmax=parval(42)
-      etalmax=parval(43)
-      etaphmax=parval(44)
-      drjmin=parval(50)
-      drbmin=parval(51)
-      drcmin=parval(52)
-      drlmin=parval(55)
-      drphjmin=parval(56)
-      drphlmin=parval(57)
-      drphmin=parval(58)
-      mllmin=parval(61)
-      mllmax=parval(62)
-      itopprc=parval(102)
-c
-      end
-
-c-------------------------------------------------------------------
-      subroutine pdfconvH(nin,nout,type)
-c-------------------------------------------------------------------
-c converts ALPHA convention for PDF namings to hvqpdf conventions
-      implicit none
-      integer nin,nout
-      character*25 type
-      character*25 pdftyp(20,2)
-      data pdftyp/
-c cteq sets
-     $     'CTEQ4M ','CTEQ4L ','CTEQ4HJ',
-     $     'CTEQ5M ','CTEQ5L ','CTEQ5HJ',
-     $     'CTEQ6M ','CTEQ6L ',12*' ',
-C MRST SETS
-     $     'MRST99 ',
-     $     'MRST01; as=0.119','MRST01; as=0.117','MRST01; as=0.121'
-     $     ,'MRST01J; as=0.121','MRST02LO',14*' '/
-      integer pdfmap(20,2)
-      data pdfmap/
-     $   81,83,88,   101,103, 104,   131,133, 12*0,
-     $  111,  185,186,187,188,189,   14*0/
-c
-      nout=pdfmap(mod(nin ,100),1+nin /100)
-      type=pdftyp(mod(nin ,100),1+nin /100)
-
-      end
-
-
diff --git a/Generators/AlpGen_i/src/usealpgen.F b/Generators/AlpGen_i/src/usealpgen.F
deleted file mode 100755
index 708d6e6d2a4c7468308f82137f82d82e3463c13c..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/src/usealpgen.F
+++ /dev/null
@@ -1,705 +0,0 @@
-
-C     DECK  ID&gt;, UPEVNT.
-C*     CMZ :-           -13/02/02  07.20.46  by  Peter Richardson
-C*--   Author :    Michelangelo Mangano
-C----------------------------------------------------------------------
-      SUBROUTINE USEALPGEN
-C----------------------------------------------------------------------
-c     Puts Alpgen event into GUPI common block HEPEU
-c----------------------------------------------------------------------
-      implicit none
-#include "AlpGen_i/alpsho.inc"
-C--   GUP Event common block
-#include "GeneratorFortranCommon/hepeup.inc"
-C--   GUP Run common block
-#include "GeneratorFortranCommon/heprup.inc"
-c
-c     local variables
-C      INTEGER INIT
-C      DATA INIT/0/
-C      CHARACTER *3 CSHO
-      INTEGER MAXPAR
-      PARAMETER (MAXPAR=100)
-      INTEGER NEV,IPROC,IFL(MAXPAR)
-      REAL SQ,SP(3,MAXPAR),SM(MAXPAR),SWGTRES
-      INTEGER I,IUP,IWCH,IST
-C      REAL *8 TMP,WGTRES
-      REAL *8 TMP
-C     LOCAL VARIABLES FOR TOP DECAYS
-      INTEGER IT,ITB,IW,IWDEC,IBUP,IWUP
-C     LOCAL VARIABLES TOP HIGGS DECAYS
-C      INTEGER IH
-C     LOCAL VARIABLES FOR GAUGE BOSON  DECAYS
-      INTEGER IVSTART,IVEND,NVB
-C
-
-C...=======================================================
-C...HEPEVT Common block (05.16.2011, Soshi.Tsuno@cern.ch)
-      INTEGER NMXHEP
-      PARAMETER (NMXHEP=10000)
-      REAL*8  phep,  vhep ! to be real*4/ *8  depending on host
-      INTEGER nevhep,nhep,isthep,idhep,jmohep,
-     $        jdahep
-      COMMON /hepevt/
-     $      nevhep,               ! serial number
-     $      nhep,                 ! number of particles
-     $      isthep(nmxhep),   ! status code
-     $      idhep(nmxhep),    ! particle ident KF
-     $      jmohep(2,nmxhep), ! parent particles
-     $      jdahep(2,nmxhep), ! childreen particles
-     $      phep(5,nmxhep),   ! four-momentum, mass [GeV]
-     $      vhep(4,nmxhep)    ! vertex [mm]
-      SAVE /hepevt/
-
-C...random number
-      integer imode,itau1,itau2,itau3
-      real*8 polz0
-      real*8 pyr
-      external pyr
-
-      real*8 plzapx
-      external plzapx
-C...=======================================================
-
-
-      integer istg
-      common /evtcon/ istg
-      istg=0
-C
-C UPDATE MAXIMUM NMBER OF ALLOWED ERRORS
-      CALL ALSHER(I)
-C
-      IST=0
-C     INPUT EVENT NUMBER, PROCESS TYPE, N PARTONS, SAMPLE'S AVERAGE
-C     WEIGHT AND QSCALE
-      READ(NUNIT,2,END=500,ERR=501) NEV,IPROC,NPART,SWGTRES,SQ
- 2    FORMAT(I8,1X,I4,1X,I2,2(1X,E12.6))
-C     FLAVOUR, COLOUR AND Z-MOMENTUM OF INCOMING PARTONS
-      READ(NUNIT,8) IFL(1),ICOLUP(1,1),ICOLUP(2,1),SP(3,1)
-      READ(NUNIT,8) IFL(2),ICOLUP(1,2),ICOLUP(2,2),SP(3,2)
-C     FLAVOUR, COLOUR, 3-MOMENTUM AND MASS OF OUTGOING PARTONS
-      DO I=3,NPART
-        READ(NUNIT,9) IFL(I),ICOLUP(1,I),ICOLUP(2,I),SP(1,I),SP(2,I)
-     $       ,SP(3,I),SM(I)
-      ENDDO
- 8    FORMAT(I8,1X,2(I4,1X),F10.3)
- 9    FORMAT(I8,1X,2(I4,1X),4(1X,F10.3))
-C
-C     START PROCESSING INPUT DATA
-C
-C     SCALES AND WEIGHTS
-      SCALUP=DBLE(SQ)
-      IF(IDWTUP.EQ.3) THEN
-         XWGTUP=DBLE(SWGTRES)   !AVGWGT
-      ELSE
-        WRITE(*,*) 'ONLY UNWEIGHTED EVENTS ACCEPTED AS INPUT, STOP'
-        STOP
-      ENDIF
-c
-c---  incoming lines
-      do 100 i=1,2
-        iup=i
-        idup(iup)=ifl(i)
-        istup(iup)=-1
-        mothup(1,iup)=0
-        mothup(2,iup)=0
-        pup(1,iup)=0.
-        pup(2,iup)=0.
-        pup(3,iup)=dble(Sp(3,iup))
-        pup(4,iup)=abs(pup(3,iup))
-        pup(5,iup)=0d0
- 100  continue
-c---  outgoing lines
-      do 110 i=3,npart
-        iup=i
-        idup(iup)=ifl(i)
-        istup(iup)=1
-        mothup(1,iup)=1
-        mothup(2,iup)=2
-        pup(1,iup)=dble(Sp(1,i))
-        pup(2,iup)=dble(Sp(2,i))
-        pup(3,iup)=dble(Sp(3,i))
-        pup(5,iup)=dble(Sm(i))
-        tmp=(pup(5,iup)**2+pup(1,iup)**2+pup(2,iup)**2+pup(3,iup)**2)
-        pup(4,iup)=sqrt(tmp)
- 110  continue
-c
-      nup=npart
-c---  set up colour structure labels
-      Do iup=1,nup
-        if(icolup(1,iup).ne.0) icolup(1,iup)=icolup(1,iup)+500
-        if(icolup(2,iup).ne.0) icolup(2,iup)=icolup(2,iup)+500
-      Enddo
-c
-c
-c     and now consider assignements specific to individual hard
-C     processes
-c
-c---  W/Z/gamma b bbar + jets, or W/Z + jets
-      if (ihrd.le.4.or.ihrd.eq.10.OR.IHRD.EQ.14.OR.IHRD.EQ.15) then
-        iwch=0
-        do iup=nup-1,nup
-          mothup(1,iup)=nup+1
-          mothup(2,iup)=0
-          if(ihrd.ne.2) iwch=iwch-mod(idup(iup),2)
-c     electron+nubar -> 11 + (-12) => -(1)+0 = -1  => W-
-c     positron+nu    -> -11+ 12    => -(-1)+0 = -1 => W+
-c     u dbar -> 2 -1  => 0 -(-1) = 1 => W+
-c     c dbar -> 4 -1  => W+
-c etc.
-        enddo
-        iup=nup+1
-        If (iwch.gt.0) then
-          idup(iup)=24
-        Elseif (iwch.lt.0) then
-          idup(iup)=-24
-        Else
-          idup(iup)=23
-        Endif
-        istup(iup)=2
-        mothup(1,iup)=1
-        mothup(2,iup)=2
-        tmp=pup(4,iup-2)+pup(4,iup-1)
-        pup(4,iup)=tmp
-        tmp=tmp**2
-        do i=1,3
-          pup(i,iup)=pup(i,iup-2)+pup(i,iup-1)
-          tmp=tmp-pup(i,iup)**2
-        enddo
-        pup(5,iup)=sqrt(tmp)
-        nup=nup+1
-        icolup(1,nup)=0
-        icolup(2,nup)=0
-c---  nW + mZ + kH + jets
-      elseif (ihrd.eq.5) then
-c     find first gauge bosons
-        ivstart=0
-        ivend=0
-        do i=1,npart
-          if(abs(idup(i)).eq.24.or.idup(i).eq.23) then
-            istup(i)=2
-            if(ivstart.eq.0) ivstart=i
-            ivend=i+1
-          endif
-        enddo
-        nvb=ivend-ivstart
-c     decay products pointers, starting from the end
-        do i=1,nvb
-          mothup(1,npart-2*i+2)=ivend-i
-          mothup(1,npart-2*i+1)=ivend-i
-          mothup(2,npart-2*i+2)=0
-          mothup(2,npart-2*i+1)=0
-        enddo
-c---  t tbar + jets
-c     t tb jets f fbar f fbar W+ b W- bbar
-      elseif ((ihrd.eq.6.or.ihrd.eq.16).and.abs(ifl(3)).eq.6) then
-c     reset top status codes
-        istup(3)=2
-        istup(4)=2
-        if(ifl(3).eq.6) then
-          it=3
-          itb=4
-        else
-          it=4
-          itb=3
-        endif
-c     reconstruct W's from decay products
-        do iw=1,2
-          iwdec=nup-5+2*iw
-          iwup=nup+iw
-          ibup=iwup+2
-          iwch=0
-          do iup=iwdec,iwdec+1
-            mothup(1,iup)=iwup
-            mothup(2,iup)=0
-            iwch=iwch-mod(idup(iup),2)
-c     electron+nubar -> 11 + (-12) = -1 => W-
-c     d + ubar -> 1 + (-2) = -1 => W-
-c     positron+nu    -> -11+ 12    =  1 => W+
-c     u + dbar -> 2 + (-1) = 1 => W+
-          enddo
-          If (iwch.gt.0) then
-            idup(iwup)=24
-            idup(ibup)=5
-            mothup(1,iwup)=it
-            mothup(2,iwup)=0
-            mothup(1,ibup)=it
-            mothup(2,ibup)=0
-          Elseif (iwch.lt.0) then
-            idup(iwup)=-24
-            idup(ibup)=-5
-            mothup(1,iwup)=itb
-            mothup(2,iwup)=0
-            mothup(1,ibup)=itb
-            mothup(2,ibup)=0
-          Endif
-          istup(iwup)=2
-          istup(ibup)=1
-c     reconstruct W momentum
-          tmp=pup(4,iwdec)+pup(4,iwdec+1)
-          pup(4,iwup)=tmp
-          tmp=tmp**2
-          do i=1,3
-            pup(i,iwup)=pup(i,iwdec)+pup(i,iwdec+1)
-            tmp=tmp-pup(i,iwup)**2
-          enddo
-          pup(5,iwup)=sqrt(tmp)
-c     reconstruct b momentum
-          tmp=pup(4,mothup(1,iwup))-pup(4,iwup)
-          pup(4,ibup)=tmp
-          tmp=tmp**2
-          do i=1,3
-            pup(i,ibup)=pup(i,mothup(1,iwup))-pup(i,iwup)
-            tmp=tmp-pup(i,ibup)**2
-          enddo
-          pup(5,ibup)=sqrt(tmp)
-          icolup(1,iwup)=0
-          icolup(2,iwup)=0
-          icolup(1,ibup)=icolup(1,mothup(1,iwup))
-          icolup(2,ibup)=icolup(2,mothup(1,iwup))
-        enddo
-c     stop
-        nup=nup+4
-c---  H t tbar + jets
-c     H t tb jets f fbar f fbar W+ b W- bbar
-      elseif (ihrd.eq.8.and.abs(ifl(4)).eq.6) then
-c     reset top status codes
-        istup(4)=2
-        istup(5)=2
-        if(ifl(4).eq.6) then
-          it=4
-          itb=5
-        else
-          it=5
-          itb=4
-        endif
-c     reconstruct W's from decay products
-        do iw=1,2
-          iwdec=nup-5+2*iw
-          iwup=nup+iw
-          ibup=iwup+2
-          iwch=0
-          do iup=iwdec,iwdec+1
-            mothup(1,iup)=iwup
-            mothup(2,iup)=0
-            iwch=iwch-mod(idup(iup),2)
-c     electron+nubar -> 11 + (-12) = -1 => W-
-c     d + ubar -> 1 + (-2) = -1 => W-
-c     positron+nu    -> -11+ 12    =  1 => W+
-c     u + dbar -> 2 + (-1) = 1 => W+
-          enddo
-          If (iwch.gt.0) then
-            idup(iwup)=24
-            idup(ibup)=5
-            mothup(1,iwup)=it
-            mothup(2,iwup)=0
-            mothup(1,ibup)=it
-            mothup(2,ibup)=0
-          elseif (iwch.lt.0) then
-            idup(iwup)=-24
-            idup(ibup)=-5
-            mothup(1,iwup)=itb
-            mothup(2,iwup)=0
-            mothup(1,ibup)=itb
-            mothup(2,ibup)=0
-          endif
-          istup(iwup)=2
-          istup(ibup)=1
-c     reconstruct W momentum
-          tmp=pup(4,iwdec)+pup(4,iwdec+1)
-          pup(4,iwup)=tmp
-          tmp=tmp**2
-          do i=1,3
-            pup(i,iwup)=pup(i,iwdec)+pup(i,iwdec+1)
-            tmp=tmp-pup(i,iwup)**2
-          enddo
-          pup(5,iwup)=sqrt(tmp)
-c     reconstruct b momentum
-          tmp=pup(4,mothup(1,iwup))-pup(4,iwup)
-          pup(4,ibup)=tmp
-          tmp=tmp**2
-          do i=1,3
-            pup(i,ibup)=pup(i,mothup(1,iwup))-pup(i,iwup)
-            tmp=tmp-pup(i,ibup)**2
-          enddo
-          pup(5,ibup)=sqrt(tmp)
-          icolup(1,iwup)=0
-          icolup(2,iwup)=0
-          icolup(1,ibup)=icolup(1,mothup(1,iwup))
-          icolup(2,ibup)=icolup(2,mothup(1,iwup))
-        enddo
-c     stop
-        nup=nup+4
-c---  SINGLE TOP
-c     Input: T
-c     output: jets t b w f fbar t b w f fbar
-      elseif (ihrd.eq.13) then
-        nw=1
-        if(itopprc.ge.3) nw=2
-c     assign mass to the incoming bottom quark, if required
-        DO I=1,2
-          IF(ABS(IFL(I)).EQ.5) THEN
-            IUP=I
-            PUP(5,IUP)=mb
-            PUP(4,IUP)=SQRT(PUP(3,IUP)**2+PUP(5,IUP)**2)
-          ENDIF
-        ENDDO
-        istup(3)=2
-        it=0
-        itb=0
-        if(ifl(3).eq.6) then
-          it=3
-        elseif(ifl(3).eq.-6) then
-          itb=3
-        else
-          write(*,*) 'wrong assumption about top position, stop'
-          stop
-        endif
-c
-c     TOP DECAY
-c     reconstruct W's from decay products
-c
-c iwdec: 1st W decay product.
-        if(nw.eq.1) then
-          iwdec=nup-1
-        elseif(nw.eq.2) then
-          iwdec=nup-3
-        endif
-c put W and b  at the end
-        iwup=nup+1
-        ibup=iwup+1
-c
-        iwch=0
-        do iup=iwdec,iwdec+1
-          mothup(1,iup)=iwup
-          mothup(2,iup)=0
-          iwch=iwch-mod(idup(iup),2)
-c     electron+nubar -> 11 + (-12) = -1 => W-
-c     d + ubar -> 1 + (-2) = -1 => W-
-c     positron+nu    -> -11+ 12    =  1 => W+
-c     u + dbar -> 2 + (-1) = 1 => W+
-        enddo
-        If (iwch.gt.0) then
-          idup(iwup)=24
-          idup(ibup)=5
-          mothup(1,iwup)=it
-          mothup(2,iwup)=0
-          mothup(1,ibup)=it
-          mothup(2,ibup)=0
-        Elseif (iwch.lt.0) then
-          idup(iwup)=-24
-          idup(ibup)=-5
-          mothup(1,iwup)=itb
-          mothup(2,iwup)=0
-          mothup(1,ibup)=itb
-          mothup(2,ibup)=0
-        Endif
-        istup(iwup)=2
-        istup(ibup)=1
-c     reconstruct W momentum
-        tmp=pup(4,iwdec)+pup(4,iwdec+1)
-        pup(4,iwup)=tmp
-        tmp=tmp**2
-        do i=1,3
-          pup(i,iwup)=pup(i,iwdec)+pup(i,iwdec+1)
-          tmp=tmp-pup(i,iwup)**2
-        enddo
-        pup(5,iwup)=sqrt(tmp)
-c     reconstruct b momentum
-        tmp=pup(4,mothup(1,iwup))-pup(4,iwup)
-        pup(4,ibup)=tmp
-        tmp=tmp**2
-        do i=1,3
-          pup(i,ibup)=pup(i,mothup(1,iwup))-pup(i,iwup)
-          tmp=tmp-pup(i,ibup)**2
-        enddo
-c        write(*,*) (pup(i,ibup),i=1,4),sqrt((tmp))
-        pup(5,ibup)=sqrt(tmp)
-        icolup(1,iwup)=0
-        icolup(2,iwup)=0
-        icolup(1,ibup)=icolup(1,mothup(1,iwup))
-        icolup(2,ibup)=icolup(2,mothup(1,iwup))
-c
-        nup=nup+2
-        if(nw.eq.2) then
-c
-c     W DECAY
-c
-c iwdec: 1st W decay product.
-          iwdec=nup-3
-c iwup: location of the W in the event record
-          iwup=nup-6
-          iwch=0
-          do iup=iwdec,iwdec+1
-            mothup(1,iup)=iwup
-            mothup(2,iup)=0
-            iwch=iwch-mod(idup(iup),2)
-c     electron+nubar -> 11 + (-12) = -1 => W-
-c     d + ubar -> 1 + (-2) = -1 => W-
-c     positron+nu    -> -11+ 12    =  1 => W+
-c     u + dbar -> 2 + (-1) = 1 => W+
-          enddo
-          istup(iwup)=2
-          icolup(1,iwup)=0
-          icolup(2,iwup)=0
-        endif
-      endif
-c     herwig debugging:
-c      call HWUPUP
-
-
-
-C...=======================================================
-C...Fill spin information for tauola.
-C...Specify the decal mode.
-C...imode: 1:W, 2:WW, 4:Z, 5:WZ, 8:ZZ, 16:H, 17:WH, 20:ZH.
-      imode = 0
-      itau1 = 0
-      itau2 = 0
-      itau3 = 0
-      do i=1,nup
-        if (iabs(idup(i)).eq.24) then
-          imode = imode + 1
-        else if (iabs(idup(i)).eq.23) then
-          imode = imode + 4
-        else if (iabs(idup(i)).eq.25) then
-          imode = imode + 16
-        endif
-      enddo
-      do i=1,nup
-         if(mothup(1,i).gt.0) then
-            if (imode.eq.1) then ! single W production
-               if (iabs(idup(i)).eq.15
-     &              .and.iabs(idup(mothup(1,i))).eq.24) then
-                  itau1 = i
-               endif
-            else if (imode.eq.2) then ! WW production
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.24) then
-                  itau1 = i
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.-24) then
-                  itau2 = i
-               endif
-            else if (imode.eq.4) then ! single Z production
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.23) then
-                  itau1 = i
-                  itau3 = mothup(1,i)
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.23) then
-                  itau2 = i
-               endif
-            else if (imode.eq.5) then ! WZ production (so far, only assign for W decay.)
-               if (iabs(idup(i)).eq.15
-     &              .and.iabs(idup(mothup(1,i))).eq.24)then
-                  itau1 = i
-               endif
-            else if (imode.eq.8) then ! ZZ production (so far do nothing.)
-            else if (imode.eq.16) then ! single H production
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.25) then
-                  itau1 = i
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.25) then
-                  itau2 = i
-               endif
-            else if (imode.eq.17) then ! WH production
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.25) then
-                  itau1 = i
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.25) then
-                  itau2 = i
-               endif
-               if (iabs(idup(i)).eq.15.and
-     &              .iabs(idup(mothup(1,i))).eq.24) then
-                  itau3 = i
-               endif
-            else if (imode.eq.20) then ! ZH production (so far nothing for Z side.)
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.25) then
-                  itau1 = i
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.25) then
-                  itau2 = i
-               endif
-            endif
-         endif
-      enddo
-
-      if (itau1.ne.0) then
-        spinup(itau1) = 0
-      endif
-      if (itau2.ne.0) then
-        spinup(itau2) = 0
-      endif
-      if (itau3.ne.0) then
-        spinup(itau3) = 0
-      endif
-
-C...Assign spin information.
-      if (imode.eq.1) then         ! single W production
-        if (itau1.ne.0) then
-          spinup(itau1) = -1.0d0
-        endif
-      else if (imode.eq.2) then    ! WW production
-        if (itau1.ne.0) then
-          spinup(itau1) = -1.0d0
-        endif
-        if (itau2.ne.0) then
-          spinup(itau2) = -1.0d0
-        endif
-      else if (imode.eq.4
-     &       .and. itau1.ne.0.and.itau2.ne.0.and.itau3.ne.0) then ! single Z production
-C...Special case. Temporaly create the HEPEVT block. Later delete it.
-        nhep = 9
-        isthep(4) = 121
-        isthep(5) = 122
-        isthep(6) = 120
-        isthep(7) = 124
-        isthep(8) = 1
-        isthep(9) = 1
-        idhep(4) = idup(1)
-        idhep(5) = idup(2)
-        idhep(6) = 0
-        idhep(7) = idup(itau3)
-        idhep(8) = idup(itau1)
-        idhep(9) = idup(itau2)
-        jmohep(1,4) = 6
-        jmohep(2,4) = 5
-        jmohep(1,5) = 6
-        jmohep(2,5) = 4
-        jmohep(1,6) = 4
-        jmohep(2,6) = 5
-        jmohep(1,7) = 6
-        jmohep(2,7) = 7
-        jmohep(1,8) = 7
-        jmohep(2,8) = 8
-        jmohep(1,9) = 7
-        jmohep(2,9) = 9
-        jdahep(1,4) = 5
-        jdahep(2,4) = 5
-        jdahep(2,5) = 4
-        jdahep(2,5) = 4
-        jdahep(2,6) = 7
-        jdahep(2,6) = 7
-        jdahep(2,7) = 8
-        jdahep(2,7) = 9
-        jdahep(2,8) = 0
-        jdahep(2,8) = 0
-        jdahep(2,9) = 0
-        jdahep(2,9) = 0
-        do i=1,5
-          phep(i,4) = pup(i,1)
-          phep(i,5) = pup(i,2)
-          phep(i,6) = pup(i,1)+pup(i,2)
-          phep(i,7) = pup(i,itau3)
-          phep(i,8) = pup(i,itau1)
-          phep(i,9) = pup(i,itau2)
-        enddo
-        phep(5,6) = sqrt((pup(4,1)+pup(4,2))**2
-     $                  -(pup(1,1)+pup(1,2))**2
-     $                  -(pup(2,1)+pup(2,2))**2
-     $                  -(pup(3,1)+pup(3,2))**2)
-        do i=1,4
-          vhep(i,4) = 0.0d0
-          vhep(i,5) = 0.0d0
-          vhep(i,6) = 0.0d0
-          vhep(i,7) = 0.0d0
-          vhep(i,8) = 0.0d0
-          vhep(i,9) = 0.0d0
-        enddo
-
-        polz0 = plzapx(1,7,8,9)
-        if (pyr(0).LT.polz0) THEN
-          spinup(itau1) = 1.0d0
-          spinup(itau2) = 1.0d0
-        else
-          spinup(itau1) = -1.0d0
-          spinup(itau2) = -1.0d0
-        endif
-C...Delete temporal HEPEVT.
-        nhep = 3
-        do i=4,9
-          isthep(i) = 0
-          idhep(i)  = 0
-          jmohep(1,i) = 0
-          jmohep(2,i) = 0
-          jdahep(1,i) = 0
-          jdahep(2,i) = 0
-          phep(1,i) = 0.0d0
-          phep(2,i) = 0.0d0
-          phep(3,i) = 0.0d0
-          phep(4,i) = 0.0d0
-          phep(5,i) = 0.0d0
-          vhep(1,i) = 0.0d0
-          vhep(2,i) = 0.0d0
-          vhep(3,i) = 0.0d0
-          vhep(4,i) = 0.0d0
-        enddo
-      else if (imode.eq.5) then    ! WZ production (so far, only assign for W decay.)
-        if (itau1.ne.0) then
-          spinup(itau1) = -1.0d0
-        endif
-      else if (imode.eq.8) then    ! ZZ production (so far do nothing.)
-      else if (imode.eq.16) then   ! single H production
-        if (itau1.ne.0.and.itau2.ne.0) then
-          if (pyr(0).lt.0.5d0) then
-            spinup(itau1) =  1.0d0
-            spinup(itau2) = -1.0d0
-          else
-            spinup(itau1) = -1.0d0
-            spinup(itau2) =  1.0d0
-          endif
-        endif
-      else if (imode.eq.17) then   ! WH production
-        if (itau1.ne.0.and.itau2.ne.0) then
-          if (pyr(0).lt.0.5d0) then
-            spinup(itau1) =  1.0d0
-            spinup(itau2) = -1.0d0
-          else
-            spinup(itau1) = -1.0d0
-            spinup(itau2) =  1.0d0
-          endif
-        endif
-        if (itau3.ne.0) then
-          spinup(itau3) = -1.0d0
-        endif
-      else if (imode.eq.20) then   ! ZH production (so far nothing for Z side.)
-        if (itau1.ne.0.and.itau2.ne.0) then
-          if (pyr(0).lt.0.5d0) then
-            spinup(itau1) =  1.0d0
-            spinup(itau2) = -1.0d0
-          else
-            spinup(itau1) = -1.0d0
-            spinup(itau2) =  1.0d0
-          endif
-        endif
-      endif
-
-C...Debug.
-C      write(*,*) "ST...Alpgen",imode,itau1,itau2,itau3
-C      if (itau1.ne.0) then
-C        write(*,*) "ST...Alpgen after fill 1",idup(itau1),spinup(itau1)
-C      endif
-C      if (itau2.ne.0) then
-C        write(*,*) "ST...Alpgen after fill 2",idup(itau2),spinup(itau2)
-C      endif
-C      if (itau3.ne.0) then
-C        write(*,*) "ST...Alpgen after fill 3",idup(itau3),spinup(itau3)
-C      endif
-C...=======================================================
-
-
-
-      return
-c
-c
-c     end of file
- 500  ist=1
-c     error reading file
- 501  if(ist.eq.0) ist=2
-C     RESET CROSS-SECTION INFORMATION FOR END OF RUN AND FINALIZE
-      istg=ist
-      IF(IST.GT.0) THEN
-        CALL ALSFIN
-      ENDIF
-      close(Nunit)
-      close(NunitOut)
-      END
diff --git a/Generators/AlpGen_i/src/vetoalpgen.F b/Generators/AlpGen_i/src/vetoalpgen.F
deleted file mode 100755
index b3046873e36e0031838b704ad646a18d0425dd88..0000000000000000000000000000000000000000
--- a/Generators/AlpGen_i/src/vetoalpgen.F
+++ /dev/null
@@ -1,669 +0,0 @@
-*-- AUTHOR :    MICHELANGELO MANGANO
-C----------------------------------------------------------------------
-      SUBROUTINE VETOALPGEN(IPVETO)
-C----------------------------------------------------------------------
-C     SUBROUTINE TO IMPLEMENT THE MLM JET MATCHING CRITERION
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-
-C...GUP Event common block
-#include "GeneratorFortranCommon/hepeup.inc"
-C...HEPEVT commonblock.
-      INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      SAVE /HEPEVT/
-#include "AlpGen_i/alpsho.inc"
-      INTEGER IPVETO
-C     CALSIM AND JET VARIABLES
-      INTEGER NCY,NCPHI,NJMAX,JETNO,NCJET
-      DOUBLE PRECISION YCMIN,YCMAX,PI,ET,DELPHI,CPHCAL,SPHCAL,DELY,
-     &     CTHCAL,STHCAL,PCJET,ETJET
-      PARAMETER (NCY=100)
-      PARAMETER (NCPHI=60,PI=3.141593D0)
-      COMMON/CALOR_M/DELY,DELPHI,ET(NCY,NCPHI),
-     $     CTHCAL(NCY),STHCAL(NCY),CPHCAL(NCPHI),SPHCAL(NCPHI),YCMIN
-     $     ,YCMAX
-      PARAMETER (NJMAX=500)
-      COMMON/GETCOM_M/PCJET(4,NJMAX),ETJET(NJMAX),JETNO(NCY,NCPHI),NCJET
-C
-      DOUBLE PRECISION PSERAP
-      INTEGER K(NJMAX),KP(NJMAX),KPJ(NJMAX)
-C LOCAL VARIABLES
-      INTEGER I,J,IHEP,NMATCH,JRMIN
-      DOUBLE PRECISION ETAJET,PHIJET,DELR,DPHI,DELRMIN
-      DOUBLE PRECISION P(4,10),PT(10),ETA(10),PHI(10)
-C HEAVY QUARK MATCHING
-      INTEGER IHVQ(10),NHVQ,NMJET,ID
-      DOUBLE PRECISION ETAHVQ(10),PHIHVQ(10)
-      INTEGER IEND,INORAD
-      COMMON/SHVETO/IEND,INORAD(MAXNUP)
-
-C DEBUGGING OPTIONS
-      INTEGER IDBG
-      PARAMETER (IDBG=0)
-      DOUBLE PRECISION PTPART,PTJETS,ETAPART,ETAJETS
-      INTEGER NMAX
-      COMMON/MTCHDBG/PTPART(10),PTJETS(10),ETAPART(10),ETAJETS(10),NMAX
-C
-      DOUBLE PRECISION ETMIN,ETMAX
-      DOUBLE PRECISION TINY
-      PARAMETER (TINY=1D-3)
-c      INTEGER ICOUNT
-c      DATA ICOUNT/0/
-C
-      IPVETO=0
-      IF(ICKKW.EQ.0) RETURN
-      IF(IHRD.EQ.7.OR.IHRD.EQ.8.OR.IHRD.EQ.13) THEN
-        WRITE(*,*) 'JET MATCHING FOR HARD PROCESS ',IHRD
-     $       ,' NOT IMPLEMENTED, STOP'
-        STOP
-      ENDIF
-      IF(NLJETS.EQ.0.AND.IEXC.EQ.0) RETURN
-C CHECK FOR EVENT ERROR OR ZERO WGT
-      I=0
-C     HERWIG/PYTHIA SPECIFIC
-      CALL ALSHER(I)
-      IF(I.EQ.1) RETURN
-C
-C     INITIALIZE DEBUG IF NEEDED
-      IF(IDBG.EQ.1) THEN
-        WRITE(1,*) ' '
-        WRITE(1,*) 'NEW EVENT '
-        WRITE(1,*) 'PARTONS'
-      ENDIF
-      IF(IDBG.EQ.2) THEN
-        DO I=1,10
-          PTPART(I)=0D0
-          ETAPART(I)=0D0
-          PTJETS(I)=0D0
-          ETAJETS(I)=0D0
-        ENDDO
-        NMAX=0
-      ENDIF
-C
-C     RECONSTRUCT PARTON-LEVEL EVENT
-C     START FROM THE PARTONIC SYSTEM
-      DO I=1,NLJETS
-        IHEP=I+NJSTART
-        DO J=1,4
-          P(J,I)=PUP(J,IHEP)
-        ENDDO
-        PT(I)=SQRT(P(1,I)**2+P(2,I)**2)
-        ETA(I)=-LOG(TAN(0.5D0*ATAN2(PT(I)+TINY,P(3,I))))
-        PHI(I)=ATAN2(P(2,I),P(1,I))
-        IF(IDBG.EQ.1) THEN
-          WRITE(1,*) PT(I),ETA(I),PHI(I)
-        ENDIF
-      ENDDO
-      IF(NLJETS.GT.0) CALL ALPSOR(PT,NLJETS,KP,2)
-C
-C     DISPLAY EVENT SEEN BY UPVETO:
-C      IF(IDBG.EQ.1) THEN
-C        DO I=1,NHEP
-C          WRITE(1,111) I,ISTHEP(I),IDHEP(I),JMOHEP(1,I),JMOHEP(2,I)
-C     $         ,PHEP(1,I),PHEP(2,I),PHEP(3,I)
-C        ENDDO
-C 111  FORMAT(5(I4,1X),3(F12.5,1X))
-C      ENDIF
-C     DISPLAY PYTHIA EVENT:
-C      CALL PYLIST(7)    ! PYTHIA USER PROCESS EVENT DUMP
-C      CALL PYLIST(2)    ! PYTHIA FULL EVENT DUMP
-C      CALL PYLIST(5)    ! PYTHIA HEPEVT DUMP
-C
-C     RECONSTRUCT SHOWERED JETS:
-      CALL CALINI_M
-      CALL CALDEL_M(NPFST,NPLST,NJLAST)
-      CALL GETJET_M(RCLUS,ETCLUS,ETACLMAX)
-      IF(NCJET.GT.0) CALL ALPSOR(ETJET,NCJET,K,2)
-      IF(IDBG.EQ.1) THEN
-        WRITE(1,*) 'JETS'
-        DO I=1,NCJET
-          J=K(NCJET+1-I)
-          ETAJET=PSERAP(PCJET(1,J))
-          PHIJET=ATAN2(PCJET(2,J),PCJET(1,J))
-          WRITE(1,*) ETJET(J),ETAJET,PHIJET
-        ENDDO
-      ENDIF
-C     ANALYSE ONLY EVENTS WITH AT LEAST NLJETS-RECONSTRUCTED JETS
-      IF(NCJET.LT.NLJETS) GOTO 999
-C     ASSOCIATE PARTONS AND JETS, USING MIN(DELR) AS CRITERION
-      NMATCH=0
-      DO I=1,NCJET
-        KPJ(I)=0
-      ENDDO
-      DO I=1,NLJETS
-        DELRMIN=1D5
-        DO 110 J=1,NCJET
-          IF(KPJ(J).NE.0) GO TO 110
-          ETAJET=PSERAP(PCJET(1,J))
-          PHIJET=ATAN2(PCJET(2,J),PCJET(1,J))
-          DPHI=ABS(PHI(KP(NLJETS-I+1))-PHIJET)
-          IF(DPHI.GT.PI) DPHI=2.*PI-DPHI
-          DELR=SQRT((ETA(KP(NLJETS-I+1))-ETAJET)**2+(DPHI)**2)
-          IF(DELR.LT.DELRMIN) THEN
-            DELRMIN=DELR
-            JRMIN=J
-          ENDIF
- 110    CONTINUE
-        ETMIN=1D10
-        IF(DELRMIN.LT.1.5*RCLUS) THEN
-          NMATCH=NMATCH+1
-          KPJ(JRMIN)=I
-          ETMIN=MIN(ETMIN,ETJET(JRMIN))
-C     ASSOCIATE PARTONS AND MATCHED JETS:
-          IF(IDBG.EQ.2) THEN
-            PTPART(I)=PT(KP(NLJETS-I+1))
-            ETAPART(I)=ETA(KP(NLJETS-I+1))
-            PTJETS(I)=ETJET(JRMIN)
-            ETAJETS(I)=PSERAP(PCJET(1,JRMIN))
-            NMAX=NCJET
-          ENDIF
-C          WRITE(*,*) 'PARTON-JET',I,' BEST MATCH:',K(NCJET+1-JRMIN)
-C     $           ,DELRMIN
-        ENDIF
-      ENDDO
-      IF(NMATCH.LT.NLJETS) GOTO 999
-C     REJECT EVENTS WITH LARGER JET MULTIPLICITY FROM EXCLUSIVE SAMPLE
-      IF(NCJET.GT.NLJETS.AND.IEXC.EQ.1) GOTO 999
-C     VETO EVENTS WHERE MATCHED JETS ARE SOFTER THAN NON-MATCHED ONES
-      IF(IEXC.NE.1) THEN
-        J=NCJET
-        DO I=1,NLJETS
-          IF(KPJ(K(J)).EQ.0) GOTO 999
-          J=J-1
-        ENDDO
-      ENDIF
-C
-C     ADDITIONAL TREATMENT FOR HVQ EVENTS:
-C               VETO/ACCEPT JETS EMITTED BY HVQ'S
-      IF(IHRD.LE.2.OR.IHRD.EQ.6.OR.IHRD.EQ.10.OR.IHRD.EQ.15.OR.IHRD.EQ.
-     $     16) THEN
-        CALL CALINI_M
-C     RECOSTRUCT POSSIBLE JETS FROM RADIATION OFF THE TOP QUARKS
-        CALL CALDEL_HVQ(NPFST,NPLST,NJLAST)
-        CALL GETJET_M(RCLUS,ETCLUS,ETACLMAX)
-C     IF NO EXTRA JET: ACCEPT EVENT
-        IF(NCJET.EQ.0) RETURN
-C     IF EXTRA JETS, REMOVE THOSE LYING WITHIN DRJMIN OF A B/C QUARK, TO
-C     ALLOW THE SHOWER TO GOVERN THE DEVELOPMENT OF A B/C JET.
-C     START BY FLAGGING VETOED Q AND QBAR OBJECTS:
-        NHVQ=0
-        DO I=1,NHEP
-          ID=IDHEP(I)
-          IF(INORAD(I).EQ.1.AND.ABS(ID).LE.5.AND.ABS(ID)
-     $         .GE.4) THEN
-            NHVQ=NHVQ+1
-            IHVQ(NHVQ)=I
-            ETAHVQ(NHVQ)=PSERAP(PHEP(1,I))
-            PHIHVQ(NHVQ)=ATAN2(PHEP(2,I),PHEP(1,I))
-          ENDIF
-        ENDDO
-        NMJET=NCJET
-        DO I=1,NCJET
-          ETAJET=PSERAP(PCJET(1,I))
-          PHIJET=ATAN2(PCJET(2,I),PCJET(1,I))
-          DO J=1,NHVQ
-            DPHI=ABS(PHIHVQ(J)-PHIJET)
-            IF(DPHI.GT.PI) DPHI=ABS(DPHI-2*PI)
-            DELR=SQRT(DPHI**2+(ETAJET-ETAHVQ(J))**2)
-            IF(DELR.LT.DRJMIN) THEN
-              NMJET=NMJET-1
-              ETJET(I)=0D0
-            ENDIF
-          ENDDO
-        ENDDO
-C     IF NO UNMATCHED JET: ACCEPT EVENT
-        IF(NMJET.EQ.0) RETURN
-C     IF JETS AND IEXC=1: REJECT EVENT
-        IF(IEXC.EQ.1) GOTO 999
-C     IF JETS AND IEXC=0: CHECK THAT JETS ARE SOFTER THAN MATCHED ONES
-        ETMAX=0D0
-        DO I=1,NCJET
-          ETMAX=MAX(ETMAX,ETJET(I))
-        ENDDO
-        IF(ETMAX.GT.ETMIN) GOTO 999
-      ENDIF
-      RETURN
-C     HERWIG/PYTHIA TERMINATION:
- 999  CALL ALSHEN
-      IPVETO=1
-      END
-
-C-----------------------------------------------------------------------
-C----Calorimeter simulation obtained from Frank Paige 23 March 1988-----
-C
-C          USE
-C
-C     CALL CALINI
-C     CALL CALSIM
-C
-C          THEN TO FIND JETS WITH A SIMPLIFIED VERSION OF THE UA1 JET
-C          ALGORITHM WITH JET RADIUS RJET AND MINIMUM SCALAR TRANSVERSE
-C          ENERGY EJCUT
-C            (RJET=1., EJCUT=5. FOR UA1)
-C          USE
-C
-C     CALL GETJET(RJET,EJCUT)
-C
-C
-C-----------------------------------------------------------------------
-C
-C          ADDED BY MIKE SEYMOUR: PARTON-LEVEL CALORIMETER. ALL PARTONS
-C          ARE CONSIDERED TO BE HADRONS, SO IN FACT RESEM IS IGNORED
-C
-C     CALL CALPAR
-C
-C          HARD PARTICLE CALORIMETER. ONLY USES THOSE PARTICLES WHICH
-C          CAME FROM THE HARD PROCESS, AND NOT THE UNDERLYING EVENT
-C
-C     CALL CALHAR
-C
-C-----------------------------------------------------------------------
-
-      SUBROUTINE CALINI_M
-C
-C          INITIALIZE CALORIMETER FOR CALSIM_M AND GETJET_M.  NOTE THAT
-C          BECAUSE THE INITIALIZATION IS SEPARATE, CALSIM_M CAN BE
-C          CALLED MORE THAN ONCE TO SIMULATE PILEUP OF SEVERAL EVENTS.
-C
-      IMPLICIT NONE
-      INTEGER NCY,NCPHI,NJMAX,IPHI,IY,JETNO,NCJET
-      DOUBLE PRECISION YCMIN,YCMAX,PI,ET,DELPHI,PHIX,CPHCAL,SPHCAL,DELY,
-     &  YX,THX,CTHCAL,STHCAL,PCJET,ETJET
-      PARAMETER (NCY=100)
-      PARAMETER (NCPHI=60,PI=3.141593D0)
-      COMMON/CALOR_M/DELY,DELPHI,ET(NCY,NCPHI),
-     $CTHCAL(NCY),STHCAL(NCY),CPHCAL(NCPHI),SPHCAL(NCPHI),YCMIN,YCMAX
-      PARAMETER (NJMAX=500)
-      COMMON/GETCOM_M/PCJET(4,NJMAX),ETJET(NJMAX),JETNO(NCY,NCPHI),NCJET
-      LOGICAL FSTCAL
-      DATA FSTCAL/.TRUE./
-C
-C          INITIALIZE ET ARRAY.
-      DO 100 IPHI=1,NCPHI
-      DO 100 IY=1,NCY
-100   ET(IY,IPHI)=0.
-C
-      IF (FSTCAL) THEN
-C          CALCULATE TRIG. FUNCTIONS.
-        DELPHI=2.*PI/FLOAT(NCPHI)
-        DO 200 IPHI=1,NCPHI
-        PHIX=DELPHI*(IPHI-.5)
-        CPHCAL(IPHI)=COS(PHIX)
-        SPHCAL(IPHI)=SIN(PHIX)
-200     CONTINUE
-        DELY=(YCMAX-YCMIN)/FLOAT(NCY)
-        DO 300 IY=1,NCY
-        YX=DELY*(IY-.5)+YCMIN
-        THX=2.*ATAN(EXP(-YX))
-        CTHCAL(IY)=COS(THX)
-        STHCAL(IY)=SIN(THX)
-300     CONTINUE
-        FSTCAL=.FALSE.
-      ENDIF
-      END
-C
-      SUBROUTINE CALSIM_M
-C
-C          SIMPLE CALORIMETER SIMULATION.  ASSUME UNIFORM Y AND PHI
-C          BINS
-C...HEPEVT commonblock.
-      INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      SAVE /HEPEVT/
-      INTEGER NCY,NCPHI,NJMAX,IHEP,ID,IY,IPHI,JETNO,NCJET
-      DOUBLE PRECISION YCMIN,YCMAX,PI,YIP,PSERAP,
-     &  PHIIP,DELY,DELPHI,EIP,ET,STHCAL,CTHCAL,CPHCAL,SPHCAL,
-     &  PCJET,ETJET
-      PARAMETER (NCY=100)
-      PARAMETER (NCPHI=60,PI=3.141593D0)
-      COMMON/CALOR_M/DELY,DELPHI,ET(NCY,NCPHI),
-     $CTHCAL(NCY),STHCAL(NCY),CPHCAL(NCPHI),SPHCAL(NCPHI),YCMIN,YCMAX
-      PARAMETER (NJMAX=500)
-      COMMON/GETCOM_M/PCJET(4,NJMAX),ETJET(NJMAX),JETNO(NCY,NCPHI),NCJET
-C
-C          FILL CALORIMETER
-C
-      DO 200 IHEP=1,NHEP
-      IF (ISTHEP(IHEP).EQ.1) THEN
-        YIP=PSERAP(PHEP(1,IHEP))
-        IF(YIP.LT.YCMIN.OR.YIP.GT.YCMAX) GOTO 200
-        ID=ABS(IDHEP(IHEP))
-C---EXCLUDE TOP QUARK, LEPTONS, PROMPT PHOTONS
-        IF ((ID.GE.11.AND.ID.LE.16).OR.ID.EQ.6.OR.ID.EQ.22) GOTO 200
-C
-        PHIIP=ATAN2(PHEP(2,IHEP),PHEP(1,IHEP))
-        IF(PHIIP.LT.0.) PHIIP=PHIIP+2.*PI
-        IY=INT((YIP-YCMIN)/DELY)+1
-        IPHI=INT(PHIIP/DELPHI)+1
-        EIP=PHEP(4,IHEP)
-C            WEIGHT BY SIN(THETA)
-        ET(IY,IPHI)=ET(IY,IPHI)+EIP*STHCAL(IY)
-      ENDIF
-  200 CONTINUE
-  999 END
-      SUBROUTINE GETJET_M(RJET,EJCUT,ETAJCUT)
-C
-C          SIMPLE JET-FINDING ALGORITHM (SIMILAR TO UA1).
-C
-C     FIND HIGHEST REMAINING CELL > ETSTOP AND SUM SURROUNDING
-C          CELLS WITH--
-C            DELTA(Y)**2+DELTA(PHI)**2<RJET**2
-C            ET>ECCUT.
-C          KEEP JETS WITH ET>EJCUT AND ABS(ETA)<ETAJCUT
-C          THE UA1 PARAMETERS ARE RJET=1.0 AND EJCUT=5.0
-C
-      IMPLICIT NONE
-      INTEGER NCY,NCPHI,NJMAX,IPHI,IY,JETNO,J,K,NCJET,NPHI1,NPHI2,NY1,
-     &  NY2,IPASS,IYMX,IPHIMX,ITLIS,IPHI1,IPHIX,IY1,IYX
-      DOUBLE PRECISION YCMIN,YCMAX,PI,ETJET,PCJET,RJET,DELPHI,DELY,
-     &  ETMAX,ET,ETSTOP,RR,ECCUT,PX,STHCAL,CPHCAL,SPHCAL,CTHCAL,EJCUT
-      PARAMETER (NCY=100)
-      PARAMETER (NCPHI=60,PI=3.141593D0)
-      COMMON/CALOR_M/DELY,DELPHI,ET(NCY,NCPHI),
-     &CTHCAL(NCY),STHCAL(NCY),CPHCAL(NCPHI),SPHCAL(NCPHI),YCMIN,YCMAX
-      PARAMETER (NJMAX=500)
-      COMMON/GETCOM_M/PCJET(4,NJMAX),ETJET(NJMAX),JETNO(NCY,NCPHI),NCJET
-      DOUBLE PRECISION ETAJCUT,PSERAP
-C
-C          PARAMETERS
-      DATA ECCUT/0.1D0/
-      DATA ETSTOP/1.5D0/
-      DATA ITLIS/6/
-C
-C          INITIALIZE
-C
-      DO 100 IPHI=1,NCPHI
-      DO 100 IY=1,NCY
-100   JETNO(IY,IPHI)=0
-      DO 110 J=1,NJMAX
-      ETJET(J)=0.
-      DO 110 K=1,4
-110   PCJET(K,J)=0.
-      NCJET=0
-      NPHI1=RJET/DELPHI
-      NPHI2=2*NPHI1+1
-      NY1=RJET/DELY
-      NY2=2*NY1+1
-      IPASS=0
-C
-C          FIND HIGHEST CELL REMAINING
-C
-1     ETMAX=0.
-      DO 200 IPHI=1,NCPHI
-      DO 210 IY=1,NCY
-      IF(ET(IY,IPHI).LT.ETMAX) GOTO 210
-      IF(JETNO(IY,IPHI).NE.0) GOTO 210
-      ETMAX=ET(IY,IPHI)
-      IYMX=IY
-      IPHIMX=IPHI
-210   CONTINUE
-200   CONTINUE
-      IF(ETMAX.LT.ETSTOP) RETURN
-C
-C          SUM CELLS
-C
-      IPASS=IPASS+1
-      IF(IPASS.GT.NCY*NCPHI) THEN
-        WRITE(ITLIS,8888) IPASS
-8888    FORMAT(//' ERROR IN GETJET_M...IPASS > ',I6)
-        RETURN
-      ENDIF
-      NCJET=NCJET+1
-      IF(NCJET.GT.NJMAX) THEN
-        WRITE(ITLIS,9999) NCJET
-9999    FORMAT(//' ERROR IN GETJET_M...NCJET > ',I5)
-        RETURN
-      ENDIF
-      DO 300 IPHI1=1,NPHI2
-      IPHIX=IPHIMX-NPHI1-1+IPHI1
-      IF(IPHIX.LE.0) IPHIX=IPHIX+NCPHI
-      IF(IPHIX.GT.NCPHI) IPHIX=IPHIX-NCPHI
-      DO 310 IY1=1,NY2
-      IYX=IYMX-NY1-1+IY1
-      IF(IYX.LE.0) GOTO 310
-      IF(IYX.GT.NCY) GOTO 310
-      IF(JETNO(IYX,IPHIX).NE.0) GOTO 310
-      RR=(DELY*(IY1-NY1-1))**2+(DELPHI*(IPHI1-NPHI1-1))**2
-      IF(RR.GT.RJET**2) GOTO 310
-      IF(ET(IYX,IPHIX).LT.ECCUT) GOTO 310
-      PX=ET(IYX,IPHIX)/STHCAL(IYX)
-C          ADD CELL TO JET
-      PCJET(1,NCJET)=PCJET(1,NCJET)+PX*STHCAL(IYX)*CPHCAL(IPHIX)
-      PCJET(2,NCJET)=PCJET(2,NCJET)+PX*STHCAL(IYX)*SPHCAL(IPHIX)
-      PCJET(3,NCJET)=PCJET(3,NCJET)+PX*CTHCAL(IYX)
-      PCJET(4,NCJET)=PCJET(4,NCJET)+PX
-      ETJET(NCJET)=ETJET(NCJET)+ET(IYX,IPHIX)
-      JETNO(IYX,IPHIX)=NCJET
-310   CONTINUE
-300   CONTINUE
-C
-C          DISCARD JET IF ET < EJCUT.
-C
-      IF(ETJET(NCJET).GT.EJCUT.AND.ABS(PSERAP(PCJET(1,NCJET))).LT
-     $     .ETAJCUT) GOTO 1
-      ETJET(NCJET)=0.
-      DO 400 K=1,4
-400   PCJET(K,NCJET)=0.
-      NCJET=NCJET-1
-      GOTO 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE CALDEL_M(ISTLO,ISTHI,ISTOP)
-C     LABEL ALL PARTICLES WITH STATUS BETWEEN ISTLO AND ISTHI (UNTIL A
-C     PARTICLE WITH STATUS ISTOP IS FOUND) AS FINAL-STATE, CALL CALSIM_M
-C     AND THEN PUT LABELS BACK TO NORMAL
-C
-C     THIS VERSION LEAVES OUT PARTICLES THAT POINT BACK TO MOTHERS TO BE
-C     LEFT OUT OF MATCHING
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      INTEGER MAXNUP
-      PARAMETER(MAXNUP=500)
-      INTEGER IEND,INORAD
-      COMMON/SHVETO/IEND,INORAD(MAXNUP)
-C...HEPEVT commonblock.
-      INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      SAVE /HEPEVT/
-      INTEGER ISTOLD(NMXHEP),IHEP,IST,ISTLO,ISTHI,ISTOP,IMO
-      LOGICAL FOUND
-c      write(3,*) 'new event',nevhep
-      FOUND=.FALSE.
-      DO 10 IHEP=1,NHEP
-        IST=ISTHEP(IHEP)
-        ISTOLD(IHEP)=IST
-        IF (IST.EQ.ISTOP) FOUND=.TRUE.
-        IF (IST.GE.ISTLO.AND.IST.LE.ISTHI.AND..NOT.FOUND) THEN
-C     FOUND A RADIATED PARTON, CHECK MOTHER
-          IMO=IHEP
- 1        IMO=JMOHEP(1,IMO)
-          IF(IMO.EQ.IEND) THEN
-C     PARENTHOOD OK
-            IST=1
-c            write(3,*) ihep,ist
-            GOTO 9
-          ENDIF
-          IF(INORAD(IMO).EQ.1) THEN
-C     PARTON COMES FROM A VETOED MOTHER
-            IST=0
-            GOTO 9
-          ELSE
-C     CHECK GRANDMOTHER
-            GOTO 1
-          ENDIF
-        ELSE
-          IST=0
-        ENDIF
- 9      ISTHEP(IHEP)=IST
- 10   CONTINUE
-      CALL CALSIM_M
-      DO 20 IHEP=1,NHEP
-        ISTHEP(IHEP)=ISTOLD(IHEP)
- 20   CONTINUE
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE CALDEL_HVQ(ISTLO,ISTHI,ISTOP)
-C     LABEL ALL PARTICLES WITH STATUS BETWEEN ISTLO AND ISTHI (UNTIL A
-C     PARTICLE WITH STATUS ISTOP IS FOUND) AS FINAL-STATE, CALL CALSIM_M
-C     AND THEN PUT LABELS BACK TO NORMAL
-C
-C     THIS VERSION KEEPS ONLY ALL IST=1 PARTICLES REJECTED BY CALDEL AS
-C     DAUGHTERS OF VETOED HEAVY-QUARK MOTHERS: JETS COMPLEMENTARY TO
-C     THOSE RECONSTRUCTED BY CALDEL
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      INTEGER MAXNUP
-      PARAMETER(MAXNUP=500)
-      INTEGER IEND,INORAD
-      COMMON/SHVETO/IEND,INORAD(MAXNUP)
-C...HEPEVT commonblock.
-      INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      SAVE /HEPEVT/
-      INTEGER ISTOLD(NMXHEP),IHEP,IST,ISTLO,ISTHI,ISTOP,IMO
-      INTEGER IDMOTH,IDDAUG
-      LOGICAL FOUND
-      FOUND=.FALSE.
-C TAG W-B FROM TOP DECAYS
-      DO IHEP=1,NHEP
-        IMO=JMOHEP(1,IHEP)
-        IDMOTH=ABS(IDHEP(IMO))
-        IDDAUG=ABS(IDHEP(IHEP))
-        IF(IDMOTH.EQ.6.AND.(IDDAUG.EQ.5.OR.IDDAUG.EQ.24)) INORAD(IHEP)=2
-      ENDDO
-      DO 10 IHEP=1,NHEP
-        IST=ISTHEP(IHEP)
-        ISTOLD(IHEP)=IST
-        IF (IST.EQ.ISTOP) FOUND=.TRUE.
-        IF (IST.GE.ISTLO.AND.IST.LE.ISTHI.AND..NOT.FOUND) THEN
-C     FOUND A RADIATED PARTON, CHECK MOTHER
-          IMO=IHEP
- 1        IMO=JMOHEP(1,IMO)
-          IF(IMO.EQ.IEND) THEN
-C     PARENTHOOD OK, VETO
-            IST=0
-            GOTO 9
-          ENDIF
-          IF(INORAD(IMO).EQ.1) THEN
-            IDMOTH=ABS(IDHEP(IMO))
-            IDDAUG=ABS(IDHEP(IHEP))
-C     VERIFY IT'S A HEAVY QUARK -- LEAVE OUT GAUGE BOSON DECAYS
-            IF(IDMOTH.GE.4.AND.IDMOTH.LE.6) THEN
-C     PARTON COMES FROM A VETOED MOTHER, KEEP UNLESS IT IS THE EVOLVED
-C     MOTHER
-              IF(IDMOTH.NE.IDDAUG) THEN
-                IST=1
-                GOTO 9
-              ELSE
-                IST=0
-              ENDIF
-            ELSE
-C     NOT A HEAVY QUARK MOTHER, LEAVE OUT OF JET RECONSUTRCTION
-              IST=0
-            ENDIF
-          ELSEIF(INORAD(IMO).EQ.2) THEN
-C     IT'S A TOP DECAY PRODUCT
-              IST=0
-          ELSE
-C     GO CHECK GRANDMOTHER
-            GOTO 1
-          ENDIF
-        ELSE
-          IST=0
-        ENDIF
- 9      ISTHEP(IHEP)=IST
- 10   CONTINUE
-      CALL CALSIM_M
-      DO 20 IHEP=1,NHEP
-        ISTHEP(IHEP)=ISTOLD(IHEP)
- 20   CONTINUE
-      END
-C-----------------------------------------------------------------------
-      FUNCTION PSERAP(P)
-C     PSEUDO-RAPIDITY (-LOG TAN THETA/2)
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION PSERAP,P(3),PT,PL,TINY,THETA
-      PARAMETER (TINY=1D-3)
-      PT=SQRT(P(1)**2+P(2)**2)+TINY
-      PL=P(3)
-      THETA=ATAN2(PT,PL)
-      PSERAP=-LOG(TAN(0.5*THETA))
-      END
-C-----------------------------------------------------------------------
-C-----------------------------------------------------------------------
-      SUBROUTINE ALPSOR(A,N,K,IOPT)
-C-----------------------------------------------------------------------
-C     Sort A(N) into ascending order
-C     IOPT = 1 : return sorted A and index array K
-C     IOPT = 2 : return index array K only
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION A(N),B(5000)
-      INTEGER N,I,J,IOPT,K(N),IL(5000),IR(5000)
-      IF (N.GT.5000) then
-        write(*,*) 'Too many entries to sort in alpsrt, stop'
-        stop
-      endif
-      if(n.le.0) return
-      IL(1)=0
-      IR(1)=0
-      DO 10 I=2,N
-      IL(I)=0
-      IR(I)=0
-      J=1
-   2  IF(A(I).GT.A(J)) GOTO 5
-   3  IF(IL(J).EQ.0) GOTO 4
-      J=IL(J)
-      GOTO 2
-   4  IR(I)=-J
-      IL(J)=I
-      GOTO 10
-   5  IF(IR(J).LE.0) GOTO 6
-      J=IR(J)
-      GOTO 2
-   6  IR(I)=IR(J)
-      IR(J)=I
-  10  CONTINUE
-      I=1
-      J=1
-      GOTO 8
-  20  J=IL(J)
-   8  IF(IL(J).GT.0) GOTO 20
-   9  K(I)=J
-      B(I)=A(J)
-      I=I+1
-      IF(IR(J)) 12,30,13
-  13  J=IR(J)
-      GOTO 8
-  12  J=-IR(J)
-      GOTO 9
-  30  IF(IOPT.EQ.2) RETURN
-      DO 31 I=1,N
-  31  A(I)=B(I)
- 999  END
-C-----------------------------------------------------------------------
-      subroutine getunit(n)
-      implicit none
-      integer n,i
-      logical yes
-      do i=10,100
-        inquire(unit=i,opened=yes)
-        if(.not.yes) goto 10
-      enddo
-      write(*,*) 'no free units to write to available, stop'
-      stop
- 10   n=i
-      end
-
diff --git a/Generators/CompHep_i/CMakeLists.txt b/Generators/CompHep_i/CMakeLists.txt
deleted file mode 100644
index 2b89b9320ba2ddfb0e0cec5a02b32a089cc16ecf..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-################################################################################
-# Package: CompHep_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( CompHep_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PRIVATE
-                          Generators/GeneratorFortranCommon )
-
-# External dependencies:
-find_package( Lhapdf )
-find_package( Pythia6 )
-
-# tag allowUndefined was not recognized in automatic conversion in cmt2cmake
-
-# Component(s) in the package:
-atlas_add_library( CompHep_i
-                   src/*.F
-                   NO_PUBLIC_HEADERS
-                   INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES} GeneratorFortranCommonLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-atlas_install_runtime( share/Mixed.PEV share/inparmCompHep.dat )
-
diff --git a/Generators/CompHep_i/doc/Comphep.pdf b/Generators/CompHep_i/doc/Comphep.pdf
deleted file mode 100755
index 41c0b6f57ec278b6dde12971c5415f940c077ac9..0000000000000000000000000000000000000000
Binary files a/Generators/CompHep_i/doc/Comphep.pdf and /dev/null differ
diff --git a/Generators/CompHep_i/doc/Comphep.tex b/Generators/CompHep_i/doc/Comphep.tex
deleted file mode 100755
index d493cd584a92bb7f704dc7a4be024adc0432d9f1..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/doc/Comphep.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\textwidth=6.5in
-\textheight=9.0in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}   
-\def\topfraction{1.}
-\def\textfraction{0.}           
-\begin{document}
-\title{Comphep\_i: An interface between Comphep and Athena}
-\author{  Ian Hinchliffe (I\_Hinchliffe@lbl.gov) and Georgios Stavropoulos (George.Stavropoulos@cern.ch) }
-%\today
-
-\maketitle           
-
-This package runs Comphep  from within Athena. \\See the example
-in {\bf Comphep\_i/share/jobOptions.comphep.py } which shows how to
-read Comphep events and hadronize them using Pythia. 
-
-Users must first run 
-Comphep in standalone mode and make a file of events. An athena job
-then takes these events hadronizes them and passes them down the
-Athena event chain. The events must be made with a version of Comphep
-that is compatible, recent versions that support the Les Houches
-interface should be acceptable. CompHep version 4.4.3 is currently
-interfaced.
-
-Modify the file inparmCompHep.dat that
-you will find in your run area. You specify the name of your event
-file here. No Athena recompilation is needed is needed to process the events.
-
-Comphep information can be found here
-
-http://theory.sinp.msu.ru/parser/parser.php?file=/phpcms/comphep
-
-
-\end{document}
-
-
-
-
-
-
-
diff --git a/Generators/CompHep_i/doc/packagedoc.h b/Generators/CompHep_i/doc/packagedoc.h
deleted file mode 100644
index 73bf2173b8797d10c51b08431e1e5bbdd5bef9b9..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/doc/packagedoc.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-
- <i>CompHep_i is an interface between CompHep generator and Athena.
-
-This package runs Comphep  from within Athena. See the example
-in Comphep_i/share/jobOptions.comphep.py  which shows how to
-read Comphep events and hadronize them using Pythia. 
-
-Users must first run 
-Comphep in standalone mode and make a file of events. An athena job
-then takes these events hadronizes them and passes them down the
-Athena event chain. The events must be made with a version of Comphep
-that is compatible, recent versions that support the Les Houches
-interface should be acceptable. CompHep version 4.4.3 is currently
-interfaced.
-
-Modify the file inparmCompHep.dat that
-you will find in your run area. You specify the name of your event
-file here. No Athena recompilation is needed is needed to process the events.
-
-Comphep information can be found here
-
-http://theory.sinp.msu.ru/parser/parser.php?file=/phpcms/comphep
-
-@author Ian Hinchliffe (I_Hinchliffe@lbl.gov) and Georgios Stavropoulos (George.Stavropoulos@cern.ch)
-
-put into doxygen by E. Lobodzinska (Jan. 2008)
-
-</i>
-
-@page CompHep_i_page 
-
-
-
-*/
diff --git a/Generators/CompHep_i/share/Mixed.PEV b/Generators/CompHep_i/share/Mixed.PEV
deleted file mode 100755
index d28f98f20236b78a8a43d18dfb82918cc9f8546e..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/share/Mixed.PEV
+++ /dev/null
@@ -1,32 +0,0 @@
-#PEVLIB_v.1.0 =============================================
-#CompHEP version 41.10    
-#PROCESS   G    G   -> t    T   
-#Initial_state
-  SQRT(S) 1.400000E+04
-  Rapidity(c.m.s) 0.000000E+00
-  StrFun1: PDF:CTEQ5M(proton)
-  StrFun2: PDF:CTEQ5M(proton)
-#MASSES  0.0000000000E+00 0.0000000000E+00 1.7500000000E+02 1.7500000000E+02
-#Cross_section(Width) 6.044792E+02
-#Number_of_events      10000
-#----------------------------------------------------------
-#CompHEP version 41.10    
-#PROCESS   u    U   -> t    T   
-#Initial_state
-  SQRT(S) 1.400000E+04
-  Rapidity(c.m.s) 0.000000E+00
-  StrFun1: PDF:CTEQ5M(proton)
-  StrFun2: PDF:CTEQ5M(proton)
-#MASSES  0.0000000000E+00 0.0000000000E+00 1.7500000000E+02 1.7500000000E+02
-#Cross_section(Width) 2.336740E+01
-#Number_of_events      10000
-#----------------------------------------------------------
-#Number_of_subprocesses = 2
-#Total_cross_section_(pb) = 6.278466E+02
-#Events_mixed_and_randomized = 5
-#Nproc ================== Events ==========================
- 1     2.5862629735E+02 -3.8929624665E+02 -6.9213986440E+01 -9.5264879579E+01 -3.0735487854E+02  6.9213986440E+01  9.5264879579E+01  1.7668492924E+02  9.119E+01   (1 2)(2 3)(4 1)
- 1     1.0460780946E+02 -4.2958755232E+02 -6.1766794891E+01 -8.5014699774E+01 -2.3454657455E+02  6.1766794891E+01  8.5014699774E+01 -9.0433168313E+01  9.119E+01   (1 2)(2 3)(4 1)
- 1     2.7019408861E+01 -1.8288552277E+03 -3.3895191492E+01 -4.6652728760E+01 -3.8181298383E+02  3.3895191492E+01  4.6652728760E+01 -1.4200228350E+03  9.119E+01   (1 3)(2 1)(4 2)
- 1     8.6431336736E+01 -4.0074144085E+02 -3.0812587106E+01 -4.2409887815E+01 -2.0368052790E+02  3.0812587106E+01  4.2409887815E+01 -1.1062957622E+02  9.119E+01   (1 3)(2 1)(4 2)
- 1     1.9596119889E+02 -1.0717286282E+03 -1.6398457534E+02 -2.2570540473E+02 -8.7865508841E+02  1.6398457534E+02  2.2570540473E+02  2.8876591081E+00  9.119E+01   (1 2)(2 3)(4 1)
diff --git a/Generators/CompHep_i/share/inparmCompHep.dat b/Generators/CompHep_i/share/inparmCompHep.dat
deleted file mode 100755
index 0c68b35f7cb24322849c7e373225157725f72eef..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/share/inparmCompHep.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-1) PATH/FileName  for event file (PATH is optional)
-Mixed-4.4.3.PEV
-2) Process string (just for comment in PYTHIA output)
-p,p -> X,X,X,X
-3) Number of events to be generated by PYTHIA
-100000
diff --git a/Generators/CompHep_i/share/jobOptions.comphep.py b/Generators/CompHep_i/share/jobOptions.comphep.py
deleted file mode 100755
index f2ba942d541ad3fc7b324e675e5c202155947342..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/share/jobOptions.comphep.py
+++ /dev/null
@@ -1,52 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-# make sure we are loading the ParticleProperty service
-from PartPropSvc.PartPropSvcConf import PartPropSvc
-ServiceMgr += PartPropSvc()
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-ServiceMgr.MessageSvc.OutputLevel               = INFO
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Pythia_i.Pythia_iConf import Pythia
-job += Pythia()
-
-#job.Pythia.PythiaCommand = {"pysubs msel 13","pysubs ckin 3 18.","pypars mstp 43 2",
-#                                "pyinit pylisti 12",
-#                                "pyinit pylistf 1"
-#};
-job.Pythia.PythiaCommand = ["pyinit user comphep", "pyinit pylistf 1","pyinit dumpr 1 1"]
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/CompHep_i/src/comphepinter.F b/Generators/CompHep_i/src/comphepinter.F
deleted file mode 100755
index ed21f17da7b4b2461b003c9bfbefe2514b94d163..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/src/comphepinter.F
+++ /dev/null
@@ -1,665 +0,0 @@
-*************************************************************************
-*                      interface routines                               *
-*          for CompHEP 4.4.3  -  PYTHIA 6.2 interface                   *
-*************************************************************************
-*  15.12.99         Ilyin V.A.                                          *  
-*  24.12.99         Modified by A. Belyaev    for   PYTHIA 6.1          *
-*  18.05.2000  Modified by A.Skachkova for CompHEP version N4           *
-*  22.10.2000    SETWID is removed, V.A.Ilyin                           *
-*  22.10.2000  Zero masses protected, V.A.Ilyin                         *
-*  25.11.2001  updated to PYTHIA 6.2 by V.A.Ilyin                       *
-*  27.03.2006  Modified for Version 4.4.3 by Vikas Bansal               *
-*************************************************************************
-
-*****************************************
-*...write event (in PYJETS format)
-*****************************************
-      SUBROUTINE EVOUT
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)      
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      SAVE
-      
-      WRITE(6,*) N,((K(I,J),J=1,5),I=1,N),((P(I,J),J=1,5),I=1,N),
-     .             ((V(I,J),J=1,5),I=1,N)
-     
-      RETURN
-      END
-
-**************************************************
-*...read number of subprocesses
-*************************************************
-      SUBROUTINE SUBNUM
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-*...CompHEP-PYTHIA interface   
-      CHARACTER XXXX*80,PROCESS*80,EVFILE*500, TotalProc*30
-      COMMON /INPARM/ IS,NEVPY,PROCESS,EVFILE
-      COMMON/SUBPROC/NUP(100),KFP(100,20),SIGMAERR(100),IDPR(100),
-     .         NCUT(100),NEV(100),XM(100,20,3),SIGMA(100),NPROC
-  
-      IS = 44
-1     READ(IS,FMT='(A80)') XXXX
-      IF (XXXX(1:15).EQ.'##total: Nproc=') THEN
-         READ(XXXX,*) TotalProc,TotalProc
-         READ(TotalProc,FMT='(6x,i4)') nProc
-      ELSE
-         GOTO 1
-      ENDIF  
-      REWIND IS                  
-
-      RETURN
-      END           
-
-*****************************
-*...read header of the event file
-************************************
-      SUBROUTINE RHEADER
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-*...PYTHIA common blocks
-      INTEGER PYCOMP
-      COMMON /PYPARS/ MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &LPRUP(MAXPUP)
-*...CompHEP-PYTHIA interface
-      CHARACTER PROCESS*80,EVFILE*500
-      CHARACTER BEAM*16
-      LOGICAL  EOL
-      CHARACTER*100 EMPTYS
-      CHARACTER*100 SPROCESS,BEAM1,BEAM2,STRF1,STRF2,XXXX,EVENTS
-      COMMON /INPARM/ IS,NEVPY,PROCESS,EVFILE
-      COMMON/SUBPROC/NUP(100),KFP(100,20),SIGMAERR(100),IDPR(100),
-     .         NCUT(100),NEV(100),XM(100,20,3),SIGMA(100),NPROC
-      COMMON/BEAMS/BENERGY(2),KFB(2),BMASS(2),BEAM(2)
-      SAVE
-
-      READ(IS,FMT='(A80)') BEAM1
-      READ(IS,FMT='(A80)') BEAM2
-      READ(IS,FMT='(A80)') STRF1
-      IF ( .NOT. EOL(STRF1)) READ(IS,FMT='(30x,A1)') XXXX
-      READ(IS,FMT='(A80)') STRF2
-      IF ( .NOT. EOL(STRF2)) READ(IS,FMT='(30x,A1)') XXXX
-
-*...LOOP OVER NUMBER OF SUBPROCESSES
-      DO NPRC=1,NPROC
-
-*VB   Read Sub Process
-      SPROCESS = EMPTYS(100)
-      READ(IS,FMT='(20x,A99)') SPROCESS
-
-*VB   READ Cross section for a sub-process
-      j = 0
-*VB   increasing j to near 'Xsection'
-      j = j + 1
-503   CONTINUE
-      j = j + 1
-      IF (SPROCESS(j:j).eq.';' .OR. j.GT. 120) goto 603
-      IF(SPROCESS(j:(j+7)).EQ.'CrosSec=') THEN
-*         READ(SPROCESS((j+8):),FMT='(G11.5)') SIGMA(NPRC)
-         READ(SPROCESS((j+8):),*) SIGMA(NPRC)
-         GOTO 603
-      ENDIF   
-      GOTO 503
-603   CONTINUE
-
-*VB   READ Cross section Error for a sub-process
-      j = 0
-*VB   increasing j to near 'XsectionErr'
-      j = j + 1
-513   CONTINUE
-      j = j + 1
-      IF (SPROCESS(j:j).eq.';' .OR. j.GT. 120) goto 613
-      IF(SPROCESS(j:(j+10)).EQ.'CrosSecErr=') THEN
-*         READ(SPROCESS((j+11):),FMT='(G11.5)') SIGMAERR(NPRC)
-         READ(SPROCESS((j+11):),*) SIGMAERR(NPRC)
-         GOTO 613
-      ENDIF   
-      GOTO 513
-613   CONTINUE
-
-*VB Reading second line of sub process only if it exists.
-*VB It says master=3. It is fixed in comphep to this value.
-*VB Its value being 3 corresponds to unweighted event as per Les Houches
-*VB document hep-ph/0109068
-      IF ( .NOT. EOL(SPROCESS)) READ(IS,FMT='(30x,A1)') XXXX
-
-*...  which version of comphep. This is 4.4 compatible
-      READ(IS,FMT='(10x,A80)') XXXX
-
-*VB Read number of (unweighted) events in the input for a sub-process
-      READ(IS,FMT='(9x,A100)') EVENTS
-      j = 0
-702   CONTINUE
-      j = j + 1
-      IF (EVENTS(j:j).eq.';' .OR. j.GT. 120) goto 802
-      IF(EVENTS(j:(j+9)).EQ.'IDprocess=') THEN
-         READ(EVENTS((j+10):),*) IDPR(NPRC)
-         GOTO 802
-      ENDIF   
-      GOTO 702
-802   CONTINUE
-      
-502   CONTINUE
-      j = j + 1
-      IF (EVENTS(j:j).eq.';' .OR. j.GT. 120) goto 602
-      IF(EVENTS(j:(j+1)).EQ.'N=') THEN
-         READ(EVENTS((j+2):),*) NEV(NPRC)
-         GOTO 602
-      ENDIF   
-      GOTO 502
-602   CONTINUE
-
-703   CONTINUE
-      j = j + 1
-      IF (EVENTS(j:j).eq.';' .OR. j.GT. 120) goto 803
-      IF(EVENTS(j:(j+4)).EQ.'CutN=') THEN
-         READ(EVENTS((j+5):),*) NCUT(NPRC)
-         GOTO 803
-      ENDIF   
-      GOTO 703
-803   CONTINUE
-
-*VB Reading second line of n_events only if it exists.
-*VB It says origN. i.e. Events before mixing.
-      IF ( .NOT. EOL(EVENTS)) READ(IS,FMT='(30x,A1)') XXXX
-*VB   Read parton information of a sub-process
-      CALL R_PROC(NPRC,SPROCESS)
-
-*...read names of beams used in CompHEP and get their KF codes and masses
-      KFB1=KFB(1)
-      KFB2=KFB(2)
-
-      BEAM(1) = EMPTYS(20)
-      CALL R_BEAM(BEAM1,STRF1,KFB(1),BEAM(1),BENERGY(1), BMASS(1)
-     &,PDFGUP(1), PDFSUP(1))
-      BEAM(2) = EMPTYS(20)
-      CALL R_BEAM(BEAM2,STRF2,KFB(2),BEAM(2),BENERGY(2), BMASS(2)
-     &,PDFGUP(2), PDFSUP(2))
-      CALL PYNAME(KFB(1),BEAM(1))
-      CALL PYNAME(KFB(2),BEAM(2))
-
-*...define beam momenta for PYTHIA 'USER" frame
-      CALL BEAMFR
- 
-*...set out-particle masses in PYTHIA according to CompHEP events
-      DO 30 i=3,NUP(nprc)
-       IF(XM(nprc,i,1).gt.0.d0) PMAS(PYCOMP(KFP(nprc,i)),1)=XM(nprc,i,1)
-30    CONTINUE
-
-*...end of loop over subprocess headers
-      ENDDO
-
-      READ(IS,FMT='(1x,A1)') XXXX
-      READ(IS,FMT='(1x,A1)') XXXX
-
-      RETURN
-      END
-
-
-*******************************
-* evaluate momenta of beams  
-*******************************
-      SUBROUTINE BEAMFR
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-*...PYTHIA common blocks
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*...CompHEP-PYTHIA interface
-      CHARACTER BEAM*16
-      DIMENSION PBCMS(2,5)
-      COMMON/SUBPROC/NUP(100),KFP(100,20),SIGMAERR(100),IDPR(100),
-     .         NCUT(100),NEV(100),XM(100,20,3),SIGMA(100),NPROC
-      COMMON/BEAMS/BENERGY(2),KFB(2),BMASS(2),BEAM(2)
-      SAVE
-
-*...evaluate beams momenta in CMS
-        PBCMS(1,1) = 0
-        PBCMS(1,2) = 0
-        PBCMS(1,3) = sqrt(BENERGY(1)**2-BMASS(1)**2)
-        PBCMS(1,4) = BENERGY(1)
-        PBCMS(1,5) = BMASS(1)
-        PBCMS(2,1) = 0
-        PBCMS(2,2) = 0
-        PBCMS(2,3) = -sqrt(BENERGY(2)**2-BMASS(2)**2)
-        PBCMS(2,4) = BENERGY(2)
-        PBCMS(2,5) = BMASS(2)
-*...evaluate beams momenta in the collison frame using Lorentz boost 
-*...given from the CompHEP session
-
-        RPDTY = 0.0
-
-        P(1,1) = PBCMS(1,1)
-        P(1,2) = PBCMS(1,2)
-        P(1,3) = SINH(RPDTY)*PBCMS(1,4) + COSH(RPDTY)*PBCMS(1,3)
-        P(1,4) = COSH(RPDTY)*PBCMS(1,4) + SINH(RPDTY)*PBCMS(1,3)
-        P(1,5) = PBCMS(1,5)
-        P(2,1) = PBCMS(2,1)
-        P(2,2) = PBCMS(2,2)
-        P(2,3) = SINH(RPDTY)*PBCMS(2,4) + COSH(RPDTY)*PBCMS(2,3)
-        P(2,4) = COSH(RPDTY)*PBCMS(2,4) + SINH(RPDTY)*PBCMS(2,3)
-        P(2,5) = PBCMS(2,5)
- 
-      RETURN
-      END
-
-******************************
-* parsing the beam strings
-******************************
-      SUBROUTINE R_BEAM(COLL_BEAM,STRF,KFB,BEAM,BENERGY,BMASS,IPDFGUP
-     & ,IPDFSUP)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &LPRUP(MAXPUP)
-      CHARACTER BEAM*16,STRF*80,COLL_BEAM*80,SFUNC*5
-      COMMON /QCDPAR/ QCDLF(6),NL
-      SAVE
-      
-      IS = 44
-*** error case
-      IF (COLL_BEAM.eq.'') THEN
-         write(*,*) 'Error in COLL_BEAM'
-         stop
-      ENDIF
-
-*** error case
-      IF (STRF.eq.'') THEN
-         write(*,*) 'Error in STRF'
-         stop
-      ENDIF
-
-*** default beam mass
-      BMASS = 0
-
-*** default beam energy is that at LHC
-      BENERGY = 7000
-
-      i = 0
-*VB   increasing i to 'energy'
-      i = i + 14
-500   CONTINUE
-      i = i + 1
-      IF (COLL_BEAM(i:i).eq.';' .OR. i.GT. 47) goto 600
-      IF(COLL_BEAM(i:(i+5)).EQ.'energy') THEN
-         READ(COLL_BEAM((i+7):),*) BENERGY
-         i = 34
-         GOTO 500
-      ENDIF   
-
-      IF(COLL_BEAM(i:(i+1)).EQ.'KF') THEN
-         READ(COLL_BEAM((i+3):),*) KFB
-         i = 37
-         GOTO 500
-      ENDIF   
-
-      IF(COLL_BEAM(i:(i+3)).EQ.'name') THEN
-         READ(COLL_BEAM((i+5):),*) BEAM
-         i = 47
-*VB  Check if beam name is of single alphabet        
-         IF (BEAM(2:2).ne."'") THEN
-            IF (BEAM.eq.'pr') THEN
-               BEAM ='proton'
-               BMASS = 0.938
-            ENDIF
-            IF (BEAM.eq.'an') THEN
-               BEAM ='anti-proton'
-               BMASS= 0.938
-            ENDIF
-            IF (BEAM.eq.'el') THEN
-               BEAM ='electron'
-               BMASS= 0.000511
-            ENDIF
-           IF (BEAM.eq.'La') THEN
-               BEAM ='gamma'
-               BMASS= 0.
-            ENDIF
-            GOTO 499
-         ELSE 
-            beam = beam(1:1)
-            GOTO 499
-         ENDIF
-       ENDIF   
-       GOTO 500
-
-600   CONTINUE
-
-*VB   If you are reaching here then wrong beam
-      GOTO 998
-
-499   CONTINUE
-
-*VB------Now parsing Structure function
-
-      i = 0
-*VB   increasing i to 'strfun name'
-      i = i + 20
-510   CONTINUE
-      i = i + 1
-      IF (STRF(i:i).eq.';' .OR. i.GT. 100) goto 610
-      IF(STRF(i:(i+3)).EQ.'name') THEN
-         READ(STRF((i+5):),*) SFUNC
-         IF (SFUNC .eq. 'OFF') THEN
-            write(*,*) 'STRFUN is OFF. It is not required by Pythia'
-            GOTO 599
-         ENDIF
-         i = i + 5
-         GOTO 510
-      ENDIF   
-
-      IF(STRF(i:(i+4)).EQ.'PDFid') THEN
-         READ(STRF((i+6):),*) IPDFSUP
-         i = i + 4
-         GOTO 510
-      ENDIF   
-
-      IF(STRF(i:(i+4)).EQ.'PDFgr') THEN
-         READ(STRF((i+6):),*) IPDFGUP
-         GOTO 599
-      ENDIF   
-      GOTO 510
-
-610   CONTINUE
-
-*VB----problem with strfun
-      goto 999
-
-599   CONTINUE
-
-      RETURN
-
-998   WRITE(*,*) 'Unknown BEAM'
-      RETURN
-
-999   WRITE(*,*) 'Unknown STRF'
-      RETURN
-      END
-
-
-*********************************
-* parsing the subprocess string
-*********************************
-      SUBROUTINE R_PROC(NPRC,PROCESS)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      COMMON/SUBPROC/NUP(100),KFP(100,20),SIGMAERR(100),IDPR(100),
-     .         NCUT(100),NEV(100),XM(100,20,3),SIGMA(100),NPROC
-      COMMON /QCDPAR/ QCDLF(6),NL
-      CHARACTER*80 PROCESS, PARTON, PARTON_MASS, XXXX,QCDINFO
-      CHARACTER*3 PNAME(1:8)
-      CHARACTER*6 PNAME_TMP(1:8)
-      LOGICAL EOL
-      SAVE
-
-      IS = 44
-
-*VB   Number of particles in a subprocess
-      NUP(NPRC) = 0
-
-      j = 0
-*VB   increasing j to near 'NPartons'
-      j = j + 40
-501   CONTINUE
-      j = j + 1
-      IF (PROCESS(j:j).eq.';') goto 601
-      IF(PROCESS(j:(j+6)).EQ.'Nparton') THEN
-         READ(PROCESS((j+8):),*) NUP(NPRC)
-         GOTO 601
-      ENDIF   
-      GOTO 501
-601   CONTINUE
-
-      IF (NUP(NPRC).GT.10) THEN
-        WRITE(*,*) 'Error: more than 10 partons in final state'
-        STOP
-      ENDIF
-
-      IF(NUP(NPRC).EQ.0) THEN
-        WRITE(*,*) 'No process found in event file. Stopping'
-        STOP
-      ENDIF
-
-      DO K = 1, NCUT(NPRC)
-        READ(IS,FMT='(22x,A80)') XXXX
-      ENDDO
-
-*VB Number of input particles
-      NIN = 0
-      DO K = 1, NUP(NPRC)
-
-      READ(IS,FMT='(22x,A80)') PARTON
-      READ(IS,FMT='(9x,A80)') PARTON_MASS
-
-*VB  get parton IN status
-      j = 0
-514   CONTINUE
-      j = j + 1
-      IF (PARTON(j:j).eq.';' .OR. j.GT. 70) goto 614
-      IF(PARTON(j:(j+2)).EQ.'in=') THEN
-         READ(PARTON((j+3):),*) NIN_READ
-         IF (NIN_READ .ge. NIN ) NIN = NIN_READ
-         GOTO 614
-      ENDIF   
-      GOTO 514
-614   CONTINUE
-
-
-*VB  get parton KF code
-      j = 0
-504   CONTINUE
-      j = j + 1
-      IF (PARTON(j:j).eq.';' .OR. j.GT. 70) goto 604
-      IF(PARTON(j:(j+2)).EQ.'KF=') THEN
-         READ(PARTON((j+3):),*) KFP(NPRC, K)
-         GOTO 604
-      ENDIF   
-      GOTO 504
-604   CONTINUE
-
-*VB  get parton name
-      j = 0
-505   CONTINUE
-      j = j + 1
-      IF (PARTON(j:j).eq.';' .OR. j.GT. 30) goto 605
-      IF(PARTON(j:(j+3)).EQ.'name') THEN
-         READ(PARTON((j+5):),*) PNAME_TMP(K)
-         GOTO 605
-      ENDIF   
-      GOTO 505
-605   CONTINUE
-
-      DO 551 I=2,6
-         IF(PNAME_TMP(K)(I:I) .eq. "'") L = I
-551   CONTINUE
-         PNAME(K) = PNAME_TMP(K)(2:(L-1))
-*VB The following line is now(gfortran) sufficient
-         PNAME(K) = PNAME_TMP(K)
-
-
-*VB The following is only for exceptional events from COMPHEP.
-*VB In newer version it is taken care by COMPHEP
-*VB   If KF from comphep is 0, then find it in this file
-      IF (KFP(NPRC,K).eq.0) THEN
-        KFP(NPRC,K) = KFPART(PNAME(K))
-        IF(KFP(NPRC,K).eq.0) THEN
-           write(*,*) 'Unknown for PYTHIA particle name: ',
-     &          PNAME(K)
-          stop
-        ENDIF
-      ENDIF
-
-*VB  get parton_mass
-      j = 0
-506   CONTINUE
-      j = j + 1
-      IF (PARTON_MASS(j:j).eq.';' .OR. j.GT. 10) goto 606
-      IF(PARTON_MASS(j:(j+3)).EQ.'mass') THEN
-         READ(PARTON_MASS((j+5):),*) XM(NPRC,K,1) 
-         GOTO 606
-      ENDIF   
-      GOTO 506
-606   CONTINUE
-
-      ENDDO
-
-      IF((NUP(NPRC)-NIN).le.0) THEN
-        WRITE(*,*) 'No OUT particles in the process. Stopping'
-        STOP
-      ENDIF
-
-      IF(NIN.eq.1) THEN
-        WRITE(*,*) 'No decay process allowed. Stopping'
-        STOP
-      ENDIF
-
-      IF(NIN.eq.0) THEN
-        WRITE(*,*) 'No input particle in the process. Stopping'
-        STOP
-      ENDIF
-
-      READ(IS,FMT='(20x,A80)') QCDINFO      
-      i=0
-511   CONTINUE
-      i = i + 1
-      IF (QCDINFO(i:i).eq.';' .OR. i.GT. 75) goto 611
-      IF(QCDINFO(i:(i+2)).EQ.'NL=') THEN
-        READ(QCDINFO((i+3):),*) NL
-         i = 10
-         GOTO 511
-      ENDIF   
-
-      IF(QCDINFO(i:(i+9)).EQ.'QCDLambda=') THEN
-        READ(QCDINFO((i+10):),*) QCDLF(5)
-        GOTO 611
-      ENDIF
-      GOTO 511
-
-
-*VB READ FORMAT LINES
-611   READ(IS,FMT='(20x,A80)') XXXX      
-556   IF ( .NOT. EOL(XXXX)) THEN 
-         READ(IS,FMT='(20x,A80)') XXXX
-         GOTO 556
-      ENDIF
-
-      RETURN
-      END
-
-
-*######################################################
-*  Some service routines
-*######################################################
-
-********************
-* make empty string
-********************
-      FUNCTION EMPTYS(N)
-      CHARACTER*(*) EMPTYS
-      SAVE
-
-      DO 15 k=1,N
-           EMPTYS(k:k)=' '
-15    CONTINUE
-      RETURN
-      END
-
-
-********************
-* Check End of Line
-********************
-      LOGICAL FUNCTION EOL(INPUT_LINE)
-      CHARACTER*(*) INPUT_LINE
-      INTEGER K
-      SAVE
-
-      EOL = .FALSE.
-      DO 16 K=1,LEN(INPUT_LINE)
-        IF (INPUT_LINE(K:K).eq.';') EOL = .TRUE.
-16    CONTINUE
-      RETURN
-      END
-
-*******************************
-* delete blanks in string
-*******************************
-      FUNCTION CMPRS(STR)
-      CHARACTER*500 STR,XSTR,CMPRS
-      CHARACTER*500 EMPTYS
-      SAVE
-
-      j=1
-      XSTR = EMPTYS(500)
-      DO 10 i=1,80
-        IF(STR(i:i).ne.' ') THEN
-          XSTR(j:j)=STR(i:i)
-          j=j+1
-        ENDIF
-10    CONTINUE
-      CMPRS = XSTR
-      RETURN
-      END
-*****************************************
-*...initialization procedure for input data
-*   25.11.2001  V.Ilyin
-*****************************************
-      SUBROUTINE RINPAR
-      COMMON /INPARM/ IS,NEVPY,PROCESS,EVFILE
-      CHARACTER XXX*500,PROCESS*80,EVFILE*500,CMPRS*500
-      SAVE
-
-      OPEN(22,FILE='inparmCompHep.dat',STATUS='UNKNOWN')
-      READ(22,FMT='(A500)') XXX
-      READ(22,FMT='(A500)') XXX
-
-      EVFILE = CMPRS(XXX)
-
-      READ(22,FMT='(A500)') XXX
-      READ(22,FMT='(A500)') XXX
-
-      PROCESS = CMPRS(XXX)
-
-c      READ(22,FMT='(i2)') IS
-      IS = 44                              ! channel to read event file
-*... input channel for unweighted events 
-      OPEN(IS,FILE=EVFILE,STATUS='UNKNOWN')
-
-      READ(22,FMT='(A500)') XXX
-      READ(22,FMT='(i10)') NEVPY
-      CLOSE(22)
-
-      RETURN
-      END
-
-*************************************************************************
-*                         KFPART routine                                *
-*          for CompHEP 41.10  -  PYTHIA 6.2 interface                   *
-*************************************************************************
-*  25.11.2001  Ilyin V.A.                                               *
-*************************************************************************
-*VB In version 4.4.3 kfpart is part of COMPHEP
-* This can be still kept here to add quick functionality in case of new particles which will have to be added here.
- 
-      INTEGER FUNCTION kfpart(pname)
-      CHARACTER*3 pname
-
-      IF     (pname.eq.'e1 ') THEN 
-         kfpart=11
-      ELSEIF (pname.eq.'e4 ') THEN 
-         kfpart=17
-      ELSEIF (pname.eq.'ex ') THEN ! e*-
-         kfpart=4000011
-      ELSEIF (pname.eq.'EX ') THEN !
-         kfpart=-4000011
-      ELSE 
-         kfpart=0
-      ENDIF
-
-      RETURN
-      END
-
-
diff --git a/Generators/CompHep_i/src/initcomphep.F b/Generators/CompHep_i/src/initcomphep.F
deleted file mode 100755
index 253b232afeac56eb4ef9ee0f7646d5a6d888f746..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/src/initcomphep.F
+++ /dev/null
@@ -1,60 +0,0 @@
-      SUBROUTINE INITCOMPHEP
-c     interface to external pythia processes using Les Houches accord 
-c hep-ph/0109068
-
-c     Adapted for pythia 6.203
-c     Ian Hinchliffe (may 2002)
-c      Based on code by
-c*************************************************************************
-c*                          UPINIT routine                               *
-c*          for CompHEP 4.4.3  -  PYTHIA 6.2 interface                   *
-c*************************************************************************
-c*  25.11.2001         Ilyin V.A.                                        *
-c*  27.03.2006 Modified for version 4.4.3 by Vikas Bansal                *
-c
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
- 
-C...User process initialization commonblock.
-#include "GeneratorFortranCommon/heprup.inc"
-*...CompHEP-PYTHIA interface
-      CHARACTER BEAM*16
-*      COMMON/BEAMS/SQRTS,RPDTY,KFB(2),BMASS(2),BEAM(2)
-      COMMON/BEAMS/BENERGY(2),KFB(2),BMASS(2),BEAM(2)
-      COMMON/SUBPROC/NUP(100),KFP(100,20),SIGMAERR(100),IDPR(100),
-     .        NCUT(100),NEV(100),XM(100,20,3),SIGMA(100),NPROC
-      RPDTY = 0d0
-      SQRTS = BENERGY(1) + BENERGY(2)
-
-*...PDG codes for beams
-      IDBMUP(1)=KFB(1)     
-      IDBMUP(2)=KFB(2)     
-*...energies of beams (in PYTHI beams are massless !)
-      EBMUP(1) = SQRTS/2d0*(COSH(RPDTY)+SINH(RPDTY))
-      EBMUP(2) = SQRTS/2d0*(COSH(RPDTY)-SINH(RPDTY))
-*...PDFLIB group and set of the parton distributions
-***     already done
-*...events weighting
-      IDWTUP = 3     !unweighted input
-*...number of subprocesses in input
-      NPRUP = nproc
-*...cross section for each subprocess
-      DO 100 i=1,NPRUP
-       XSECUP(i) = SIGMA(i)
-100   CONTINUE
-*...statistcal error on the cross sections
-      DO 110 i=1,NPRUP
-       XERRUP(i) = SIGMAERR(i)
-110   CONTINUE
-*...maximum event weight
-      DO 120 i=1,NPRUP
-       XMAXUP(i) = 1.d0
-120   CONTINUE
-*...unique integer identifier for each subprocess
-      DO 130 i=1,NPRUP
-       LPRUP(i) = IDPR(i)
-130   CONTINUE
- 
-      RETURN
-      END
diff --git a/Generators/CompHep_i/src/usecomphep.F b/Generators/CompHep_i/src/usecomphep.F
deleted file mode 100755
index d5cbeca6c957065b3a493f780f49378d32c1e6aa..0000000000000000000000000000000000000000
--- a/Generators/CompHep_i/src/usecomphep.F
+++ /dev/null
@@ -1,440 +0,0 @@
-      SUBROUTINE USECOMPHEP
-c     routine for Les Houches interface to external pythiA routines
-c     adapted from base pythia code. 
-c     Ian Hinchliffe (May 2002)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-C      from 
-*************************************************************************
-*                          UPEVNT routine                               *
-*          for CompHEP 4.4.3  -  PYTHIA 6.2 interface                   *
-*************************************************************************
-*  25.11.2001       Ilyin V.A.                                          *
-*  27.03.2006  Modified for version 4.4.3 by Vikas Bansal               *
-*************************************************************************
- 
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/heprup.inc"
-*...CompHEP-PYTHIA interface
-      COMMON/SUBPROC/NNUP(100),KFP(100,20),SIGMAERR(100),IDPR(100),
-     .            NCUT(100),NEV(100),XM(100,20,3),SIGMA(100),NPROC
-      COMMON/BEAMS/BENERGY(2),KFB(2),BMASS(2),BEAM(2)
-      CHARACTER BEAM*16
-      character chain*60, K1*1, K2*1, XN*2,COLON*1     
-      COMMON/CCHAIN/ICC(100,2,20)
-      COMMON/ISMEAR/ISMEAR
-      COMMON /INPARM/ IS,NEVPY,PROCESS,EVFILE
-      CHARACTER EVFILE*500,PROCESS*80,LINE*500
-      REAL*8 PP(20,4)
-      COMMON /QCDPAR/ QCDLF(6),NNL
-      COMMON/RANDM0/IDUM
-
-* A. Belyaev, tau-leptons treatment *
-      INTEGER ITAU(10)      
-      common/UTAU/KFUSER
-      SAVE /UTAU/
-
-*...read current event
-      PP(1,1)=0d0
-      PP(1,2)=0d0
-      PP(2,1)=0d0
-      PP(2,2)=0d0
-      READ(IS,FMT='(A500)',END=1000,ERR=1000) LINE  
-      DO M = 1,6
-         READ(LINE(M:M),FMT='(A1)' ) COLON
-         IF ( COLON .eq. ':' ) K = M - 1
-      ENDDO
-      READ(LINE(1:K),FMT='(I6)') NPRC 
-      Num=3*(NNUP(NPRC)-2)+2
-      CALL ITOCHR(XN,NUM)
-      LINE = LINE((K+1):500)
-      READ(LINE,FMT='('//XN//'(1x,G17.10),1x,G10.3,1x,A)'
-     .,END=1000,
-     .ERR=1000) PP(1,3),PP(2,3),((PP(N,J),J=1,3),N=3,NNUP(NPRC)),
-     .QUP,chain
-
-      DO 101 M = 1,60
-      READ(chain(M:M),FMT='(A1)' ) COLON
-      IF ( COLON .eq. ':' ) K = M - 1
-101   CONTINUE
-      chain = chain(1:K)
-
-      pi=dacos(-1d0)
-
-*...the number of particle entries in the current event
-      NUP =  NNUP(NPRC)
-*...the identity of the current subprocess
-      IDPRUP = LPRUP(NPRC)
-*...the event weight
-      XWGTUP = 1.d0
-*...scale Q of the event (factorization scale)
-      SCALUP = QUP
-*...the QED coupling used
-      AQEDUP = -1    ! not QED process
-*...the QCD coupling used for this event (ME) 
-*VB Now calculating as per LHAPDF
-      AQCDUP = ALPHASPDF(SCALUP,QCDLF(5),NNL)  ! the same as factorization scale
-*...particle identity code
-      NTAU=0
-      DO i=1,NUP
-         IDUP(i) = KFP(nprc,i)
-         IF(abs(IDUP(i)).eq.15.or.abs(IDUP(i)).eq.16) THEN
-            NTAU=NTAU+1
-            ITAU(NTAU)=i
-            IF(abs(IDUP(i)).eq.15.and.
-     &           (abs(KFUSER).eq.24.or.abs(KFUSER).eq.37)) 
-     &           KFUSER=KFUSER*SIGN(1,-IDUP(i))
-            NTAUPAIR=(NTAU-1)/2+1
-            IDUP(NUP+NTAUPAIR)=KFUSER
-         ENDIF
-      ENDDO
-*...status code of particle
-      ISTUP(1) = -1
-      ISTUP(2) = -1
-      DO i=3,NUP+NTAU
-         ISTUP(i) = 1
-         IF(i.gt.NUP)ISTUP(i) = 2
-      ENDDO
-*...position of first and last mother of particle
-       MOTHUP(1,1) = 0 
-       MOTHUP(2,1) = 0
-       MOTHUP(1,2) = 0 
-       MOTHUP(2,2) = 0 
-      DO i=3,NUP
-       MOTHUP(1,i) = 1 
-       MOTHUP(2,i) = 2
-      ENDDO
-*...the particle momenta
-      DO  NN=1,NUP
-         PUP(1,NN)=PP(NN,1)
-         PUP(2,NN)=PP(NN,2)
-         PUP(3,NN)=PP(NN,3)
-         PUP(4,NN)=SQRT(PP(NN,1)**2+PP(NN,2)**2+PP(NN,3)**2
-     .        +XM(nprc,NN,1)**2)
-         PUP(5,NN)=XM(nprc,NN,1)
-      ENDDO
-      DO NT=1,NTAUPAIR
-         NN=NUP+NT
-         PUP(1,NN)=PP(ITAU(2*NT-1) ,1)+PP(ITAU(2*NT),1)
-         PUP(2,NN)=PP(ITAU(2*NT-1) ,2)+PP(ITAU(2*NT),2)
-         PUP(3,NN)=(PP(ITAU(2*NT-1),3)+PP(ITAU(2*NT),3))
-         PUP(4,NN)=PUP(4,ITAU(2*NT-1))+PUP(4,ITAU(2*NT))
-         PUP(5,NN)=
-     &        sqrt(PUP(4,NN)**2-PUP(1,NN)**2-PUP(2,NN)**2-PUP(3,NN)**2)
-      ENDDO
-*...invariant lifetime
-      DO  i=1,NUP+NTAUPAIR
-         VTIMUP(i) = 0.d0
-      ENDDO
-*...spin information
-      DO  i=1,NUP+NTAUPAIR
-         SPINUP(i) = 9
-      ENDDO
-
-*...Breit-Wigner smearing of masses for unstable particles in OUT state if yes
-        CALL SMEARMASS
-*...set color flows
-      DO I=1,30
-       IF (CHAIN(I:I+1).EQ.') ') LENGTH=I
-      ENDDO
-      ITAG = 500
-      DO I=1,NUP
-        ICOLUP(1,i) = 0
-        ICOLUP(2,i) = 0
-      ENDDO
-      DO I=1,LENGTH,5
-        K1=CHAIN(I+1:I+1)
-        N1=NUMBER(K1)
-        K2=CHAIN(I+3:I+3)
-        N2=NUMBER(K2)
-        IF (N1.le.2) THEN
-          ICOLUP(1,N1) = ITAG
-        ELSE
-          ICOLUP(2,N1) = ITAG
-        ENDIF
-        IF (N2.le.2) THEN
-          ICOLUP(2,N2) = ITAG
-        ELSE
-          ICOLUP(1,N2) = ITAG
-        ENDIF
-        ITAG = ITAG+1
-      ENDDO
-
-*     now we are insert intermediate resonanse(s) after 1,2 particles:************
-      
-      DO I1=NTAUPAIR,1,-1
-         INDX=NUP+I1
-         
-         IDTMP  =IDUP( INDX)
-         ISTTMP =ISTUP(INDX)
-         ICOL1TMP=ICOLUP(1,INDX)
-         ICOL2TMP=ICOLUP(2,INDX)
-         P1TMP= PUP(1,INDX)
-         P2TMP= PUP(2,INDX)
-         P3TMP= PUP(3,INDX)
-         P4TMP= PUP(4,INDX)
-         P5TMP= PUP(5,INDX)
-         
-         DO I2=NUP+I1-1,3,-1
-            IDUP(I2+1)=IDUP(I2)
-            ISTUP(I2+1)   =ISTUP(I2)
-            ICOLUP(1,I2+1)  =ICOLUP(1,I2)
-            ICOLUP(2,I2+1)  =ICOLUP(2,I2)
-            DO J1=1,5
-               PUP(J1,I2+1)   =PUP(J1,I2)
-            ENDDO
-         ENDDO
-         IDUP(3)      =IDTMP
-         ISTUP(3)     =ISTTMP
-         ICOLUP(1,3)  =ICOLTMP1
-         ICOLUP(2,3)  =ICOLTMP2
-         PUP(1,3)  =P1TMP 
-         PUP(2,3)  =P2TMP 
-         PUP(3,3)  =P3TMP 
-         PUP(4,3)  =P4TMP 
-         PUP(5,3)  =P5TMP 
-      ENDDO
-****************************************************************
-      NUP=NUP+NTAUPAIR
-      
-      NTAU=0
-      DO  i=3,NUP
-         MOTHUP(1,i)=0
-         MOTHUP(2,i)=0
-         IF(abs(IDUP(I)).eq.15.or.abs(IDUP(I)).eq.16) THEN
-            NTAU=NTAU+1
-            NTAUPAIR=(NTAU-1)/2+1        
-            MOTHUP(1,i)=3+NTAUPAIR-1
-            MOTHUP(2,i)=0
-         ENDIF
-      ENDDO
-
-      RETURN
-
-*...EOF or error in reading events from CompHEP output
-1000  NUP = 0
-
-      RETURN
-      END
-
-
-      FUNCTION NUMBER(PARTON)
-      CHARACTER PARTON*1
-      IF (PARTON.EQ.'1') THEN 
-      NUMBER=1
-       ELSEIF(PARTON.EQ.'2') THEN        
-       NUMBER=2
-        ELSEIF(PARTON.EQ.'3') THEN         
-         NUMBER=3
-         ELSEIF(PARTON.EQ.'4') THEN          
-          NUMBER=4
-          ELSEIF(PARTON.EQ.'5') THEN
-           NUMBER=5
-           ELSEIF(PARTON.EQ.'6') THEN
-            NUMBER=6
-            ELSEIF(PARTON.EQ.'7') THEN
-             NUMBER=7
-             ELSEIF(PARTON.EQ.'8') THEN
-              NUMBER=8
-              ELSEIF(PARTON.EQ.'9') THEN
-               NUMBER=9  
-              ELSE
-               NUMBER=10
-      ENDIF
-      END
-
-*******************************************************
-*                    FUNCTION                         *
-* Conversion of integer number into character string  *
-*******************************************************
-*   Input:  ICHR - output string,                     *
-*           JJ - integer number under the conversion; *
-*   Output: ITOCHR - the character string,            *
-*             declare ICHR at least as                *
-*                CHARACTER*LENINT(JJ)                 *
-*******************************************************
-      SUBROUTINE ITOCHR(ICHR,JJ)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      CHARACTER ICHR*(*)
-      CHARACTER XFMT*10,XCC
-
-      ICHR=' '
-      WRITE(XCC,FMT='(I1)') LENINT(JJ)
-      XFMT='(I'//XCC//')'
-      WRITE(ICHR,FMT=XFMT,err=1) JJ
-
-      goto 9000
-1     write(*,*) 'Error in ITOCHR.'
-      read(*,*)
-
-9000  RETURN
-      END
-
-********************************************
-*           FUNCTION                       *
-*     Length of the integer number         *
-********************************************
-      INTEGER FUNCTION LENINT(JJ)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      KK=1
-10    CONTINUE
-      IF (JJ .LT. 10**KK) THEN
-         LLL=KK
-         GOTO 20
-      ENDIF
-      KK=KK+1 
-      GOTO 10
-
-20    LENINT=LLL
-
-
-      RETURN
-      END
-
-*************************************************************************     
-*        Routine to smear the resonance mass according  to Breit-Wigner *            
-*                  CompHEP 4.4.3 -  PYTHIA 6.2 interface                *         
-*************************************************************************      
-*  15.12.99         A. Belyaev, V.Ilyin                                 *      
-*  06.11.2000       some corrections (XM -> PMAS), V.Ilyin              *           
-*  25.11.2001       update to Pythia 6.2 by V.Ilyin                     *         
-*  28.03.2002       corrected ABS(IDUP(I))-->pycomp(IDUP(I)) A.Belyaev  *         
-*  20.12.2005       cosmetic changes  by R.Mehdiyev                     *     
-*  27.03.2006       compatability change by V. Bansal                   *
-*************************************************************************
-      SUBROUTINE SMEARMASS
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/heprup.inc"
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      INTEGER PYCOMP
-*...CompHEP-PYTHIA interface
-      COMMON/SUBPROC/NNUP(100),KFP(100,20),SIGMAERR(100),IDPR(100),
-     .            NCUT(100),NEV(100),XM(100,20,3),SIGMA(100),NPROC
-      SAVE /SUBPROC/
-      
-      REAL*8 PX,PX1(20,5),PX2(20,5),PX3(20,5),PXX(20,5)
-
-*...some values in lab frame                                                                      
-      PLAB=PUP(3,1)+PUP(3,2)
-      ELAB=PUP(4,1)+PUP(4,2)
-      SHAT=(ELAB-PLAB)*(ELAB+PLAB)
-
-*...loop over the particles in final state                                                        
-      DO I=3,NUP
-
-*...if unstable particle then smeare its mass                                                     
-
-      IF(PMAS(pycomp(IDUP(I)),2).gt.0.) THEN
-
-*...transfer out-momenta to REAL*8                                                                
-      DO 100 j=1,NUP
-      DO 100 k=1,5
- 100          PX1(j,k)=PUP(k,j)
-
-*...invariant mass of the cluster recoiled the Ith particle                                       
-       IF(NUP.EQ.4) THEN              ! 2->2 case                                                 
-         IF(I.eq.3) PM2=PX1(4,5)
-         IF(I.eq.4) PM2=PX1(3,5)
-       ELSE
-         PX = sqrt(PX1(I,1)**2+PX1(I,2)**2+(PLAB-PX1(I,3))**2)
-         PM2=(ELAB-PX1(I,4)-PX)*(ELAB-PX1(I,4)+PX)
-         IF(PM2.lt.0.) PM2=abs(PM2)
-         PM2=sqrt(PM2)
-       ENDIF
-
-*...boost of all momenta to partonic CMS
-       GAMMA = 1.d0/(sqrt(ELAB-PLAB)*sqrt(ELAB+PLAB))
-       DO j=1,NUP
-          PX2(j,1)=PX1(j,1)
-          PX2(j,2)=PX1(j,2)
-          PX2(j,3) = GAMMA*(-(PLAB*PX1(j,4))+ELAB*PX1(j,3))
-          PX2(j,4) = GAMMA*( ELAB*PX1(j,4)-PLAB*PX1(j,3))
-          PX2(j,5)=PX1(j,5)
-       ENDDO
-
-*...defs for Breit-Wigner measure                                                                 
-       PMAV = PX2(I,5)
-       WIDTH = PMAS(pycomp(IDUP(I)),2)
-       WBAND = PMAS(pycomp(IDUP(I)),3)
-       PMUP = WBAND+PMAV
-       PMDN =-WBAND+PMAV
-       ATL=ATAN((PMDN**2-PMAV**2)/(PMAV*WIDTH))
-       ATU=ATAN((PMUP**2-PMAV**2)/(PMAV*WIDTH))
-
-*...BW smearing of the mass of Ith particle                                                       
- 555       PM1=sqrt(PMAV**2+PMAV*WIDTH*TAN(ATL+PYR(0)*(ATU-ATL)))
-       PX3(I,5)=PM1                         ! new mass of Ith particle                            
-
-*...new energy of the Ith particle in partonic CMS                                                
-       E1N = (PM1**2-PM2**2 + SHAT)/2.d0/SQRT(SHAT)
-       IF(E1N.le.PM1) goto 555   !check masses                                                    
-       PX3(I,4)=E1N
-*...old and new energy of the recoiled cluster in partonic CMS                                    
-       E2  = sqrt(SHAT)-PX2(I,4)
-       E2N = sqrt(SHAT)-E1N
-       IF(E2N.le.PM2) goto 555   !check masses                                                    
-
-*...old space momenta of the Ith particle and recoiled cluster in partonic CMS                    
-       PMOD=sqrt(PX2(I,1)**2+ PX2(I,2)**2+PX2(I,3)**2)
-*...new space momenta of the Ith particle and recoiled cluster in partonic CMS                    
-       PMODN=sqrt(E1N-PM1)*sqrt(E1N+PM1)
-*...new space components of the Ith momentum in partonic CMS via rescaling                        
-       DO k=1,3
-         PXX(I,k)=PX2(I,k)/PMOD
-         PX3(I,k)=PXX(I,k)*PMODN
-       ENDDO
-
-*...new momentum of the recoiled particle in 2->2 case                                            
-       IF(NUP.eq.4) THEN
-         IF(I.eq.3) I2=4
-         IF(I.eq.4) I2=3
-         PX3(I2,1)=-PX3(I,1)
-         PX3(I2,2)=-PX3(I,2)
-         PX3(I2,3)=-PX3(I,3)
-         PX3(I2,4)= E2N
-         PX3(I2,5)= PM2
-         GOTO 333
-       ENDIF
-
-*...new momenta for other out particles (neq Ith)
-       GAMMA = 1.d0/sqrt((E2-PMOD)*(E2N+PMODN))
-     &        *1.d0/sqrt((E2+PMOD)*(E2N-PMODN))
-       DO j=3,NUP
-        IF(j.ne.I) then
-          PJL=-(PX2(j,1)*PXX(I,1)+PX2(j,2)*PXX(I,2)+PX2(j,3)*PXX(I,3))
-          PJLN=GAMMA*((-(E2N*PMOD-E2*PMODN))*PX2(j,4)
-     &                +(E2*E2N-PMOD*PMODN)*PJL)
-          PX3(j,4)=GAMMA*((E2*E2N-PMOD*PMODN)*PX2(j,4)
-     &                   -(E2N*PMOD-E2*PMODN)*PJL)
-          PX3(j,1)=PX2(j,1)-(PJLN-PJL)*PXX(I,1)
-          PX3(j,2)=PX2(j,2)-(PJLN-PJL)*PXX(I,2)
-          PX3(j,3)=PX2(j,3)-(PJLN-PJL)*PXX(I,3)
-          PX3(j,5)=PX2(j,5)
-        ENDIF
-       ENDDO
-
- 333       CONTINUE
-*...boost from partonic CMS to the lab frame                                                      
-       GAMMA = 1.d0/(sqrt(ELAB-PLAB)*sqrt(ELAB+PLAB))
-       DO j=3,NUP
-          PUP(1,j)=PX3(j,1)
-          PUP(2,j)=PX3(j,2)
-          PUP(3,j) = GAMMA*(PLAB*PX3(j,4)+ELAB*PX3(j,3))
-          PUP(4,j) = GAMMA*(ELAB*PX3(j,4)+PLAB*PX3(j,3))
-          PUP(5,j)=PX3(j,5)
-       ENDDO
-
-      ENDIF                     ! IF(PMAS(pycomp(IDUP(I)),2).gt.0.)                               
-      ENDDO                     ! DO I=3,NUP                                                      
-
-      RETURN
-      END
diff --git a/Generators/EmbeddedTrackGenerator/CMakeLists.txt b/Generators/EmbeddedTrackGenerator/CMakeLists.txt
deleted file mode 100644
index 277fbb9206247730ab4519ef9aad5848078cb64d..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-################################################################################
-# Package: EmbeddedTrackGenerator
-################################################################################
-
-# Declare the package name:
-atlas_subdir( EmbeddedTrackGenerator )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PUBLIC
-                          Control/PileUpTools
-                          GaudiKernel
-                          Generators/GeneratorModules
-                          PRIVATE
-                          Event/EventInfo
-                          Reconstruction/Jet/JetEvent
-                          Tracking/TrkEvent/VxVertex )
-
-# External dependencies:
-find_package( CLHEP )
-find_package( HepPDT )
-
-# Component(s) in the package:
-atlas_add_component( EmbeddedTrackGenerator
-                     src/*.cxx
-                     src/components/*.cxx
-                     INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${CLHEP_LIBRARIES} PileUpToolsLib GaudiKernel GeneratorModulesLib EventInfo JetEvent VxVertex )
-
-# Install files from the package:
-atlas_install_headers( EmbeddedTrackGenerator )
-atlas_install_joboptions( share/*.py )
-
diff --git a/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/EmbeddedGeneratorCommon.h b/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/EmbeddedGeneratorCommon.h
deleted file mode 100644
index 7917b558872ca89625fbceb39c7131346e1f3647..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/EmbeddedGeneratorCommon.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef EMBEDDEDGENERATORCOMMON_H
-#define EMBEDDEDGENERATORCOMMON_H
-
-#include "GeneratorModules/GenModule.h"
-#include "PileUpTools/PileUpStream.h"
-
-class IEvtSelector;
-
-
-/// Common code for generators that need reconstructed event data inputs.
-/// 
-/// @author Andrei Gaponenko <andrei.gaponenko@cern.ch>, 2006-2008
-class EmbeddedGeneratorCommon : public GenModule {
-public:
-
-  EmbeddedGeneratorCommon(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~EmbeddedGeneratorCommon() {}
-
-  /// This method is called by GenModule.  
-  /// Calls embeddedGenInitialize().
-  virtual StatusCode genInitialize();
-
-  /// Initialization of the child class.
-  virtual StatusCode embeddedGenInitialize() = 0;
-
-  /// This method is called by GenModule.  
-  /// It preloads the input data event and calls 
-  /// fillEmbeddedEvent().
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt); 
-  
-  /// Actual generation happens here.
-  virtual StatusCode embeddedFillEvt(HepMC::GenEvent *evt) = 0;
-  
-protected:
-
-  PileUpStream m_pileUpStream;
-  ServiceHandle<IEvtSelector> m_pileUpSelector;
-
-};
-
-#endif /* EMBEDDEDGENERATORCOMMON_H*/
diff --git a/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/EmbeddedTrackGenerator.h b/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/EmbeddedTrackGenerator.h
deleted file mode 100644
index afdd43f162a16f0ec4e8958f13dda3b008fd97b8..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/EmbeddedTrackGenerator.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef EMBEDDEDTRACKGENERATOR_H
-#define EMBEDDEDTRACKGENERATOR_H
-
-#include "EmbeddedTrackGenerator/EmbeddedGeneratorCommon.h"
-#include "EmbeddedTrackGenerator/GenPDG_Property.h"
-
-/// EmbeddedTrackGenerator generates particles "embedded" in
-/// reconstructed jets. The jets are taken from an AOD file.
-/// 
-/// @author Andrei Gaponenko <andrei.gaponenko@cern.ch>, 2006-2008
-/// 
-
-class EmbeddedTrackGenerator : public EmbeddedGeneratorCommon,
-                               private GenPDG_Property
-{
-public:
- 
-  EmbeddedTrackGenerator(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual StatusCode embeddedGenInitialize();
-  virtual StatusCode embeddedFillEvt(HepMC::GenEvent* evt);
-  
-private:
-
-  /// @name Settable properties
-  //@{
-  
-  /// StoreGate key  for the jet collection 
-  std::string m_jetName;
-
-  /// Maximum number of particles in an event.  The actual number will be min(m_numberOfParticles, num_jets)
-  unsigned int m_maxParticles;
-  
-  /// Momentum of generated particles
-  double m_ptot;
-  
-  /// deltaR between the jet axis and the corresponding particle. 
-  /// Particle direction is sampled from a flat 2D distribution in (eta,phi).
-  double m_dR_max;
-  
-  /// maximum  displacement of generated particle vertex from the origin of its respective jet - flat 3D distribution.
-  double m_displacementMax;
-
-  //@}
-
-};
-
-#endif /* EMBEDDEDTRACKGENERATOR_H*/
diff --git a/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/GenPDG_Property.h b/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/GenPDG_Property.h
deleted file mode 100644
index ffe94e92200198d90630c78b58aa6dcef3a79e95..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/GenPDG_Property.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENPDG_PROPERTY_H
-#define GENPDG_PROPERTY_H
-
-#include "GaudiKernel/StatusCode.h"
-#include "GaudiKernel/Algorithm.h"
-
-#include <utility>
-
-namespace HepPDT { class ParticleDataTable; }
-namespace CLHEP { class HepRandomEngine; }
-
-/// An "admixture" class handling particle type configuration.
-/// 
-/// @author Andrei Gaponenko <andrei.gaponenko@cern.ch>, 2008
-/// 
-
-class GenPDG_Property {
-public:
-  template<class ParentAlg> GenPDG_Property(ParentAlg *);
-  
-  StatusCode initialize(const HepPDT::ParticleDataTable*);
-  
-  /// returns  (PDG ID, mass) pair
-  typedef std::pair<int,double> ParticleDescription;
-  ParticleDescription getParticle(CLHEP::HepRandomEngine* ) const;
-
-  
-private:
-
-  Algorithm* m_parent;
-
-  /// PDG ID, or absolute value of it, of generated particles. See also m_generateAntiParticles.
-  int m_pdg_id;
-  
-  /// False means use exactly the given PDG ID, true means generate both
-  /// particles and antiparticles.
-  bool m_generateAntiParticles;
-  
-  //----------------------------------------------------------------
-  /// cached value
-  double m_mass; 
-
-};
-
-
-//--------------------------------------------------------------------------
-
-
-template<class ParentAlg>
-GenPDG_Property::GenPDG_Property(ParentAlg *parent)
-  : m_parent(parent)
-{
-  parent->declareProperty("pdg_id", m_pdg_id = 13);
-  parent->declareProperty("generateAntiParticles", m_generateAntiParticles = true);
-}
-
-#endif /*GENPDG_PROPERTY_H*/
diff --git a/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/VertexedTrackGenerator.h b/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/VertexedTrackGenerator.h
deleted file mode 100644
index b0f530bbfeb5532f45e02ac7e9c54a24c754f989..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/EmbeddedTrackGenerator/VertexedTrackGenerator.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef VERTEXEDTRACKGENERATOR_H
-#define VERTEXEDTRACKGENERATOR_H
-
-#include "EmbeddedTrackGenerator/EmbeddedGeneratorCommon.h"
-#include "EmbeddedTrackGenerator/GenPDG_Property.h"
-
-/**
-@class VertexedTrackGenerator
-
-VertexedTrackGenerator generates particles originating at a reconstructed vertex position,
-which is taken from an AOD file.
-
-@author Andrei Gaponenko <andrei.gaponenko@cern.ch>, 2006-2008
-
-*/
-
-class VertexedTrackGenerator;
-
-class VertexedTrackGenerator: public EmbeddedGeneratorCommon,
-                              private GenPDG_Property
-{
-public:
-
-  VertexedTrackGenerator(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual StatusCode embeddedGenInitialize();
-  virtual StatusCode embeddedFillEvt(HepMC::GenEvent* evt);
-  
-private:
-
-  /// @name Settable properties
-  //@{
-
-  /// StoreGate key  for the vertex collection
-  std::string m_vertexCollectionName;
-
-  /// Number of particles to throw for each reconstructed vertex.
-  unsigned int m_particlesPerVertex;
-
-  /// Maximum number of vertexes to use in an event.
-  unsigned int m_maxVertexes;
-
-  /// Momentum of generated particles is flat between m_ptMin and m_ptMax.
-  /// Set m_ptMin==m_ptMax to get a specific pt value.
-  double m_ptMin;
-  double m_ptMax;
-
-  /// Pseudorapidity of generated particles is flat between m_etaMin and m_etaMax.
-  /// Set m_etaMin==m_etaMax to get a specific eta value.
-  double m_etaMin;
-  double m_etaMax;
-
-  /// Azimuthal angle of generated particles is flat between m_phiMin
-  /// and m_phiMax.  Set m_phiMin==m_phiMax to get a specific eta
-  /// value.  The default range is (-pi, pi).  (The proper thing would
-  /// be e.g. [-pi,pi) but we use HepRandomEngine that always excludes
-  /// endpoints of a range...)
-  double m_phiMin;
-  double m_phiMax;
-
-  //@}
-
-};
-
-
-#endif /* VERTEXEDTRACKGENERATOR_H*/
diff --git a/Generators/EmbeddedTrackGenerator/doc/packagedoc.h b/Generators/EmbeddedTrackGenerator/doc/packagedoc.h
deleted file mode 100644
index 07cac51173a5c438a7aa601b89fd1a1746187948..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/doc/packagedoc.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-@page EmbeddedTrackGenerator_page EmbeddedTrackGenerator
-
-@author Andrei Gaponenko <andrei.gaponenko@cern.ch>
-
-EmbeddedTrackGenerator package provides provides generators that
-produce single particles using reconstructed quantities from real data
-events as the reference.  The generated events are intented to be
-passed through GEANT simulation and overlayed with the original data
-events.
-
-The generators use a standard ATLAS POOL file (for example an AOD
-file) for input event data.
- 
-For more details see individual generator pages of
-EmbeddedTrackGenerator and VertexedTrackGenerator.
-
-
-
-*/
diff --git a/Generators/EmbeddedTrackGenerator/share/EmbeddedGeneratorCommon.py b/Generators/EmbeddedTrackGenerator/share/EmbeddedGeneratorCommon.py
deleted file mode 100644
index fd306098f9d7a82ab8555ee75111fb1396a840d4..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/share/EmbeddedGeneratorCommon.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# Code shared among different embedded generator job options.
-#
-# Author: Andrei Gaponenko
-
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-theApp.EvtMax = EvtMax
-
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.EventSelector.RunNumber = RunNumber
-ServiceMgr.EventSelector.FirstEvent = FirstEvent
-
-import AthenaPoolCnvSvc.AthenaPool
-
-from PartPropSvc.PartPropSvcConf import *
-
-#================================================================
-# Add an extra EventSelector to read in real data events
-
-from EventSelectorAthenaPool.EventSelectorAthenaPoolConf import EventSelectorAthenaPool
-InputDataEventSelector = EventSelectorAthenaPool("InputDataEventSelector")
-InputDataEventSelector.InputCollections = InputCollections
-InputDataEventSelector.SkipEvents = 0;
-
-ServiceMgr += InputDataEventSelector
-
-#----------------------------------------------------------------=
-# And a separate event store for the custom selector
-from StoreGate.StoreGateConf import StoreGateSvc
-sg2 = StoreGateSvc("InputData_Event_SG")
-#sg2.Dump = True
-#sg2.OutputLevel = VERBOSE
-
-#================================================================
-# Output
-
-from OutputStreamAthenaPool.CreateOutputStreams import createOutputStream
-outStream = createOutputStream( "EmbeddedGeneratorOut" )
-outStream.Store = ServiceMgr.StoreGateSvc
-outStream.OutputFile  = OutputFile
-outStream.ItemList += [ "McEventCollection#*" ]
-
-#================================================================
-from AthenaCommon.AlgSequence import AlgSequence
-topSeq = AlgSequence()
-
-from TruthExamples.TruthExamplesConf import PrintMC
-topSeq += PrintMC()
-topSeq.PrintMC.FirstEvent = FirstEvent
-topSeq.PrintMC.LastEvent = FirstEvent+10
-
-#================================================================
-# Set log level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-#--------------------------------------------------------------
-# ServiceMgr.MessageSvc.infoLimit  = 100000
-ServiceMgr.MessageSvc.Format = "% F%50W%S%7W%R%T %0W%M"
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-#==============================================================
-print "At the end of the jO script: algorithms =\n", topSeq
-print "\nAt the end of the jO script: services =\n", ServiceMgr
-#==============================================================
-# EOF
diff --git a/Generators/EmbeddedTrackGenerator/share/jobOptions_embeddedTrackGeneration.py b/Generators/EmbeddedTrackGenerator/share/jobOptions_embeddedTrackGeneration.py
deleted file mode 100644
index f4c02a1a219894bd4c18832ea2f7b20ff8ce14ea..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/share/jobOptions_embeddedTrackGeneration.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# EmbeddedTrackGenerator generates particles "embedded" in reconstructed jets.
-# The jets are taken from an AOD file.
-#
-# One can use something like 
-#
-#    athena -c "EvtMax=5; OutputFile='test.pool.root'" EmbeddedTrackGenerator/jobOptions_embeddedTrackGeneration.py
-#
-# to set a few things that usually change often.
-#
-# Author: Andrei Gaponenko
-
-from AthenaCommon.SystemOfUnits import MeV,GeV
-
-from EmbeddedTrackGenerator.EmbeddedTrackGeneratorConf import *
-embeddedGenerator = EmbeddedTrackGenerator()
-#embeddedGenerator.OutputLevel = VERBOSE
-#embeddedGenerator.RandomSeed = 9687
-#embeddedGenerator.pdg_id = 13
-#vertexedGenerator.generateAntiParticles = True
-#embeddedGenerator.ptot = 10.*GeV
-#embeddedGenerator.dR_max = 0.5
-
-
-if 'InputCollections' not in dir():
-    InputCollections = [ "rfio:/castor/cern.ch/grid/atlas/tier0/atlasmcdisk/valid1/AOD/valid1.005011.J2_pythia_jetjet.recon.AOD.e322_s412_r421_tid022153/AOD.022153._00001.pool.root.1" ]
-
-# EvtMax+SkipEvents should not exceed the number of events in InputCollections.
-if 'EvtMax' not in dir():
-    EvtMax = 15
-
-# The number of events from the data input file to skip
-if 'SkipEvents' not in dir():
-    SkipEvents = 0
-
-# The number to assign to the first generated event
-if 'FirstEvent' not in dir():
-    FirstEvent = 1000
-
-if 'RunNumber' not in dir():
-    RunNumber = 6
-
-if 'OutputFile' not in dir():
-    OutputFile = "EmbeddedTracks.pool.root"
-           
-#==============================================================
-from AthenaCommon.AlgSequence import AlgSequence
-topSeq = AlgSequence()
-topSeq += embeddedGenerator
-
-include ("EmbeddedTrackGenerator/EmbeddedGeneratorCommon.py")
-
-# EOF
diff --git a/Generators/EmbeddedTrackGenerator/share/jobOptions_vertexedTrackGeneration.py b/Generators/EmbeddedTrackGenerator/share/jobOptions_vertexedTrackGeneration.py
deleted file mode 100644
index e24bbd4b50c4aec858cfbed39e4c0ce6f84de361..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/share/jobOptions_vertexedTrackGeneration.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# VertexedTrackGenerator generates particles originating at reconstructed vertex(es) position(s).
-# The input vertexes are taken from an AOD file.
-#
-# One can use something like 
-#
-#    athena -c "EvtMax=5; OutputFile='test.pool.root'" EmbeddedTrackGenerator/jobOptions_vertexedTrackGeneration.py
-#
-# to set a few things that usually change often.
-#
-# Author: Andrei Gaponenko
-
-from AthenaCommon.SystemOfUnits import MeV,GeV
-
-from EmbeddedTrackGenerator.EmbeddedTrackGeneratorConf import VertexedTrackGenerator
-vertexedGenerator = VertexedTrackGenerator()
-#vertexedGenerator.OutputLevel = VERBOSE
-#vertexedGenerator.RandomSeed = 9688
-#vertexedGenerator.pdg_id = 13
-#vertexedGenerator.generateAntiParticles = True
-#vertexedGenerator.ptMin = 500*MeV
-#vertexedGenerator.ptMax = 15*GeV
-
-if 'InputCollections' not in dir():
-    InputCollections = [ "rfio:/castor/cern.ch/user/a/andr/ovl/valid1.005001.pythia_minbias.recon.AOD.e322_s412_r421_tid022144/AOD.022144._00001.pool.root.1" ]
-
-# EvtMax+SkipEvents should not exceed the number of events in InputCollections.
-if 'EvtMax' not in dir():
-    EvtMax = 15
-
-# The number of events from the data input file to skip
-if 'SkipEvents' not in dir():
-    SkipEvents = 0
-
-# The number to assign to the first generated event
-if 'FirstEvent' not in dir():
-    FirstEvent = 1000
-
-if 'RunNumber' not in dir():
-    RunNumber = 5
-
-if 'OutputFile' not in dir():
-    OutputFile = "VertexedTracks.pool.root"
-           
-#==============================================================
-from AthenaCommon.AlgSequence import AlgSequence
-topSeq = AlgSequence()
-topSeq += vertexedGenerator
-
-include ("EmbeddedTrackGenerator/EmbeddedGeneratorCommon.py")
-
-# EOF
diff --git a/Generators/EmbeddedTrackGenerator/src/EmbeddedGeneratorCommon.cxx b/Generators/EmbeddedTrackGenerator/src/EmbeddedGeneratorCommon.cxx
deleted file mode 100644
index 37a57fc28b680a8defcc8feb0554e85b6cd4aed8..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/src/EmbeddedGeneratorCommon.cxx
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Common code for generators that need reconstructed event data inputs.
-// 
-// Andrei Gaponenko <andrei.gaponenko@cern.ch>, 2006-2008
-
-#include "EmbeddedTrackGenerator/EmbeddedGeneratorCommon.h"
-
-#include "GaudiKernel/IEvtSelector.h"
-#include "EventInfo/EventInfo.h"
-#include "EventInfo/EventID.h"
-
-
-//--------------------------------------------------------------------------
-
-
-EmbeddedGeneratorCommon::EmbeddedGeneratorCommon(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenModule(name, pSvcLocator), 
-    m_pileUpSelector("InputDataEventSelector", name)
-{
-  //
-}
-
-
-//--------------------------------------------------------------------------
-
-
-StatusCode EmbeddedGeneratorCommon::genInitialize() {
-
-  evtStore()->setProxyProviderSvc(0);
-
-  if (m_pileUpSelector.retrieve() != StatusCode::SUCCESS) {
-    ATH_MSG_FATAL("genInitialize(): could not get eventSelector!");
-    return StatusCode::FAILURE;
-  }
-  ATH_MSG_INFO("genInitialize(): got InputDataEventSelector!");
-  
-  m_pileUpStream = PileUpStream("InputData_Event", serviceLocator(), &*m_pileUpSelector);
-
-  bool READNEXTEVENT(false);
-  if (!m_pileUpStream.setupStore(READNEXTEVENT)) {
-    ATH_MSG_ERROR("Cannot setup m_pileUpStream store ");
-    return StatusCode::FAILURE;
-  }
-  
-  return embeddedGenInitialize();
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode EmbeddedGeneratorCommon::fillEvt(HepMC::GenEvent* genEvt) {
-  if (! m_pileUpStream.nextEventPre() ) {
-    ATH_MSG_FATAL("Could not load next data event. Not enough events on input?");
-    return StatusCode::FAILURE;
-  }
-  
-  const EventInfo* pInputEvent(0);
-  m_pileUpStream.store().retrieve(pInputEvent).ignore();
-  if (pInputEvent) {
-    ATH_MSG_DEBUG("Event from file: " << *pInputEvent->event_ID());
-  } else {
-    ATH_MSG_DEBUG("Could not get EventInfo of the input event.");
-  }
-  
-  const EventInfo* pOutputEvent(0);
-  evtStore()->retrieve(pOutputEvent).ignore();
-  if (pOutputEvent) {
-    ATH_MSG_DEBUG("New event: "<< *pOutputEvent->event_ID());
-  } else {
-    ATH_MSG_DEBUG("Could not get EventInfo of the event being generated.");
-    return StatusCode::FAILURE;
-  }
-
-  genEvt->set_event_number(pOutputEvent->event_ID()->event_number());
-  return embeddedFillEvt(genEvt);
-}
diff --git a/Generators/EmbeddedTrackGenerator/src/EmbeddedTrackGenerator.cxx b/Generators/EmbeddedTrackGenerator/src/EmbeddedTrackGenerator.cxx
deleted file mode 100644
index 18101353b2b4264b021f35b2975eeeb1bf135a6e..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/src/EmbeddedTrackGenerator.cxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// EmbeddedTrackGenerator generates particles "embedded" in reconstructed jets.
-// The jets are taken from an AOD file.
-//
-// Andrei Gaponenko <andrei.gaponenko@cern.ch>, 2006-2008
-//
-
-#include "EmbeddedTrackGenerator/EmbeddedTrackGenerator.h"
-
-#include "CLHEP/Vector/LorentzVector.h"
-#include "CLHEP/Vector/ThreeVector.h"
-
-#include "CLHEP/Units/SystemOfUnits.h"
-
-#include "HepPDT/ParticleData.hh"
-#include "HepPDT/ParticleDataTable.hh"
-
-#include "JetEvent/JetCollection.h"
-#include "JetEvent/Jet.h"
-
-#include "VxVertex/RecVertex.h"
-
-#include <cmath>
-#include <cstdio>
-
-#include "GaudiKernel/IEvtSelector.h"
-#include "EventInfo/EventInfo.h"
-#include "EventInfo/EventID.h"
-
-
-//--------------------------------------------------------------------------
-
-
-EmbeddedTrackGenerator::EmbeddedTrackGenerator(const std::string& name, ISvcLocator* pSvcLocator)
-  : EmbeddedGeneratorCommon(name,pSvcLocator),
-    GenPDG_Property(this)
-{
-  declareProperty("jetCollectionName",  m_jetName = "Cone4H1TowerJets");
-  declareProperty("maxParticles",  m_maxParticles = 1);
-  declareProperty("ptot",  m_ptot = 10.*CLHEP::GeV);
-  declareProperty("dR_max",  m_dR_max = 0.4);
-  declareProperty("displacement_max",  m_displacementMax = 0.);
-}
-
-
-//--------------------------------------------------------------------------
-
-
-StatusCode EmbeddedTrackGenerator::embeddedGenInitialize() {
-  return GenPDG_Property::initialize(&particleTable());
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode EmbeddedTrackGenerator::embeddedFillEvt(HepMC::GenEvent* a_event) {
-  const JetCollection* jets(0);
-  if (! (m_pileUpStream.store().retrieve(jets, m_jetName).isSuccess()) ) {
-    ATH_MSG_ERROR("Could not get jet container");
-    return StatusCode::FAILURE;
-  }
-  ATH_MSG_DEBUG("Got " << jets->size() << " jets");
-
-  unsigned num_generated = 0;
-  for (JetCollection::const_iterator i=jets->begin();
-       (i!=jets->end()) && (num_generated < m_maxParticles);
-       ++i, ++num_generated) {
-
-    const Jet *jet = *i;
-    if (jet) {
-      const Trk::RecVertex *v = jet->origin();
-      ATH_MSG_VERBOSE("jet: "<< (jet->hlv()) << (v ? ", YES origin " :  ", NO origin ") );
-      if (v) {
-        ParticleDescription desc = getParticle(&randomEngine());
-
-        // Generate vertex smearing offsets
-	//        CLHEP::Hep3Vector dr;
-	Amg::Vector3D dr;
-        do {
-          double rnd[3];
-          randomEngine().flatArray(3, rnd);
-          for(unsigned i = 0; i < 3; ++i) {
-            dr[i] = 2*m_displacementMax*(rnd[i]-0.5);
-          }
-        } while( std::pow(m_displacementMax,2) < dr.mag2() ); //m_displacementMax==0 is safe here
-	Amg::Vector3D drv;
-        drv=dr+v->position();
-        HepMC::GenVertex* vertex(new HepMC::GenVertex(CLHEP::HepLorentzVector(drv(0),drv(1),drv(2), 0.) ));
-
-        // Smear the direction.
-        double eta0 = jet->eta();
-        double phi0 = jet->phi();
-
-        double eta, phi;
-        do {
-          double rnd[2];
-          randomEngine().flatArray(2, rnd);
-          eta = eta0 + m_dR_max * 2 * (rnd[0]-0.5);
-          phi = phi0 + m_dR_max * 2 * (rnd[1]-0.5);
-        } while( std::pow(m_dR_max, 2) < std::pow(eta-eta0, 2) + std::pow(phi-phi0, 2) );
-
-        double energy = std::sqrt(std::pow(m_ptot,2) + std::pow(desc.second,2));
-
-        CLHEP::HepLorentzVector momentum;
-        momentum.setREtaPhi(m_ptot, eta, phi);
-        momentum.setE(energy);
-        ATH_MSG_DEBUG("momentum = " << momentum);
-
-        HepMC::GenParticle* particle = new HepMC::GenParticle(momentum, desc.first, 1);
-
-        a_event->add_vertex(vertex);
-        vertex->add_particle_out(particle);
-      }
-      else {
-        ATH_MSG_WARNING("No origin info for the jet, skipping.");
-      }
-
-    }
-    else {
-      ATH_MSG_WARNING("Invalid entry in the jet container!");
-    }
-  } // end loop over jets
-
-  return StatusCode::SUCCESS;
-}
diff --git a/Generators/EmbeddedTrackGenerator/src/GenPDG_Property.cxx b/Generators/EmbeddedTrackGenerator/src/GenPDG_Property.cxx
deleted file mode 100644
index 91044065445f9f5e9ee5a6fb3b3e3209909d67ad..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/src/GenPDG_Property.cxx
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Andrei Gaponenko <andrei.gaponenko@cern.ch>, 2008
-
-#include "EmbeddedTrackGenerator/GenPDG_Property.h"
-#include "CLHEP/Random/RandomEngine.h"
-
-#include "HepPDT/ParticleData.hh"
-#include "HepPDT/ParticleDataTable.hh"
-
-#include <cmath>
-
-
-//================================================================
-
-
-StatusCode GenPDG_Property::initialize(const HepPDT::ParticleDataTable* particleTable) {
-  MsgStream log(m_parent->msgSvc(), m_parent->name() );
-  const HepPDT::ParticleData* particle_data = particleTable->particle(HepPDT::ParticleID(std::abs( m_pdg_id )));
-  if (!particle_data) {
-    log << MSG::FATAL << "GenPDG_Property::initialize(): can't get data for particle with pdg_id=" << std::abs(m_pdg_id) << endmsg;
-    return StatusCode::FAILURE;
-  }
-  
-  m_mass = particle_data->mass().value();
-  log << MSG::DEBUG << "GenPDG_Property::initialize(): got mass=" << m_mass << " for pdg_id=" << m_pdg_id << endmsg;
-  
-  return StatusCode::SUCCESS;
-}
-
-
-//================================================================
-
-
-GenPDG_Property::ParticleDescription
-GenPDG_Property::getParticle(CLHEP::HepRandomEngine* rndEng) const {
-  int id = m_generateAntiParticles && (rndEng->flat() < 0.5) ?  -m_pdg_id : m_pdg_id;
-  return std::make_pair(id, m_mass);
-}
diff --git a/Generators/EmbeddedTrackGenerator/src/VertexedTrackGenerator.cxx b/Generators/EmbeddedTrackGenerator/src/VertexedTrackGenerator.cxx
deleted file mode 100644
index 2fa99c0360faaebb67257d46927e15efe0b52cd0..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/src/VertexedTrackGenerator.cxx
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// VertexedTrackGenerator generates particles "vertexed" in reconstructed jets.
-// The jets are taken from an AOD file.
-//
-// Andrei Gaponenko <andrei.gaponenko@cern.ch>, 2006-2008
-//
-
-#include "EmbeddedTrackGenerator/VertexedTrackGenerator.h"
-
-#include "CLHEP/Vector/LorentzVector.h"
-#include "CLHEP/Vector/ThreeVector.h"
-#include "CLHEP/Units/SystemOfUnits.h"
-
-#include "HepPDT/ParticleData.hh"
-#include "HepPDT/ParticleDataTable.hh"
-
-#include "VxVertex/RecVertex.h"
-#include "VxVertex/VxCandidate.h"
-#include "VxVertex/VxContainer.h"
-
-#include <cmath>
-#include <cstdio>
-
-#include "GaudiKernel/IEvtSelector.h"
-#include "EventInfo/EventInfo.h"
-#include "EventInfo/EventID.h"
-
-
-//--------------------------------------------------------------------------
-
-
-VertexedTrackGenerator::VertexedTrackGenerator(const std::string& name, ISvcLocator* pSvcLocator)
-  : EmbeddedGeneratorCommon(name,pSvcLocator),
-    GenPDG_Property(this)
-{
-  declareProperty("vertexCollectionName",  m_vertexCollectionName = "VxPrimaryCandidate");
-  declareProperty("particlesPerVertex",  m_particlesPerVertex = 1);
-  declareProperty("maxVertexes",  m_maxVertexes = 1);
-
-  declareProperty("ptMin",  m_ptMin = 10.*CLHEP::GeV);
-  declareProperty("ptMax",  m_ptMax = 10.*CLHEP::GeV);
-
-  declareProperty("etaMin",  m_etaMin = -3.);
-  declareProperty("etaMax",  m_etaMax = +3.);
-
-  declareProperty("phiMin",  m_phiMin = -M_PI);
-  declareProperty("phiMax",  m_phiMax = +M_PI);
-}
-
-
-//--------------------------------------------------------------------------
-
-
-StatusCode VertexedTrackGenerator::embeddedGenInitialize() {
-  return GenPDG_Property::initialize(&particleTable());
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode VertexedTrackGenerator::embeddedFillEvt(HepMC::GenEvent* a_event) {
-  const VxContainer* vertexes(0);
-  if (! (m_pileUpStream.store().retrieve(vertexes, m_vertexCollectionName).isSuccess()) ) {
-    ATH_MSG_ERROR("Could not get jet container");
-    return StatusCode::FAILURE;
-  }
-  ATH_MSG_DEBUG("Got " << vertexes->size() << " vertices");
-
-  for (unsigned ivertex = 0; ivertex < std::min(static_cast<size_t>(m_maxVertexes), vertexes->size()); ++ivertex) {
-    //    CLHEP::Hep3Vector pos = vertexes->at(ivertex)->recVertex().position();
-    Eigen::Vector3d pos = vertexes->at(ivertex)->recVertex().position(); 
-    ATH_MSG_VERBOSE("ivertex = " << ivertex << ", pos = " << pos);
-    //    HepMC::GenVertex* vertex(new HepMC::GenVertex(CLHEP::HepLorentzVector(pos, 0.)));
-    HepMC::GenVertex* vertex(new HepMC::GenVertex(CLHEP::HepLorentzVector(pos(0),pos(1),pos(2), 0.)));
-     
-
-    ParticleDescription desc = getParticle(&randomEngine());
-    ATH_MSG_VERBOSE("PDG ID = " << desc.first << ", mass = " << desc.second);
-
-    double rnd[3];
-    randomEngine().flatArray(3, rnd);
-
-    double pt  = m_ptMin  + rnd[0] *  (m_ptMax - m_ptMin);
-    double eta = m_etaMin + rnd[1] *  (m_etaMax - m_etaMin);
-    double phi = m_phiMin + rnd[2] *  (m_phiMax - m_phiMin);
-
-    ATH_MSG_VERBOSE("pt = " << pt << ", eta = " << eta << ", phi = " << phi);
-
-    // CLHEP's setRhoPhiEta() computes pz = pt/tan(theta) that may be
-    // problematic at eta=0.  We'll use a safer way that does not rely
-    // on FPE settings, to allow division by infinity.
-    double theta(2 * atan ( exp (-eta) ));
-
-    double ptot2 = std::pow(pt,2) * (1. + std::pow(cos(theta)/sin(theta), 2) );
-
-    double energy = std::sqrt(ptot2 + std::pow(desc.second,2));
-
-    CLHEP::HepLorentzVector momentum;
-    momentum.setREtaPhi(sqrt(ptot2), eta, phi);
-    momentum.setE(energy);
-    ATH_MSG_VERBOSE("Momentum = " << momentum);
-
-    HepMC::GenParticle* particle = new HepMC::GenParticle(momentum, desc.first, 1);
-    a_event->add_vertex(vertex);
-    vertex->add_particle_out(particle);
-
-  } // end loop over vertexes
-
-  return StatusCode::SUCCESS;
-}
diff --git a/Generators/EmbeddedTrackGenerator/src/components/EmbeddedTrackGenerator_entries.cxx b/Generators/EmbeddedTrackGenerator/src/components/EmbeddedTrackGenerator_entries.cxx
deleted file mode 100644
index 767d8a768760d1ce041df014bdb08db2a2ed12bd..0000000000000000000000000000000000000000
--- a/Generators/EmbeddedTrackGenerator/src/components/EmbeddedTrackGenerator_entries.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "EmbeddedTrackGenerator/EmbeddedTrackGenerator.h"
-#include "EmbeddedTrackGenerator/VertexedTrackGenerator.h"
-
-DECLARE_COMPONENT( EmbeddedTrackGenerator )
-DECLARE_COMPONENT( VertexedTrackGenerator )
-  
-
diff --git a/Generators/ExoGraviton_i/CMakeLists.txt b/Generators/ExoGraviton_i/CMakeLists.txt
deleted file mode 100644
index 9badaa6792809b54065b526d24c3f5f8d22202a7..0000000000000000000000000000000000000000
--- a/Generators/ExoGraviton_i/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Package: ExoGraviton_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( ExoGraviton_i )
-
-# External dependencies:
-find_package( Pythia6 )
-
-# tag allowUndefined was not recognized in automatic conversion in cmt2cmake
-
-# Component(s) in the package:
-atlas_add_library( ExoGraviton_i
-                   src/*.cxx
-                   src/*.F
-                   PUBLIC_HEADERS ExoGraviton_i
-                   PRIVATE_INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS}
-                   PRIVATE_LINK_LIBRARIES ${PYTHIA6_LIBRARIES} )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-
diff --git a/Generators/ExoGraviton_i/ExoGraviton_i/ExoGraviton.h b/Generators/ExoGraviton_i/ExoGraviton_i/ExoGraviton.h
deleted file mode 100644
index c244956969a0ec337adb80d10454ae124ba9f5a4..0000000000000000000000000000000000000000
--- a/Generators/ExoGraviton_i/ExoGraviton_i/ExoGraviton.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// ExoGraviton.h
-//
-// Reyhaneh Rezvani <reyhaneh.rezvani@cern.ch> 13-03-2009
-//
-//a set of c++ functions that act as an interface between
-//Athenas C++ Pythia and ExoGraviton
-//(a FORTRAN program for simulation of "Real Graviton Emission")
-
-#ifndef EXOGRAVITON_H
-#define EXOGRAVITON_H
-
-extern void WriteGravParam(int,int,double);
-extern "C" void readgravparamint_(int*,int*);
-extern "C" void readgravparamdbl_(int*,double*);
-#endif
diff --git a/Generators/ExoGraviton_i/doc/ReadMe b/Generators/ExoGraviton_i/doc/ReadMe
deleted file mode 100644
index e44bf621e335b95e157bd64dea6ecc7c77cf5c7d..0000000000000000000000000000000000000000
--- a/Generators/ExoGraviton_i/doc/ReadMe
+++ /dev/null
@@ -1,2 +0,0 @@
-For more information, please see:  ATL-COM-PHYS-2011-336
-[http://cdsweb.cern.ch/record/1340984]
diff --git a/Generators/ExoGraviton_i/share/jobOptions.pythiaExo.py b/Generators/ExoGraviton_i/share/jobOptions.pythiaExo.py
deleted file mode 100755
index 3e8443e670d6218a5d1890f9b15d40e5a92e8341..0000000000000000000000000000000000000000
--- a/Generators/ExoGraviton_i/share/jobOptions.pythiaExo.py
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.Logging import logging
-evgenLog = logging.getLogger('csc_evgen')
-
-# special setup for event generation
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" )
-
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512","PYTHIA_INIT 820021 2347532"]
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Pythia_i.Pythia_iConf import Pythia
-job +=Pythia()
-
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-job.Pythia.PythiaCommand = ["pyinit user exograviton"]
-
-
-#Graviton parameters to be specified by the user:
-# 1:number of extra dimensions
-# 2:Process number(1110:qqbar->gG/ 1111:qg->qG/ 1112:gg->gG)
-# 3:Total Centre of Mass Energy in GeV.
-# 4:D-dimensional Planck scale, MD ,in GeV.
-# 5:PtCut of the jet in the final state, in GeV.
-# 6:Maximum Mass of the Graviton,in GeV.
-# 7:Maximum value for cross-section(in pb).
-# 8:CutOff mode (treatment of the effective theory when s_hat > MD^2).
-
-#  The default values are : "grav 1 2","grav 2 1111", "grav 3 7000","grav 4 3500","grav 5 350","grav 6 3500","grav 7 2.5E+1", "grav 8 0 " .
-#  Note that Process number 1111 is the most dominant sub-process in a p-p collider: qg->qG .
-#  It is recommanded to set GravMaxMass = MD. Above this value, the low-energy effective field theory is not trustable.
-#  If the maximum x-section you set is lower than a generated event, Pythia will update this value(See Pythia Manual for further information).
-#  Different Cutoff Modes implemented :
-#    0 : all events are kept.
-#    1 : events with s_hat < MD^2 are given the usual weight (equal to the corresponding differential cross-section), and events with s_hat > MD^2 are given a weight equal to "differential x-section * (MD^4/s_hat^2)"
-#    2 : only events with s_hat < MD^2 are kept, and the rest are given a weight of zero.
-
-job.Pythia.PythiaCommand += ["grav 1 2","grav 2 1111",
-                             "grav 3 7000","grav 4 3500",
-                             "grav 5 350","grav 6 3500",
-                             "grav 7 2.5E+1", "grav 8 0"]
-
-job.Pythia.PythiaCommand += ["pyinit pylistf 1","pyinit dumpr 0 3",
-                             "pystat 1"]
-
-#----------------------------------------------------------------
-from TruthExamples.TruthExamplesConf import DumpMC
-#job += DumpMC()
- 
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-#from AthenaServices.AthenaServicesConf import AthenaOutputStream
-from PoolSvc.PoolSvcConf import PoolSvc
-from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc
-
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.ItemList += [ "EventInfo#*",
-                      "McEventCollection#*" ]                        
-Stream1.OutputFile = "Pythia_Graviton.pool.root"
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
-
diff --git a/Generators/ExoGraviton_i/src/ExoGraviton.cxx b/Generators/ExoGraviton_i/src/ExoGraviton.cxx
deleted file mode 100644
index 63c1f4319475c5fcf3df94b3e7a8e1b19786b7e9..0000000000000000000000000000000000000000
--- a/Generators/ExoGraviton_i/src/ExoGraviton.cxx
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// ExoGraviton.cxx
-//
-// Reyhaneh Rezvani <reyhaneh.rezvani@cern.ch> 13-03-2009
-//
-// a set of c++ functions that act as an interface between 
-// Athena C++ Pythia and ExoGraviton,
-// (a FORTRAN program for simulation of "Real Graviton Emission")
-
-#ifndef EXOGRAVITON_I
-#define EXOGRAVITON_I
-
-#include <cstdlib>
-#include <cstdio>
-
-#include "ExoGraviton_i/ExoGraviton.h"
-
-
-int WriteGravParamInit=0;
-
-struct ExoGravitonParams
-{
-  int ndim;
-  int iproc;
-  int icutoff;
-  double ECM;
-  double AMD;
-  double PTCUT;
-  double GravMaxMass;
-  double SIGMAX;
-};
-
-struct ExoGravitonParams p;
-
-
-// This function should be called from c++ :
-extern void WriteGravParam( int index, int iparameter, double dparameter)
-{
-
-
-  // Write default values into ExoGravitonParams when function is run for the first time:
-   if(WriteGravParamInit < 1)
-  {
-    WriteGravParamInit = 10;
-    p.ndim = 2;           //1
-    p.iproc = 1111;       //2
-    p.ECM = 7000;         //3
-    p.AMD = 3500;         //4
-    p.PTCUT = 350;        //5
-    p.GravMaxMass = 3500; //6
-    p.SIGMAX = 2.5E+1;    //7
-    p.icutoff = 0;         //8
-  } 
-
-  if (index == 1)
- {
-    p.ndim = iparameter;
- }
-  else if (index == 2 )
- {
-    p.iproc = iparameter;
- }  
-  else if (index == 3)
- {
-    p.ECM = dparameter;
- }
-  else if (index == 4)
- {
-    p.AMD = dparameter;
- }
- else if (index == 5)
- {
-    p.PTCUT = dparameter;
- }
- else if (index == 6)
- {
-    p.GravMaxMass = dparameter;
- }
- else if (index == 7)
- {
-    p.SIGMAX = dparameter;
- }
- else if (index == 8)
- {
-    p.icutoff = iparameter;
- }
-}
-
-
-// This function should be called from FORTRAN code and is used to read parameters
-// stored by the WriteGravParam function:
-extern "C" void readgravparamint_(int* index, int* parameter)
-{
-
-   // Write default values into ExoGravitonParams when function is run for the first time:
-   if(WriteGravParamInit < 1)
-  {
-    WriteGravParamInit = 10;
-    p.ndim = 2;           //1
-    p.iproc = 1111;       //2
-    p.ECM = 7000;        //3
-    p.AMD = 3500;         //4
-    p.PTCUT = 350;        //5
-    p.GravMaxMass = 3500; //6
-    p.SIGMAX = 2.5E+1;    //7
-    p.icutoff = 0;    //8
-  } 
-
-
-  if(*index == 1)
-  {
-    *parameter = p.ndim;
-  }  
-  else if(*index == 2)
-  {  
-    *parameter = p.iproc;
-  } 
-  else if(*index == 8)
-  {  
-    *parameter = p.icutoff;
-  }  
-    //else
-    //log << MSG:: INFO << " ExoGraviton Interface -> Incorrect type cast for ExoGraviton variable OR Incorrect index\n"  << endmsg;
-    
-}
-
-
-
-extern "C" void readgravparamdbl_(int* index, double* parameter)
-{
-
-
-  
-  // Write default values into ExoGravitonParams when function is run for the first time:
-   if(WriteGravParamInit < 1)
-  {
-    WriteGravParamInit = 10;
-    p.ndim = 2;           //1
-    p.iproc = 1111;       //2
-    p.ECM = 7000;         //3
-    p.AMD = 3500;         //4
-    p.PTCUT = 350;        //5
-    p.GravMaxMass = 3500; //6
-    p.SIGMAX = 2.5E+1;    //7
-    p.icutoff = 0;         //8
-  } 
-
-  if(*index == 3)
-  {
-    *parameter = (double)(p.ECM);
-  }
-  else if(*index == 4)
-  {
-    *parameter = (double)(p.AMD);
-  }
-  else if(*index == 5)
-  {
-    *parameter = (double)(p.PTCUT);
-  }
-  else if(*index == 6)
-  {
-    *parameter = (double)(p.GravMaxMass);
-  }
-  else if(*index == 7)
-  {
-    *parameter = (double)(p.SIGMAX);
-  }
-
-}
-
-#endif
diff --git a/Generators/ExoGraviton_i/src/initgrav.F b/Generators/ExoGraviton_i/src/initgrav.F
deleted file mode 100755
index 81df6f06e71348b4f56c5f46c3aa3dd4ed8fb48c..0000000000000000000000000000000000000000
--- a/Generators/ExoGraviton_i/src/initgrav.F
+++ /dev/null
@@ -1,120 +0,0 @@
-   
-
-      SUBROUTINE INITGRAV
- 
-C     Authors: Pierre-Hugues Beauchemin<pierre-hugues.beauchemin@cern.ch>
-C              Georges Azuelos<georges.azuelos@umontreal.ca>
-
-C     Initialization of USER process
-C     ------------------------------
-
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYDAT4/CHAF(500,2)
-      CHARACTER CHAF*16
-
-C...User process initialization common block.
-      INTEGER MAXPUP,INDEX
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &LPRUP(MAXPUP)
-      SAVE /HEPRUP/
-
-C.. User
-      COMMON/USER/SIGMAX, ECM, sigev2, sqrshat
-      common /user2/sigtot, ebeam, amgravmin, amgravmax,
-     +              ptcut, shatmin, xmin, shatmax, tmin, tmax,
-     +              phspv, amd, coupl, ccoupl, g, g5, ndim, ntot, 
-     +              iproc, igrav, iq, icutoff
-      save /user2/
-      dimension xp1(-25:25),xp2(-25:25), sigi(-5:5,-5:5)
-      COMMON /USER3/ PT2, Q2, shat, that, uhat, sig0, wgt1, wgt2,
-     +               conv, xp1, xp2, sigi, amgrav, amgrav2, costhe,
-     +               F1, F2, F3
-
-
-C....Pythia common block - needed for setting PDF's; see below.
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      SAVE /PYPARS/      
-
-C.. Initial parameters
-      NDIM = 2
-      IPROC = 1111
-      SIGMAX = 2.5E+1
-      AMGRAVMIN = 0.
-      AMGRAVMAX = 3500.
-      PTCUT = 300.
-      ECM = 7000.
-      AMD = 3500.
-      ICUTOFF = 0
-
-
-C...Set incoming beams: LHC.
-      IDBMUP(1)=2212
-      IDBMUP(2)=2212
-      EBMUP(1)=5000D0
-      EBMUP(2)=5000D0
-
-      index=1
-      CALL readgravparamint(index,NDIM)
-
-      index=2
-      CALL readgravparamint(index,IPROC)
-
-      index=3
-      CALL readgravparamdbl(index,ECM)
-      EBMUP(1) = ECM/2.
-      EBMUP(2) = ECM/2.
-
-      index=4
-      CALL readgravparamdbl(index,AMD)
-
-      index=5
-      CALL readgravparamdbl(index,PTCUT)
-
-      index=6
-      CALL readgravparamdbl(index,AMGRAVMAX)
-
-      index=7
-      CALL readgravparamdbl(index,SIGMAX)
-
-      index=8
-      CALL readgravparamint(index,ICUTOFF)
-
-
-      write(6,*) ' >>> INITGrav: '
-      write(6,*) ' NDIM, IPROC, AMGRAVMAX, PTCUT, AMD, CutOff = ',
-     & NDIM, IPROC, AMGRAVMAX, PTCUT, AMD, ICUTOFF 
-
-
-
-C...Decide on weighting strategy: weighted on input, cross section unknown.
-      IDWTUP=1
-C...Decide on weighting strategy: weighted on input, cross section known.
-c      IDWTUP=2
-
-C...Number of different external processes. 
-      NPRUP=1
-
-C...Set up Graviton
-C ======================
-C.. cross section unknown [XSECUP:cross section for each external process,in pb]
-      XSECUP(1) = 0.
-C.. stat. error in cross section for each external process,in pb (Statistical Error)
-      XERRUP(1) = 0.
-C.. max. value of cross section (pb)
-      XMAXUP(1) = SIGMAX
-C.. process ID
-      LPRUP(1)=IPROC
-
-
-      RETURN
-
-      END Subroutine
-
diff --git a/Generators/ExoGraviton_i/src/usegrav.F b/Generators/ExoGraviton_i/src/usegrav.F
deleted file mode 100755
index f3b1211e1bc19782b0273f2820ec5d02bc25d8c9..0000000000000000000000000000000000000000
--- a/Generators/ExoGraviton_i/src/usegrav.F
+++ /dev/null
@@ -1,829 +0,0 @@
-      Subroutine USEGRAV
-
-C     Authors: Pierre-Hugues Beauchemin<pierre-hugues.beauchemin@cern.ch>
-C              Georges Azuelos<georges.azuelos@umontreal.ca>
-C              
-
-
-C     Compute graviton production cross section and generate events
-C     --------------------------------------------------------------
-
-C     Note: processes = parton + parton -> jet + Graviton, according to eq. (64-66) of hep-ph/9811291
-
-
-
-C...Double precision and integer declarations.
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-
-c      INTEGER PYK,PYCHGE,PYCOMP
-C...PYTHIA Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYDAT4/CHAF(500,2)
-      CHARACTER CHAF*16
-      COMMON/PYDATR/MRPY(6),RRPY(100)
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYINT6/PROC(0:500)
-      CHARACTER PROC*28
-      COMMON/PYINT7/SIGT(0:6,0:6,0:5)
-      COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
-      COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
-     &SFMIX(16,4),ZMIXI(4,4),UMIXI(2,2),VMIXI(2,2)
-      COMMON/PYMSRV/RVLAM(3,3,3), RVLAMP(3,3,3), RVLAMB(3,3,3)
-      COMMON/PYBINS/IHIST(4),INDX(1000),BIN(20000)
-      SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYDAT4/,/PYDATR/,/PYSUBS/,
-     &/PYPARS/,/PYINT1/,/PYINT2/,/PYINT3/,/PYINT4/,/PYINT5/,
-     &/PYINT6/,/PYINT7/,/PYMSSM/,/PYSSMT/,/PYMSRV/,/PYBINS/
-
-C...User process event common block.
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500) 
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-c      DOUBLE PRECISION XWGTUPALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP 
-      DOUBLE PRECISION AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP  
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &VTIMUP(MAXNUP),SPINUP(MAXNUP)  
-      SAVE /HEPEUP/   
-
-C.. user
-      COMMON/USER/SIGMAX, ECM, sigev2, sqrshat
-      common /user2/sigtot, ebeam, amgravmin, amgravmax,
-     +              ptcut, shatmin, xmin, shatmax, tmin, tmax,
-     +              phspv, amd, coupl, ccoupl, g, g5, ndim, ntot, 
-     +              iproc, igrav, iq, icutoff
-      save /user2/
-      dimension xp1(-25:25),xp2(-25:25), sigi(-5:5,-5:5)
-      COMMON /USER3/ PT2, Q2, shat, that, uhat, sig0, wgt1, wgt2,
-     +               conv, xp1, xp2, sigi, amgrav, amgrav2, costhe,
-     +               F1, F2, F3
-
-C.. conversion factor GeV**(-2) --> pb ( = hbarc **2)
-      logical ifirst
-      DATA CONV/0.389D9/, IFIRST/.true./
-
-C.. first pass? ==> xtraD parameters
-      if(ifirst)then
-          ifirst=.false.
-          Ebeam=ECM/2.
-
-
-C  Note: sqrt(shat) is min, when p = pTcut
-          sqrshatmin=ptcut+sqrt(ptcut**2+amgravmin**2)
-          shatmin = max(sqrshatmin**2,AMGRAVmin**2)
-          Xmin=shatmin/ECM**2
-          shatmax=ECM**2
-
-C.....   phase space volume x1-x2 space
-          PHSPV=LOG(XMIN)**2/2.  
-      end if
-      sigev=0.
-      sigev2=sigev
-
-C.. sample ln(x1), ln(x2) = fraction of quark momentum in proton
- 20   X1=XMIN**PYR(0)
-      X2=XMIN**PYR(0)
-      SHAT=X1*X2*ECM**2
-      sqrshat=sqrt(shat)
-      if(shat.lt.shatmin)go to 20
-
-C.. sample  M**2
-C   Note: exclude M1**2 < M**2 
-      am1 = shat-2*ptcut*sqrshat
-      ammin2=amgravmin**2
-      if(am1.lt.ammin2)then
-         wgt1=0.
-         go to 200
-      end if
-      ammax2=min(am1,amgravmax**2)
-C the above definition of ammax,ensures the allowed kinematics.
-      AMGRAV2=ammin2+(ammax2-ammin2)*PYR(0)
-C this gives the KK mode,a mass between ammin & ammax.
-      AMGRAV=sqrt(AMGRAV2)
-      wgt1=ammax2-ammin2
-
-C.. sample t_hat and compute weight
-      t1=shat-amgrav2
-      determ = t1**2-4.*shat*ptcut**2
-      if(determ.lt.0.)then
-         write(6,*) ' >>>>> determ < 0 : determ =', determ
-         go to 20
-      end if
-      determ=dsqrt(determ)
-      th1 = (-t1-determ)/2.
-      th2 = (-t1+determ)/2.
-      that = th1 * (th2/th1)**pyr(0)
-      wgt2 = (-that) * log(th1/th2)
-
-C shat + that + uhat = M^2
-      UHAT=-SHAT-THAT+AMGRAV**2 
-
-C...Subsystem scattering angle in parton cm, defined neglecting quark mass.
-      costhe=(that-uhat)/(that+uhat)
-      SINTHE=SQRT(MAX(0D0,1D0-COSTHE**2))
-      phi=2*paru(1)*PYR(0)
-
-      PT2=THAT*UHAT/SHAT
-      Q2=amgrav**2/2+PT2
-
-C...  Parton distributions (multiplied by x) of the protons
-      CALL PYPDFU(2212,X1,Q2,XP1)
-      CALL PYPDFU(2212,X2,Q2,XP2)
-
-
-
-C.--------------------------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-C.. Get cross sections and generate events
-C
-C     Note: three processes: qqbar->gG, qg->qG, gg->gG
-C.--------------------------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-      if(iproc.eq.1110)then
-        call qqbar_gGrav
-      else if(iproc.eq.1111)then
-        call qg_qGrav
-      else if(iproc.eq.1112)then
-        call gg_gGrav
-      else
-         write(6,*) ' **** no process **** '
-         stop
-      end if
-
-C.. particle momenta, after boosting to lab system
-      pup(1,1)=0.
-      pup(2,1)=0.
-      pup(4,1)=x1*ECM/2.d0
-      pup(5,1)=pmas(iabs(idup(1)),1)
-      pup(3,1)=dsqrt(pup(4,1)**2-pup(5,1)**2)
-
-      pup(1,2)=0.
-      pup(2,2)=0.
-      pup(4,2)=x2*ECM/2.d0
-      pup(5,2)=pmas(iabs(idup(2)),1)
-      pup(3,2)=-dsqrt(pup(4,2)**2-pup(5,2)**2)
-
-C.. particle igrav = Graviton; iq = parton( quark or gluon )
-C.....velocity of qq c.m. system
-C......... gamma = E(qq)/M(qq)
-      gamma=(x1+x2)*ECM/(2.d0*sqrshat)
-      beta=dsqrt(1.d0-1.d0/gamma**2)
-      if(x1.lt.x2)beta=-beta
-
-C..... in cm of qq system, energy and momentum of Grav is:
-      if(igrav.eq.4)costhe=-costhe
-      e3cm=(shat+amgrav2)/(2.*sqrshat)
-      p3cm=dsqrt(e3cm**2-amgrav2)
-      p3tcm=p3cm*sinthe
-      p3zcm=p3cm*costhe
-      pup(3,igrav)=gamma*(p3zcm+beta*e3cm)
-      pup(1,igrav)=p3tcm*cos(phi)
-      pup(2,igrav)=p3tcm*sin(phi)
-      pup(5,igrav)=amgrav
-      pup(4,igrav)=dsqrt(
-     +    (pup(1,igrav)**2+pup(2,igrav)**2+pup(3,igrav)**2
-     +   + pup(5,igrav)**2) )
-      e3lab=gamma*(e3cm+beta*p3zcm)
-
-C.. particle iq = light quark or gluon
-c      print*, "iq ",iq
-c      print*,'idup(iq)',idup(iq)
-      e4cm=(shat-amgrav**2)/(2.*sqrshat)
-      pup(1,iq)=-pup(1,igrav)
-      pup(2,iq)=-pup(2,igrav)
-      pup(3,iq)=gamma*(-p3zcm+beta*e4cm)
-c      write(6,*) 'PtJet:', dsqrt( pup(1,igrav)**2 + pup(2,igrav)**2 ) 
-      pup(5,iq)=pmas(iabs(idup(iq)),1)
-      pup(4,iq)=dsqrt( 
-     +      (pup(1,iq)**2+pup(2,iq)**2+pup(3,iq)**2+pup(5,iq)**2))
-      e4lab=gamma*(e4cm-beta*p3zcm)
-
-C.. lifetime and spin
-      do i=1,4
-        VTIMUP(i) = 0.
-        SPINUP(I) = 0.
-      end do
-
-
-
-C.. Get weight 
-
-      ntot = ntot+1
-      sigtot=sigtot+sigev2
-      return
- 200  SIGEV=0.
-      xwgtup=sigev
-      sigev2=sigev
-      sigtot=sigtot+sigev
-      ntot=ntot+1
-
-
-      RETURN
-      end subroutine
-
-C ========================================================
-
-
-
-      subroutine qqbar_gGrav
-C==================================================
-C  process 1110: q + qbar -> Grav g
-C
-C     Note: Compute cross section and define color flow
-C==================================================
-
-      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
-
-C...User process event common block.
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &LPRUP(MAXPUP)
-      SAVE /HEPRUP/
-
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500) 
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP  
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &VTIMUP(MAXNUP),SPINUP(MAXNUP)  
-      SAVE /HEPEUP/   
- 
-C.. user
-      COMMON/USER/SIGMAX, ECM, sigev2, sqrshat
-      common /user2/sigtot, ebeam, amgravmin, amgravmax,
-     +              ptcut, shatmin, xmin, shatmax, tmin, tmax,
-     +              phspv, amd, coupl, ccoupl, g, g5, ndim, ntot, 
-     +              iproc, igrav, iq, icutoff
-      save /user2/
-      dimension xp1(-25:25),xp2(-25:25), sigi(-5:5,-5:5)
-      COMMON /USER3/ PT2, Q2, shat, that, uhat, sig0, wgt1, wgt2,
-     +               conv, xp1, xp2, sigi, amgrav, amgrav2, costhe,
-     +               F1, F2, F3
-
-
-      data pi/3.141592654/
-c   , twopi/6.2832/
-
-C  process 1110: q + g -> Grav g
-      IDPRUP = 1110
-
-C.. alpha(em) and alpha_s
-c      AEM=PYALEM(Q2)
-      ALPS=PYALPS(Q2)
-
-
-
-C.. calculate sig0
-
-C compute the unit sphere surface in n extra-d:
-
-        if (ndim.eq.1) then
-           omega=2.
-        else if (ndim.eq.2) then
-           omega=2.*pi
-        else if (ndim.eq.3) then
-           omega=4.*pi
-        else if (ndim.eq.4) then
-           omega=2.*pi**2
-        else if (ndim.eq.5) then
-           omega=(8.*pi**2)/3.
-        else if (ndim.eq.6) then
-           omega=pi**3
-        else if (ndim.ge.7) then
-           omega=0.
-        end if
-
-C     Constants 
-C     {see eq.60 & 64}
-
-      const1 = alps/(36.*shat)
-      const2 = amgrav2**((float(ndim)-2.)/2.)/2.
-C  ( dm^2 is considered instead of dm. )
-      const3 = omega
-      const4 = 1/(amd**(ndim+2))
-
-
-C     Compute the function F1(x,y)
-
-      x=that/shat
-      y=(amgrav**2)/shat
-
-      term1 = 1/(x*(y-1-x))
-      term2 = (-4)*x*(1+x)*(1+2*x+2*x**2)
-      term3 = y*(1+6*x+18*x**2+16*x**3)
-      term4 = (-6)*(y**2)*x*(1+2*x)
-      term5 = (y**3)*(1+4*x)
-
-      F1= (term2+term3+term4+term5)*term1
-      F2=0.
-      F3=0.
-
-
-C     differential cross section(see eq.60)
-      
-      sig0=const1*const2*const3*const4*F1
-
-C.--------------------------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-
-      sigev=0.
-      sigi(0,0)=0.
-      do i1=1,5
-         i2=-i1
-         sigi(i1,i2)=sig0*xp1(i1)*xp2(i2)
-         sigi(i2,i1)=sig0*xp1(i2)*xp2(i1)
-         sigev=sigev+sigi(i1,i2)+sigi(i2,i1)
-      end do
- 
-      sigtp=0.
-      random=pyr(0)
-      do i1=-5,5
-         i2=-i1
-         sigtp=sigtp+sigi(i1,i2)
-         if((sigtp/sigev).gt.random)then
-            ia=i1
-            ib=i2
-            go to 30
-         end if
-      end do
- 30   continue
-      sigev=sigev * wgt1 * wgt2 * conv * phspv
-      sigev2=sigev
-
-C weight, in pb!
-      if (icutoff.eq.0) then
-        XWGTUP = sigev
-      else if (icutoff.eq.1 .AND. shat.le.aMD**2) then
-        XWGTUP = sigev
-      else if (icutoff.eq.1 .AND. shat.gt.aMD**2) then
-        XWGTUP = sigev * (aMD**4/shat**2)  
-      else if (icutoff.eq.2 .AND. shat.le.aMD**2) then
-        XWGTUP = sigev
-      else if (icutoff.eq.2 .AND. shat.gt.aMD**2) then
-        XWGTUP = 0
-      end if
- 
-
-C.. fill event
-      NUP=4
-      SCALUP=q2
-      AQEDUP=-1.
-      AQCDUP=-1.
-
-      
-C.. particle ID's
-      igrav=3
-      iq=4
-      IDUP(1)=ia
-      IDUP(2)=ib
-      IDUP(3)=39
-      IDUP(4)=21
-      
-C.. status codes ( -1:an incoming particle of the hard scattering process,
-C                   1:an outgoing final state particle)
-      ISTUP(1)=-1
-      ISTUP(2)=-1
-      ISTUP(3)=1
-      ISTUP(4)=1
-
-
-C.. MOTHUP(1,i),MOTHUP(2,i):positions of first and last mother of particle i.
-      do i=3,4
-         MOTHUP(1,i)=i-2
-         MOTHUP(2,i)=0
-      end do
-
-C..   colour tags( ICOLUP(1,i):the colour of particle i
-C                  ICOLUP(2,i):the colour of anti-particle i)   
-
-      if(ia .gt.0)then
-         ICOLUP(1,1)=101
-         ICOLUP(2,1)=0
-         ICOLUP(1,2)=0
-         ICOLUP(2,2)=102
-      else
-         ICOLUP(1,1)=0
-         ICOLUP(2,1)=102
-         ICOLUP(1,2)=101
-         ICOLUP(2,2)=0
-      end if
-      ICOLUP(1,4)=101
-      ICOLUP(2,4)=102
-
-
-      return
-      end subroutine
-
-C ========================================================
-
-      subroutine qg_qGrav
-C==================================================
-C  process 1111: q + g -> Grav q
-C
-C     Note: Compute cross section and define color flow
-C==================================================
-
-      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
-C...User process event common block.
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &LPRUP(MAXPUP)
-      SAVE /HEPRUP/
-
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500) 
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP  
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &VTIMUP(MAXNUP),SPINUP(MAXNUP)  
-      SAVE /HEPEUP/   
- 
-C.. user
-      COMMON/USER/SIGMAX, ECM, sigev2, sqrshat
-      common /user2/sigtot, ebeam, amgravmin, amgravmax,
-     +              ptcut, shatmin, xmin, shatmax, tmin, tmax,
-     +              phspv, amd, coupl, ccoupl, g, g5, ndim, ntot, 
-     +              iproc, igrav, iq, icutoff
-      save /user2/
-      dimension xp1(-25:25),xp2(-25:25), sigi(-5:5,-5:5)
-      COMMON /USER3/ PT2, Q2, shat, that, uhat, sig0, wgt1, wgt2,
-     +               conv, xp1, xp2, sigi, amgrav, amgrav2, costhe,
-     +               F1, F2, F3
-
-
-
-      data pi/3.141592654/
-c  , twopi/6.2832/
-
-C  process 1111: q + g -> Grav q
-      IDPRUP = 1111
-
-C.. alpha(em) and alpha_s
-c      AEM=PYALEM(Q2)
-      ALPS=PYALPS(Q2)
-
-
-C.. calculate sig0
-
-C compute the unit sphere surface in n extra-d:
-
-        if (ndim.eq.1) then
-           omega=2.
-        else if (ndim.eq.2) then
-           omega=2.*pi
-        else if (ndim.eq.3) then
-           omega=4.*pi
-        else if (ndim.eq.4) then
-           omega=2.*pi**2
-        else if (ndim.eq.5) then
-           omega=(8.*pi**2)/3.
-        else if (ndim.eq.6) then
-           omega=pi**3
-        else if (ndim.ge.7) then
-           omega=0.
-        end if
-
-C     Constants
-
-      const1 = alps/(96.*shat)
-      const2 = amgrav2**((float(ndim)-2.)/2.)/2.
-      const3 = omega
-      const4 = 1/(amd**(ndim+2))
-
-
-C     Compute the function F2(x,y)
-
-      x=that/shat
-      y=(amgrav**2)/shat
-
-      term1 = 1/(x*(y-1-x))
-      term2 = (-4)*x*(1+x**2)
-      term3 = y*(1+x)*(1+8*x+x**2)
-      term4 = (-3)*(y**2)*(1+4*x+x**2)
-      term5 = 4*(y**3)*(1+x)
-      term6 = (-2)*(y**4)
- 
-      F2 = (term2+term3+term4+term5+term6)*term1
-      F1=0.
-      F3=0.
-
-C     differential cross section(eq 60):
-      
-      sig0=const1*const2*const3*const4*F2
-
-C.--------------------------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-
-C.. different cases of quark-gluon scattering
-      sigev=0.
-      sigi(0,0)=0.
-      do i1=-5,5
-         if(i1.ne.0)then
-            i2=21
-            sigi(i1,0)=sig0*xp1(i1)*xp2(i2)
-            sigi(0,i1)=sig0*xp1(i2)*xp2(i1)
-            sigev=sigev+sigi(i1,0)+sigi(0,i1)
-         end if
-      end do
-
-      sigtp=0.
-      random=pyr(0)
-      do i1=-5,5
-         if(i1.ne.0)then
-            i2=21
-            sigtp=sigtp+sigi(i1,0)
-            if((sigtp/sigev).gt.random)then
-               ia=i1
-               ib=i2
-               go to 30
-            end if
-            sigtp=sigtp+sigi(0,i1)
-            if((sigtp/sigev).gt.random)then
-               ia=i2
-               ib=i1
-               go to 30
-            end if
-         end if
-      end do
- 30   continue
-
-        sigev=sigev * wgt1 * wgt2 * conv * phspv
-        sigev2=sigev
-
-C weight, in pb!
-         
-      if (icutoff.eq.0) then
-        XWGTUP = sigev
-      else if (icutoff.eq.1 .AND. shat.le.aMD**2) then
-        XWGTUP = sigev
-      else if (icutoff.eq.1 .AND. shat.gt.aMD**2) then
-        XWGTUP = sigev * (aMD**4/shat**2)  
-      else if (icutoff.eq.2 .AND. shat.le.aMD**2) then
-        XWGTUP = sigev
-      else if (icutoff.eq.2 .AND. shat.gt.aMD**2) then
-        XWGTUP = 0 
-      end if
-
-
-C.. fill event
-      NUP=4
-      SCALUP=q2
-      AQEDUP=-1.
-      AQCDUP=-1.
-
-C.. particle ID's
-c   Note:    here, "that" is (p_q - p_G)**2, so put 
-c            quark in position 1 and G in position 3
-c        OR  quark in position 2 and G in position 4
-
-      IDUP(1)=ia
-      IDUP(2)=ib
-      if(ia.eq.21)then
-         igrav=4
-         iq=3
-      else
-         igrav=3
-         iq=4
-      end if
-      IDUP(igrav)=39
-      IDUP(iq)=min(ia,ib)
-
-C.. status codes
-      ISTUP(1)=-1
-      ISTUP(2)=-1
-      ISTUP(3)=1
-      ISTUP(4)=1
-
-C.. positions of first and last mother
-      do i=3,4
-         MOTHUP(1,i)=0
-         MOTHUP(2,i)=0
-      end do
-
-C.. colour tags
-      do i=1,4
-         icolup(1,i)=0
-         icolup(2,i)=0
-      end do
-      if(ia.eq.21)then
-         icolup(1,1)=101
-         icolup(2,1)=102
-         if(ib.gt.0)then
-            icolup(1,2)=102
-            icolup(2,2)=0
-            icolup(1,iq)=101
-            icolup(2,iq)=0
-         else
-            icolup(1,2)=0
-            icolup(2,2)=101
-            icolup(1,iq)=0
-            icolup(2,iq)=102
-         end if
-      else
-         icolup(1,2)=101
-         icolup(2,2)=102
-         if(ia.gt.0)then
-            icolup(1,1)=102
-            icolup(2,1)=0
-            icolup(1,iq)=101
-            icolup(2,iq)=0
-         else
-            icolup(1,1)=0
-            icolup(2,1)=101
-            icolup(1,iq)=0
-            icolup(2,iq)=102
-         end if
-      end if
-      return
-      end subroutine
-
-
-C ========================================================
-
-
-      subroutine gg_gGrav
-
-C==================================================
-C  process 1112: g + g -> Grav g
-C
-C     Note: Compute cross section and define color flow
-C==================================================
-
-      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
-C...User process event common block.
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &LPRUP(MAXPUP)
-      SAVE /HEPRUP/
-
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500) 
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP  
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &VTIMUP(MAXNUP),SPINUP(MAXNUP)  
-      SAVE /HEPEUP/   
- 
-C.. user
-      COMMON/USER/SIGMAX, ECM, sigev2, sqrshat
-      common /user2/sigtot, ebeam, amgravmin, amgravmax,
-     +              ptcut, shatmin, xmin, shatmax, tmin, tmax,
-     +              phspv, amd, coupl, ccoupl, g, g5, ndim, ntot, 
-     +              iproc, igrav, iq, icutoff
-      save /user2/
-      dimension xp1(-25:25),xp2(-25:25), sigi(-5:5,-5:5)
-      COMMON /USER3/ PT2, Q2, shat, that, uhat, sig0, wgt1, wgt2,
-     +               conv, xp1, xp2, sigi, amgrav, amgrav2, costhe,
-     +               F1, F2, F3
-
-
-
-      data pi/3.141592654/
-c  , twopi/6.2832/
-
-C  process 1112: g + g -> Grav g
-      IDPRUP = 1112
-
-C.. alpha(em) and alpha_s
-C      AEM=PYALEM(Q2)
-      ALPS=PYALPS(Q2)
-
-
-C.. calculate sig0
-
-C compute the unit sphere surface in n extra-d:
-
-        if (ndim.eq.1) then
-           omega=2.
-        else if (ndim.eq.2) then
-           omega=2.*pi
-        else if (ndim.eq.3) then
-           omega=4.*pi
-        else if (ndim.eq.4) then
-           omega=2.*pi**2
-        else if (ndim.eq.5) then
-           omega=(8.*pi**2)/3.
-        else if (ndim.eq.6) then
-           omega=pi**3
-        else if (ndim.ge.7) then
-           omega=0.
-        end if
-
-C     Constants
-
-      const1 = 3*alps/(16.*shat)
-      const2 = amgrav2**((float(ndim)-2.)/2.)/2.
-      const3 = omega
-      const4 = 1/(amd**(ndim+2))
-
-
-C     Compute the function F3(x,y) (see eq.92)
-
-      x=that/shat
-      y=(amgrav**2)/shat
-
-
-      term1 = 1/(x*(y-1-x))
-
-      term2 = 1+2*x+3*x**2+2*x**3+x**4
-      term3 = (-2)*y*(1+x**3)
-      term4 = 3*(y**2)*(1+x**2)
-      term5 = (-2)*(y**3)*(1+x)
-      term6 = y**4
-
-      F3= (term2+term3+term4+term5+term6)*term1
-      F1=0.
-      F2=0.
-
-c      write(6,*) F1, F2, F3
-
-
-C     differential cross section
-      
-      sig0=const1*const2*const3*const4*F3
-
-C.--------------------------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-
-C.. different cases of parton-antiparton scattering
-      sigev=0.
-      sigi(0,0)=0.
-      i1=21
-      i2=21
-      sigev=sig0*xp1(i1)*xp2(i2)
- 
-      ia=i1
-      ib=i2
-        sigev=sigev * wgt1 * wgt2 * conv * phspv
-        sigev2=sigev
-
-C weight, in pb!
-         
-      if (icutoff.eq.0) then
-        XWGTUP = sigev
-      else if (icutoff.eq.1 .AND. shat.le.aMD**2) then
-        XWGTUP = sigev
-      else if (icutoff.eq.1 .AND. shat.gt.aMD**2) then
-        XWGTUP = sigev * (aMD**4/shat**2)  
-      else if (icutoff.eq.2 .AND. shat.le.aMD**2) then
-        XWGTUP = sigev
-      else if (icutoff.eq.2 .AND. shat.gt.aMD**2) then
-        XWGTUP = 0 
-      end if
-
-
-C.. fill event
-      NUP=4
-      SCALUP=q2
-      AQEDUP=-1.
-      AQCDUP=-1.
-
-C.. particle ID's
-      igrav=3
-      iq=4
-      IDUP(1)=ia
-      IDUP(2)=ib
-      IDUP(3)=39
-      IDUP(4)=21
-
-C.. status codes
-      ISTUP(1)=-1
-      ISTUP(2)=-1
-      ISTUP(3)=1
-      ISTUP(4)=1
-
-C.. positions of first and last mother
-      do i=3,4
-         MOTHUP(1,i)=i-2
-         MOTHUP(2,i)=0
-      end do
-
-C.. colour tags
-      icolup(1,1)=101
-      icolup(2,1)=102
-      icolup(1,2)=102
-      icolup(2,2)=103
-      icolup(1,4)=101
-      icolup(2,4)=103
-      return
-      end subroutine
diff --git a/Generators/GravADD_i/CMakeLists.txt b/Generators/GravADD_i/CMakeLists.txt
deleted file mode 100644
index c2593fb8e823e6067b154cc2437b515992fc4d94..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-################################################################################
-# Package: GravADD_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( GravADD_i )
-
-# External dependencies:
-find_package( GSL )
-find_package( Lhapdf )
-find_package( Pythia6 )
-
-# tag allowUndefined was not recognized in automatic conversion in cmt2cmake
-
-# Component(s) in the package:
-atlas_add_library( GravADD_i
-                   src/*.cxx
-                   src/*.F
-                   PUBLIC_HEADERS GravADD_i
-                   INCLUDE_DIRS ${GSL_INCLUDE_DIRS}
-                   PRIVATE_INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${GSL_LIBRARIES}
-                   PRIVATE_LINK_LIBRARIES ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES} )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-
diff --git a/Generators/GravADD_i/GravADD_i/GravADD.h b/Generators/GravADD_i/GravADD_i/GravADD.h
deleted file mode 100644
index ed69e21bb9aeff097539ef125b1370e1be97e8e6..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/GravADD_i/GravADD.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//a set of c++ functions that act as an interface between
-//Athenas C++ Pythia and GravADD
-//(a FORTRAN program for simulation of gravitational scattering and black hole formation in large extra dimensions)
-
-#ifndef GRAVADD_H
-#define GRAVADD_H
-extern void writegravaddparam(int,int,double);
-extern "C" void readGravADDparamint_(int*,int*);
-extern "C" void readGravADDparamdbl_(int*,double*);
-
-#endif
-
-
diff --git a/Generators/GravADD_i/GravADD_i/charybdis1001.inc b/Generators/GravADD_i/GravADD_i/charybdis1001.inc
deleted file mode 100644
index b53ba7e7331f8ebb82b702db221c2cfa7c16df3a..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/GravADD_i/charybdis1001.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-C--include file for Black Hole generator
-      IMPLICIT NONE
-C--common block for the probabilities of SM particles
-      DOUBLE PRECISION PQUARK,PLEPT,PNEUT,PGLUON,PGAMMA,PWBOSN,
-     & PZBOSN,PHIGGS,PFERM(3),PBOSON(5)
-      COMMON /BHPROB/PQUARK,PLEPT,PNEUT,PGLUON,PGAMMA,PWBOSN,
-     & PZBOSN,PHIGGS,PFERM,PBOSON
-C--common block for the main parameters
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT
-C--common block for decay of the black hole
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-      SAVE /BLACKH/,/BHPARM/,/BHPROB/
\ No newline at end of file
diff --git a/Generators/GravADD_i/GravADD_i/gammafn.h b/Generators/GravADD_i/GravADD_i/gammafn.h
deleted file mode 100644
index f2ca8722c0bd63a2edac718e8b83f41e655119c2..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/GravADD_i/gammafn.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GAMMAFN_H
-#define GAMMAFN_H
-//#include <gsl_sf.h>
-#include <gsl/gsl_sf.h>
-extern "C" {
-	double gammafn_(double * x);
-        float fgammafn_(float * x);
-        double igamma_(double * a, double * x);
-}
-#endif
diff --git a/Generators/GravADD_i/doc/Doxyfile b/Generators/GravADD_i/doc/Doxyfile
deleted file mode 100644
index 292d0afd680712ea19829636189fd5f92f9fef36..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/doc/Doxyfile
+++ /dev/null
@@ -1,231 +0,0 @@
-# Doxyfile 1.5.3
-
-#---------------------------------------------------------------------------
-#Project related configuration options
-#---------------------------------------------------------------------------
-DOXYFILE_ENCODING      = UTF-8
-PROJECT_NAME           = GravADD_i
-PROJECT_NUMBER         = GravADD_i-00-00-02
-OUTPUT_DIRECTORY = /afs/cern.ch/user/b/boelaert/testarea/15.6.1/InstallArea/doc/GravADD_i
-CREATE_SUBDIRS         = NO
-OUTPUT_LANGUAGE        = English
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
-ALWAYS_DETAILED_SEC    = NO
-INLINE_INHERITED_MEMB  = YES
-FULL_PATH_NAMES        = YES
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
-SHORT_NAMES            = NO
-JAVADOC_AUTOBRIEF      = YES
-QT_AUTOBRIEF           = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-SEPARATE_MEMBER_PAGES  = NO
-TAB_SIZE               = 8
-ALIASES                = 
-OPTIMIZE_OUTPUT_FOR_C  = NO
-OPTIMIZE_OUTPUT_JAVA   = NO
-BUILTIN_STL_SUPPORT    = NO
-CPP_CLI_SUPPORT        = NO
-DISTRIBUTE_GROUP_DOC   = NO
-SUBGROUPING            = YES
-#---------------------------------------------------------------------------
-#Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-EXTRACT_LOCAL_METHODS  = NO
-EXTRACT_ANON_NSPACES   = NO
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-INTERNAL_DOCS          = NO
-CASE_SENSE_NAMES       = YES
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = NO
-SORT_BRIEF_DOCS        = NO
-SORT_BY_SCOPE_NAME     = NO
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 30
-SHOW_USED_FILES        = YES
-SHOW_DIRECTORIES       = YES
-FILE_VERSION_FILTER    = 
-#---------------------------------------------------------------------------
-#configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_NO_PARAMDOC       = NO
-WARN_FORMAT            = "$file:$line: $text "
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-#configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT =  ../src ../GravADD_i ../doc ../share
-INPUT_ENCODING         = UTF-8
-FILE_PATTERNS          = *.cxx *.h *.py *.mk *.icc
-RECURSIVE              = YES
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXCLUDE_SYMBOLS        = 
-EXAMPLE_PATH           = ../doc ../cmt ../share
-EXAMPLE_PATTERNS       = *.cxx *.html requirements *.py
-EXAMPLE_RECURSIVE      = YES
-IMAGE_PATH             = 
-INPUT_FILTER           = 
-FILTER_PATTERNS        = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-#configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = YES
-INLINE_SOURCES         = YES
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION    = NO
-REFERENCES_LINK_SOURCE = YES
-USE_HTAGS              = NO
-VERBATIM_HEADERS       = NO
-#---------------------------------------------------------------------------
-#configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-#configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-HTML_DYNAMIC_SECTIONS  = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = NO
-TOC_EXPAND             = NO
-DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = NO
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-#configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = YES
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-#configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-#configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-#configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
-#---------------------------------------------------------------------------
-#configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-#configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-#Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = NO
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-#Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES = 
-GENERATE_TAGFILE = /afs/cern.ch/user/b/boelaert/testarea/15.6.1/InstallArea/doc/GravADD_i.tag
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-#Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-MSCGEN_PATH            = 
-HIDE_UNDOC_RELATIONS   = YES
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = YES
-GROUP_GRAPHS           = YES
-UML_LOOK               = YES
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = YES
-CALL_GRAPH             = NO
-CALLER_GRAPH           = NO
-GRAPHICAL_HIERARCHY    = YES
-DIRECTORY_GRAPH        = YES
-DOT_IMAGE_FORMAT       = gif
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-DOT_GRAPH_MAX_NODES    = 50
-MAX_DOT_GRAPH_DEPTH    = 0
-DOT_TRANSPARENT        = NO
-DOT_MULTI_TARGETS      = NO
-GENERATE_LEGEND        = YES
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-#Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = YES
diff --git a/Generators/GravADD_i/doc/packagedoc.h b/Generators/GravADD_i/doc/packagedoc.h
deleted file mode 100644
index 246c0accf63984112feff99127553d7e38843ea8..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/doc/packagedoc.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-@page GravADD_i_page GravADD_i
-@author Nele Boelaert  (at_cern.ch)
-
-@section GravADD_i_introductionGravADD_i Introduction
-
-GravADD is a generator for gravitational scattering (GS) and black hole (BH) production in large extra dimensions. It has been implemented in the ATLAS software framework and has become available from release 15.6 onwards.
-
-References:
-- More info about the physics: hep-ph/0608210
-- An internal note about the implementation: ATL-PHYS-INT-2010-012
-- The twiki GravADDForAtlas: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/GravADDForAtlas
-
-The physics model used is the ADD model (hep-ph/9803315, hep-ph/9807344), but with the extra requirement that the 4-dimensional membrane has a finite width, which is motivated by physical arguments. The width of the membrane is parameterised by a parameter Ms, which has the dimension of mass; 1/Ms is a measure of the width (see the references listed above for more info). 
-
-GravADD generates three different types of events: QCD, gravitational scattering (GS) and black hole (BH) events. The generator assigns a flag, gravev, to indicate if the event is a QCD (gravev=0), a GS (gravev=1) or a BH (gravev=2) event. In the Athena implementation, this flag is stored in the StoreGate's weight container, allowing the user to retrieve this information afterwards in the analysis stage. 
-
-In a GS event, quantized Kaluza-Klein (KK) modes occur as intermediate states and, in order to calculate the scattering amplitude, the sum of all modes has to be made. But due to the finite width of the membrane, KK states with a mass above Ms are effectively cut off. So only KK states with a mass below Ms are included in the propagator. 
-
-In hadron collisions, BHs are expected to form when the interacting partons come closer than twice the Schwarzschild radius. This sets a minimum on the BH mass. Another limit on the black hole mass comes from the existence of the finite width of the membrane, because, in the approximation of a narrow width, the membrane cannot be more extended than the black hole itself, meaning that the Schwarzschild radius should not be smaller than 1/Ms 
-
-The BH generation is done with the Charybdis generator. The current version of Charybdis is 1.003, but an upgrade to Charybdis 2 is foreseen (soon). There is the possibility to switch of BH production in GravADD. 
-
-
-@section GravADD_i_paramsGravADD_i Parameters
-
-- MP = the fundamental Planck Scale defined as in (hep-ph/0608210). This is the default definition in GravADD, but the user can change via the jobOption to the definition used by the Particle Data Group.
-- Ms = Kaluza Klein mass cutoff (1/Ms = measure of the width of the membrane)
-- n = number of extra dimensions, with (n+4) the total number of dimensions. 
-- Meff = the effective Planck Scale which is used for the calculation of the gravitational scattering amplitude, which is a function of MP, Ms and n. 
-
-Orthogonal set of parameters: Meff, Ms/MP (relative KK mass cutoff) and total number of dimensions.
-
-
-@section GravADD_i_implementationGravADD_i Implementation in Athena
-
-The code is split over two separate packages, namely Generators/PythiaExo_i and Generators/GravADD_i. 
-
-The GS part is implemented in PYTHIA 6.4 by actual changes in the code. A PythiaGS library was created for this purpose in the Generators/PythiaExo_i package. Basically, the event weight for a non BH event is reweighted with a factor sigma(QCD+GS)/sigma(QCD) in order to take into account GS. In order to be able to access the high-pT phase space, PythiaGS uses a modified version of the PYEVWT(WTXS) routine, and runs by default with the option mstp(142) =1. 
-
-The BH generator is connected to PythiaGS as an external process using the UPINIT and UPEVNT routines that come with PYTHIA, and are called after initialisation with PYINIT USER. 
-
-The QCD processes are selected in the normal way, using the MSUB array in PYTHIA. 
-
-The package Generators/GravADD_i has been created to contain the code for the BH production and for reading in the parameters. 
-
-
-@section GravADD_i_ExampleGravADD_i Example JobOption
-
-jobOption file to initialize ("pyinit user GRAVADD") and set model parameters (a list with all options will be given later on)
-
-- from PythiaExo_i.PythiaGS_iConf import PythiaGS
-- job +=PythiaGS()
-- job.PythiaGS.PythiaCommand =["pyinit user GRAVADD","gravADD 1 8"]
-
-Warning: GravADD only generates weighted events, so you should always fill your analysis histograms with pari(10), which is stored in the weight container.
-
-
-@section GravADD_i_ModelparamsGravADD_i JobOption Parameters
-
-Model parameters are set in the JobOption file, GravADD_i contains code to read them in
-
-Use: "gravADD <index> <value>"
-
-All complete list of all parameters: index, name, type, default, description:
-- 1, TOTDIM, int, 10, total number of dimensions: (n+4)
-- 2, CMEN, double, 7000., center of mass energy in GeV
-- 3, MSPRAT, double, 1., Ms/MP
-- 4, MEFF, double, 1000., Meff
-- 5, PLDEF, int, 1, Planck mass definition, 1:  as defined in hep-ph/0608210; 2:  as defined by the Particle Data Group
-- 6, GSONLY, int, 0, 0: GS and BH; 1: only GS but no BH 
-
-
-
-@section GravADD_i_TipsGravADD_i Tips for analysis
-
-Note that since GravADD generates weighted events, the user should always fill analysis histograms with the event weight pari(10), which is stored as third entry in the event weight container. At the end of the event loop, the histograms need to be divided by the bin width and the sum of weights of all events, and multiplied with the total integrated cross section, in order to convert the results to nb/(dimension of the horizontal axis). The total integrated cross section of event samples generated in Athena, is stored as MetaData in the file. 
-
-The flag gravev that GravADD uses to distinguish the three types of events (QCD, GS and BH) is stored as 4th entry in the event weight container. 
-
-
-
-
-*/
diff --git a/Generators/GravADD_i/share/jobOptions.GravADD.bin6.set8.py b/Generators/GravADD_i/share/jobOptions.GravADD.bin6.set8.py
deleted file mode 100755
index 41558d385a5ab795b4d23e5da071c59ffb724941..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/share/jobOptions.GravADD.bin6.set8.py
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################
-#
-# JOB OPTIONS FILE. THIS FILE IS TO DEMONSTRATE HOW THE USER CAN
-# CHANGE THE PYTHIAGS and GravADD PARAMETERS. IT DOES NOT NECESARILY COMPLY TO
-# THE ATLAS DEFAULTS FOR PHYSICS EVENT GENERATION.
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = FATAL
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 100
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-"PYTHIA_INIT 820021 2347532"]
-# ServiceManager.AtRndmGenSvc.ReadFromFile = true;
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from PythiaExo_i.PythiaGS_iConf import PythiaGS
-job +=PythiaGS()
-job.PythiaGS.PythiaCommand =[
-    "pydat1 mstu 21 1",
-    "pysubs ckin 3 350.",
-    "gravADD 2 10000.",
-    "gravADD 4 1000.",
-    "gravADD 3 1.508",	    
-    "gravADD 5 2",          # PDG definition of Mpl, MP = 1 TeV <=> MD = 2.652 TeV
-    "gravADD 6 1", 	    # Only GS, no BHs
-    "pyinit win 10000",
-    "pyinit user GRAVADD",
-    "pypars mstp 52 2",     #  proton external PDF library
-    "pypars mstp 54 2",     #  proton external PDF library
-    "pypars mstp 56 2",     #  proton external PDF library
-    "pypars mstp 51 20650", #  MRST2007lomod (LO* for MC))    
-    "pypars mstp 53 20650", #  MRST2007lomod (LO* for MC))    
-    "pypars mstp 55 20650", #  MRST2007lomod (LO* for MC))    
-    "pydat2 pmas 6 1 172.5", # PDG2007 TOP mass
-    "pydat2 pmas 24 1 80.403", # PDG2007 W mass
-    "pydat2 pmas 24 2 2.141", # PDG2007 W width
-    "pydat2 pmas 23 1 91.1876", # PDG2007 Z0 mass
-    "pydat2 pmas 23 2 2.4952", # PDG2007 Z0 width 
-    "pypars mstp 81 21", # MI new model
-    "pypars mstp 82 4", # MI
-    "pypars mstp 70 0", # regularization scheme for ISR
-    "pypars mstp 72 1", # maximum scale for radiation off FSR dipoles
-    "pypars mstp 90 0", # strategy to compensate the prim kt 
-    "pypars parp 78 0.3", # parameter controlling the amount of colour reconnection in FS
-    "pypars parp 80 0.1",
-    "pypars parp 82 2.3", # regularization scale pt0 for spectrum MI
-    "pypars parp 83 0.8", # parameters of the assumed matter overlap between the two colliding hadrons.
-    "pypars parp 84 0.7",
-    "pypars mstp 88 1" , # account for an assumed dominance of valence quarks at low transverse momentum scales
-    "pypars parp 90 0.25",
-    "pydat1 parj 81 0.29",
-    "pypars mstp 95 6",
-    "pydat1 mstj 11 4",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 41 0.3",
-    "pydat1 parj 42 0.58",
-    "pydat1 parj 46 0.75",
-    "pypars mstp 84 1",
-    "pypars mstp 85 1",
-    "pypars mstp 86 2",
-    "pypars mstp 87 4",
-    "pypars mstp 89 1",
-    "pypars parp 89 1800"
-    ] 
-
-
-#from TruthExamples.TruthExamplesConf import DumpMC
-#job += DumpMC()
-
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/GravADD_i/src/GravADD.cxx b/Generators/GravADD_i/src/GravADD.cxx
deleted file mode 100644
index 29c505114edd84ca8961d55d521f3aa4b08a4c7b..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/src/GravADD.cxx
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// a set of c++ functions that act as an interface between 
-// Athena C++ PythiaExo and GravADD,
-
-#ifndef GRAVADD_I
-#define GRAVADD_I
-
-#include <cstdlib>
-#include <cstdio>
-#include <stdlib.h>
-#include <iostream>
-#include "GravADD_i/GravADD.h"
-
-
-int WriteGravParamInit=0;
-
-struct GravADDParams
-{
-  int TOTDIM;    // 4 + n dimensions
-  double CMEN;   // center of mass energy
-  double MSPRAT;  // MS / MP
-  double MEFF;
-  int PLDEF;
-  int GSONLY;
- 
-};
-
-struct GravADDParams p;
-
-
-// This function should be called from c++ :
-extern void writegravaddparam( int index, int iparameter, double dparameter)
-{
-
-
-  // Write default values into GravParams when function is run for the first time:
-   if(WriteGravParamInit < 1)
-  {
-    WriteGravParamInit = 5;
-    p.TOTDIM = 10;        //1, total number of dimensions	
-    p.CMEN =7000.0 ;      //2, Center of Mass Energy
-    p.MSPRAT = 1.0;       //3, Ms/Mp
-    p.MEFF = 1000.0;      //4, Effective mass
-    p.PLDEF = 1;           //5, 1: Planck mass defined in hep-ph/0608210, 2: Planck mass defined in PDG 
-    p.GSONLY = 0;          //5, 1: only GS (no BH), 0: BH+GS
-  } 
-
-  if (index == 1)
- {
-    p.TOTDIM = iparameter;
- }
-  else if (index == 2 )
- {
-    p.CMEN = dparameter;
- }  
-  else if (index == 3)
- {
-    p.MSPRAT = dparameter;
- }
-  else if (index == 4)
- {
-    p.MEFF = dparameter;
- }
-  else if (index == 5)
- {
-    p.PLDEF = iparameter;
- }  
-   else if (index == 6)
- {
-    p.GSONLY = iparameter;
- }  
-  
-
-}
-
-
-// This function should be called from FORTRAN code and is used to read parameters
-// stored by the WriteGravADDParam function:
-extern "C" void readgravaddparamint_(int* index, int* parameter)
-{
-
-   // Write default values into GravParams when function is run for the first time:
-   if(WriteGravParamInit < 1)
-  {
-    WriteGravParamInit = 6;
-    p.TOTDIM = 10;         //1
-    p.CMEN =7000.0 ;      //2
-    p.MSPRAT = 1.0;        //3
-    p.MEFF = 1000.0;       //4
-    p.PLDEF = 1;            // 5
-    p.GSONLY = 0;
-  } 
-
-  if(*index == 1)
-  {
-    *parameter = p.TOTDIM;
-  }  
-  if(*index == 5)
-  {
-    *parameter = p.PLDEF;
-  }  	
-   
-  if(*index == 6)
-    {
-      *parameter = p.GSONLY;
-    }  	
-    
-}
-
-extern "C" void readgravaddparamdbl_(int* index, double* parameter)
-{
- 
-  // Write default values into GravParams when function is run for the first time:
-   if(WriteGravParamInit < 1)
-  {
-    WriteGravParamInit = 6;  
-    p.TOTDIM = 10;         //1
-    p.CMEN =7000.0 ;      //2
-    p.MSPRAT = 1.0;        //3
-    p.MEFF = 1000.0;       //4
-    p.PLDEF = 1;            // 5 
-    p.GSONLY = 0;            // 6
-  } 
-
-  if(*index == 2)
-  {
-    *parameter = (double)(p.CMEN);
-  }
-  else if(*index == 3)
-  {
-    *parameter = (double)(p.MSPRAT);
-  }
-  else if(*index == 4)
-  {
-    *parameter = (double)(p.MEFF);
-  }
-  
-}
-
-#endif
diff --git a/Generators/GravADD_i/src/gammafn.cxx b/Generators/GravADD_i/src/gammafn.cxx
deleted file mode 100644
index 576c5e1f05ec09c4e897a2ee28f7812a310c2428..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/src/gammafn.cxx
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "GravADD_i/gammafn.h"
-#include <math.h>
-#include <gsl/gsl_sf.h>
-
-
-//#include <include/gsl/gsl_sf.h>
-
-
-double gammafn_(double * x) {
-  return tgamma(*x);
-
-}
-
-float fgammafn_(float * x) {
-  return tgammaf(*x);
- 
-}
-
-double igamma_(double * a, double * x) {
-  //return 0.01;
-/* Non-normalized Incomplete Gamma Function
- *
- * Gamma(a,x) := Integral[ t^(a-1) e^(-t), {t,x,Infinity} ]
- *
- * x >= 0.0
- *   Gamma(a, 0) := Gamma(a)
- *
- * exceptions: GSL_EDOM
- */ 
- return gsl_sf_gamma_inc(*a, *x);
- //return (ROOT::Math::inc_gamma_c(*a, *x))*(ROOT::Math::tgamma(*a) );
-}
diff --git a/Generators/GravADD_i/src/initGravADD.F b/Generators/GravADD_i/src/initGravADD.F
deleted file mode 100644
index ce4551f57b186c271db018b0e55b9d2bc8b6dd39..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/src/initGravADD.F
+++ /dev/null
@@ -1,285 +0,0 @@
-C*************************************************************************
-C INITGRAVADD is called by UPINIT from upinit_py.F in Pythia_i
-C This indirection allows for a
-C joboption configurable process. See example jobOptions in share.
-C   
-
-      SUBROUTINE INITGRAVADD
- 
-C     Initialization of USER process
-C     ------------------------------
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)    
-C      INTEGER PYK,PYCHGE,PYCOMP
-
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-C...To be used with CHARYBDIS
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM, GSONLY
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-
-C...KKMASS to be used for KK-mass maximum integration, and MSAT as Atwoods Ms, Mp/Ms=PFACTOR, 
-C...GRAVEV is a flag to see if it was a gravitationally mediated event
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-C...Parameters used during the run, to be printed in the data files, therefore needed by WRIPAR
-      DOUBLE PRECISION UBMUL,WTPA
-C...  For chosing clustering algorithm
-C      character CLALG*6
-      COMMON/RUNPAR/UBMUL,WTPA
-      SAVE /RUNPAR/,/MASSES/,/BLACKH/,/BHPARM/
-C...use CTEQ5L
-C      MSTP(51)=7
-
-
-C...By default we should have KK-QCD interference
-C      NOINT=0
-C...To improve statistics for small scales we can generate only grav and no QCD
-C     NOQCD=0
-
-C...  Default weight parameter
-C      WTPA=1.0D0
-C... The Upper integration Bound over KK-modes is UBMUL*MSAT
-      UBMUL=1.0D0
-C...  Set default extra condition on hardness of hardest jet
-C...  when looking for particles in rapidity region between jets 
-      KKMASS=-1.0D0
-
-C...  Measure the sum ET outside cones instead of Nch
-      ISUMET=0
-
-C...  If not zero, only look at gravitational scatterings from this region.
-      GRAVSEL=0
-
-C...  Number of random numbers to throw away for each event.
-      IRAND=1
-
-      CMEN = 7000d0
-      index=2
-      CALL readGravADDparamdbl(index,CMEN)
-
-
-C...Set CHARYBDIS parameters
-      CALL SETCHA(CMEN)
-      if(MS.le.0) MS=MPLNCK
-      
-C...Translation factor between our Mp and MsAtwood in hep-ph/9911231 (Atwood)
-C...Mp/MsAtwood=PFACTOR
-      PFACTOR=2.0D0**((5.0D0-TOTDIM)/(-2.0D0+TOTDIM))*
-     $        3.14159**((4.0D0-TOTDIM)/(-4.0D0+2.0D0*TOTDIM))*
-     $        Gammafn(dble(1/2.0D0*(-4.0D0+TOTDIM)))**
-     $     ((1.0D0/(2.0D0-TOTDIM)))
-
-
-C...Atwoods mass MSAT and the Upper integration Bound of KK-modes
-C...Changed default cutoff to MPLNCK
-      MSAT=MPLNCK/PFACTOR
-       if(KKMASS.le.0) KKMASS=MPLNCK*UBMUL
-
-
-      GSONLY= 0
-      index=6
-      CALL readGravADDparamint(index,GSONLY)
-
-
-      if (GSONLY.eq.0) then
-         CALL INITCHARYBDIS
-      endif
-
-      write(*,*) 'initGravADD params: ',CMEN,' ',MPLNCK,' ',MS  
-
-      RETURN
-
-
-      END Subroutine
-
-C*************************************************************
-C...SETCHA
-C...Routine to set charybdis parameters
-
-      SUBROUTINE SETCHA(CMEN)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C...Commonblocks.
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-C...To be used with CHARYBDIS
-       
-      DOUBLE PRECISION CMEN
-      INTEGER MAXPUP
-      PARAMETER(MAXPUP=100,PI=3.141593D0)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &                IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
-     &                XMAXUP(MAXPUP),LPRUP(MAXPUP)
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL,Gammafn
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM, PLDEF
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-C...KKMASS to be used for KK-mass maximum integration, and MSAT as Atwoods Ms, Mp/Ms=PFACTOR, 
-C...GRAVEV is a flag to see if it was a gravitationally mediated event
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-      DOUBLE PRECISION MEFF,MSPRAT
-c      CHARACTER*20 PDFIN
-      SAVE  /HEPRUP/
-      SAVE /MASSES/,/BLACKH/,/BHPARM/
-      
-
-C...Set default value for paremeters
-
-C...Set beam paramters
-C      write(*,*) 'CMEN: ',CMEN
-      EBMUP(1)  = CMEN/2.0D0
-      EBMUP(2)  = CMEN/2.0D0
-
-      IDBMUP(1)=2212
-      IDBMUP(2)=2212
-      IF ( CMEN.LT.5000.0D0 ) then
-         IDBMUP(1)=-2212
-         IDBMUP(2)=2212
-      endif
-
-c     call get_string (npara,param,value," pdlabel ",PDFIN,'cteq6l1')
-c     WRITE(LNHOUT,*) 'Trying LHAPDF/PDFlib for PDF ',PDFIN
-c      PDFIN='cteq6l1'
-c     call get_lhapdf(PDFIN,MPDF)
-c
-c      IF(MPDF.NE.-1)THEN
-c         PDFGUP(1)=MPDF/10000
-c         PDFSUP(1)=MOD(MPDF,10000)
-c         PDFGUP(2)=PDFGUP(1)
-c         PDFSUP(2)=PDFSUP(1)
-c      ELSE
-c         WRITE(*,*) 'Error: PDF ',PDFIN,' not found. Quitting.'
-c         STOP
-c      ENDIF
-c      MSTP(52)=2
-c      MSTP(51)=MPDF
-
-
-C...  The effective mass scale for gravitational interactions. If larger
-C...  than zero this will be used together with MSPRAT to calculate
-C...  MPLNCK and MS.
-      MEFF=-1.0D0
-      MSPRAT=2.0D0
-C...  Our cut-off scale (We want to change Ms after running 
-C...  SETCHA (such that MPLNCK is set) only if it was not set
-C..   while reading parmeters
-      MS=-1.0D0
-
-C...  IF MSBHCUT is set, MINMSS will also be influenced by MS
-      MSBHCUT=0
-
-C--MSSDEF=1 means M_GT, MSSDEF=2 means M_DL and MSSDEF=3 means M_D
-      MPLNCK=1000.0D0
-      MSSDEF=2
-C--Set number of dimensions (number of EXTRA dimensions is n=D-4)
-C--TOTDIM can be in the range 6-11
-      TOTDIM=6
-
-C--Set mass window for black holes produced
-c      MINMSS=5000.0D0
-C...MAXMASS is set in UPINIT since EBMUP(1)+EBMUP(2) are not defined here
-      MAXMSS=EBMUP(1)+EBMUP(2) 
-C--Use Giddings+Thomas momentum scale for calling pdfs?
-C--(See page 12 of hep-ph/0106219)
-      GTSCA=.TRUE.
-C--Set NBODY decay of BH remnant - NBODY can be in range 2-5.
-      NBODY=2
-C--Turn time variation of BH Hawking temperature in decay on or off
-      TIMVAR=.TRUE.
-C--Set which decay products are to be used:
-C--MSSDEC=1 gives no heavy particles
-C--MSSDEC=2 gives t, W and Z as well
-C--MSSDEC=3 gives t, W, Z and Higgs as well  
-      MSSDEC=3
-C--Turn grey-body factors on/off
-      GRYBDY=.TRUE.
-C--Turn kinematic cut-off of decay on (rather than M=MPLANCK cut-off)
-      KINCUT=.TRUE.
-      
-
-      TOTDIM = 10
-      index=1
-      CALL readGravADDparamint(index,TOTDIM)
-      
-      MEFF = 1000d0
-      index=4
-      CALL readGravADDparamdbl(index,MEFF)
-
-      MSPRAT = 1d0
-      index=3
-      CALL readGravADDparamdbl(index,MSPRAT)
-
-C... GravADD is internally working with Planck mass definition from hep-ph/0608210
-C... If the users sets Planck mass definition to PDG choice, then also Ms/Mp is PDG
-C... Convert Ms/Mp to original definition
-      NE=TOTDIM-4
-      PLDEF = 1
-      index=5
-      CALL readGravADDparamint(index,PLDEF)
-      if (PLDEF.eq.2) then
-        FAC = (2.0d0**((NE-3.0d0)/(NE+2.0d0)))
-     $        *(PI**((NE-1.0d0)/(NE+2.0d0)))
-        MSPRAT = MSPRAT*FAC
-      endif 
-      
-      MSBHCUT=1
-      FACTOR=1.0D0  
-
-     
-      if ( MEFF.GT.0.0D0 ) then
-        FAC=0.5D0*(((NE-2.0d0)*2.0D0**NE)*(PI**(NE/2.0d0-1.0d0))*
-     $       (MSPRAT**(2.0d0-NE)))**0.25d0
-        MPLNCK=MEFF/FAC
-        MS=MPLNCK*MSPRAT
-      endif
-      IF ( MS.LT.0.0D0 ) MS=MPLNCK*MSPRAT
-
-
-
-      write(*,*) 'in SETCHA: ',TOTDIM,' ',MEFF,' ',MSPRAT
-
-
-C... When MPLNCK and TOTDIM are known set the mimimal mass
-C...Number of extra dimensions
-       MINMSS=MPLNCK*2.0D0**((ne + 1.0D0)/(ne + 2.0D0))
-     &      *(1/(sqrt(3.14159))*
-     &      (8.0D0*Gammafn(dble((ne+3.0D0)/2.0D0))/(ne + 2.0D0))
-     &      **(1.0D0/(ne + 1.0D0)))**(-((ne + 1.0D0)/(ne + 2.0D0)))
-
-       IF ( FACTOR.LT.0.0D0 ) THEN
-         FACTOR=-FACTOR
-       ELSE
-         MINMSS=MAX(MPLNCK,
-     $        MINMSS/(SQRT(FACTOR)**((ne + 1.0D0)/(ne + 2.0D0))))
-       ENDIF
-
-       if ( MSBHCUT.EQ.1 ) THEN
-         MINMSS=MAX(MINMSS,(MPLNCK**(2+NE))*(MS**(-NE-1))*(2.0d0+NE)*
-     $                     (PI**((NE+1)/2.0D0))/
-     $                     (16.0d0*GAMMAFN(0.5d0*(3.0d0+NE))))
-       endif
-       MINMSS=MIN(MINMSS,MAXMSS)
-       GENPOW=1.0D0
-
-       RETURN
-       END
diff --git a/Generators/GravADD_i/src/useGravADD.F b/Generators/GravADD_i/src/useGravADD.F
deleted file mode 100644
index 9974f447b307fc76c82509e2e6bcf60309c0a23c..0000000000000000000000000000000000000000
--- a/Generators/GravADD_i/src/useGravADD.F
+++ /dev/null
@@ -1,2353 +0,0 @@
-#define PYTHIA
-
-C CDECK  ID>, UPINIT.
-C *CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-C *-- Author :    Chris Harris and Peter Richardson
-C----------------------------------------------------------------------
-      SUBROUTINE INITCHARYBDIS
-C----------------------------------------------------------------------
-C     Les Houches initialisation routine
-C----------------------------------------------------------------------
-      INCLUDE 'GravADD_i/charybdis1001.inc'
-C--Les Houches run common block
-      INTEGER MAXPUP
-      PARAMETER(MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &                IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
-     &                XMAXUP(MAXPUP),LPRUP(MAXPUP)
-
-C--event common block
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,
-     &              IDUP(MAXNUP),ISTUP(MAXNUP),MOTHUP(2,MAXNUP),
-     &              ICOLUP(2,MAXNUP),PUP(5,MAXNUP),VTIMUP(MAXNUP),
-     &              SPINUP(MAXNUP)
-      SAVE /HEPRUP/,/HEPEUP/
-C...Pythia switches 
-      DOUBLE PRECISION PARP,PARI
-      INTEGER MSTP,MSTI
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-    
-C--local variables
-      INTEGER NSEARCH,I
-      DOUBLE PRECISION WGTSUM,WGTSQ,SPNZRO,SPNHLF,SPNONE,PTOTAL
-      DOUBLE PRECISION PPROBS(6,3)
-      DATA PPROBS /1.0d0, 1.0d0, 1.0d0, 1.0d0, 1.0d0, 1.0d0,
-     &     0.773d0, 0.776d0, 0.761d0, 0.743d0, 0.726d0, 0.711d0,
-     &     0.688d0, 0.827d0, 0.909d0, 0.959d0, 0.990d0, 1.011d0/
-C--beam particles and energies (only proton=2212 and antiproton=-2212)
-c      IDBMUP(1) = 2212
-c      IDBMUP(2) = 2212
-c      EBMUP(1)  = 7000.0D0
-c      EBMUP(2)  = 7000.0D0
-c      EBMUP(1)  = 20000.0D0
-c      EBMUP(2)  = 20000.0D0
-
- 
-C--Set MPLNCK and define what is meant by it:
-C--MSSDEF=1 means M_GT, MSSDEF=2 means M_DL and MSSDEF=3 means M_D
-C      if( MPLNCK.eq.0.0D0)  MPLNCK=1000.0D0
-ccc      MPLNCK=5000.0D0
-C      if(MSSDEF.eq.0)  MSSDEF=2
-ccc      MSSDEF=2
-C--Set number of dimensions (number of EXTRA dimensions is n=D-4)
-C--TOTDIM can be in the range 6-11
-C      if(TOTDIM.eq.0)  TOTDIM=6 
-ccc      TOTDIM=6
-C--Use Giddings+Thomas momentum scale for calling pdfs?
-C--(See page 12 of hep-ph/0106219)
-ccc      GTSCA=.TRUE.
-C--Set mass window for black holes produced
-C      if(MINMSS.eq.0.0D0)  MINMSS=5000.0D0
-ccc      MINMSS=5000.0D0
-C...MAXMSS default value is set here since it depends on EBMUP(1)+EBMUP(2)
-      if(MAXMSS.eq.0.0D0)  MAXMSS=EBMUP(1)+EBMUP(2)
-ccc      MAXMSS=EBMUP(1)+EBMUP(2)
-C--Set NBODY decay of BH remnant - NBODY can be in range 2-5.
-C      if(NBODY.eq.0) NBODY=2
-ccc      NBODY=2
-C--Turn time variation of BH Hawking temperature in decay on or off
-ccc      TIMVAR=.TRUE.
-C--Set which decay products are to be used:
-C--MSSDEC=1 gives no heavy particles
-C--MSSDEC=2 gives t, W and Z as well
-C--MSSDEC=3 gives t, W, Z and Higgs as well  
-C      if(MSSDEC.eq.0) MSSDEC=3
-ccc      MSSDEC=3
-C--Turn grey-body factors on/off
-ccc      GRYBDY=.TRUE.
-C--Turn kinematic cut-off of decay on (rather than M=MPLANCK cut-off)
-ccc      KINCUT=.FALSE.
-C--print out option (0=no printout, 1 =errors only, 2=errors+info)
-      IPRINT = 1
-C--parameters for the initial maximum weight search
-      NSEARCH=10000
-C--pdf's for the beams (use the generator default)
-C--MUST BE THE SAME FOR BOTH BEAMS
-      PDFGUP(1) = -1
-      PDFGUP(2) = -1
-      PDFSUP(1) = -1
-      PDFSUP(2) = -1
-C--------------------------------------------------------------------
-C     END OF USER VARIABLES DON'T TOUCH ANYTHING BELOW HERE
-C--------------------------------------------------------------------
-C--probabilities for particles of different spin (arbitrary normalisation)
-      IF (GRYBDY) THEN
-         SPNZRO = PPROBS(TOTDIM-5,1)
-         SPNHLF = PPROBS(TOTDIM-5,2)
-         SPNONE = PPROBS(TOTDIM-5,3)
-      ELSE
-         SPNZRO = 1d0
-         SPNHLF = 0.750d0
-         SPNONE = 1d0
-      ENDIF
-C--calculation of probability of emission for different particle types
-C--only light SM particles
-      IF (MSSDEC.EQ.1) THEN
-         PTOTAL = (78.0d0*SPNHLF)+(18.0d0*SPNONE)
-         PQUARK = (60.0d0*SPNHLF)/PTOTAL
-         PLEPT  = (12.0d0*SPNHLF)/PTOTAL
-         PNEUT  = (6.0d0*SPNHLF)/PTOTAL
-         PGLUON = (16.0d0*SPNONE)/PTOTAL
-         PGAMMA = (2.0d0*SPNONE)/PTOTAL
-         PWBOSN = 0.0D0
-         PZBOSN = 0.0D0
-         PHIGGS = 0.0D0   
-C--light SM partcles + top W/Z      
-      ELSEIF (MSSDEC.EQ.2) THEN
-         PTOTAL = (3.0d0*SPNZRO)+(90.0d0*SPNHLF)+(24.0d0*SPNONE)
-         PQUARK = (72.0d0*SPNHLF)/PTOTAL
-         PLEPT  = (12.0d0*SPNHLF)/PTOTAL
-         PNEUT  = (6.0d0*SPNHLF)/PTOTAL
-         PGLUON = (16.0d0*SPNONE)/PTOTAL
-         PGAMMA = (2.0d0*SPNONE)/PTOTAL
-         PZBOSN = (SPNZRO+(2.0d0*SPNONE))/PTOTAL
-         PWBOSN = 2.0d0*PZBOSN
-         PHIGGS = 0.0D0 
-C--light SM particles +top W/Z and Higgs
-      ELSE
-         PTOTAL = (4.0d0*SPNZRO)+(90.0d0*SPNHLF)+(24.0d0*SPNONE)
-         PQUARK = (72.0d0*SPNHLF)/PTOTAL
-         PLEPT  = (12.0d0*SPNHLF)/PTOTAL
-         PNEUT  = (6.0d0*SPNHLF)/PTOTAL
-         PGLUON = (16.0d0*SPNONE)/PTOTAL
-         PGAMMA = (2.0d0*SPNONE)/PTOTAL
-         PZBOSN = (SPNZRO+(2.0d0*SPNONE))/PTOTAL
-         PWBOSN = 2.0d0*PZBOSN
-         PHIGGS = SPNZRO/PTOTAL
-      ENDIF
-C--what do do with the weights(here are generating weighted events)
-      IDWTUP = 1
-C--only one process
-      NPRUP  = 1
-C--communication code
-      LPRUP(1) = 1
-C--calculate the maximum weight
-      WGTSUM = 0.0D0
-      WGTSQ = 0.0D0
-      XMAXUP(1) = 0.0D0
-      DO I=1,NSEARCH
-         CALL CHEVNT(.FALSE.)
-         WGTSUM = WGTSUM+XWGTUP
-         WGTSQ  = WGTSQ+XWGTUP**2
-         XMAXUP(1) = MAX(XMAXUP(1),XWGTUP)
-      ENDDO
-      IF(MSTP(121).EQ.1) XMAXUP(1)=PARP(121)*XMAXUP(1)
-      WGTSUM = WGTSUM/DBLE(NSEARCH)
-      WGTSQ  = MAX(WGTSQ/DBLE(NSEARCH)-WGTSUM**2,0.0D0)
-      WGTSQ  = SQRT(WGTSQ/ DBLE(NSEARCH))
-C--cross section
-      XSECUP(1) = wgtsum
-C--error on the cross section
-      XERRUP(1) = wgtsq
-
-      END
-CDECK  ID>, UPEVNT.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Chris Harris and Peter Richardson
-C----------------------------------------------------------------------
-      SUBROUTINE USEGRAVADD
-C----------------------------------------------------------------------
-C     Les Houches event routine
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-C     write(*,*) 'in useGravADD'
-      CALL CHEVNT(.TRUE.)
-      END
-CDECK  ID>, CHDFIV.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Ian Knowles
-C-----------------------------------------------------------------------
-      SUBROUTINE CHDFIV(P0,P1,P2,P3,P4,P5,*)
-C-----------------------------------------------------------------------
-C     Generates 5-body decay 0->1+2+3+4+5 using pure phase space
-C     (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHRGEN,P0(5),P1(5),P2(5),P3(5),P4(5),P5(5),B,C,
-     & AA,BB,CC,DD,EE,FF,TT,S1,RS1,GG,S2,RS2,HH,S3,PP,QQ,RR,SS,P1CM,
-     & P2345(5),P2CM,P345(5),P3CM,P45(5),P4CM
-      DOUBLE PRECISION TWO
-      PARAMETER (TWO=2.D0)
-      EXTERNAL CHRGEN
-      B=P0(5)-P1(5)
-      C=P2(5)+P3(5)+P4(5)+P5(5)
-      IF (B.LT.C) RETURN 1
-      AA=(P0(5)+P1(5))**2
-      BB=B**2
-      CC=C**2
-      DD=(P3(5)+P4(5)+P5(5))**2
-      EE=(P4(5)+P5(5))**2
-      FF=(P4(5)-P5(5))**2
-      TT=(B-C)*P0(5)**11/729
-C Select squared masses S1, S2 and S3 of 2345, 345 and 45 subsystems
-  10  S1=BB+CHRGEN(1)*(CC-BB)
-      RS1=SQRT(S1)
-      GG=(RS1-P2(5))**2
-      S2=DD+CHRGEN(2)*(GG-DD)
-      RS2=SQRT(S2)
-      HH=(RS2-P3(5))**2
-      S3=EE+CHRGEN(3)*(HH-EE)
-      PP=(AA-S1)*(BB-S1)
-      QQ=((RS1+P2(5))**2-S2)*(GG-S2)/S1
-      RR=((RS2+P3(5))**2-S3)*(HH-S3)/S2
-      SS=(S3-EE)*(S3-FF)/S3
-      IF (PP*QQ*RR*SS*((GG-DD)*(HH-EE))**2.LT.TT*S1*S2*S3*CHRGEN(4)**2)
-     & GOTO 10
-C Do two body decays: 0-->1+2345, 2345-->2+345, 345-->3+45 and 45-->4+5
-      P1CM=SQRT(PP/4)/P0(5)
-      P2345(5)=RS1
-      P2CM=SQRT(QQ/4)
-      P345(5)=RS2
-      P3CM=SQRT(RR/4)
-      P45(5)=SQRT(S3)
-      P4CM=SQRT(SS/4)
-      CALL CHDTWO(P0   ,P1,P2345,P1CM,TWO,.TRUE.)
-      CALL CHDTWO(P2345,P2,P345 ,P2CM,TWO,.TRUE.)
-      CALL CHDTWO(P345 ,P3,P45  ,P3CM,TWO,.TRUE.)
-      CALL CHDTWO(P45  ,P4,P5   ,P4CM,TWO,.TRUE.)
-      END
-CDECK  ID>, CHDFOR.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Ian Knowles
-C-----------------------------------------------------------------------
-      SUBROUTINE CHDFOR(P0,P1,P2,P3,P4,*)
-C-----------------------------------------------------------------------
-C     Generates 4-body decay 0->1+2+3+4 using pure phase space
-C     (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHRGEN,P0(5),P1(5),P2(5),P3(5),P4(5),B,C,AA,BB,
-     & CC,DD,EE,TT,S1,RS1,FF,S2,PP,QQ,RR,P1CM,P234(5),P2CM,P34(5),P3CM
-      DOUBLE PRECISION TWO
-      PARAMETER (TWO=2.D0)
-      EXTERNAL CHRGEN
-      B=P0(5)-P1(5)
-      C=P2(5)+P3(5)+P4(5)
-      IF (B.LT.C) RETURN 1
-      AA=(P0(5)+P1(5))**2
-      BB=B**2
-      CC=C**2
-      DD=(P3(5)+P4(5))**2
-      EE=(P3(5)-P4(5))**2
-      TT=(B-C)*P0(5)**7/16
-C Select squared masses S1 and S2 of 234 and 34 subsystems
-  10  S1=BB+CHRGEN(1)*(CC-BB)
-      RS1=SQRT(S1)
-      FF=(RS1-P2(5))**2
-      S2=DD+CHRGEN(2)*(FF-DD)
-      PP=(AA-S1)*(BB-S1)
-      QQ=((RS1+P2(5))**2-S2)*(FF-S2)/S1
-      RR=(S2-DD)*(S2-EE)/S2
-      IF (PP*QQ*RR*(FF-DD)**2.LT.TT*S1*S2*CHRGEN(3)**2) GOTO 10
-C Do two body decays: 0-->1+234, 234-->2+34 and 34-->3+4
-      P1CM=SQRT(PP/4)/P0(5)
-      P234(5)=RS1
-      P2CM=SQRT(QQ/4)
-      P34(5)=SQRT(S2)
-      P3CM=SQRT(RR/4)
-      CALL CHDTWO(P0  ,P1,P234,P1CM,TWO,.TRUE.)
-      CALL CHDTWO(P234,P2,P34 ,P2CM,TWO,.TRUE.)
-      CALL CHDTWO(P34 ,P3,P4  ,P3CM,TWO,.TRUE.)
-      END
-CDECK  ID>, CHDTHR.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHDTHR(P0,P1,P2,P3,*)
-C-----------------------------------------------------------------------
-C     GENERATES THREE-BODY DECAY 0->1+2+3 DISTRIBUTED
-C     ACCORDING TO PHASE SPACE * WEIGHT
-C     (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHRGEN,CHRUNI,A,B,C,D,AA,BB,CC,DD,EE,FF,PP,QQ,WW,
-     & RR,PCM1,PC23,P0(5),P1(5),P2(5),P3(5),P23(5),TWO,ONE
-      EXTERNAL CHRGEN,CHRUNI
-      PARAMETER (ONE=1.0D0,TWO=2.D0)
-      A=P0(5)+P1(5)
-      B=P0(5)-P1(5)
-      C=P2(5)+P3(5)
-      IF (B.LT.C) RETURN 1
-      D=ABS(P2(5)-P3(5))
-      AA=A*A
-      BB=B*B
-      CC=C*C
-      DD=D*D
-      EE=(B-C)*(A-D)
-      A=0.5D0*(AA+BB)
-      B=0.5D0*(CC+DD)
-      C=4.0D0/(A-B)**2
-C
-C  CHOOSE MASS OF SUBSYSTEM 23 WITH PRESCRIBED DISTRIBUTION
-C
-   10 FF=CHRUNI(0,BB,CC)
-      PP=(AA-FF)*(BB-FF)
-      QQ=(CC-FF)*(DD-FF)
-      WW=ONE
-      RR=EE*FF*CHRGEN(0)
-      IF (PP*QQ*WW.LT.RR*RR) GOTO 10
-C
-C  FF IS MASS SQUARED OF SUBSYSTEM 23.
-C
-C  DO 2-BODY DECAYS 0->1+23, 23->2+3
-C
-      P23(5)=SQRT(FF)
-      PCM1=SQRT(PP)*0.5D0/P0(5)
-      PC23=SQRT(QQ)*0.5D0/P23(5)
-      CALL CHDTWO(P0,P1,P23,PCM1,TWO,.TRUE.)
-      CALL CHDTWO(P23,P2,P3,PC23,TWO,.TRUE.)
-      END
-CDECK  ID>, CHDTWO.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber & Mike Seymour
-C-----------------------------------------------------------------------
-      SUBROUTINE CHDTWO(P0,P1,P2,PCM,COSTH,ZAXIS)
-C-----------------------------------------------------------------------
-C     GENERATES DECAY 0 -> 1+2
-C
-C     PCM IS CM MOMENTUM
-C
-C     COSTH = COS THETA IN P0 REST FRAME (>1 FOR ISOTROPIC)
-C     IF ZAXIS=.TRUE., COS THETA IS MEASURED FROM THE ZAXIS
-C     IF .FALSE., IT IS MEASURED FROM P0'S DIRECTION 
-C     (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHRUNI,ONE,ZERO,PCM,COSTH,C,S,P0(5),P1(5),P2(5),
-     & PP(5),R(9)
-      LOGICAL ZAXIS
-      EXTERNAL CHRUNI
-      PARAMETER (ZERO=0.D0, ONE=1.D0)
-C--CHOOSE C.M. ANGLES
-      C=COSTH
-      IF (C.GT.ONE) C=CHRUNI(0,-ONE,ONE)
-      S=SQRT(ONE-C*C)
-      CALL CHRAZM(PCM*S,PP(1),PP(2))
-C--PP IS MOMENTUM OF 2 IN C.M.
-      PP(3)=-(PCM*C)
-      PP(4)=SQRT(P2(5)**2+PCM**2)
-      PP(5)=P2(5)
-C--ROTATE IF NECESSARY
-      IF (COSTH.LE.ONE.AND..NOT.ZAXIS) THEN
-        CALL CHUROT(P0,ONE,ZERO,R)
-        CALL CHUROB(R,PP,PP)
-      ENDIF
-C--BOOST FROM C.M. TO LAB FRAME
-      CALL CHULOB(P0,PP,P2)
-      CALL CHVDIF(4,P0,P2,P1)
-      END
-CDECK  ID>, CHEVNT.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Chris Harris
-C----------------------------------------------------------------------
-      SUBROUTINE CHEVNT(GENEVT)
-C----------------------------------------------------------------------
-C     Black Hole Production and Decay
-C----------------------------------------------------------------------
-      INCLUDE 'GravADD_i/charybdis1001.inc'
-C--Les Houches run common block
-      INTEGER MAXPUP
-      PARAMETER(MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &                IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
-     &                XMAXUP(MAXPUP),LPRUP(MAXPUP)
-C--event common block
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,
-     &              IDUP(MAXNUP),ISTUP(MAXNUP),MOTHUP(2,MAXNUP),
-     &              ICOLUP(2,MAXNUP),PUP(5,MAXNUP),VTIMUP(MAXNUP),
-     &              SPINUP(MAXNUP)
-      SAVE /HEPRUP/,/HEPEUP/
-C...Pythia switches
-      DOUBLE PRECISION PARP,PARI
-      INTEGER MSTP,MSTI
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-     
-C--Local Variables
-      DOUBLE PRECISION ECMS,ONE,TWO,PIFAC,THREE,ZERO,
-     &     CHRGEN,RPOW,A0,A1,EMJ,FACT,QSQ,HCS,prob,
-     &     FACTR,RCS,BHPOW,DISF1,DISF2,OMEGAD,DL2GT,
-     &     RHORSQ,PLPOW,MPFACT,PA(5),PB(5),PC(5),PCM,CHUPCM,PCMF(5),
-     &     XXMIN,XLMIN,EMSCA,XX(2),DISF(13,2),GEV2PB,CHFMAS
-      INTEGER STAT,IBARYN,IQRK(MAXPUP),IGLU(MAXPUP),IQBR(MAXPUP),MTRY,
-     &     NQRK,NGLU,NQBR,JQRK,JGLU,JQBR,J,ISTART,CHST,iline,FSTAT(5),
-     &     IP,IQ,PT,I,BHCHRG,IDN(2),NTRY,NHTRY,SAVCHR,SAVBRN,ID(5),
-     &     MHTRY,LTRY,LHTRY,CHFCHG,SPIN,FSPIN(5)
-      LOGICAL GENEVT,CHRLOG,FIRST
-      EXTERNAL CHFMAS,CHRGEN,CHUPCM,CHRLOG,CHFCHG
-      PARAMETER(ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,ZERO=0.0D0,NHTRY=200)
-      PARAMETER(MHTRY=20,LHTRY=200,GEV2PB=389379.D3)
-      SAVE HCS,BHPOW,PLPOW,RPOW,A0,A1,FACT,MPFACT
-      DATA FIRST/.TRUE./
-      PIFAC = ACOS(-ONE)
-      IF(FIRST) THEN
-C--Convert MPLNCK to M_GT if above value is M_DL
-         IF (MSSDEF.EQ.2) THEN
-            DL2GT=(TWO**(TOTDIM-6)*PIFAC**(TOTDIM-5))**(1/(TOTDIM-TWO))
-            INTMPL=DL2GT*MPLNCK
-C--Convert MPLNCK to M_GT if above value is M_D
-         ELSEIF (MSSDEF.EQ.3) THEN
-            INTMPL=MPLNCK*TWO**(1/(TOTDIM-TWO))
-         ELSE
-            INTMPL=MPLNCK
-         ENDIF
-C--Calculate other parameters
-         PLPOW=TWO/(TOTDIM-THREE)
-         BHPOW=PLPOW-GENPOW
-         RPOW=1/BHPOW
-         A0=MINMSS**BHPOW
-         A1=(MAXMSS**BHPOW-A0)
-         IF (TOTDIM.EQ.11) THEN
-            OMEGAD=(PIFAC**5)/12
-         ELSEIF (TOTDIM.EQ.10) THEN
-            OMEGAD=(32*PIFAC**4)/105
-         ELSEIF (TOTDIM.EQ.9) THEN
-            OMEGAD=(PIFAC**4)/3
-         ELSEIF (TOTDIM.EQ.8) THEN
-            OMEGAD=(16*PIFAC**3)/15
-         ELSEIF (TOTDIM.EQ.7) THEN
-            OMEGAD=PIFAC**3
-         ELSEIF(TOTDIM.EQ.6) THEN
-            OMEGAD=(8*PIFAC**2)/3
-         ELSEIF(TOTDIM.EQ.5) THEN
-            OMEGAD=2*PIFAC**2
-         ENDIF
-         MPFACT=INTMPL**(TOTDIM-2)
-         RHFACT=(4*(2*PIFAC)**(TOTDIM-4))/((TOTDIM-2)*OMEGAD*MPFACT)
-         FIRST = .FALSE.
-      ENDIF      
-      IF ( MINMSS.GE.MAXMSS ) THEN
-        XWGTUP=0.0D0
-        RETURN
-      ENDIF
-C--Select a mass for the produced black hole
-      ECMS = 2.0D0*SQRT(EBMUP(1)*EBMUP(2))
-      EMSCA=(A0+A1*CHRGEN(1))**RPOW
-      BHMASS=EMSCA
-      QSQ=EMSCA**2
-      EMJ=EMSCA**(1-BHPOW)/BHPOW*A1
-C--Calculate (r_h)**2 and initial T_H
-      RHORSQ=(RHFACT*EMSCA)**PLPOW
-C--Select initial momentum fractions
-      XXMIN=QSQ/ECMS**2
-      XLMIN=LOG(XXMIN)
-      FACT=-(GEV2PB*PIFAC*RHORSQ*EMJ*XLMIN*TWO/EMSCA)
-C--Change momentum scale for calling pdfs (see comment above)
-      IF (GTSCA) EMSCA=1/SQRT(RHORSQ*FACTOR)
-      SCALUP = EMSCA
-      CALL CHPDF(XXMIN,XLMIN,EMSCA,XX,DISF)
-      HCS=ZERO
-      DISF1=ZERO
-      DISF2=ZERO
-      DO 30 IP=1,13
-      DISF1=DISF1+DISF(IP,1)
- 30   DISF2=DISF2+DISF(IP,2)
-      FACTR=FACT*DISF1*DISF2
-      HCS=FACTR
-      XWGTUP = HCS
-      IF ( MSTP(142).EQ.1 ) THEN
-C        PARP(200)=(BHMASS**4)/(5000.0**4)
-C        FACT=FACT*PARP(200)
-C        PARP(200)=1.0D0
-        if (DISF1*DISF2.ne.0d0) PARP(200)=0.05D0/(DISF1*DISF2)
-C       write(*,*) 'in charybdis, parp(200): ', PARP(200)
-        XWGTUP=XWGTUP*PARP(200)
-      ENDIF
-      IF(.NOT.GENEVT) RETURN
-      RCS=HCS*CHRGEN(0)
-      HCS = 0.0D0
-      DO 20 IP=1,13
-      DO 10 IQ=1,13
-      FACTR=FACT*DISF(IP,1)*DISF(IQ,2)
-      HCS=HCS+FACTR
-      IF (HCS.GT.RCS) GOTO 99
- 10   CONTINUE
- 20   CONTINUE
-C--Generate event
- 99   IDN(1)=IP
-      IDN(2)=IQ
-C--put the incoming particles in the Les Houches common block
-      NUP = 2
-      DO I=1,2
-         IF(IDN(I).GT.6.AND.IDN(I).LE.12) THEN
-            IDN(I) = -MOD(IDN(I)-1,6)-1
-         ELSEIF(IDN(I).EQ.13) THEN
-            IDN(I) = 21
-         ENDIF
-         IDUP(I) = IDN(I)
-         PUP(1,I) = 0.0D0
-         PUP(2,I) = 0.0D0
-         PUP(3,I) = XX(I)*EBMUP(I)
-         PUP(4,I) = XX(I)*EBMUP(I)
-         ISTUP(I) = -1
-      ENDDO
-      PUP(3,2) = -PUP(3,2)
-      CALL CHVSUM(4,PUP(1,1),PUP(1,2),PCMF)
-      CALL CHUMAS(PCMF)
-C--Calculate BH charge (actually 3*charge)
-      BHCHRG=CHFCHG(IDN(1))+CHFCHG(IDN(2))
-C--Black Hole decay
-      MTRY = 0
-      CHST = BHCHRG
- 35   MTRY = MTRY+1
-      BHCHRG = CHST
-      NUP = 2
-      CALL CHVEQU(5,PCMF,PA)
- 40   NUP = NUP+1
-C--Check that BH mass > MPLNCK if not using KINCUT      
-      IF ((.NOT.KINCUT).AND.(PA(5).LT.MPLNCK)) GOTO 55
-C--Set BHMASS to correct value (necessary in time varying case)
-      IF (TIMVAR) BHMASS=PA(5)
-C--Select the decay product
-      LTRY=0
- 45   IF (MSSDEC.EQ.1) THEN
-         CALL CHHBH1(PT,STAT,SPIN,BHCHRG)
-      ELSEIF (MSSDEC.EQ.2) THEN
-         CALL CHHBH2(PT,STAT,SPIN,BHCHRG)
-      ELSE
-         CALL CHHBH3(PT,STAT,SPIN,BHCHRG)
-      ENDIF
-C--Obtain energy of emitted parton
-      CALL CHUBHS(PC(4),STAT,SPIN)
-      PC(5)=CHFMAS(PT)
-C--Check energy > mass for selected parton
-      IF (PC(4).LT.PC(5)) THEN
-         BHCHRG=BHCHRG+CHFCHG(PT)
-         IF(IPRINT.EQ.2) WRITE (*,*) 'Not enough energy'
-         GOTO 45
-      ENDIF
-C--Check that emission is kinematically allowed
-      IF (PC(4).GT.(PA(5)**2+PC(5)**2)/(TWO*PA(5))) THEN
-         IF (KINCUT.OR.LTRY.GT.LHTRY) THEN 
-            GOTO 50
-         ELSE
-            LTRY=LTRY+1
-            BHCHRG=BHCHRG+CHFCHG(PT)
-            GOTO 45
-         ENDIF
-      ENDIF
-C--Use 2-body phase space decay 
-      PB(5)=SQRT(PA(5)**2+PC(5)**2-TWO*PA(5)*PC(4))
-C--Calculate centre of mass momentum for decay
-      PCM=SQRT(PC(4)**2-PC(5)**2)
-C--PA is BH 5-momentum before, PB after decay
-      CALL CHDTWO(PA,PB,PC,PCM,TWO,.TRUE.)
-C--Add emitted particle to event record
-      CALL CHVEQU(5,PC,PUP(1,NUP))
-      IDUP(NUP)=PT
-      ISTUP(NUP) = 1
-      MOTHUP(1,NUP) = 1
-      MOTHUP(2,NUP) = 2
-C--Change BH 5-momentum back to PA
-      CALL CHVEQU(5,PB,PA)
-      GOTO 40
- 50   BHCHRG=BHCHRG+CHFCHG(PT)
- 55   NUP = NUP-1
-C--Calculate the baryon number violation
-C--Find the baryon number of the inital state
-      IBARYN = 0
-      DO I=1,2
-        IF(ABS(IDUP(I)).LE.6) IBARYN = IBARYN-SIGN(1,IDUP(I))
-      ENDDO
-C--and the final state
-      DO I=3,NUP
-        IF(ABS(IDUP(I)).LE.6) IBARYN = IBARYN+SIGN(1,IDUP(I))
-      ENDDO
-C--Try to balance this out
-      NTRY = 0
-      SAVCHR = BHCHRG
-      SAVBRN = IBARYN
- 60   NTRY = NTRY+1
-      PCM = PA(5)
-      DO I=1,NBODY
-         IF (MSSDEC.EQ.1) THEN
-            CALL CHHBH1(ID(I),FSTAT(I),FSPIN(I),BHCHRG)
-         ELSEIF (MSSDEC.EQ.2) THEN
-            CALL CHHBH2(ID(I),FSTAT(I),FSPIN(I),BHCHRG)
-         ELSE
-            CALL CHHBH3(ID(I),FSTAT(I),FSPIN(I),BHCHRG)
-         ENDIF
-         IF(ABS(ID(I)).LE.6) THEN
-            IBARYN = IBARYN+SIGN(1,ID(I))
-         ENDIF
-         PCM = PCM-CHFMAS(ID(I))
-      ENDDO
-      IF(((IBARYN.NE.0.OR.BHCHRG.NE.0).OR.
-     &    PCM.LT.0.0D0).AND.NTRY.LE.NHTRY) THEN
-         BHCHRG = SAVCHR
-         IBARYN = SAVBRN
-         GOTO 60
-      ENDIF
-C--Go back if needed
-      IF(NTRY.GT.NHTRY) THEN
-         IF(MTRY.LE.MHTRY) THEN
-            IF(IPRINT.EQ.2) THEN
-               WRITE (*,*) 'Attempt',MTRY,' failed.'
-               WRITE (*,*) 'Starting whole decay again'
-            ENDIF
-            GOTO 35
-         ELSE
-            IF(IPRINT.GT.1) 
-     &           PRINT *,'WARNING TOO MANY TRIES NEEDED'
-            XWGTUP = 0.0D0
-            RETURN
-         ENDIF
-      ENDIF
-C--Perform the NBODY decay of the remnant
-      DO I=1,NBODY
-         PUP(5,NUP+I) = CHFMAS(ID(I))
-         ISTUP(NUP+I) = 1
-         IDUP(NUP+I) = ID(I)
-         MOTHUP(1,NUP+I) = 1
-         MOTHUP(2,NUP+I) = 2
-      ENDDO
-C--check if decay is allowed
-      IF (NBODY.EQ.2) THEN
-         PCM = CHUPCM(PA(5),PUP(5,NUP+1),PUP(5,NUP+2))
-         CALL CHDTWO(PA,PUP(1,NUP+1),PUP(1,NUP+2),PCM,TWO,.TRUE.)
-      ELSEIF (NBODY.EQ.3) THEN
-         CALL CHDTHR(PA,PUP(1,NUP+1),PUP(1,NUP+2),PUP(1,NUP+3),*100)
-      ELSEIF (NBODY.EQ.4) THEN
-         CALL CHDFOR(PA,PUP(1,NUP+1),PUP(1,NUP+2),PUP(1,NUP+3),
-     &                  PUP(1,NUP+4),*100)
-      ELSEIF (NBODY.EQ.5) THEN
-         CALL CHDFIV(PA,PUP(1,NUP+1),PUP(1,NUP+2),PUP(1,NUP+3),
-     &                  PUP(1,NUP+4),PUP(1,NUP+5),*100)
-      ENDIF
-      GOTO 110
- 100  IF(IPRINT.GE.1) 
-     &     PRINT *,'FAILED TO PERFORM ',NBODY,' DECAY OF REMNENT'
-      GOTO 35
- 110  NUP = NUP+NBODY
-C--Now sort out the colour connections
-C--First the initial state
-      NQRK = 0
-      NGLU = 0
-      NQBR = 0
-      DO I=1,2
-        IF(IDUP(I).GT.0.AND.IDUP(I).LE.6) THEN
-           NQBR = NQBR+1
-           IQBR(NQBR) = I
-        ELSEIF(IDUP(I).LT.0.AND.IDUP(I).GE.-6) THEN
-           NQRK = NQRK+1
-           IQRK(NQRK) = I
-        ELSEIF(IDUP(I).EQ.21) THEN
-           NGLU = NGLU+1
-           IGLU(NGLU) = I
-        ENDIF
-      ENDDO
-C--Then the final state
-      DO I=3,NUP
-        IF(IDUP(I).GT.0.AND.IDUP(I).LE.6) THEN
-           NQRK = NQRK+1
-           IQRK(NQRK) = I
-        ELSEIF(IDUP(I).LT.0.AND.IDUP(I).GE.-6) THEN
-           NQBR = NQBR+1
-           IQBR(NQBR) = I
-        ELSEIF(IDUP(I).EQ.21) THEN
-           NGLU = NGLU+1
-           IGLU(NGLU) = I
-        ENDIF
-      ENDDO
-C--zero the colour connections
-      DO I=1,NUP
-         DO J=1,2
-            ICOLUP(J,I) = 0
-         ENDDO
-      ENDDO
-C--Now make the colour connections
-      JGLU = 0
-      JQBR = 0
-      JQRK = 0
-      IF(NQRK.GT.0) THEN 
-         I = IQRK(1)
-         JQRK = 1
-         J = 1
-      ELSEIF(NGLU.GT.0) THEN
-         I = IGLU(1)
-         JGLU = 1
-         J = 2
-      ELSE
-         GOTO 200
-      ENDIF
-      ISTART = I
-      ILINE  = 500
-C--Find an antiquark or gluon to pair this with
- 150   IF(J.EQ.1.OR.J.EQ.2) THEN
-         IF(JQBR.EQ.NQBR.and.JGLU.EQ.NGLU) THEN
-            GOTO 250
-         ELSE
-            PROB = DBLE(NQBR-JQBR)/DBLE(NQBR+NGLU-JQBR-JGLU)
-C--Pair with an antiquark
-            IF(CHRLOG(PROB)) THEN
-               IF(JQBR.NE.NQBR) THEN
-                 IF(NGLU.NE.JGLU.and.NQBR-JQBR.EQ.1) GOTO 150
-                  JQBR = JQBR+1
-                  IF(I.LE.2) THEN
-                     ICOLUP(2,I         ) = ILINE
-                  ELSE
-                     ICOLUP(1,I         ) = ILINE
-                  ENDIF
-                  IF(IQBR(JQBR).LE.2) THEN
-                     ICOLUP(1,IQBR(JQBR)) = ILINE
-                  ELSE
-                     ICOLUP(2,IQBR(JQBR)) = ILINE
-                  ENDIF
-                  ILINE = ILINE+1
-                  I = IQBR(JQBR)
-                  J = 3
-                  GOTO 150
-               ELSE
-                  GOTO 250
-               ENDIF
-C--Pair with a gluon
-            ELSE
-               IF(JGLU.NE.NGLU) THEN
-                  JGLU = JGLU+1
-                  IF(I.LE.2) THEN
-                     ICOLUP(2,I         ) = ILINE 
-                  ELSE
-                     ICOLUP(1,I         ) = ILINE 
-                  ENDIF
-                  IF(IGLU(JGLU).LE.2) THEN
-                     ICOLUP(1,IGLU(JGLU)) = ILINE
-                  ELSE
-                     ICOLUP(2,IGLU(JGLU)) = ILINE
-                  ENDIF
-                  ILINE = ILINE+1
-                  I = IGLU(JGLU)
-                  J = 2
-                  GOTO 150
-               ELSE
-                  GOTO 250
-               ENDIF
-            ENDIF
-         ENDIF
-C--Find a quark to pair this with
-      ELSEIF(J.EQ.3) THEN
-         IF(JQRK.NE.NQRK) THEN
-            JQRK = JQRK+1
-            IF(I.LE.2) THEN
-               ICOLUP(2,I         ) = ILINE
-            ELSE
-               ICOLUP(1,I         ) = ILINE
-            ENDIF
-            IF(IQRK(JQRK).LE.2) THEN
-               ICOLUP(1,IQRK(JQRK)) = ILINE
-            ELSE
-               ICOLUP(2,IQRK(JQRK)) = ILINE
-            ENDIF
-            ILINE = ILINE+1
-            I = IQRK(JQRK)
-            J = 1
-            GOTO 150
-         ELSE
-            GOTO 250
-         ENDIF
-      ENDIF
- 250  IF(I.LE.2) THEN
-         ICOLUP(2,I)      = ILINE
-      ELSE
-         ICOLUP(1,I)      = ILINE
-      ENDIF
-      IF(ISTART.LE.2) THEN
-         ICOLUP(1,ISTART) = ILINE
-      ELSE
-         ICOLUP(2,ISTART) = ILINE
-      ENDIF
-C--zero the flavours
- 200  DO I=1,NUP
-         IF(IDUP(I).GT.0.AND.IDUP(I).LE.6) THEN
-            ICOLUP(2,I) = 0
-         ELSEIF(IDUP(I).GE.-6.AND.IDUP(I).lt.0) THEN
-            ICOLUP(1,I) = 0
-         ELSEIF(IDUP(I).NE.21) THEN
-            ICOLUP(1,I) = 0
-            ICOLUP(2,I) = 0
-         ENDIF
-      ENDDO
-      END
-CDECK  ID>, CHFCHG.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Peter Richardson
-C----------------------------------------------------------------------
-      FUNCTION CHFCHG(ID)
-C----------------------------------------------------------------------
-C     Function to return the charge of a SM particle input is PDG code
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-      INTEGER CHFCHG,ID
-      IF(ABS(ID).LE.6) THEN
-         IF(MOD(ID,2).EQ.0) THEN
-            CHFCHG = 2
-         ELSE
-            CHFCHG = -1
-         ENDIF
-      ELSEIF(ABS(ID).GE.11.AND.ABS(ID).LE.16) THEN
-         IF(MOD(ID,2).EQ.0) THEN
-            CHFCHG = 0
-         ELSE
-            CHFCHG = -3
-         ENDIF
-      ELSEIF((ID.GE.21.AND.ID.LE.23).OR.ID.EQ.25) THEN
-         CHFCHG = 0
-      ELSEIF(ABS(ID).EQ.24) THEN
-         CHFCHG = 3
-      ELSE
-         print *,'CHFCHG WARNING UNKNOWN PARTICLE',ID
-         STOP
-      ENDIF
-      IF(ID.LT.0) CHFCHG = -CHFCHG
-      END
-CDECK  ID>, CHFMAS.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Peter Richardson
-C----------------------------------------------------------------------
-      FUNCTION CHFMAS(ID)
-C----------------------------------------------------------------------
-C     Function to return the mass of a SM particle input is PDG code
-C     This is generator dependent
-C----------------------------------------------------------------------
-C--get the masses from the HERWIG common block
-#if !defined(PYTHIA)
-      INCLUDE 'GravADD_i/HERWIG64.INC'
-      INTEGER ID
-      DOUBLE PRECISION CHFMAS
-      IF(ABS(ID).LE.6) THEN
-         CHFMAS = RMASS(ABS(ID))
-      ELSEIF(ABS(ID).GE.11.AND.ABS(ID).LE.16) THEN
-         CHFMAS = RMASS(110+ABS(ID))
-      ELSEIF(ID.EQ.21) THEN
-         CHFMAS = RMASS(13)
-      ELSEIF(ID.EQ.22) THEN
-         CHFMAS = 0.0D0
-      ELSEIF(ID.EQ.23) THEN
-         CHFMAS = RMASS(200)
-      ELSEIF(ABS(ID).EQ.24) THEN
-         CHFMAS = RMASS(198)
-      ELSEIF(ID.EQ.25) THEN
-         CHFMAS = RMASS(201)
-      ELSE
-         PRINT *,'CHFMAS WARNING UNKNOWN PARTICLE',ID
-         STOP
-      ENDIF
-#endif
-C--get the masses from the PYTHIA common block
-#if defined(PYTHIA)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      INTEGER PYCOMP,ID
-      DOUBLE PRECISION CHFMAS
-      EXTERNAL PYCOMP
-      CHFMAS  = PMAS(PYCOMP(ID),1)
-#endif
-      END
-CDECK  ID>, CHHBH1.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :   Chris Harris
-C---------------------------------------------------------------------
-      SUBROUTINE CHHBH1(PT,STAT,SPIN,BHCHRG)
-C---------------------------------------------------------------------
-C     Subroutine to select the type of the next particle
-C---------------------------------------------------------------------
-      INCLUDE 'GravADD_i/charybdis1001.inc'
-      INTEGER PT,STAT,SPIN,BHCHRG,CHFCHG,I
-      DOUBLE PRECISION PTYPE,CHRGEN,EPS
-      LOGICAL FIRST
-      DATA FIRST/.TRUE./
-      EXTERNAL CHRGEN,CHFCHG
-      PARAMETER(EPS=1.0D-6)
-C--initialisation on first call
-      IF(FIRST) THEN
-         PFERM (1) = PQUARK
-         PFERM (2) = PFERM(1)+PLEPT
-         PFERM (3) = PFERM(2)+PNEUT
-         PBOSON(1) = PFERM(3)+PGLUON
-         PBOSON(2) = PBOSON(1)+PGAMMA
-C--check the sum
-         IF(ABS(PBOSON(2)-1.0D0).GT.EPS) THEN
-            IF(IPRINT.GE.1) THEN
-               print *,'WARNING PROBABILITIES DO NOT SUM TO ONE'
-               print *,'RENORMALISING'
-            ENDIF
-            DO I=1,3
-               PFERM(I) = PFERM(I)/PBOSON(2)
-            ENDDO
-            PBOSON(1) = PBOSON(1)/PBOSON(2)
-            PQUARK = PQUARK/PBOSON(2)
-            PLEPT  = PLEPT /PBOSON(2)
-            PNEUT  = PNEUT /PBOSON(2)
-            PGLUON = PGLUON/PBOSON(2)
-            PGAMMA = PGAMMA/PBOSON(2)
-            PBOSON(2) = 1.0D0
-         ENDIF
-         FIRST = .FALSE.
-      ENDIF
-C--Assume decay product is a fermion
-      STAT=-1
-      SPIN=1
-C--Choose decay product
-      PTYPE=CHRGEN(2)
-C--Change STAT to 1 and SPIN to 2 if we have a boson instead
-      IF (PTYPE.GE.PFERM(3)) THEN 
-         STAT=1
-         SPIN=2
-      ENDIF
-C--Choose particle type
-      IF (PTYPE.LT.PFERM(1)) THEN
-C--Quarks
-         PT=1+INT(5*PTYPE/PFERM(1))
-C--Ensure BH charge remains close to 0, and antiparticles half time
-         IF (((CHFCHG(PT)*BHCHRG).LT.0).OR.
-     &       ((BHCHRG.EQ.0).AND.(CHRGEN(4).LT.0.5D0))) THEN 
-            PT=-PT
-         ENDIF
-      ELSEIF (PTYPE.LT.PFERM(2)) THEN
-C--Leptons
-         PT=11+2*INT(3*(PTYPE-PFERM(1))/PLEPT)
-C--Ensure BH charge remains close to 0, and antiparticles half time
-         IF (((CHFCHG(PT)*BHCHRG).LT.0).OR.
-     &       ((BHCHRG.EQ.0).AND.(CHRGEN(4).LT.0.5D0))) THEN 
-            PT=-PT
-         ENDIF
-      ELSEIF (PTYPE.LT.PFERM(3)) THEN
-C--Neutrinos
-         PT=12+2*INT(3*(PTYPE-PFERM(2))/PNEUT)
-         IF(CHRGEN(4).LT.0.5D0) PT = -PT
-      ELSEIF (PTYPE.LT.PBOSON(1)) THEN
-C--Gluons
-         PT=21
-      ELSE
-C--Photons
-         PT=22
-      ENDIF
-C--Calculate new charge of BH
-      BHCHRG=BHCHRG-CHFCHG(PT)
-      END
-CDECK  ID>, CHHBH2.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :   Chris Harris
-C---------------------------------------------------------------------
-      SUBROUTINE CHHBH2(PT,STAT,SPIN,BHCHRG)
-C---------------------------------------------------------------------
-C     Subroutine to select the type of the next particle
-C---------------------------------------------------------------------
-      INCLUDE 'GravADD_i/charybdis1001.inc'
-      INTEGER PT,STAT,SPIN,BHCHRG,CHFCHG,I
-      DOUBLE PRECISION PTYPE,CHRGEN,EPS
-      LOGICAL FIRST
-      DATA FIRST/.TRUE./
-      EXTERNAL CHRGEN,CHFCHG
-      PARAMETER(EPS=1.0D-6)
-C--initialisation on first call
-      IF(FIRST) THEN
-         PFERM (1) = PQUARK
-         PFERM (2) = PFERM(1)+PLEPT
-         PFERM (3) = PFERM(2)+PNEUT
-         PBOSON(1) = PFERM(3)+PGLUON
-         PBOSON(2) = PBOSON(1)+PWBOSN
-         PBOSON(3) = PBOSON(2)+PZBOSN
-         PBOSON(4) = PBOSON(3)+PGAMMA
-C--check the sum
-         IF(ABS(PBOSON(4)-1.0D0).GT.EPS) THEN
-            IF(IPRINT.GE.1) THEN
-               print *,'WARNING PROBABILITIES DO NOT SUM TO ONE'
-               print *,'RENORMALISING'
-            ENDIF
-            DO I=1,3
-               PFERM(I) = PFERM(I)/PBOSON(4)
-               PBOSON(I) = PBOSON(I)/PBOSON(4)
-            ENDDO
-            PQUARK = PQUARK/PBOSON(4)
-            PLEPT  = PLEPT /PBOSON(4)
-            PNEUT  = PNEUT /PBOSON(4)
-            PGLUON = PGLUON/PBOSON(4)
-            PGAMMA = PGAMMA/PBOSON(4)
-            PZBOSN = PZBOSN/PBOSON(4)
-            PWBOSN = PWBOSN/PBOSON(4)
-            PBOSON(4) = 1.0D0
-         ENDIF
-         FIRST = .FALSE.
-      ENDIF
-C--Assume decay product is a fermion
-      STAT=-1
-      SPIN=1
-C--Choose decay product
-      PTYPE=CHRGEN(2)
-C--Change STAT to 1 and SPIN to 2 if we have a boson instead except for one
-C--degree of freedom of massive gauge bosons
-      IF (PTYPE.GE.PFERM(3)) THEN 
-         STAT=1
-         SPIN=2
-         IF ((PTYPE.GE.PBOSON(1)).AND.(PTYPE.LT.PBOSON(3))) THEN
-            IF (3*CHRGEN(3).LT.1.0d0) SPIN=0
-         ENDIF
-      ENDIF
-C--Choose particle type
-      IF (PTYPE.LT.PFERM(1)) THEN
-C--Quarks
-         PT=1+INT(6*PTYPE/PFERM(1))
-C--Ensure BH charge remains close to 0, and antiparticles half time
-         IF (((CHFCHG(PT)*BHCHRG).LT.0).OR.
-     &       ((BHCHRG.EQ.0).AND.(CHRGEN(4).LT.0.5D0))) THEN 
-            PT=-PT
-         ENDIF
-      ELSEIF (PTYPE.LT.PFERM(2)) THEN
-C--Leptons
-         PT=11+2*INT(3*(PTYPE-PFERM(1))/PLEPT)
-C--Ensure BH charge remains close to 0, and antiparticles half time
-         IF (((CHFCHG(PT)*BHCHRG).LT.0).OR.
-     &       ((BHCHRG.EQ.0).AND.(CHRGEN(4).LT.0.5D0))) THEN 
-            PT=-PT
-         ENDIF
-      ELSEIF (PTYPE.LT.PFERM(3)) THEN
-C--Neutrinos
-         PT=12+2*INT(3*(PTYPE-PFERM(2))/PNEUT)
-         IF(CHRGEN(4).LT.0.5D0) PT = -PT
-      ELSEIF (PTYPE.LT.PBOSON(1)) THEN
-C--Gluons
-         PT=21
-      ELSEIF (PTYPE.LT.PBOSON(2)) THEN
-C--W+/W-
-         PT=24
-C--Ensure BH charge remains close to 0, and antiparticles half time
-         IF (((CHFCHG(PT)*BHCHRG).LT.0).OR.
-     &       ((BHCHRG.EQ.0).AND.(CHRGEN(4).LT.0.5D0))) THEN 
-            PT=-PT
-         ENDIF
-      ELSEIF (PTYPE.LT.PBOSON(3)) THEN
-C--Z0
-         PT=23
-      ELSE
-C--Photons
-         PT=22
-      ENDIF
-C--Calculate new charge of BH
-      BHCHRG=BHCHRG-CHFCHG(PT)
-      END
-CDECK  ID>, CHHBH3.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :   Chris Harris
-C---------------------------------------------------------------------
-      SUBROUTINE CHHBH3(PT,STAT,SPIN,BHCHRG)
-C---------------------------------------------------------------------
-C     Subroutine to select the type of the next particle
-C---------------------------------------------------------------------
-      INCLUDE 'GravADD_i/charybdis1001.inc'
-      INTEGER PT,STAT,SPIN,BHCHRG,CHFCHG,I
-      DOUBLE PRECISION PTYPE,CHRGEN,EPS
-      LOGICAL FIRST
-      DATA FIRST/.TRUE./
-      EXTERNAL CHRGEN,CHFCHG
-      PARAMETER(EPS=1.0D-6)
-C--initialisation on first call
-      IF(FIRST) THEN
-         PFERM (1) = PQUARK
-         PFERM (2) = PFERM(1)+PLEPT
-         PFERM (3) = PFERM(2)+PNEUT
-         PBOSON(1) = PFERM(3)+PGLUON
-         PBOSON(2) = PBOSON(1)+PWBOSN
-         PBOSON(3) = PBOSON(2)+PZBOSN
-         PBOSON(4) = PBOSON(3)+PHIGGS
-         PBOSON(5) = PBOSON(4)+PGAMMA
-C--check the sum
-         IF(ABS(PBOSON(5)-1.0D0).GT.EPS) THEN
-            IF(IPRINT.GE.1) THEN
-               print *,'WARNING PROBABILITIES DO NOT SUM TO ONE'
-               print *,'RENORMALISING'
-            ENDIF
-            DO I=1,3
-               PFERM(I) = PFERM(I)/PBOSON(5)
-               PBOSON(I) = PBOSON(I)/PBOSON(5)
-            ENDDO
-            PBOSON(4) = PBOSON(4)/PBOSON(5)
-            PQUARK = PQUARK/PBOSON(5)
-            PLEPT  = PLEPT /PBOSON(5)
-            PNEUT  = PNEUT /PBOSON(5)
-            PGLUON = PGLUON/PBOSON(5)
-            PGAMMA = PGAMMA/PBOSON(5)
-            PZBOSN = PZBOSN/PBOSON(5)
-            PWBOSN = PWBOSN/PBOSON(5)
-            PHIGGS = PHIGGS/PBOSON(5)
-            PBOSON(5) = 1.0D0
-         ENDIF
-         FIRST = .FALSE.
-      ENDIF
-C--Assume decay product is a fermion
-      STAT=-1
-      SPIN=1
-C--Choose decay product
-      PTYPE=CHRGEN(2)
-C--Change STAT to 1 and SPIN to 2 if we have a boson instead except for one
-C--degree of freedom of massive gauge bosons
-      IF (PTYPE.GE.PFERM(3)) THEN
-         STAT=1
-         SPIN=2
-         IF ((PTYPE.GE.PBOSON(1)).AND.(PTYPE.LT.PBOSON(3))) THEN
-            IF (3*CHRGEN(3).LT.1.0d0) SPIN=0
-         ENDIF
-      ENDIF
-C--Choose particle type
-      IF (PTYPE.LT.PFERM(1)) THEN
-C--Quarks
-         PT=1+INT(6*PTYPE/PFERM(1))
-C--Ensure BH charge remains close to 0, and antiparticles half time
-         IF (((CHFCHG(PT)*BHCHRG).LT.0).OR.
-     &       ((BHCHRG.EQ.0).AND.(CHRGEN(4).LT.0.5D0))) THEN 
-            PT=-PT
-         ENDIF
-      ELSEIF (PTYPE.LT.PFERM(2)) THEN
-C--Leptons
-         PT=11+2*INT(3*(PTYPE-PFERM(1))/PLEPT)
-C--Ensure BH charge remains close to 0, and antiparticles half time
-         IF (((CHFCHG(PT)*BHCHRG).LT.0).OR.
-     &       ((BHCHRG.EQ.0).AND.(CHRGEN(4).LT.0.5D0))) THEN 
-            PT=-PT
-         ENDIF
-      ELSEIF (PTYPE.LT.PFERM(3)) THEN
-C--Neutrinos
-         PT=12+2*INT(3*(PTYPE-PFERM(2))/PNEUT)
-         IF(CHRGEN(4).LT.0.5D0) PT = -PT
-      ELSEIF (PTYPE.LT.PBOSON(1)) THEN
-C--Gluons
-         PT=21
-      ELSEIF (PTYPE.LT.PBOSON(2)) THEN
-C--W+/W-
-         PT=24
-C--Ensure BH charge remains close to 0, and antiparticles half time
-         IF (((CHFCHG(PT)*BHCHRG).LT.0).OR.
-     &       ((BHCHRG.EQ.0).AND.(CHRGEN(4).LT.0.5D0))) THEN 
-            PT=-PT
-         ENDIF
-      ELSEIF (PTYPE.LT.PBOSON(3)) THEN
-C--Z0
-         PT=23
-      ELSEIF (PTYPE.LT.PBOSON(4)) THEN
-C--Higgs
-         PT=25
-         SPIN=0
-      ELSE
-C--Photons
-         PT=22
-      ENDIF
-C--Calculate new charge of BH
-      BHCHRG=BHCHRG-CHFCHG(PT)
-      END
-CDECK  ID>, CHPDF.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Peter Richardson
-C----------------------------------------------------------------------
-      SUBROUTINE CHPDF(XXMINB,XLMINB,EMSCAB,XXB,DISFB)
-C----------------------------------------------------------------------
-C     Subroutine to calculate the pdfs
-C     generator dependent
-C----------------------------------------------------------------------
-#if !defined(PYTHIA)
-      INCLUDE 'GravADD_i/HERWIG64.INC'
-      DOUBLE PRECISION EMSCAB,XXB(2),DISFB(13,2),XXMINB,XLMINB,
-     &     CHRUNI,UPV,DNV,USEA,DSEA,STR,CHM,BTM,TOP,GLU
-      INTEGER IDB(2),I,J
-      CHARACTER *8 DUMMY
-      DOUBLE PRECISION VALUE(20)
-      CHARACTER*20 PARM(20)
-      LOGICAL FIRST
-      EXTERNAL CHRUNI
-      DATA VALUE/20*0D0/,PARM/20*' '/
-      DATA FIRST/.TRUE./
-C--Les Houches run common block
-      INTEGER MAXPUP
-      PARAMETER(MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &                IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
-     &                XMAXUP(MAXPUP),LPRUP(MAXPUP)
-C--use generator internal pdfs
-      IF(PDFGUP(1).LT.0) THEN
-C---SET UP INITIAL STATE
-         CALL HWUIDT(1,IDBMUP(1),IDB(1),DUMMY)
-         PART1=DUMMY
-         CALL HWUIDT(1,IDBMUP(2),IDB(2),DUMMY)
-         PART2=DUMMY
-         IPART1 = IDB(1)
-         IPART2 = IDB(2)
-         NHEP=1
-         ISTHEP(NHEP)=101
-         PHEP(1,NHEP)=0.0D0
-         PHEP(2,NHEP)=0.0D0
-         PHEP(3,NHEP)=EBMUP(1)
-         PHEP(4,NHEP)=EBMUP(1)
-         PHEP(5,NHEP)=RMASS(IDB(1))
-         JMOHEP(1,NHEP)=0
-         JMOHEP(2,NHEP)=0
-         JDAHEP(1,NHEP)=0
-         JDAHEP(2,NHEP)=0
-         IDHW(NHEP)=IPART1
-         IDHEP(NHEP)=IDPDG(IDB(1))
-         NHEP=NHEP+1
-         ISTHEP(NHEP)=102
-         PHEP(1,NHEP)=0.0D0
-         PHEP(2,NHEP)=0.0D0
-         PHEP(3,NHEP)=-EBMUP(2)
-         PHEP(4,NHEP)=EBMUP(2)
-         PHEP(5,NHEP)=RMASS(IDB(2))
-         JMOHEP(1,NHEP)=0
-         JMOHEP(2,NHEP)=0
-         JDAHEP(1,NHEP)=0
-         JDAHEP(2,NHEP)=0
-         IDHW(NHEP)=IPART2
-         IDHEP(NHEP)=IDPDG(IPART2)
-C---NEXT ENTRY IS OVERALL CM FRAME
-         NHEP=NHEP+1
-         IDHW(NHEP)=14
-         IDHEP(NHEP)=0
-         ISTHEP(NHEP)=103
-         JMOHEP(1,NHEP)=NHEP-2
-         JMOHEP(2,NHEP)=NHEP-1
-         JDAHEP(1,NHEP)=0
-         JDAHEP(2,NHEP)=0
-         CALL CHVSUM(4,PHEP(1,NHEP-1),PHEP(1,NHEP-2),PHEP(1,NHEP))
-         CALL CHUMAS(PHEP(1,NHEP))
-         XLMIN = XLMINB
-         EMSCA = EMSCAB
-         XXMIN = XXMINB
-         CALL HWSGEN(.TRUE.)
-         DO I=1,2
-            XXB(I) = XX(I)
-            DO J=1,13
-               DISFB(J,I) = DISF(J,I)
-            ENDDO
-         ENDDO
-      ELSE
-C--initialisation
-         IF(FIRST) THEN
-            IF(PDFGUP(1).NE.PDFGUP(2).OR.PDFSUP(1).NE.PDFSUP(2)) THEN
-               print *,'MUST HAVE SAME PDF FOR BOTH BEAMS'
-               STOP
-            ENDIF
-            PARM(1)='NPTYPE'
-            VALUE(1)=1
-            PARM(2)='NGROUP'
-            VALUE(2)=PDFGUP(1)
-            PARM(3)='NSET'
-            VALUE(3)=PDFSUP(1)
-            CALL PDFSET(PARM,VALUE)
-            FIRST = .FALSE.
-         ENDIF
-         XXB(1)=EXP(CHRUNI(0,0.0D0,XLMINB))
-         XXB(2)=XXMINB/XXB(1)
-         DO I=1,2
-            CALL STRUCTM(XXB(I),EMSCAB,
-     &           UPV,DNV,USEA,DSEA,STR,CHM,BTM,TOP,GLU)
-            DISFB( 3,I) = STR
-            DISFB( 4,I) = CHM
-            DISFB( 5,I) = BTM
-            DISFB( 6,I) = TOP
-            DISFB( 9,I) = STR
-            DISFB(10,I) = CHM
-            DISFB(11,I) = BTM
-            DISFB(12,I) = TOP
-            DISFB(13,I) = GLU
-            IF(IDBMUP(I).GT.0) THEN
-               DISFB(1,I) = DNV+DSEA
-               DISFB(2,I) = UPV+USEA
-               DISFB(7,I) = DSEA
-               DISFB(8,I) = USEA
-            ELSE
-               DISFB(1,I) = DSEA
-               DISFB(2,I) = USEA
-               DISFB(7,I) = DNV+DSEA
-               DISFB(8,I) = UPV+USEA
-            ENDIF
-         ENDDO
-      ENDIF
-#endif
-#if defined(PYTHIA)
-      IMPLICIT NONE
-C--Les Houches run common block
-      INTEGER MAXPUP
-      PARAMETER(MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON /HEPRUP/ IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &                IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),
-     &                XMAXUP(MAXPUP),LPRUP(MAXPUP)
-      SAVE /HEPRUP/
-C      DOUBLE PRECISION EMSCAB,XXB(2),DISFB(13,2),I,J,XXMINB,
-C     &     XLMINB,CHRUNI,XPQ(-25:25),Q2,UPV,DNV,USEA,DSEA,STR,CHM,BTM,
-C     &     TOP,GLU
-      DOUBLE PRECISION EMSCAB,XXB(2),DISFB(13,2),XXMINB,
-     &     XLMINB,CHRUNI,XPQ(-25:25),Q2,UPV,DNV,USEA,DSEA,STR,CHM,BTM,
-     &     TOP,GLU
-      INTEGER I
-      EXTERNAL CHRUNI
-      DOUBLE PRECISION VALUE(20)
-      CHARACTER*20 PARM(20)
-      LOGICAL FIRST
-      DATA VALUE/20*0D0/,PARM/20*' '/
-      DATA FIRST/.TRUE./
-      IF(PDFGUP(1).LT.0) THEN
-      XXB(1)=EXP(CHRUNI(0,0.0D0,XLMINB))
-      XXB(2)=XXMINB/XXB(1)
-      Q2 = EMSCAB**2
-      CALL PYPDFU(IDBMUP(1),XXB(1),Q2,XPQ)
-      DO I=1,6
-         DISFB(I,1) = XPQ(I)
-         DISFB(I+6,1) = XPQ(-I)
-      ENDDO
-      DISFB(13,1) = XPQ(21)
-      CALL PYPDFU(IDBMUP(2),XXB(2),Q2,XPQ)
-      DO I=1,6
-         DISFB(I,2) = XPQ(I)
-         DISFB(I+6,2) = XPQ(-I)
-      ENDDO
-      DISFB(13,2) = XPQ(21)
-      ELSE
-C--initialisation
-         IF(FIRST) THEN
-            IF(PDFGUP(1).NE.PDFGUP(2).OR.PDFSUP(1).NE.PDFSUP(2)) THEN
-               print *,'MUST HAVE SAME PDF FOR BOTH BEAMS'
-               STOP
-            ENDIF
-            PARM(1)='NPTYPE'
-            VALUE(1)=1
-            PARM(2)='NGROUP'
-            VALUE(2)=PDFGUP(1)
-            PARM(3)='NSET'
-            VALUE(3)=PDFSUP(1)
-            CALL PDFSET(PARM,VALUE)
-            FIRST = .FALSE.
-         ENDIF
-         XXB(1)=EXP(CHRUNI(0,0.0D0,XLMINB))
-         XXB(2)=XXMINB/XXB(1)
-         DO I=1,2
-            CALL STRUCTM(XXB(I),EMSCAB,
-     &           UPV,DNV,USEA,DSEA,STR,CHM,BTM,TOP,GLU)
-            DISFB( 3,I) = STR
-            DISFB( 4,I) = CHM
-            DISFB( 5,I) = BTM
-            DISFB( 6,I) = TOP
-            DISFB( 9,I) = STR
-            DISFB(10,I) = CHM
-            DISFB(11,I) = BTM
-            DISFB(12,I) = TOP
-            DISFB(13,I) = GLU
-            IF(IDBMUP(I).GT.0) THEN
-               DISFB(1,I) = DNV+DSEA
-               DISFB(2,I) = UPV+USEA
-               DISFB(7,I) = DSEA
-               DISFB(8,I) = USEA
-            ELSE
-               DISFB(1,I) = DSEA
-               DISFB(2,I) = USEA
-               DISFB(7,I) = DNV+DSEA
-               DISFB(8,I) = UPV+USEA
-            ENDIF
-         ENDDO
-      ENDIF
-#endif
-      END
-CDECK  ID>, CHRAZM.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHRAZM(PT,PX,PY)
-C-----------------------------------------------------------------------
-C     RANDOMLY ROTATED 2-VECTOR (PX,PY) OF LENGTH PT
-C     (taken from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHRGEN,PT,PX,PY,C,S,CS,QT,ONE,ZERO
-      PARAMETER(ONE=1.0D0, ZERO=0.0D0)
-      EXTERNAL CHRGEN
-   10 C=2.0D0*CHRGEN(1)-1.0D0
-      S=2.0D0*CHRGEN(2)-1.0D0
-      CS=C*C+S*S
-      IF (CS.GT.ONE .OR. CS.EQ.ZERO) GOTO 10
-      QT=PT/CS
-      PX=(C*C-S*S)*QT
-      PY=2.0D0*C*S*QT
-      END
-CDECK  ID>, CHRGEN.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Peter Richardson
-C-----------------------------------------------------------------------
-      FUNCTION CHRGEN(I)
-C-----------------------------------------------------------------------
-C     random number generator (just calls HERWIG or PYTHIA one)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHRGEN
-      INTEGER I
-C--use HERWIG random number generator
-#if !defined(PYTHIA)
-      DOUBLE PRECISION HWRGEN
-      EXTERNAL HWRGEN
-      CHRGEN = HWRGEN(I)
-#endif
-C--use the PYTHIA one
-#if defined(PYTHIA)
-      DOUBLE PRECISION PYR
-      EXTERNAL PYR
-      CHRGEN =  PYR(I)
-#endif
-      END
-CDECK  ID>, CHRLOG.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      FUNCTION CHRLOG(A)
-C-----------------------------------------------------------------------
-C     Returns .TRUE. with probability A
-C     (taken from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHRGEN,A,R
-      LOGICAL CHRLOG
-      EXTERNAL CHRGEN
-      CHRLOG=.TRUE.
-      R=CHRGEN(0)
-      IF(R.GT.A) CHRLOG=.FALSE.
-      END
-CDECK  ID>, CHRUNI.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      FUNCTION CHRUNI(I,A,B)
-C-----------------------------------------------------------------------
-C     Uniform random random number in range [A,B]
-C     (taken from HERWIG)
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION CHRUNI,CHRGEN,A,B,RN
-      INTEGER I
-      EXTERNAL CHRGEN
-      RN=CHRGEN(I)
-      CHRUNI=A+RN*(B-A)
-      END
-CDECK  ID>, CHUBHS.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :   Chris Harris
-C---------------------------------------------------------------------
-      SUBROUTINE CHUBHS(ENERGY,STAT,SPIN)
-C---------------------------------------------------------------------
-C     Calculates energy spectrum for a black hole of given radius
-C---------------------------------------------------------------------
-      INCLUDE 'GravADD_i/charybdis1001.inc'
-      DOUBLE PRECISION ENERGY,SPCMAX,SPCVAL,RADHOR,HWKTMP,ETRAT
-      DOUBLE PRECISION MXARRY(6,3),CHRGEN,CHRUNI,CHUTAB
-      DOUBLE PRECISION FLUX(200,6,3),ETVALS(200,6)
-      INTEGER NARRAY(6),STAT,SPIN,POINTS,I
-      EXTERNAL CHRGEN,CHRUNI,CHUTAB
-      DOUBLE PRECISION ONE,TWO,THREE,ZERO,PIFAC,HALF
-      PARAMETER(ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,ZERO=0.0D0,HALF=0.5D0)
-      DATA NARRAY /151,121,131,141,119,151/
-      DATA MXARRY /0.021d0,0.032d0,0.045d0,0.061d0,0.081d0,0.11d0,
-     &     0.017d0,0.026d0,0.036d0,0.045d0,0.056d0,0.068d0,
-     &     0.017d0,0.033d0,0.053d0,0.076d0,0.11d0,0.13d0/
-      DATA (ETVALS(I,1),I=1,151) /0.00837758, 0.0837758, 0.167552, 
-     &0.251327, 0.335103, 0.418879, 0.502655, 0.586431, 0.670206, 
-     &0.753982, 0.837758, 0.921534,  1.00531,  1.08909,  1.17286,  
-     &1.25664,  1.34041,  1.42419,  1.50796,  1.59174,  1.67552,  
-     &1.75929,  1.84307,  1.92684,  2.01062,   2.0944,  2.17817,  
-     &2.26195,  2.34572,   2.4295,  2.51327,  2.59705,  2.68083,   
-     &2.7646,  2.84838,  2.93215,  3.01593,   3.0997,  3.18348,  
-     &3.26726,  3.35103,  3.43481,  3.51858,  3.60236,  3.68614,  
-     &3.76991,  3.85369,  3.93746,  4.02124,  4.10501,  4.18879,  
-     &4.27257,  4.35634,  4.44012,  4.52389,  4.60767,  4.69145,  
-     &4.77522,    4.859,  4.94277,  5.02655,  5.11032,   5.1941,  
-     &5.27788,  5.36165,  5.44543,   5.5292,  5.61298,  5.69675,  
-     &5.78053,  5.86431,  5.94808,  6.03186,  6.11563,  6.19941,  
-     &6.28319,  6.36696,  6.45074,  6.53451,  6.61829,  6.70206,  
-     &6.78584,  6.86962,  6.95339,  7.03717,  7.12094,  7.20472,  
-     &7.28849,  7.37227,  7.45605,  7.53982,   7.6236,  7.70737,  
-     &7.79115,  7.87493,   7.9587,  8.04248,  8.12625,  8.21003,   
-     &8.2938,  8.37758,  8.46136,  8.54513,  8.62891,  8.71268,  
-     &8.79646,  8.88024,  8.96401,  9.04779,  9.13156,  9.21534,  
-     &9.29911,  9.38289,  9.46667,  9.55044,  9.63422,  9.71799,  
-     &9.80177,  9.88554,  9.96932,  10.0531,  10.1369,  10.2206,  
-     &10.3044,  10.3882,   10.472,  10.5558,  10.6395,  10.7233,  
-     &10.8071,  10.8909,  10.9746,  11.0584,  11.1422,   11.226,  
-     &11.3097,  11.3935,  11.4773,  11.5611,  11.6448,  11.7286,  
-     &11.8124,  11.8962,  11.9799,  12.0637,  12.1475,  12.2313,   
-     &12.315,  12.3988,  12.4826,  12.5664/
-      DATA (FLUX(I,1,1),I=1,151) /0.000302416, 0.00291566, 0.00558027, 
-     &0.00800197, 0.0101859, 0.0121371, 0.0138614, 0.015365, 0.0166554, 
-     &0.0177408, 0.0186311, 0.0193371, 0.0198712, 0.0202464, 0.0204769, 
-     &0.0205776, 0.0205633, 0.0204495, 0.0202512, 0.0199826, 0.0196575, 
-     &0.0192887, 0.0188876, 0.0184644, 0.018028, 0.017586, 0.0171441, 
-     &0.0167072, 0.0162784, 0.0158598, 0.0154524, 0.0150562, 0.0146703, 
-     &0.0142933, 0.0139233, 0.0135581, 0.0131954, 0.0128329, 0.0124687, 
-     &0.012101, 0.0117287, 0.0113511, 0.0109679, 0.0105796, 0.010187, 
-     &0.0097913, 0.00939432, 0.00899787, 0.00860399, 0.00821478, 
-     &0.00783223, 0.00745829, 0.00709462, 0.00674274, 0.00640377, 
-     &0.00607866, 0.005768, 0.00547213, 0.00519109, 0.00492474, 
-     &0.00467268, 0.00443436, 0.0042091, 0.0039961, 0.00379453, 
-     &0.0036035, 0.00342213, 0.00324959, 0.00308509, 0.00292792, 
-     &0.00277747, 0.00263322, 0.00249476, 0.00236175, 0.00223397, 
-     &0.00211127, 0.00199352, 0.0018807, 0.00177276, 0.00166969, 
-     &0.0015715, 0.00147816, 0.00138963, 0.00130586, 0.00122677, 
-     &0.00115224, 0.00108214, 0.00101631, 0.000954559, 0.000896698, 
-     &0.000842512, 0.000791779, 0.000744269, 0.000699762, 0.000658029, 
-     &0.000618861, 0.000582052, 0.000547413, 0.000514771, 0.000483972, 
-     &0.000454876, 0.000427365, 0.000401333, 0.000376696, 0.000353375, 
-     &0.000332, 0.000310443, 0.00029073, 0.000272125, 0.000254591, 
-     &0.000238088, 0.000222578, 0.000208022, 0.000194382, 0.000181617, 
-     &0.000169684, 0.0001588, 0.000148148, 0.000138454, 0.0001295,
-     &0.000121, 0.000113152, 0.000105834, 9.90067e-05, 9.26315e-05, 
-     &8.66729e-05, 8.10985e-05, 7.5878e-05, 7.0984e-05, 6.63922e-05, 
-     &6.20809e-05, 5.80306e-05, 5.42246e-05, 5.06479e-05, 4.72874e-05, 
-     &4.41314e-05, 4.11692e-05, 3.83912e-05, 3.57884e-05, 3.33521e-05, 
-     &3.10742e-05, 2.89466e-05, 2.69615e-05, 2.51111e-05, 2.33879e-05, 
-     &2.17842e-05, 2.02926e-05, 1.8906e-05, 1.76171e-05, 1.64192e-05,
-     &1.52e-05/
-      DATA (FLUX(I,1,2),I=1,151) /9.9924e-07, 9.62357e-05, 0.000370872, 
-     &0.000803897, 0.00137345, 0.0020564, 0.00283305, 0.00368963, 
-     &0.00461454, 0.00559229, 0.00660209, 0.00762302, 0.00864035, 
-     &0.00964574, 0.0106307, 0.0115808, 0.0124765, 0.0133006, 0.014044, 
-     &0.0147037, 0.0152769, 0.0157563, 0.0161325, 0.0164003, 0.0165624, 
-     &0.0166267, 0.0166009, 0.0164899, 0.0162981, 0.0160326, 0.0157045, 
-     &0.0153266, 0.0149102, 0.0144638, 0.0139948, 0.0135109, 0.0130204, 
-     &0.0125304, 0.0120465, 0.0115724, 0.0111114, 0.0106658, 0.0102376, 
-     &0.00982739, 0.00943497, 0.00905983, 0.00870158, 0.00835955, 
-     &0.0080324, 0.00771795, 0.00741412, 0.00711948, 0.00683327, 
-     &0.00655479, 0.00628292, 0.0060163, 0.00575402, 0.00549595, 
-     &0.00524262, 0.00499461, 0.00475223, 0.00451558, 0.00428494, 
-     &0.00406101, 0.00384461, 0.00363646, 0.00343697, 0.00324628, 
-     &0.00306453, 0.00289183, 0.00272826, 0.00257377, 0.00242813, 
-     &0.00229105, 0.00216213, 0.00204095, 0.00192704, 0.00181987, 
-     &0.00171899, 0.00162396, 0.00153434, 0.00144968, 0.0013695, 
-     &0.00129338, 0.00122102, 0.0011522, 0.00108673, 0.0010244, 
-     &0.000964981, 0.000908321, 0.00085433, 0.000802968, 0.000754197, 
-     &0.000707961, 0.000664175, 0.000622759, 0.000583662, 0.000546835, 
-     &0.000512222, 0.00047975, 0.000449325, 0.000420846, 0.00039421, 
-     &0.000369318, 0.000346067, 0.000324354, 0.000304076, 0.000285131, 
-     &0.000267413, 0.000250822, 0.000235264, 0.000220659, 0.000206942, 
-     &0.000194046, 0.000181911, 0.000170475, 0.00015969, 0.000149516, 
-     &0.000139925, 0.00013089, 0.000122383, 0.000114375, 0.000106842, 
-     &9.97618e-05, 9.31189e-05, 8.68953e-05, 8.10729e-05, 7.56304e-05, 
-     &7.05476e-05, 6.5805e-05, 6.13842e-05, 5.72669e-05, 5.3435e-05, 
-     &4.98696e-05, 4.65523e-05, 4.34649e-05, 4.05893e-05, 3.79096e-05, 
-     &3.54108e-05, 3.30793e-05, 3.09023e-05, 2.88673e-05, 2.69624e-05, 
-     &2.51775e-05, 2.35042e-05, 2.19355e-05, 2.04652e-05, 1.90868e-05, 
-     &1.77945e-05, 1.6583e-05, 1.54479e-05/
-      DATA (FLUX(I,1,3),I=1,151) /2.36467e-09, 2.27485e-06, 1.74831e-05, 
-     &5.67478e-05, 0.000129498, 0.00024372, 0.000406154, 0.000622444, 
-     &0.000897231, 0.00123422, 0.00163621, 0.00210503, 0.00264154, 
-     &0.00324549, 0.00391542, 0.00464852, 0.00544043, 0.00628508, 
-     &0.00717462, 0.00809913, 0.00904674, 0.0100036, 0.010954, 
-     &0.0118809, 0.0127664, 0.0135921, 0.0143404, 0.014995, 0.015542, 
-     &0.0159706, 0.0162738, 0.0164486, 0.0164966, 0.0164228, 0.016236, 
-     &0.0159478, 0.0155716, 0.015122, 0.0146141, 0.0140622, 0.0134802, 
-     &0.0128807, 0.0122745, 0.011671, 0.011078, 0.0105017, 0.00994673, 
-     &0.00941661, 0.00891352, 0.00843877, 0.00799277, 0.00757527, 
-     &0.00718537, 0.00682182, 0.00648292, 0.00616677, 0.00587134, 
-     &0.00559445, 0.00533398, 0.00508784, 0.0048541, 0.00463095, 
-     &0.00441687, 0.00421054, 0.00401094, 0.00381727, 0.00362905, 
-     &0.00344597, 0.00326794, 0.003095, 0.00292736, 0.00276523, 
-     &0.0026089, 0.00245866, 0.00231475, 0.0021774, 0.00204674, 
-     &0.00192284, 0.00180574, 0.00169536, 0.00159159, 0.00149424, 
-     &0.0014031, 0.00131786, 0.00123824, 0.00116391, 0.00109451, 
-     &0.00102969, 0.000969093, 0.000912375, 0.000859198, 0.000809247, 
-     &0.000762232, 0.00071789, 0.000675986, 0.000636318, 0.000598712, 
-     &0.000563024, 0.000529139, 0.000496956, 0.000466402, 0.000437415, 
-     &0.000409939, 0.000383934, 0.000359358, 0.000336172, 0.000314336, 
-     &0.00029381, 0.000274549, 0.000256505, 0.000239628, 0.000223864, 
-     &0.000209157, 0.000195449, 0.00018268, 0.000170793, 0.000159724, 
-     &0.000149417, 0.000139815, 0.000130862, 0.000122505, 0.000114698, 
-     &0.000107393, 0.000100551, 9.41333e-05, 8.81074e-05, 8.24435e-05, 
-     &7.7117e-05, 7.21049e-05, 6.73879e-05, 6.29497e-05, 5.87753e-05, 
-     &5.48516e-05, 5.11669e-05, 4.77097e-05, 4.44701e-05, 4.14379e-05, 
-     &3.86033e-05, 3.59566e-05, 3.34882e-05, 3.11885e-05, 2.9048e-05, 
-     &2.70572e-05, 2.52068e-05, 2.34873e-05, 2.189e-05, 2.0406e-05, 
-     &1.90271e-05, 1.7745e-05, 1.65523e-05, 1.54419e-05/      
-      DATA (ETVALS(I,2),I=1,121) /0.00628319, 0.0628319, 0.125664, 
-     &0.188496, 0.251327, 0.314159, 0.376991, 0.439823, 0.502655, 
-     &0.565487, 0.628319,  0.69115, 0.753982, 0.816814, 0.879646, 
-     &0.942478,  1.00531,  1.06814,  1.13097,  1.19381,  1.25664,  
-     &1.31947,   1.3823,  1.44513,  1.50796,   1.5708,  1.63363,  
-     &1.69646,  1.75929,  1.82212,  1.88496,  1.94779,  2.01062,  
-     &2.07345,  2.13628,  2.19911,  2.26195,  2.32478,  2.38761,  
-     &2.45044,  2.51327,  2.57611,  2.63894,  2.70177,   2.7646,  
-     &2.82743,  2.89027,   2.9531,  3.01593,  3.07876,  3.14159,  
-     &3.20442,  3.26726,  3.33009,  3.39292,  3.45575,  3.51858,  
-     &3.58142,  3.64425,  3.70708,  3.76991,  3.83274,  3.89557,  
-     &3.95841,  4.02124,  4.08407,   4.1469,  4.20973,  4.27257,   
-     &4.3354,  4.39823,  4.46106,  4.52389,  4.58673,  4.64956,  
-     &4.71239,  4.77522,  4.83805,  4.90088,  4.96372,  5.02655,  
-     &5.08938,  5.15221,  5.21504,  5.27788,  5.34071,  5.40354,  
-     &5.46637,   5.5292,  5.59203,  5.65487,   5.7177,  5.78053,  
-     &5.84336,  5.90619,  5.96903,  6.03186,  6.09469,  6.15752,  
-     &6.22035,  6.28319,  6.59734,   6.9115,  7.22566,  7.53982,  
-     &7.85398,  8.16814,   8.4823,  8.79646,  9.11062,  9.42478,  
-     &9.73894,  10.0531,  10.3673,  10.6814,  10.9956,  11.3097,  
-     &11.6239,  11.9381,  12.2522,  12.5664/
-      DATA (FLUX(I,2,1),I=1,121) /0.000404009, 0.00392351, 0.00758112, 
-     &0.0109642, 0.0140671, 0.0168871, 0.019425, 0.0216845, 0.0236723, 
-     &0.0253982, 0.0268742, 0.0281145, 0.0291353, 0.0299539, 0.0305884, 
-     &0.0310576, 0.0313803, 0.0315749, 0.0316592, 0.0316499, 0.0315629, 
-     &0.0314126, 0.0312118, 0.0309721, 0.0307032, 0.0304133, 0.0301092, 
-     &0.0297962, 0.0294781, 0.0291573, 0.0288354, 0.0285125, 0.0281883, 
-     &0.0278615, 0.0275302, 0.0271924, 0.0268457, 0.0264877, 0.0261159, 
-     &0.0257285, 0.0253236,   0.0249, 0.0244569, 0.0239942, 0.0235121, 
-     &0.0230115, 0.0224938, 0.0219609, 0.0214148, 0.0208582, 0.0202936, 
-     &0.0197239, 0.019152, 0.0185805, 0.0180121, 0.0174493, 0.0168942, 
-     &0.0163489, 0.0158149, 0.0152936, 0.0147861, 0.014293, 0.0138149, 
-     &0.0133518, 0.0129037, 0.0124703, 0.0120513, 0.0116459, 0.0112534, 
-     &0.0108733, 0.0105045, 0.0101465, 0.00979838, 0.00945948, 
-     &0.0091292, 0.00880703, 0.0084925, 0.00818535, 0.0078853, 
-     &0.00759225, 0.00730615, 0.00702705, 0.006755, 0.00649014, 
-     &0.00623262, 0.00598259, 0.00574022, 0.00550565, 0.00527895, 
-     &0.00506023, 0.00484951, 0.00464678, 0.00445198, 0.00426498, 
-     &0.00408567, 0.00391383, 0.00374925, 0.00359166, 0.00344078, 
-     &0.00329631, 0.00315796, 0.0025469, 0.00204557, 0.00163075, 
-     &0.0012906, 0.00101732, 0.000801626, 0.000632102, 0.00049774, 
-     &0.000390215, 0.000304261, 0.000236379, 0.000183518, 0.000142612, 
-     &0.000110818, 8.5892e-05, 6.62998e-05, 5.10081e-05, 3.92052e-05, 
-     &3.01586e-05, 2.32131e-05/
-      DATA (FLUX(I,2,2),I=1,121) /1.26e-06, 0.000122431, 0.000476022,  
-     &0.00104, 0.00178939, 0.00269598, 0.003735, 0.00488878, 0.00614213, 
-     &0.00747465, 0.0088588, 0.0102671, 0.0116812, 0.0130912, 0.0144878, 
-     &0.0158537, 0.0171651, 0.018402, 0.0195553, 0.0206245, 0.0216077, 
-     &0.0224957, 0.0232756, 0.0239401, 0.0244915, 0.0249384, 0.0252869, 
-     &0.0255375, 0.0256892, 0.0257458, 0.0257172, 0.0256153, 0.0254495, 
-     &0.0252251, 0.0249472, 0.0246228, 0.0242616, 0.0238724, 0.0234616, 
-     &0.0230335, 0.0225927, 0.0221441, 0.0216922, 0.0212403, 0.0207899, 
-     &0.0203422, 0.0198992, 0.0194625, 0.0190324, 0.0186078, 0.0181871, 
-     &0.0177698, 0.0173567, 0.016948, 0.0165423, 0.0161373, 0.0157316, 
-     &0.0153252, 0.0149193, 0.0145143, 0.0141098, 0.0137047, 0.0132989, 
-     &0.0128937, 0.0124907, 0.0120913, 0.011696, 0.0113049, 0.0109185, 
-     &0.0105384, 0.0101659, 0.00980213, 0.00944741, 0.00910205, 
-     &0.00876643, 0.00844109, 0.00812641, 0.00782259, 0.00752948, 
-     &0.007247, 0.00697494, 0.00671296, 0.0064607, 0.0062176, 
-     &0.00598332, 0.00575754, 0.00553982, 0.00532963, 0.00512633, 
-     &0.00492941, 0.00473864, 0.00455387, 0.00437493, 0.00420146, 
-     &0.00403308, 0.00386959, 0.00371103, 0.00355747, 0.00340894, 
-     &0.00326531, 0.00312645, 0.0025038, 0.00199701, 0.00159259, 
-     &0.00127038, 0.0010106, 0.000799155, 0.000627867, 0.000491358, 
-     &0.000384293, 0.000300776, 0.000235218, 0.000183312, 0.000142194, 
-     &0.000109933, 8.49344e-05, 6.56842e-05, 5.08066e-05, 3.92136e-05, 
-     &3.01523e-05, 2.31118e-05/
-      DATA (FLUX(I,2,3),I=1,121) /3.71013e-09, 3.60137e-06, 2.79421e-05, 
-     &9.15076e-05, 0.000210575, 0.000399441, 0.000670605, 0.0010349, 
-     &0.00150158, 0.00207833, 0.00277124, 0.00358477, 0.00452156, 
-     &0.00558228, 0.00676548, 0.00806727, 0.00948115, 0.0109977, 
-     &0.0126046, 0.0142862, 0.0160239, 0.017796, 0.0195783, 0.0213443, 
-     &0.0230663, 0.024716, 0.0262659,  0.02769, 0.0289652, 0.0300722, 
-     &0.0309962, 0.0317278, 0.0322628, 0.0326024, 0.0327526, 0.0327237, 
-     &0.0325297, 0.0321871, 0.0317142,  0.03113, 0.0304537, 0.0297042, 
-     &0.028899, 0.0280543, 0.027185, 0.0263039, 0.0254221, 0.0245488, 
-     &0.0236917, 0.0228568, 0.0220487, 0.0212707, 0.0205247, 0.0198119, 
-     &0.0191324, 0.0184857, 0.0178703, 0.0172848, 0.016727, 0.0161945, 
-     &0.0156848, 0.0151952, 0.0147233, 0.0142665, 0.0138225, 0.0133894, 
-     &0.0129653, 0.0125488, 0.0121387, 0.0117343, 0.0113352, 0.010941, 
-     &0.010552, 0.0101684, 0.00979058, 0.00941927, 0.0090551, 
-     &0.00869877, 0.00835099, 0.00801245, 0.0076837, 0.00736531, 
-     &0.00705769, 0.00676116, 0.00647592, 0.00620205, 0.00593957, 
-     &0.00568833, 0.00544816, 0.00521873, 0.00499969, 0.00479062, 
-     &0.00459105, 0.0044005, 0.00421842, 0.00404429, 0.00387761, 
-     &0.00371786, 0.00356457, 0.00341728, 0.00327558, 0.00263989, 
-     &0.00210751, 0.00166763, 0.00131391, 0.00103573, 0.000818073, 
-     &0.000645765, 0.000507411, 0.000396169, 0.000307892, 0.000239034, 
-     &0.000185837, 0.000144605, 0.000112303, 8.68411e-05, 6.68717e-05, 
-     &5.14003e-05, 3.95356e-05, 3.04482e-05, 2.3439e-05/
-      DATA (ETVALS(I,3),I=1,131) /0.00502655, 0.0502655, 0.100531, 
-     &0.150796, 0.201062, 0.251327, 0.301593, 0.351858, 0.402124, 
-     &0.452389, 0.502655,  0.55292, 0.603186, 0.653451, 0.703717, 
-     &0.753982, 0.804248, 0.854513, 0.904779, 0.955044,  1.00531,  
-     &1.05558,  1.10584,  1.15611,  1.20637,  1.25664,   1.3069,  
-     &1.35717,  1.40743,   1.4577,  1.50796,  1.55823,   1.6085,  
-     &1.65876,  1.70903,  1.75929,  1.80956,  1.85982,  1.91009,  
-     &1.96035,  2.01062,  2.06088,  2.11115,  2.16142,  2.21168,  
-     &2.26195,  2.31221,  2.36248,  2.41274,  2.46301,  2.51327,  
-     &2.56354,  2.61381,  2.66407,  2.71434,   2.7646,  2.81487,  
-     &2.86513,   2.9154,  2.96566,  3.01593,  3.06619,  3.11646,  
-     &3.16673,  3.21699,  3.26726,  3.31752,  3.36779,  3.41805,  
-     &3.46832,  3.51858,  3.56885,  3.61911,  3.66938,  3.71965,  
-     &3.76991,  3.82018,  3.87044,  3.92071,  3.97097,  4.02124,   
-     &4.0715,  4.12177,  4.17204,   4.2223,  4.27257,  4.32283,   
-     &4.3731,  4.42336,  4.47363,  4.52389,  4.57416,  4.62442,  
-     &4.67469,  4.72496,  4.77522,  4.82549,  4.87575,  4.92602,  
-     &4.97628,  5.02655,  5.27788,   5.5292,  5.78053,  6.03186,  
-     &6.28319,  6.53451,  6.78584,  7.03717,  7.28849,  7.53982,  
-     &7.79115,  8.04248,   8.2938,  8.54513,  8.79646,  9.04779,  
-     &9.29911,  9.55044,  9.80177,  10.0531,  10.3044,  10.5558,  
-     &10.8071,  11.0584,  11.3097,  11.5611,  11.8124,  12.0637,   
-     &12.315,  12.5664/
-      DATA (FLUX(I,3,1),I=1,131) /0.000505327, 0.0049346, 0.00959093, 
-     &0.0139491, 0.0179937, 0.0217143, 0.0251057, 0.0281676, 0.0309046, 
-     &0.0333259, 0.0354444, 0.0372764, 0.038841, 0.0401591, 0.0412527, 
-     &0.0421447, 0.0428579, 0.0434145, 0.0438363, 0.0441431, 0.044354, 
-     &0.0444859, 0.0445537, 0.0445708, 0.0445487, 0.0444965, 0.0444215,  
-     &0.04433, 0.0442256, 0.0441111, 0.0439875, 0.0438552, 0.0437129, 
-     &0.043559, 0.043391, 0.0432061, 0.0430015, 0.042774, 0.0425203, 
-     &0.0422381, 0.0419248, 0.0415786, 0.0411982, 0.0407828, 0.0403324, 
-     &0.0398476, 0.0393294, 0.0387796, 0.0382003, 0.0375943, 0.0369644, 
-     &0.0363139, 0.0356461, 0.0349645, 0.0342726, 0.0335736, 0.0328707, 
-     &0.0321668, 0.0314647, 0.0307669, 0.0300755, 0.0293922, 0.0287185, 
-     &0.0280556, 0.0274042, 0.0267649, 0.026138, 0.0255234, 0.024921, 
-     &0.0243305, 0.0237512, 0.0231829, 0.0226246, 0.0220758, 0.0215358, 
-     &0.021004, 0.0204799, 0.019963, 0.0194529, 0.0189494, 0.0184521, 
-     &0.0179612, 0.0174766, 0.0169985, 0.0165271, 0.0160627, 0.0156055, 
-     &0.0151559, 0.0147145, 0.0142814, 0.013857, 0.0134419, 0.0130361, 
-     &0.0126401, 0.012254, 0.0118779, 0.011512, 0.0111562, 0.0108106, 
-     &0.010475, 0.0101493, 0.00866104, 0.00737802, 0.00626206, 
-     &0.00528708, 0.00444089, 0.00371704, 0.00310645, 0.00259473, 
-     &0.00216484, 0.00180149, 0.00149375, 0.00123447, 0.00101818, 
-     &0.000839256, 0.00069163, 0.000569436, 0.000467843, 0.000383349, 
-     &0.000313423, 0.000255983, 0.000209043, 0.00017069, 0.000139245, 
-     &0.000113386, 9.21391e-05, 7.47678e-05, 6.06441e-05, 4.91935e-05, 
-     &3.98982e-05, 3.23278e-05/
-      DATA (FLUX(I,3,2),I=1,131) /1.44805e-06, 0.000141467, 0.00055311, 
-     &0.00121462, 0.00209962, 0.00317696, 0.00441866, 0.00580455, 
-     &0.00731715, 0.00893248, 0.0106181, 0.0123416, 0.0140814, 0.015827, 
-     &0.0175681, 0.0192849, 0.0209504, 0.0225421, 0.024051, 0.0254782, 
-     &0.0268224, 0.0280734, 0.0292158, 0.0302412, 0.0311526,  0.03196, 
-     &0.032669, 0.0332779, 0.0337827, 0.0341856, 0.0344962, 0.0347265, 
-     &0.0348843, 0.0349723, 0.0349925, 0.0349516, 0.0348587, 0.0347233, 
-     &0.0345502, 0.0343425, 0.0341041, 0.0338403, 0.033557, 0.0332574, 
-     &0.0329433, 0.0326158, 0.0322779, 0.0319328, 0.0315816, 0.0312234, 
-     &0.0308568, 0.0304819, 0.0301012, 0.0297154, 0.0293238, 0.0289232, 
-     &0.0285119, 0.0280904, 0.027661, 0.0272247, 0.0267802, 0.0263253, 
-     &0.0258593, 0.0253843, 0.0249027, 0.0244162, 0.0239244, 0.0234269, 
-     &0.0229242, 0.0224188, 0.0219133, 0.0214091, 0.0209067, 0.0204063, 
-     &0.0199091, 0.0194168, 0.0189307, 0.0184522, 0.0179811, 0.017518, 
-     &0.0170634, 0.0166178, 0.0161817, 0.0157549, 0.0153376, 0.0149296, 
-     &0.0145312, 0.0141418, 0.0137611, 0.0133886, 0.013024, 0.0126676, 
-     &0.012319, 0.0119777, 0.011643, 0.0113145, 0.0109922, 0.0106765, 
-     &0.0103672, 0.010064, 0.00976629, 0.00836625, 0.00711991, 
-     &0.00603413, 0.00510372, 0.00431049, 0.00363159, 0.00304777, 
-     &0.00254654, 0.00212009, 0.0017616, 0.00146279, 0.00121399, 
-     &0.0010058, 0.000830862, 0.00068412, 0.000561979, 0.000461173, 
-     &0.000378353, 0.000310252, 0.000254053, 0.000207585, 0.000169256, 
-     &0.000137826, 0.000112199, 9.13435e-05, 7.43267e-05, 6.03912e-05, 
-     &4.89718e-05, 3.96479e-05, 3.20759e-05/
-      DATA (FLUX(I,3,3),I=1,131) /5.0498e-09, 4.92905e-06, 3.84715e-05, 
-     &0.000126715, 0.00029321, 0.000559154, 0.000943548, 0.00146328, 
-     &0.00213315, 0.00296582, 0.00397172, 0.00515891, 0.00653277, 
-     &0.00809581, 0.00984729, 0.0117829, 0.0138944, 0.0161692, 
-     &0.0185905, 0.0211371, 0.0237826, 0.0264973, 0.0292472, 0.0319957, 
-     &0.0347041, 0.0373332, 0.0398443, 0.0422007, 0.0443696, 0.0463222, 
-     &0.0480361, 0.0494951, 0.0506894, 0.0516166,  0.05228, 0.0526887, 
-     &0.0528572, 0.0528034, 0.0525478, 0.0521132, 0.0515233, 0.0508015, 
-     &0.0499707, 0.0490532, 0.0480688, 0.0470364, 0.0459726, 0.0448917, 
-     &0.0438063, 0.0427271, 0.0416623, 0.0406194, 0.0396032, 0.0386175, 
-     &0.0376649, 0.0367467, 0.035863, 0.0350132, 0.0341959, 0.0334092, 
-     &0.0326506, 0.0319176, 0.0312069, 0.0305158, 0.0298411, 0.0291798, 
-     &0.0285297, 0.0278879, 0.0272524, 0.0266217, 0.0259942, 0.0253692, 
-     &0.024746, 0.0241244, 0.0235045, 0.022887, 0.0222723, 0.0216615, 
-     &0.0210554, 0.0204554, 0.0198626, 0.019278, 0.018703, 0.0181386, 
-     &0.0175858, 0.0170454, 0.0165183, 0.0160049, 0.0155058, 0.0150213, 
-     &0.0145514, 0.0140963, 0.0136557, 0.0132296, 0.0128175, 0.012419, 
-     &0.0120336, 0.0116609, 0.0113001, 0.0109506, 0.010612, 0.00905965,   
-     &0.0077, 0.00650119, 0.00545587, 0.00456275, 0.00381295, 
-     &0.00318752, 0.00266297, 0.00221879, 0.00184112, 0.00152188, 
-     &0.00125524, 0.00103485, 0.000853342, 0.000703293, 0.000578464, 
-     &0.000474399, 0.000388042, 0.000316975, 0.000258894, 0.000211499,
-     &0.000172685, 0.000140756, 0.000114472, 9.29277e-05, 7.53814e-05, 
-     &6.11556e-05, 4.96218e-05, 4.02384e-05, 3.258e-05/
-      DATA (ETVALS(I,4),I=1,141) /0.00418879, 0.0418879, 0.0837758, 
-     &0.125664, 0.167552,  0.20944, 0.251327, 0.293215, 0.335103, 
-     &0.376991, 0.418879, 0.460767, 0.502655, 0.544543, 0.586431, 
-     &0.628319, 0.670206, 0.712094, 0.753982,  0.79587, 0.837758, 
-     &0.879646, 0.921534, 0.963422,  1.00531,   1.0472,  1.08909,  
-     &1.13097,  1.17286,  1.21475,  1.25664,  1.29852,  1.34041,   
-     &1.3823,  1.42419,  1.46608,  1.50796,  1.54985,  1.59174,  
-     &1.63363,  1.67552,   1.7174,  1.75929,  1.80118,  1.84307,  
-     &1.88496,  1.92684,  1.96873,  2.01062,  2.05251,   2.0944,  
-     &2.13628,  2.17817,  2.22006,  2.26195,  2.30383,  2.34572,  
-     &2.38761,   2.4295,  2.47139,  2.51327,  2.55516,  2.59705,  
-     &2.63894,  2.68083,  2.72271,   2.7646,  2.80649,  2.84838,  
-     &2.89027,  2.93215,  2.97404,  3.01593,  3.05782,   3.0997,  
-     &3.14159,  3.18348,  3.22537,  3.26726,  3.30914,  3.35103,  
-     &3.39292,  3.43481,   3.4767,  3.51858,  3.56047,  3.60236,  
-     &3.64425,  3.68614,  3.72802,  3.76991,   3.8118,  3.85369,  
-     &3.89557,  3.93746,  3.97935,  4.02124,  4.06313,  4.10501,   
-     &4.1469,  4.18879,  4.39823,  4.60767,  4.81711,  5.02655,  
-     &5.23599,  5.44543,  5.65487,  5.86431,  6.07375,  6.28319,  
-     &6.49262,  6.70206,   6.9115,  7.12094,  7.33038,  7.53982,  
-     &7.74926,   7.9587,  8.16814,  8.37758,  8.58702,  8.79646,   
-     &9.0059,  9.21534,  9.42478,  9.63422,  9.84366,  10.0531,  
-     &10.2625,   10.472,  10.6814,  10.8909,  11.1003,  11.3097,  
-     &11.5192,  11.7286,  11.9381,  12.1475,  12.3569,  12.5664/
-      DATA (FLUX(I,4,1),I=1,141) /0.000606647, 0.00594603, 0.0116033, 
-     &0.016942, 0.0219381, 0.0265737, 0.0308375, 0.0347254, 0.0382389, 
-     &0.0413862, 0.0441804, 0.0466395, 0.0487846, 0.0506398, 0.0522308, 
-     &0.0535844, 0.0547275, 0.0556864, 0.0564866, 0.057152, 0.0577045, 
-     &0.0581642, 0.0585486, 0.0588735, 0.0591516, 0.0593938, 0.0596084, 
-     &0.0598017, 0.0599782, 0.0601405, 0.0602892, 0.0604241, 0.0605434, 
-     &0.0606449, 0.0607249, 0.0607799, 0.0608058, 0.0607984, 0.0607539, 
-     &0.0606688, 0.0605397, 0.060364, 0.0601398, 0.0598657, 0.0595413, 
-     &0.0591669, 0.0587431, 0.0582717, 0.057755, 0.0571957, 0.0565971, 
-     &0.0559623, 0.0552955, 0.0546007, 0.0538817, 0.0531424, 0.052387, 
-     &0.0516188, 0.0508418, 0.0500589, 0.049273, 0.0484868, 0.0477025, 
-     &0.0469218, 0.0461463, 0.0453773, 0.0446153, 0.0438612, 0.0431151, 
-     &0.0423769, 0.0416466, 0.040924, 0.0402085, 0.0394994, 0.0387965, 
-     &0.0380988, 0.0374063, 0.0367179, 0.0360334, 0.0353527, 0.0346753, 
-     &0.0340011, 0.0333301, 0.0326625, 0.0319982, 0.031338, 0.030682, 
-     &0.0300307, 0.0293846, 0.0287446, 0.0281108, 0.0274843, 0.0268655, 
-     &0.0262549, 0.0256533, 0.0250609, 0.0244783, 0.023906, 0.0233442, 
-     &0.0227931, 0.0222527, 0.0197156, 0.0174381, 0.0153863, 0.0135276, 
-     &0.0118437, 0.0103304, 0.00898649, 0.00780568, 0.00677302, 
-     &0.00586881, 0.00507424, 0.00437536, 0.00376301, 0.00323036, 
-     &0.0027702, 0.00237405, 0.00203276, 0.00173797, 0.00148308, 
-     &0.00126318, 0.00107444, 0.000913232, 0.000775886, 0.000658809, 
-     &0.0005588, 0.000473283, 0.000400276, 0.000338187, 0.000285581, 
-     &0.000241095, 0.000203455, 0.000171549, 0.00014448, 0.000121544, 
-     &0.000102169, 8.58513e-05, 7.21281e-05, 6.058e-05, 5.0847e-05, 
-     &4.2637e-05/
-      DATA (FLUX(I,4,2),I=1,141) /1.58875e-06, 0.000155777, 0.000611358, 
-     &0.00134723, 0.0023364, 0.00354585, 0.00494547, 0.00651345, 
-     &0.00823075, 0.0100709, 0.0119976, 0.013975, 0.0159792, 0.0179987, 
-     &0.0200228,  0.02203, 0.0239905, 0.0258797, 0.027689, 0.0294203, 
-     &0.0310734, 0.0326368, 0.0340936, 0.0354346, 0.0366637, 0.0377918, 
-     &0.0388251, 0.0397602, 0.0405913, 0.0413194, 0.0419549,  0.04251, 
-     &0.0429916, 0.0434002, 0.0437363, 0.0440055, 0.0442177, 0.0443814, 
-     &0.0445006, 0.0445768, 0.0446126, 0.0446138, 0.0445866, 0.0445339, 
-     &0.0444561, 0.0443542, 0.0442311, 0.0440908, 0.043935, 0.0437623, 
-     &0.0435705, 0.0433601, 0.043134, 0.0428947, 0.0426409, 0.0423686, 
-     &0.0420758, 0.0417632, 0.0414342, 0.0410905, 0.0407298, 0.0403491, 
-     &0.0399471, 0.0395261, 0.0390897, 0.0386397, 0.0381749, 0.0376934, 
-     &0.0371956, 0.0366852, 0.0361651, 0.0356373, 0.0351016, 0.0345574, 
-     &0.0340063, 0.033451, 0.0328941, 0.0323369, 0.0317793, 0.0312216, 
-     &0.0306655, 0.0301121, 0.0295629, 0.029018, 0.0284776, 0.0279423, 
-     &0.0274126, 0.026889, 0.0263711, 0.025859, 0.0253526, 0.0248524, 
-     &0.0243586, 0.0238707, 0.0233881, 0.0229102, 0.0224376, 0.0219708, 
-     &0.0215097, 0.0210537, 0.0206023,  0.01842, 0.0163737, 0.014485, 
-     &0.0127713, 0.0112347, 0.00986244, 0.00863503, 0.00753484, 
-     &0.00655095, 0.0056776, 0.00491003, 0.00424072, 0.00365878, 
-     &0.00315218, 0.00271025, 0.00232498, 0.00199046, 0.00170169, 
-     &0.00145362, 0.00124088, 0.00105822, 0.00090105, 0.000765812, 
-     &0.000649816, 0.000550817, 0.000466651, 0.000395186, 0.00033444, 
-     &0.000282732, 0.00023872, 0.000201334, 0.000169683, 0.000142962, 
-     &0.000120422, 0.000101383, 8.52738e-05, 7.16414e-05, 6.01294e-05, 
-     &5.04382e-05, 4.22984e-05/
-      DATA (FLUX(I,4,3),I=1,141) /6.3726e-09, 6.24338e-06, 4.89273e-05, 
-     &0.000161789, 0.000375805, 0.000719346, 0.00121828, 0.001896, 
-     &0.00277341, 0.00386878, 0.00519756, 0.00677209, 0.00860124,  
-     &0.01069, 0.0130391, 0.0156443, 0.0184961, 0.0215794, 0.024873, 
-     &0.0283496, 0.0319762, 0.0357137, 0.0395186, 0.0433433, 0.0471377, 
-     &0.0508503, 0.0544308, 0.0578313, 0.0610079, 0.0639223, 0.0665436, 
-     &0.0688485, 0.0708218, 0.0724567, 0.0737543, 0.0747229, 0.0753767, 
-     &0.0757352, 0.0758217, 0.0756625, 0.075285, 0.0747175, 0.0739879, 
-     &0.0731235, 0.0721494, 0.0710899, 0.069966, 0.0687977, 0.0676016, 
-     &0.0663924, 0.0651828, 0.0639829, 0.0628008, 0.0616432, 0.0605145, 
-     &0.0594179, 0.0583553, 0.0573268, 0.0563321, 0.0553697, 0.0544376, 
-     &0.0535328, 0.0526524, 0.0517929, 0.0509508, 0.0501227, 0.0493051, 
-     &0.0484947, 0.0476888, 0.0468848, 0.0460805, 0.0452743, 0.0444649, 
-     &0.0436515, 0.042834, 0.042012, 0.0411865, 0.0403581, 0.0395277, 
-     &0.0386968, 0.0378669, 0.0370395, 0.0362164, 0.035399, 0.0345891, 
-     &0.0337884, 0.0329982, 0.0322198, 0.0314545, 0.0307031, 0.0299666, 
-     &0.0292456, 0.0285406, 0.0278519, 0.0271795, 0.0265236, 0.0258838, 
-     &0.0252599, 0.0246516, 0.0240583, 0.0234793, 0.0207791, 0.0183468, 
-     &0.0161285, 0.0141068, 0.0122877, 0.0106782, 0.00927219, 
-     &0.00804831, 0.00697838, 0.00603684, 0.00520644, 0.00447737, 
-     &0.00384297, 0.0032956, 0.00282521, 0.00242045, 0.00207078, 
-     &0.00176801, 0.00150635, 0.00128146, 0.00108933, 0.000925749, 
-     &0.000786426, 0.00066745, 0.000565638, 0.000478595, 0.000404457, 
-     &0.000341594, 0.000288443, 0.000243503, 0.000205427, 0.000173112, 
-     &0.000145696, 0.000122502, 0.000102951, 8.65082e-05, 7.26804e-05, 
-     &6.10319e-05, 5.12045e-05, 4.29157e-05/
-      DATA (ETVALS(I,5),I=1,119) /0.00359039, 0.0359039, 0.0718078, 
-     &0.107712, 0.143616,  0.17952, 0.215423, 0.251327, 0.287231, 
-     &0.323135, 0.359039, 0.394943, 0.430847, 0.466751, 0.502655, 
-     &0.538559, 0.574463, 0.610367,  0.64627, 0.682174, 0.718078, 
-     &0.753982, 0.789886,  0.82579, 0.861694, 0.897598, 0.933502, 
-     &0.969406,  1.00531,  1.04121,  1.07712,  1.11302,  1.14893,  
-     &1.18483,  1.22073,  1.25664,  1.29254,  1.32844,  1.36435,  
-     &1.40025,  1.43616,  1.47206,  1.50796,  1.54387,  1.57977,  
-     &1.61568,  1.65158,  1.68748,  1.72339,  1.75929,   1.7952,   
-     &1.8311,    1.867,  1.90291,  1.93881,  1.97472,  2.01062,  
-     &2.04652,  2.08243,  2.11833,  2.15423,  2.33375,  2.51327,  
-     &2.69279,  2.87231,  3.05183,  3.23135,  3.41087,  3.59039,  
-     &3.76991,  3.94943,  4.12895,  4.30847,  4.48799,  4.66751,  
-     &4.84703,  5.02655,  5.20607,  5.38559,  5.56511,  5.74463,  
-     &5.92415,  6.10367,  6.28319,   6.4627,  6.64222,  6.82174,  
-     &7.00126,  7.18078,   7.3603,  7.53982,  7.71934,  7.89886,  
-     &8.07838,   8.2579,  8.43742,  8.61694,  8.79646,  8.97598,   
-     &9.1555,  9.33502,  9.51454,  9.69406,  9.87358,  10.0531,  
-     &10.2326,  10.4121,  10.5917,  10.7712,  10.9507,  11.1302,  
-     &11.3097,  11.4893,  11.6688,  11.8483,  12.0278,  12.2073,  
-     &12.3869,  12.5664/
-      DATA (FLUX(I,5,1),I=1,119) /0.000707742, 0.00696306, 0.013622, 
-     &0.0199438, 0.0258963, 0.0314543, 0.0366008, 0.0413272, 0.0456326, 
-     &0.0495235, 0.0530132, 0.0561204, 0.0588688, 0.061285, 0.0633984, 
-     &0.0652395, 0.0668391, 0.0682279, 0.0694351, 0.0704883, 0.0714134, 
-     &0.0722334, 0.0729684, 0.0736363, 0.0742525, 0.0748286, 0.0753746, 
-     &0.0758971, 0.0764006, 0.0768889, 0.0773613, 0.0778171, 0.0782538, 
-     &0.0786693, 0.0790574, 0.0794139, 0.0797338, 0.0800119, 0.0802432, 
-     &0.0804228, 0.0805463, 0.0806106, 0.0806132, 0.0805515, 0.0804249, 
-     &0.080233, 0.0799768, 0.0796578, 0.0792777, 0.0788402, 0.0783479, 
-     &0.0778052, 0.0772162, 0.0765849, 0.0759168, 0.0752153, 0.074486, 
-     &0.0737326, 0.0729594,  0.07217, 0.0713688, 0.0672747, 0.0631895, 
-     &0.0591664, 0.0551559, 0.0511155, 0.0470694, 0.0431013, 0.0393084, 
-     &0.0357573, 0.0324669, 0.0294194, 0.0266, 0.0239432, 0.0215, 
-     &0.0192369, 0.0171849, 0.0153311, 0.0136605, 0.012153, 0.0107899, 
-     &0.00955817, 0.00844947, 0.00745744, 0.00657441, 0.0057905, 
-     &0.00509428, 0.00447488, 0.00392336, 0.00345015, 0.00301986, 
-     &0.00264098, 0.00230825, 0.00201616, 0.00175951, 0.00153379, 
-     &0.00133545, 0.00116159, 0.00100965, 0.000877169, 0.000761744, 
-     &0.000661112, 0.000573298, 0.000496682, 0.000429944, 0.000371949, 
-     &0.000321654, 0.000278075, 0.000240297, 0.000207523, 0.000179083, 
-     &0.000154432, 0.000133102, 0.000114682, 9.87872e-05, 8.5069e-05, 
-     &7.3221e-05, 6.29832e-05, 5.41427e-05/
-      DATA (FLUX(I,5,2),I=1,119) /1.69752e-06, 0.000166876, 0.000656692, 
-     &0.00145079, 0.0025219, 0.00383575, 0.00536073, 0.0070739, 
-     &0.00895512, 0.010976, 0.0130975, 0.0152809, 0.0175005, 0.0197445, 
-     &0.0220015, 0.0242486, 0.0264539, 0.0285917, 0.030653, 0.0326409, 
-     &0.0345556, 0.036385, 0.038111, 0.0397236, 0.0412279, 0.0426358, 
-     &0.0439534, 0.0451766, 0.0462981, 0.0473188, 0.0482497, 0.0491032, 
-     &0.0498854, 0.0505955, 0.0512329, 0.0518027, 0.0523152, 0.0527787, 
-     &0.053196, 0.053567, 0.053894, 0.0541827, 0.0544391, 0.0546662, 
-     &0.0548626, 0.0550287, 0.0551678, 0.0552839, 0.0553792, 0.0554513, 
-     &0.0554971, 0.0555166, 0.0555143, 0.0554926, 0.0554502, 0.0553821, 
-     &0.0552856, 0.055162, 0.0550154, 0.0548479, 0.0546569, 0.0532957, 
-     &0.051347, 0.0489391, 0.0462389, 0.0434023, 0.0405365, 0.0376939, 
-     &0.0348892, 0.0321298, 0.0294357, 0.026842, 0.0243855, 0.022091, 
-     &0.0199665, 0.0180056, 0.0161949, 0.0145232, 0.0129848, 0.0115789, 
-     &0.0103044, 0.00915607, 0.00812422, 0.00719702, 0.00636366, 
-     &0.00561573, 0.00494694, 0.0043518, 0.00382449, 0.00335844, 
-     &0.0029466, 0.00258226, 0.00225987, 0.00197508, 0.0017243, 
-     &0.00150417, 0.00131132, 0.00114241, 0.000994366, 0.000864575, 
-     &0.000750893, 0.000651563, 0.00056502, 0.000489769, 0.000424368, 
-     &0.00036749, 0.000318001, 0.000274961, 0.000237584, 0.000205188, 
-     &0.000177153, 0.000152904, 0.000131918, 0.000113742, 9.79971e-05, 
-     &8.43751e-05, 7.26128e-05, 6.24714e-05, 5.3733e-05/
-      DATA (FLUX(I,5,3),I=1,119) /7.67881e-09, 7.54357e-06, 5.92886e-05, 
-     &0.000196611, 0.00045797, 0.000879024, 0.0014927, 0.00232918, 
-     &0.00341578, 0.00477676, 0.00643302, 0.00840168, 0.0106956, 
-     &0.0133228, 0.0162858, 0.0195811, 0.0231985, 0.0271202, 0.0313215, 
-     &0.0357694, 0.0404231, 0.0452356, 0.0501528, 0.0551159, 0.0600627,  
-     &0.06493, 0.0696545, 0.0741767, 0.0784408, 0.082399, 0.086011, 
-     &0.0892462, 0.0920832, 0.0945115, 0.0965297, 0.0981441, 0.0993701, 
-     &0.100229, 0.100746,  0.10095, 0.100875, 0.100552, 0.100014, 
-     &0.0992936, 0.0984218, 0.097427, 0.0963357, 0.0951719, 0.093957, 
-     &0.0927098, 0.0914464, 0.0901803, 0.0889224, 0.0876818, 0.0864652, 
-     &0.0852772, 0.0841213, 0.0829988,  0.08191, 0.0808538, 0.0798285, 
-     &0.0750509, 0.0705011, 0.0657913, 0.0608118, 0.0557087, 0.0507283, 
-     &0.0460694, 0.0418151, 0.0379423, 0.0343766, 0.0310499, 0.0279327, 
-     &0.025033, 0.0223728, 0.0199657, 0.0178044, 0.0158648, 0.0141164, 
-     &0.0125338, 0.0111013, 0.00981121, 0.00865793, 0.00763366, 
-     &0.00672658, 0.00592251, 0.00520797, 0.00457206, 0.00400705, 
-     &0.00350824, 0.0030683, 0.00268218, 0.00234346, 0.00204591, 
-     &0.00178415, 0.00155392, 0.0013519, 0.00117523, 0.00102119, 
-     &0.000887018, 0.000770095, 0.000668061, 0.000578992, 0.000501331, 
-     &0.000433784, 0.000375185, 0.000324413, 0.000280419, 0.000242259, 
-     &0.000209136, 0.000180402, 0.00015552, 0.000134018, 0.000115463, 
-     &9.9454e-05, 8.56321e-05, 7.36885e-05, 6.33696e-05, 5.44653e-05/
-      DATA (ETVALS(I,6),I=1,151) /0.00314159, 0.0314159, 0.0628319, 
-     &0.0942478, 0.125664,  0.15708, 0.188496, 0.219911, 0.251327, 
-     &0.282743, 0.314159, 0.345575, 0.376991, 0.408407, 0.439823, 
-     &0.471239, 0.502655, 0.534071, 0.565487, 0.596903, 0.628319, 
-     &0.659734,  0.69115, 0.722566, 0.753982, 0.785398, 0.816814,  
-     &0.84823, 0.879646, 0.911062, 0.942478, 0.973894,  1.00531,  
-     &1.03673,  1.06814,  1.09956,  1.13097,  1.16239,  1.19381,  
-     &1.22522,  1.25664,  1.28805,  1.31947,  1.35088,   1.3823,  
-     &1.41372,  1.44513,  1.47655,  1.50796,  1.53938,   1.5708,  
-     &1.60221,  1.63363,  1.66504,  1.69646,  1.72788,  1.75929,  
-     &1.79071,  1.82212,  1.85354,  1.88496,  1.91637,  1.94779,   
-     &1.9792,  2.01062,  2.04204,  2.07345,  2.10487,  2.13628,   
-     &2.1677,  2.19911,  2.23053,  2.26195,  2.29336,  2.32478,  
-     &2.35619,  2.38761,  2.41903,  2.45044,  2.48186,  2.51327,  
-     &2.54469,  2.57611,  2.60752,  2.63894,  2.67035,  2.70177,  
-     &2.73319,   2.7646,  2.79602,  2.82743,  2.85885,  2.89027,  
-     &2.92168,   2.9531,  2.98451,  3.01593,  3.04734,  3.07876,  
-     &3.11018,  3.14159,  3.29867,  3.45575,  3.61283,  3.76991,  
-     &3.92699,  4.08407,  4.24115,  4.39823,  4.55531,  4.71239,  
-     &4.86947,  5.02655,  5.18363,  5.34071,  5.49779,  5.65487,  
-     &5.81195,  5.96903,  6.12611,  6.28319,  6.44026,  6.59734,  
-     &6.75442,   6.9115,  7.06858,  7.22566,  7.38274,  7.53982,   
-     &7.6969,  7.85398,  8.01106,  8.16814,  8.32522,   8.4823,  
-     &8.63938,  8.79646,  8.95354,  9.11062,   9.2677,  9.42478,  
-     &9.73894,  10.0531,  10.3673,  10.6814,  10.9956,  11.3097,  
-     &11.6239,  11.9381,  12.2522,  12.5664/
-      DATA (FLUX(I,6,1),I=1,151) /0.000809285, 0.0079693, 0.0156311, 
-     &0.022938, 0.0298497, 0.0363344, 0.0423699, 0.0479426, 0.0530494, 
-     &0.0576952, 0.0618929, 0.0656626, 0.0690295, 0.0720232, 0.0746762, 
-     &0.0770231, 0.0790985, 0.0809368, 0.0825719, 0.0840346, 0.0853549, 
-     &0.0865583, 0.0876687, 0.088706, 0.0896874, 0.0906267, 0.0915347, 
-     &0.0924189, 0.0932841, 0.0941337, 0.0949672, 0.0957836, 0.0965798, 
-     &0.0973506, 0.0980911, 0.0987955, 0.099457, 0.100069, 0.100626,  
-     &0.10112, 0.101549, 0.101906, 0.102188, 0.102393, 0.102519, 
-     &0.102566, 0.102533, 0.102423, 0.102238, 0.101979, 0.101652, 
-     &0.101261, 0.100809, 0.100302, 0.0997452, 0.0991436, 0.0985024, 
-     &0.0978265, 0.0971203, 0.0963888, 0.0956363, 0.094866, 0.0940814, 
-     &0.0932857, 0.092481, 0.0916692, 0.090853, 0.0900324, 0.0892086, 
-     &0.0883826, 0.087554, 0.0867231, 0.0858899, 0.0850532, 0.0842132, 
-     &0.0833692, 0.0825207, 0.0816667, 0.080807, 0.0799407, 0.079068, 
-     &0.0781883, 0.0773019, 0.0764082, 0.0755076, 0.0746006, 0.0736877, 
-     &0.0727694, 0.0718463, 0.0709193, 0.0699895, 0.0690574, 0.068124, 
-     &0.0671912, 0.0662592, 0.065329, 0.0644021, 0.0634791, 0.0625611, 
-     &0.061649, 0.060743, 0.0563301, 0.0521382, 0.0481676, 0.0443965, 
-     &0.0408061, 0.037396,  0.03418, 0.0311759, 0.0283927, 0.0258257, 
-     &0.0234595, 0.0212756, 0.0192593, 0.0174016, 0.0156973, 0.014142, 
-     &0.0127284, 0.0114458, 0.0102822, 0.00922554, 0.00826637, 
-     &0.00739746, 0.00661279, 0.00590658, 0.00527226, 0.00470284, 
-     &0.0041915, 0.00373215, 0.00331982, 0.00295038, 0.0026202, 
-     &0.00232572, 0.00206331, 0.00182949, 0.00162103, 0.0014352, 
-     &0.00126972, 0.00112262, 0.000992099, 0.000876413, 0.000683056, 
-     &0.000531116, 0.000412083, 0.000319294, 0.000247034, 0.000190749, 
-     &0.000147057, 0.00011326, 8.71096e-05, 6.6887e-05/
-      DATA (FLUX(I,6,2),I=1,151) /1.78396e-06, 0.000175716, 0.000692887, 
-     &0.00153366, 0.0026707, 0.00406879, 0.00569523, 0.00752629, 
-     &0.00954095, 0.0117094, 0.0139905, 0.0163431, 0.0187403, 0.0211698,  
-     &0.02362, 0.0260668, 0.0284768, 0.030823, 0.0330963, 0.035301, 
-     &0.0374375, 0.0394932, 0.0414492, 0.043295, 0.0450364, 0.0466863, 
-     &0.0482513, 0.0497262, 0.051103, 0.0523826, 0.053576, 0.0546968, 
-     &0.0557502, 0.0567343, 0.0576477, 0.0584957, 0.0592887, 0.0600346, 
-     &0.0607356, 0.0613902, 0.0620003, 0.0625719, 0.0631111, 0.0636198, 
-     &0.0640962, 0.0645394, 0.0649529, 0.0653413, 0.0657063, 0.0660451, 
-     &0.0663531, 0.0666306, 0.0668822, 0.0671113, 0.0673159, 0.0674904, 
-     &0.0676309, 0.0677389, 0.0678196, 0.0678756, 0.0679033, 0.0678972, 
-     &0.0678551, 0.0677799, 0.0676778, 0.0675501, 0.0673939, 0.0672048, 
-     &0.066983, 0.066733, 0.0664597, 0.0661647, 0.0658456,   0.0655, 
-     &0.0651299, 0.0647396, 0.064333, 0.0639106, 0.0634715, 0.0630148, 
-     &0.062543, 0.0620595, 0.0615657, 0.0610623, 0.0605486, 0.0600253, 
-     &0.0594937, 0.0589563, 0.0584128, 0.057863, 0.0573069, 0.0567457, 
-     &0.0561806, 0.0556118, 0.0550388, 0.0544604, 0.053878, 0.0532926, 
-     &0.0527051, 0.0521146, 0.0515202, 0.0485068, 0.0454498, 0.0423943, 
-     &0.0393923, 0.036488, 0.0337105, 0.0310715, 0.0285714, 0.0262057, 
-     &0.0239722, 0.0218738, 0.0199158, 0.018101, 0.0164264, 0.0148842, 
-     &0.0134648, 0.0121592, 0.0109605, 0.00986385, 0.00886488, 
-     &0.00795832, 0.00713765, 0.00639526, 0.0057237, 0.00511655, 
-     &0.00456864, 0.00407545, 0.00363267, 0.00323588, 0.0028806, 
-     &0.00256244, 0.00227744, 0.00202224, 0.00179408, 0.00159053, 
-     &0.00140929, 0.00124804, 0.00110459, 0.000976957, 0.000863437, 
-     &0.000673092, 0.000523742, 0.000406926, 0.000315524, 0.000244201, 
-     &0.000188768, 0.000145714, 0.000112263, 8.63566e-05, 6.6358e-05/
-      DATA (FLUX(I,6,3),I=1,151) /8.97104e-09, 8.83026e-06, 6.95537e-05, 
-     &0.000231151, 0.000539569, 0.00103781, 0.00176596, 0.00276113, 
-     &0.00405724, 0.0056848, 0.00767043, 0.0100363, 0.0127997, 0.015972, 
-     &0.019558, 0.0235552, 0.0279528, 0.0327314, 0.0378621, 0.0433069, 
-     &0.049018, 0.0549392, 0.0610064, 0.0671499, 0.0732951, 0.0793657, 
-     &0.0852866, 0.0909847, 0.0963937, 0.101454, 0.106117, 0.110344, 
-     &0.114107, 0.117392, 0.120194, 0.122518, 0.124381, 0.125804, 
-     &0.126815, 0.127449, 0.127742, 0.127729,  0.12745, 0.126942,  
-     &0.12624, 0.125378, 0.124389, 0.123299, 0.122136, 0.120921, 
-     &0.119676, 0.118415, 0.117153, 0.115902, 0.114669, 0.113462, 
-     &0.112286, 0.111142, 0.110031, 0.108953, 0.107906, 0.106888, 
-     &0.105894, 0.104921, 0.103964, 0.103018, 0.102079, 0.101142, 
-     &0.100203, 0.0992566, 0.0983002, 0.0973301, 0.0963441, 0.0953403, 
-     &0.094317, 0.0932737, 0.0922101, 0.0911269, 0.0900243, 0.0889043, 
-     &0.0877678, 0.0866176, 0.0854555, 0.0842843, 0.0831059, 0.0819233, 
-     &0.0807391, 0.0795555, 0.0783748, 0.0771996, 0.0760317, 0.0748732, 
-     &0.0737254, 0.0725897, 0.0714675, 0.0703598, 0.0692667, 0.0681891, 
-     &0.0671271, 0.0660808, 0.0650502, 0.0601166, 0.0554934, 0.0511039, 
-     &0.0469081, 0.0429128, 0.0391519, 0.0356579, 0.0324431, 0.0294951, 
-     &0.026786, 0.0242869, 0.0219771, 0.0198474, 0.0178946, 0.0161153, 
-     &0.0145015, 0.0130401, 0.0117155, 0.0105126, 0.00942002, 
-     &0.00842961, 0.00753512, 0.00673031, 0.00600798, 0.00536004, 
-     &0.00477832, 0.00425563, 0.00378616, 0.00336528, 0.00298896, 
-     &0.00265334, 0.00235437, 0.00208804, 0.00185062, 0.0016389, 
-     &0.00145026, 0.00128246, 0.00113351, 0.00100149, 0.000884528, 
-     &0.000688981, 0.000535337, 0.00041517, 0.000321595, 0.000248695, 
-     &0.000191937, 0.000147936, 0.000113911, 8.75761e-05, 6.72234e-05/
-      save radhor
-      PIFAC = ACOS(-ONE)
-C     Spectrum
-      RADHOR = (RHFACT*BHMASS)**(ONE/(TOTDIM-THREE))
-      HWKTMP = (TOTDIM-THREE)/(4.0D0*PIFAC*RADHOR)      
-      IF(GRYBDY) THEN 
-         SPCMAX=MXARRY(TOTDIM-5,SPIN+1)
-      ELSE
-         IF (STAT.EQ.-1) THEN
-            SPCMAX=HALF*HWKTMP**2
-         ELSE
-            SPCMAX=(TWO/THREE)*HWKTMP**2
-         ENDIF
-      ENDIF
-      POINTS=NARRAY(TOTDIM-5)
-C     MC for energy
- 10   ETRAT=CHRUNI(0,ZERO,ETVALS(POINTS,TOTDIM-5))
-      ENERGY=HWKTMP*ETRAT
-      IF (GRYBDY) THEN 
-          SPCVAL=CHUTAB(FLUX(1,TOTDIM-5,SPIN+1),ETVALS(1,TOTDIM-5),
-     &        POINTS,ETRAT,4)
-      ELSE
-         SPCVAL=(ENERGY**2)/(EXP(ETRAT)-STAT)
-      ENDIF
-      IF (SPCVAL.LT.SPCMAX*CHRGEN(1)) GOTO 10
-c      if ( energy*radhor.lt.1.0d0 ) goto 10
-      END
-CDECK  ID>, CHULB4.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Adapted by Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHULB4(PS,PI,PF)
-C-----------------------------------------------------------------------
-C     TRANSFORMS PI (GIVEN IN REST FRAME OF PS) INTO PF (IN LAB)
-C     N.B. P(1,2,3,4) = (PX,PY,PZ,E); PS(5)=M
-C     (taken from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION PF4,FN,PS(5),PI(4),PF(4)
-      IF (PS(4).EQ.PS(5)) THEN
-        PF(1)= PI(1)
-        PF(2)= PI(2)
-        PF(3)= PI(3)
-        PF(4)= PI(4)
-      ELSE
-        PF4  = (PI(1)*PS(1)+PI(2)*PS(2)
-     &         +PI(3)*PS(3)+PI(4)*PS(4))/PS(5)
-        FN   = (PF4+PI(4)) / (PS(4)+PS(5))
-        PF(1)= PI(1) + FN*PS(1)
-        PF(2)= PI(2) + FN*PS(2)
-        PF(3)= PI(3) + FN*PS(3)
-        PF(4)= PF4
-      END IF
-      END
-CDECK  ID>, CHULOB.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Adapted by Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHULOB(PS,PI,PF)
-C-----------------------------------------------------------------------
-C     TRANSFORMS PI (GIVEN IN REST FRAME OF PS) INTO PF (IN LAB)
-C     N.B. P(1,2,3,4,5) = (PX,PY,PZ,E,M)
-C     (taken from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION PS(5),PI(5),PF(5)
-      CALL CHULB4(PS,PI,PF)
-      PF(5)= PI(5)
-      END
-CDECK  ID>, CHUMAS.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHUMAS(P)
-C-----------------------------------------------------------------------
-C     PUTS INVARIANT MASS IN 5TH COMPONENT OF VECTOR
-C     (NEGATIVE SIGN IF SPACELIKE) (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHUSQR,P(5)
-      EXTERNAL CHUSQR
-      P(5)=CHUSQR((P(4)+P(3))*(P(4)-P(3))-P(1)**2-P(2)**2)
-      END
-CDECK  ID>, CHUPCM.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      FUNCTION CHUPCM(EM0,EM1,EM2)
-C-----------------------------------------------------------------------
-C     C.M. MOMENTUM FOR DECAY MASSES EM0 -> EM1 + EM2
-C     SET TO -1 BELOW THRESHOLD (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHUPCM,EM0,EM1,EM2,EMS,EMD
-      EMS=ABS(EM1+EM2)
-      EMD=ABS(EM1-EM2)
-      IF (EM0.LT.EMS.OR.EM0.LT.EMD) THEN
-        CHUPCM=-1.0D0
-      ELSEIF (EM0.EQ.EMS.OR.EM0.EQ.EMD) THEN
-        CHUPCM=0.0D0
-      ELSE
-        CHUPCM=SQRT((EM0+EMD)*(EM0-EMD)*
-     &              (EM0+EMS)*(EM0-EMS))*0.5D0/EM0
-      ENDIF
-      END
-CDECK  ID>, CHUROB.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHUROB(R,P,Q)
-C-----------------------------------------------------------------------
-C     ROTATES VECTORS BY INVERSE OF ROTATION MATRIX R 
-C     (taken from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION S1,S2,S3,R(3,3),P(3),Q(3)
-      S1=P(1)*R(1,1)+P(2)*R(2,1)+P(3)*R(3,1)
-      S2=P(1)*R(1,2)+P(2)*R(2,2)+P(3)*R(3,2)
-      S3=P(1)*R(1,3)+P(2)*R(2,3)+P(3)*R(3,3)
-      Q(1)=S1
-      Q(2)=S2
-      Q(3)=S3
-      END
-CDECK  ID>, CHUROT.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHUROT(P,CP,SP,R)
-C-----------------------------------------------------------------------
-C     R IS ROTATION MATRIX TO GET FROM VECTOR P TO Z AXIS, FOLLOWED BY
-C     A ROTATION BY PSI ABOUT Z AXIS, WHERE CP = COS-PSI, SP = SIN-PSI
-C     (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION WN,CP,SP,PTCUT,PP,PT,CT,ST,CF,SF,P(3),R(3,3)
-      DATA WN,PTCUT/1.D0,1.D-20/
-      PT=P(1)**2+P(2)**2
-      PP=P(3)**2+PT
-      IF (PT.LE.PP*PTCUT) THEN
-         CT=SIGN(WN,P(3))
-         ST=0.0D0
-         CF=1.0D0
-         SF=0.0D0
-      ELSE
-         PP=SQRT(PP)
-         PT=SQRT(PT)
-         CT=P(3)/PP
-         ST=PT/PP
-         CF=P(1)/PT
-         SF=P(2)/PT
-      END IF
-      R(1,1)= CP*CF*CT+SP*SF
-      R(1,2)= CP*SF*CT-SP*CF
-      R(1,3)=-(CP*ST)
-      R(2,1)=-(CP*SF+SP*CF*CT)
-      R(2,2)= CP*CF+SP*SF*CT
-      R(2,3)=-(SP*ST)
-      R(3,1)= CF*ST
-      R(3,2)= SF*ST
-      R(3,3)= CT
-      END
-CDECK  ID>, CHUSQR.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      FUNCTION CHUSQR(X)
-C-----------------------------------------------------------------------
-C     SQUARE ROOT WITH SIGN RETENTION (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      DOUBLE PRECISION CHUSQR,X
-      CHUSQR=SIGN(SQRT(ABS(X)),X)
-      END
-CDECK  ID>, CHUTAB.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Adapted by Bryan Webber
-C-----------------------------------------------------------------------
-      FUNCTION CHUTAB(F,A,NN,X,MM)
-C-----------------------------------------------------------------------
-C     MODIFIED CERN INTERPOLATION ROUTINE DIVDIF
-C-----------------------------------------------------------------------
-      IMPLICIT NONE
-      INTEGER NN,MM,MMAX,N,M,MPLUS,IX,IY,MID,NPTS,IP,I,J,L,ISUB
-      DOUBLE PRECISION CHUTAB,SUM,X,F(NN),A(NN),T(20),D(20)
-      LOGICAL EXTRA
-      DATA MMAX/10/
-      N=NN
-      M=MIN(MM,MMAX,N-1)
-      MPLUS=M+1
-      IX=0
-      IY=N+1
-      IF (A(1).GT.A(N)) GOTO 4
-    1 MID=(IX+IY)/2
-      IF (X.GE.A(MID)) GOTO 2
-      IY=MID
-      GOTO 3
-    2 IX=MID
-    3 IF (IY-IX.GT.1) GOTO 1
-      GOTO 7
-    4 MID=(IX+IY)/2
-      IF (X.LE.A(MID)) GOTO 5
-      IY=MID
-      GOTO 6
-    5 IX=MID
-    6 IF (IY-IX.GT.1) GOTO 4
-    7 NPTS=M+2-MOD(M,2)
-      IP=0
-      L=0
-      GOTO 9
-    8 L=-L
-      IF (L.GE.0) L=L+1
-    9 ISUB=IX+L
-      IF ((1.LE.ISUB).AND.(ISUB.LE.N)) GOTO 10
-      NPTS=MPLUS
-      GOTO 11
-   10 IP=IP+1
-      T(IP)=A(ISUB)
-      D(IP)=F(ISUB)
-   11 IF (IP.LT.NPTS) GOTO 8
-      EXTRA=NPTS.NE.MPLUS
-      DO 14 L=1,M
-      IF (.NOT.EXTRA) GOTO 12
-      ISUB=MPLUS-L
-      D(M+2)=(D(M+2)-D(M))/(T(M+2)-T(ISUB))
-   12 I=MPLUS
-      DO 13 J=L,M
-      ISUB=I-L
-      D(I)=(D(I)-D(I-1))/(T(I)-T(ISUB))
-      I=I-1
-   13 CONTINUE
-   14 CONTINUE
-      SUM=D(MPLUS)
-      IF (EXTRA) SUM=0.5D0*(SUM+D(M+2))
-      J=M
-      DO 15 L=1,M
-      SUM=D(J)+(X-T(J))*SUM
-      J=J-1
-   15 CONTINUE
-      CHUTAB=SUM
-      END
-CDECK  ID>, CHVDIF.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHVDIF(N,P,Q,R)
-C-----------------------------------------------------------------------
-C     VECTOR DIFFERENCE (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION P(N),Q(N),R(N)
-      INTEGER N,I
-      DO 10 I=1,N
-   10 R(I)=P(I)-Q(I)
-      END
-CDECK  ID>, CHVEQU.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHVEQU(N,P,Q)
-C-----------------------------------------------------------------------
-C     VECTOR EQUALITY (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION P(N),Q(N)
-      INTEGER N,I
-      DO 10 I=1,N
-   10 Q(I)=P(I)
-      END
-CDECK  ID>, CHVSUM.
-*CMZ :-        -17/07/03  18.11.30  by  Peter Richardson
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CHVSUM(N,P,Q,R)
-C-----------------------------------------------------------------------
-C    VECTOR SUM (extracted from HERWIG)
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION P(N),Q(N),R(N)
-      DO 10 I=1,N
-   10 R(I)=P(I)+Q(I)
-      END
diff --git a/Generators/Herwig_i/CMakeLists.txt b/Generators/Herwig_i/CMakeLists.txt
deleted file mode 100644
index 11f7c951c2d6930ff49463de41088375864c0af2..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/CMakeLists.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-################################################################################
-# Package: Herwig_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( Herwig_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs(
-   PUBLIC
-   Generators/AcerMC_i
-   Generators/GeneratorModules
-   Generators/Tauola_i
-   PRIVATE
-   Control/AthenaKernel
-   GaudiKernel
-   Generators/AlpGen_i
-   Generators/Charybdis_i
-   Generators/GeneratorFortranCommon
-   Generators/GeneratorUtils
-   Generators/Lhef_i
-   Generators/MadGraph_i
-   Generators/McAtNlo_i
-   Generators/TruthUtils
-   Generators/MadCUP_i
-   Generators/Horace_i )
-
-# External dependencies:
-find_package( CLHEP )
-find_package( HepMC COMPONENTS HepMC HepMCfio )
-find_package( Herwig )
-find_package( Jimmy )
-find_package( Lhapdf )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( Herwig_iLib
-   Herwig_i/*.h Herwig_i/*.icc
-   src/Herwig.cxx src/Address*.cxx src/InitHerwigCommonBlocks_65.cxx
-   src/Lhefinfo.cxx src/wgtacp.cxx src/upevnt_hw.F
-   src/upinit_hw.F src/upveto_hw.F src/atoher_65.F
-   src/hwpdfinfo.F src/HerwigInterface_65.F src/herwig_common_block_address_65.F
-   src/glhefinfo.F src/gwgtacp.F src/hwgpdg.F src/hwtpdg.F src/hwrgen.F
-   src/gatlastaula_decres_hw.F src/hwhepc.F src/extproc.F src/topdec.F
-   src/charybdfix.F src/HerwigDummies/circ*.F src/HerwigDummies/decadd.F
-   src/HerwigDummies/eudini.F src/HerwigDummies/fragmt.F
-   src/HerwigDummies/hvhbvi.F src/HerwigDummies/ieupdg.F
-   src/HerwigDummies/ipdgeu.F src/HerwigDummies/qqinit.F
-   src/HerwigDummies/hwhvvj.F src/HerwigDummies/hwupro.F
-   src/HerwigDummies/pytime.F src/HerwigDummies/hwirpv.F
-   src/HerwigDummies/timel.F src/HerwigModified/hwugup.f
-   src/HerwigModified/hwhsnm.f src/HerwigModified/hwdtau.f
-   PUBLIC_HEADERS Herwig_i
-   INCLUDE_DIRS ${HERWIG_INCLUDE_DIRS} ${JIMMY_INCLUDE_DIRS}
-   ${LHAPDF_INCLUDE_DIRS}
-   PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} -DHWVERSION="${HERWIG_VERSION}"
-   LINK_LIBRARIES ${HERWIG_LIBRARIES} ${JIMMY_LIBRARIES} ${LHAPDF_LIBRARIES}
-   AcerMC_i GeneratorModulesLib Tauola_iLib GeneratorFortranCommonLib
-   PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} AthenaKernel
-   GaudiKernel AlpGen_i Charybdis_i Lhef_i MadGraph_i McAtNlo_i TruthUtils
-   MadCUP_i Horace_i )
-
-atlas_add_component( Herwig_i
-   src/components/*.cxx
-   LINK_LIBRARIES GaudiKernel Herwig_iLib )
-
-atlas_add_component( HerwigRpv_i
-   src/HerwigModified/rpv/*.f
-   src/componentsRpv/*.cxx
-   LINK_LIBRARIES GaudiKernel Herwig_iLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
diff --git a/Generators/Herwig_i/Herwig_i/Dpemc.h b/Generators/Herwig_i/Herwig_i/Dpemc.h
deleted file mode 100644
index 0f9b77dc7b570aadbd61eda67cf633b265179547..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/Dpemc.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef GENERATORMODULESDPEMC_H
-#define GENERATORMODULESDPEMC_H
-#include "GeneratorModules/GenModule.h"
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-using std::string;
-typedef std::vector<std::string> CommandVector;
-/**
-@class Dpemc
-@brief interface to DPEMC Monte Carlo
-
-This code is used to get a DPEMC Monte Carlo event.
-
- * genInitialize() is used to read parameters
-
- * callGenerator() makes the event
-
- * genFinalize() writes log files etc
-
- * fillEvt(GeneratorEvent* evt) passes the event to HepMC
-
-The output will be stored in the transient event store so it can be passed to the simulation.
-
-@author  
- * Georgios Stavropoulos January 2003 : Migrate to Herwig 6.5
-
- * Ian Hinchliffe Sept 2000: Modeled after the CDF code by Marge Shapiro, Elena Bucciol, and j ly
-
- * Borut Paul Kersevan February 2003: added access to lesatlas common (not part of herwig but needed for external procees
-
- * Vojtech Juranek modified Herwig interface for Dpemc
-
- * Judith Katzy Jan 2008 added doxygen docu
-
-*/
-class Dpemc
-  :public GenModule
-{
-public:
-  Dpemc(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~Dpemc();
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(GenEvent* evt);
-  void Localpar2Her();
-  void Her2Localpar();
-  // accessor for external processes
-  AcerMC_acset& acermc_acset();
-
-private:
-  // data members corresponding to Herwig variables
-
-  int m_process;              // QCD process generated
-  int m_maxer_Parm;           //
-  int m_randomseed1_Parm;      //
-  int m_randomseed2_Parm;      //
-//cjl  <float>m_lambdaQCD_Parm;     // to calculate alphas
-  double m_lambdaQCD_Parm;     // to calculate alphas
-  //  string m_decayTable_Parm;   // parm for the file name
-				             // that has the decay table
-  //  int  m_scaleChoiceParm;     // choice of qcd scale 
-				             // 1=pt/2, 2=pt, 3=2pt
-
-				// commands of Menu 01
-
-  string m_Beamtype1_Parm;// initialize beam particle 1
-  double m_Energy1_Parm;//initialize beam energy 1
-  string m_Beamtype2_Parm;// initialize beam particle 2
-  double m_Energy2_Parm;//initialize beam energy 2    
-     
-
-				// commands of Menu 02 - v6.1 no read/write
-
-  int m_sudord_Parm ; //Sudakov order    
-
-				// commands of Menu 03
-
-  string m_autpdf;
-  int m_modpdf;
-
-  double m_pltcut_Parm;
-				// commands of Menu 04
-
-//cjl  double m_rapiditiesm_Parm;// select rapidity limits min
-  double m_ptm_Parm;// select transverse momentum limits min
-  double m_invarmassm_Parm;// select invariant mass limits min 
-  double m_rapiditiesM_Parm;// select rapidity limits max      
-  double m_ptM_Parm;// select transverse momentum limits max
-  double m_invarmassM_Parm;// select invariant mass limits max        
-  double m_thrust_Parm;// select thrust 
-  double m_ptpow_Parm;// select ET power 
-  double m_empow_Parm;// select M power 
-  double m_q2pow_Parm;// select Q**2 power
-  double m_qlim_Parm;// select upper limits in scale     
-  double m_q2dilsm_Parm;// set Q**2 limits min
-  double m_q2dilsM_Parm;// set Q**2 limits max
-  int m_bgshat_Parm;// scaling switch
-  
-				// commands of Menu 05
-
-  int m_azsoft_Parm;//azimuthal correlation soft gluon
-  double m_prsof_Parm;
-  int m_azspin_Parm;//azimuthal correlation spin
-  double m_qspac_Parm;//lower limit for spacelike evolution 
-  int m_ispac_Parm;//controls exact meaning of qspac
-  int m_nospac_Parm;//can turn off ISR 
-  double m_vqcut_Parm;//quark virtuality cutoff
-  double m_vgcut_Parm;//gluon virtuality cutoff
-  double m_vpcut_Parm;//photon virtuality cutoff
-  //  double m_gluonmass_Parm;//gluon virtual mass cutoff
-  double m_intrinsicpt_Parm;// intrinsic pt incoming hadrons  
-
-				// commands of Menu 06  
-
-  double m_clmax_Parm;//mass cluster mass parameter 
-  double m_clpow_Parm;// mass dependence of cluster hadronization 
-  double m_psplt1_Parm;// mass dist in cluster splitting, non-b 
-  double m_psplt2_Parm;// mass dist in cluster splitting, b 
-  int m_cldir1_Parm;// direction memory, cluster splitting, non-b 
-  int m_cldir2_Parm;// direction memory, cluster splitting, b 
-  double m_clsmr1_Parm;// alignment, cluster splitting, non-b 
-  double m_clsmr2_Parm;// alignment, cluster splitting, b 
-  double m_qdiqk_Parm; //scale at which gluon can be split into diquarks
-  double m_pdiqk_Parm; //probability of diquark splitting per unit log scale
-  double m_decwt_Parm; // a priori weights for decuplet baryons for cluster decays  
-  double m_pwt_Parm; // a priori weights for quarks and diquarks
-  
-				// commands of Menu 07 
-
-  double m_pmbn1_Parm;// soft int. param for multiplicity
-  double m_pmbn2_Parm;// soft int. param for multiplicity
-  double m_pmbn3_Parm;// soft int. param for multiplicity
-  double m_pmbk1_Parm;// soft int. param for negative binomial
-  double m_pmbk2_Parm;// soft int. param for negative binomial
-  double m_pmbm1_Parm;// soft int. param for cluster mass
-  double m_pmbm2_Parm;// soft int. param for cluster mass
-  double m_pmbp1_Parm;// soft int. param for cluster pt
-  double m_pmbp2_Parm;// soft int. param for cluster pt
-  double m_pmbp3_Parm;// soft int. param for cluster pt
-  double m_ensof_Parm;//multy. enhancement for underlyng soft event
-
-				// commands of Menu 08
-
-  int m_pizstable_Parm; //whether pizero is stable (non-decaying)
-  
-				// commands of Menu 09
-
-  int m_eventweight_Parm; //control event weights
-  double m_maxweight_Parm; //set max weight
-  double m_effmin_Parm; //min. acceptable eff to generate evts
-  bool m_noshower_Parm; //turn off parton shower - changed to bool ((IH)
-  bool m_nohadroniz_Parm; //turn off hadronization -- changed to bool (IH)
-  double m_tlout_Parm; //time (sec) needed to terminate gracefully
-
-				// commands of Menu 10
-
-  int m_colors_Parm;// number of colors
-  int m_flavors_Parm;// number of flavors
-  double m_weiangle_Parm;// sin**2 of Weimberg angle 
-  double m_cabangle_Parm;// sin**2 of Cabibbo angle
-  double m_wwidth_Parm;// Width of W boson
-  double m_zwidth_Parm;//Width of Z boson
-  double m_hwidth_Parm;//Width of Higgs boson  
-
-				// commands of Menu 11
-
-  double m_down_Parm;// Set down quark mass
-  double m_up_Parm;// Set up quark mass
-  double m_strange_Parm;// Set strange quark mass
-  double m_charm_Parm;// Set charm quark mass
-  double m_bottom_Parm;// Set bottom quark mass
-  double m_top_Parm;// Set top quark mass
-  double m_gluonmass_Parm;// Set gluon mass
-  double m_W_Parm;// Set W+/- mass
-  double m_Z0_Parm;// Set Z0  mass
-  double m_higgs_Parm;// Set Higgs  mass
-  int    m_modBos_Parm[9]; // SB: Set decay modes for Weak bosons
-
-  // commands of Menu 12
-
-  string m_read_Filesusy; //parm for the susy file name 
-
-				// commands of Menu 13
-
-  int m_zprime_Parm;// Whether to use Z-prime particle
-  double m_ZP_Parm;// Mass of Z-prime particle
-  double m_zpwidth_Parm;// Width of Z-prime particle
-
-				// commands of Menu 14
-
-  int m_iprint_Parm;// Herwig print level control
-  int m_maxpr_Parm;// Dump of Herwig events
-  int m_prvtx_Parm;// Whether to have vtx print in dump
-  int m_prndef_Parm;// print ASCII to screen/log file
-  int m_prntex_Parm;// print LATEX to *.tex files 
-  int m_prnweb_Parm;// print html to *.html
-  int m_nprfmt_Parm;// controls print sig. figs - short or long
-
-  // 
-
-  // graviton stuff
-  double m_grvlam_Parm;
-  double m_emgrv_Parm;
-  double m_gamgrv_Parm;
-
-  // susy parameters
-
-
-  // tauola switch
-
-  string m_taudec_Parm;
-  int m_syspin_Parm;// Herwig syspin control
-  int m_spcopt_Parm;
-
-  // Top decays switch
-  int m_itopd;
- 
-    // Commands to setup herwig from jobOptions
-  CommandVector m_herwigCommandVector;
-
-
-  std::vector<long int> m_seeds;
-  
-  //added for Dpemc
-  string m_typepr_Parm;
-  string m_typint_Parm;
-  int m_nstru_Parm;
-  int m_ifit_Parm;
-  double m_xpqnrm_Parm[13];
-  double m_gapspr_Parm;
-  double m_prospr_Parm;
-  double m_cdffac_Parm;
-
-protected:
-  // external proces
-  int m_ExternalProcess;
-  AcerMC_acset m_acermc_acset;
-
-  // I/O to HEPEVT
-    void store_Atlas_HEPEVT(void);
-
-    static Atlas_HEPEVT* atlas_HEPEVT;
-
-};
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/Herwig.h b/Generators/Herwig_i/Herwig_i/Herwig.h
deleted file mode 100644
index 123bfef3250582ae675d28648ae328459200ad7f..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/Herwig.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENERATORMODULESHERWIG_H
-#define GENERATORMODULESHERWIG_H
-
-#include "GeneratorModules/GenModule.h"
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-/**
-@class Herwig
-@brief Main interface class to Herwig
-
-
-Allows the user to generate Herwig events and store the result in the Transient Store.
-
-genInitialize() is used to read parameters
-
-callGenerator() makes the event
-
-genFinalize() writes log files etc
-
-fillEvt(GeneratorEvent* evt) passes the event to HepMC
-
-The output will be stored in the transient event store so it can be passed to the simulation.
-
-
-@author  
-
- Georgios Stavropoulos January 2003 : Migrate to Herwig 6.5
-
- Ian Hinchliffe Sept 2000 Modeled after the CDF code by Marge Shapiro, Elena Bucciol
-
- Borut Paul Kersevan (February 2003) added access to lesatlas common (not part of 
-                      Herwig but needed for external process)
-
- AcerMC 1.x interface added by Borut Paul Kersevan (February 2003)
-
- TAUOLA/PHOTOS interface added by Borut Paul Kersevan (October 2003)
-
- Jon Butterworth Merged with Jimmy.h (Feb 2007)
-
- Judith Katzy added doxygen docu (Jan 2008)
-
- Andy Buckley: conversion to AthAlgorithm (December 2009)
-
-*/
-
-class Herwig : public GenModule {
-public:
-
-  /// @name Construction / destruction
-  //@{
-  Herwig(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~Herwig();
-  //@}
-
-  /// @name Generation loop
-  //@{
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-  //@}
-
-  void Localpar2Her();
-  void Her2Localpar();
-
-  void updateStatusCode( HepMC::GenEvent *evt );
-
-  /// Accessor for external processes
-  AcerMC_acset& acermc_acset();
-
-  /// Local name for a list of config strings
-  typedef std::vector<std::string> CommandVector;
-
-
-private:
-     
-  /// Turn off parton shower
-  bool m_noshower_Parm;
-  
-  /// Turn off hadronization
-  bool m_nohadroniz_Parm;
-
-  /// Param for the SUSY file name 
-  std::string m_read_Filesusy;
-
-  /// Top decays switch
-  int m_itopd;
-
-  /// Version 6510 variable to prevent infinite looping
-  int m_ndetry;
- 
-  /// Commands to set up Herwig from job options
-  CommandVector m_herwigCommandVector;
-
-  // multiply x-section by a num. factor 
-  // add both in the MetaData print-out 
-  double m_Default_xsscale, m_xsscale; 
-
-  // print out manually set x-section from the MetaData 
-  double m_Default_SetCrossSection, m_SetCrossSection;
-
-  /// RNG seeds
-  std::vector<long int> m_seeds;
-
-  /// Update status code of hadrons
-  bool m_updateHadronStatCode;
-
-protected:
-
-  /// @name External process
-  //@{
-  int m_ExternalProcess;
-  AcerMC_acset m_acermc_acset;
-  //@}
-
-  /// I/O to HEPEVT
-  void store_Atlas_HEPEVT();
-
-  static Atlas_HEPEVT* s_atlas_HEPEVT;
-
-};
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/HerwigRpv.h b/Generators/Herwig_i/Herwig_i/HerwigRpv.h
deleted file mode 100644
index acffa6305221f627ca9c061c9660c91900318d86..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/HerwigRpv.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENERATORMODULESHERWIGRPV_H
-#define GENERATORMODULESHERWIGRPV_H
-#include "GeneratorModules/GenModule.h"
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-#include "Herwig_i/Herwig.h"
-
-using std::string;
-typedef std::vector<std::string> CommandVector;
-
-/**
-@class HerwigRpv
-@brief main interface class wrapper to Herwig
-
-
-Allows the user to generate Herwig events with RPV mod and store the result in the Transient Store.
-
-genInitialize() is used to read parameters
-
-callGenerator() makes the event
-
-genFinalize() writes log files etc
-
-fillEvt(GeneratorEvent* evt) passes the event to HepMC
-
-*/
-
-class HerwigRpv
-  :public Herwig 
-{
-public:
-  inline HerwigRpv(const std::string& name, ISvcLocator* pSvcLocator): Herwig(name, pSvcLocator){};
-};
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/Lhefinfo.h b/Generators/Herwig_i/Herwig_i/Lhefinfo.h
deleted file mode 100644
index 978e3b3c4f204ee4f58664a550579257efaa760b..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/Lhefinfo.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef LHEFINFO_h
-#define LHEFINFO_h
-
-extern "C" {
-  void* lhefinfo_address_();
-}
-
-/**
-@class      Lhefinfo.hh
-
-@brief      Class definition for Lhefinfo common block.
-
-@author     Sebastian Piec 
-*/
-
-class Lhefinfo {
-public:
-  Lhefinfo();
-  ~Lhefinfo();
-  
-  inline void init(); // inlined for speed of access (small function)
-
-  int& id1();
-  int& id2();
-  double& x1();
-  double& x2();
-  double& scalePdf();
-  double& xPdf1();
-  double& xPdf2();
-
-private: 
-  struct LHEFINFO;
-  friend struct LHEFINFO;
-
-  struct LHEFINFO 
-  {
-    int     id1, id2;
-    double  x1, x2;
-    double  scalePdf, xPdf1, xPdf2;
-  };
-
-  static LHEFINFO* s_lhefinfo;
-};
-
-#include "Herwig_i/Lhefinfo.icc"
-
-#endif
-
diff --git a/Generators/Herwig_i/Herwig_i/Lhefinfo.icc b/Generators/Herwig_i/Herwig_i/Lhefinfo.icc
deleted file mode 100644
index 5ebfb4da4009b44541ed93824e0c11ea216f06fc..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/Lhefinfo.icc
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Lhefinfo  
-
-// initialise pointer
-void Lhefinfo::init() 
-{
-  if ( !s_lhefinfo ) {
-    s_lhefinfo = static_cast< LHEFINFO* >( lhefinfo_address_() );
-  }
-}
-
diff --git a/Generators/Herwig_i/Herwig_i/config.h b/Generators/Herwig_i/Herwig_i/config.h
deleted file mode 100644
index 6c89ad44f4b6af7b56de95200cbfb52e6ffa9cc2..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/* Herwig_i/config.h.  Generated automatically by configure.  */
-/* GeneratorModules/config.h.in.  Generated automatically from configure.in by autoheader.  */
diff --git a/Generators/Herwig_i/Herwig_i/config.h.in b/Generators/Herwig_i/Herwig_i/config.h.in
deleted file mode 100644
index b29742ce5dc6c4433dbc5fb48caaa6bf242c5b4c..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/config.h.in
+++ /dev/null
@@ -1 +0,0 @@
-/* GeneratorModules/config.h.in.  Generated automatically from configure.in by autoheader.  */
diff --git a/Generators/Herwig_i/Herwig_i/dpemc6505.h b/Generators/Herwig_i/Herwig_i/dpemc6505.h
deleted file mode 100644
index f3a465998ee25bf0625909fbb295fdf7872b1b37..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/dpemc6505.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __DPEMC65_HH__
-#define __DPEMC65_HH__
-/* Common Block Declarations */
-#include <complex>
-
-//modifications for Dpemc
-using std::string;
-
-struct Prtype_t {
-    char typepr[3];
-    char typint[3];
-};
-extern Prtype_t* gPrtype;
-
-struct Xsect_t {
-    double gapspr, prospr, cdffac;
-};
-extern Xsect_t* gXsect;
-
-struct Pdfnrm_t {
-    double xpqnrm[13];
-};
-extern Pdfnrm_t* gPdfnrm; 
-
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig61.h b/Generators/Herwig_i/Herwig_i/herwig61.h
deleted file mode 100644
index 25f2b44704ebe2709dbe3e84df566d7c6f437d8b..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig61.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __HERWIG61_HH__
-#define __HERWIG61_HH__
-
-/* Common Block Declarations */
-
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-    double alpfac, brhig[12], enhanc[12], gammax, rhohep[12000];
-    int iophig, modbos[5];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-    int idhw[4000], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[4], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, imssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwumsc_t {
-    int lhwout;
-} ;
-
-extern Hwumsc_t* gHwumsc;
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig6301.h b/Generators/Herwig_i/Herwig_i/herwig6301.h
deleted file mode 100644
index 1b1600e1789987c031c81691f7db481b17f380ce..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig6301.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __HERWIG63_HH__
-#define __HERWIG63_HH__
-
-/* Common Block Declarations */
-
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-    double alpfac, brhig[12], enhanc[12], gammax, rhohep[12000];
-    int iophig, modbos[5];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-    int idhw[4000], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[4], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, dmssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwgrav_t {
-    double grvlam, emgrv, gamgrv;
-} ;
-
-extern  Hwgrav_t* gHwgrav ;
-
-struct Hw6202_t {
-    double vipwid[3], dxrcyl, dxzmax, dxrsph;
-    int wzrfr, fix4jt;
-    int imssm, ihiggs, parity, lrsusy;
-} ;
-
-extern  Hw6202_t* gHw6202 ;
-
-//end v 6202 adds
-
-// begin v 6301 adds
-struct Hw6300_t {
-    doublereal mjjmin, chnprb[20];
-    integer iopstp, iopsh;
-    logical optm, chon[20];
-} ;
-
-extern  Hw6300_t* gHw6300 ;
-
-struct  Hwfmrs_t {
-    doublereal fmrs[44688]	/* was [3][8][49][38] */;
-} ;
-
-extern  Hwfmrs_t* gHwfmrs ;
-
-struct Hwcirc_t {
-    integer circop, circac, circvr, circrv, circch;
-} ;
-
-extern  Hwcirc_t* gHwcirc ;
-//end v6301 adds
-
-struct Hwumsc_t {
-    int lhwout;
-} ;
-
-extern Hwumsc_t* gHwumsc;
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig64.h b/Generators/Herwig_i/Herwig_i/herwig64.h
deleted file mode 100644
index 50b21322c5db7911b88c0df9af53ee99efa30261..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig64.h
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __HERWIG64_HH__
-#define __HERWIG64_HH__
-
-/* Common Block Declarations */
-#include <complex>
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-    double alpfac, brhig[12], enhanc[12], gammax, rhohep[12000];
-    int iophig, modbos[5];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-    int idhw[4000], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[4], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, dmssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwgrav_t {
-    double grvlam, emgrv, gamgrv;
-} ;
-
-extern  Hwgrav_t* gHwgrav ;
-
-struct Hw6202_t {
-    double vipwid[3], dxrcyl, dxzmax, dxrsph;
-    int wzrfr, fix4jt;
-    int imssm, ihiggs, parity, lrsusy;
-} ;
-
-extern  Hw6202_t* gHw6202 ;
-
-//end v 6202 adds
-
-// v 6203
-
-struct Hw6203_t {
-    double abwgt, abwsum, avabw;
-    int nnegwt, nnegev;
-    int negwts;
-} ;
-
-extern  Hw6203_t* gHw6203;
-
-// begin v 6301 adds
-
-struct Hw6300_t {
-    double mjjmin, chnprb[20];
-    int iopstp, iopsh;
-    int  optm, chon[20];
-} ;
-
-extern  Hw6300_t* gHw6300 ;
-
-struct  Hwpmrs_t {
-    double fmrs[44688]	/* was [3][8][49][38] */;
-} ;
-
-extern  Hwpmrs_t* gHwpmrs ;
-
-struct Hwcirc_t {
-    int circop, circac, circvr, circrv, circch;
-} ;
-
-extern  Hwcirc_t* gHwcirc ;
-
-
-
-//end v6301 adds
-
-// v6.400
-
-
-struct Hwdspb_t {
-    double abmode[100]	/* was [2][50] */, bbmode[1200]	/* was [2][12]
-	    [50] */, pbmode[600]	/* was [12][50] */, wtbmax[600]	/* was [12][50] */;
-    int idbprt[50], ibdrtp[50], ibmode[50], nbmode;
-};
-
-extern Hwdspb_t* gHwdspb ;
-
-
-struct Hwdsp2_t {
-    double a2mode[1000]	/* was [2][500] */, p2mode[500], wt2max[500];
-    int id2prt[500], i2drtp[500], n2mode;
-};
-
-extern Hwdsp2_t* gHwdsp2 ;
-
-struct Hwdsp3_t {
-    double a3mode[8000]	/* was [2][8][500] */, b3mode[8000]	/* was [2][8][500] */, p3mode[500], wt3max[500], spn3cf[4500]	/* was [3][3][500] */;
-    int id3prt[500], i3mode[4000]	/* was [8][500] */, i3drtp[4000]	/* was [8][500] */, n3mode, ndi3by[500], n3ncfl[500], i3drcf[4000] /* was [8][500] */;
-};
-
-extern Hwdsp3_t* gHwdsp3 ;
-
-struct Hwdsp4_t {
-    double a4mode[96]	/* was [2][12][4] */, b4mode[96]	/* was [2][12][4] */, p4mode[576]	/* was [12][12][4] */, wt4max[576]	/* was [12][12][4] */;
-    int id4prt[4], i4mode[8]	/* was [2][4] */, n4mode;
-};
-
-extern Hwdsp4_t* gHwdsp4 ;
-
-struct Hwdspn_t {
-    int ndecsy, nsearch, lrdec, lwdec;
-    int syspin, threeb, fourb;
-    char taudec[6];
-};
-extern Hwdspn_t* gHwdspn ;
-
-struct Hwspin_t {
-    complex<double> mespn[2400]	/* was [2][2][2][2][3][50] */, rhospn[200]	/* was [2][2][50] */;
-    double spncfc[450]	/* was [3][3][50] */;
-    int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[4000], nsntry;
-    int decspn[50];
-    int ncfl[50], spcopt;
-};
-extern Hwspin_t* gHwspin;
-
-struct Hwstau_t {
-    int jak1, jak2, itdkrc, ifphot;
-};
-
-extern Hwstau_t* gHwstau;
-//end v6400 adds
-
-
-
-
-
-struct Hwumsc_t {
-    int lhwout;
-} ;
-
-extern Hwumsc_t* gHwumsc;
-
-
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig6400.h b/Generators/Herwig_i/Herwig_i/herwig6400.h
deleted file mode 100644
index ede9e9130f0c83d393a0535d73bb40c8d5c31f46..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig6400.h
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __HERWIG64_HH__
-#define __HERWIG64_HH__
-
-/* Common Block Declarations */
-#include <complex>
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-    double alpfac, brhig[12], enhanc[12], gammax, rhohep[12000];
-    int iophig, modbos[5];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-    int idhw[4000], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[4], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, dmssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwgrav_t {
-    double grvlam, emgrv, gamgrv;
-} ;
-
-extern  Hwgrav_t* gHwgrav ;
-
-struct Hw6202_t {
-    double vipwid[3], dxrcyl, dxzmax, dxrsph;
-    int wzrfr, fix4jt;
-    int imssm, ihiggs, parity, lrsusy;
-} ;
-
-extern  Hw6202_t* gHw6202 ;
-
-//end v 6202 adds
-
-// v 6203
-
-struct Hw6203_t {
-    double abwgt, abwsum, avabw;
-    int nnegwt, nnegev;
-    bool negwts;
-} ;
-
-extern  Hw6203_t* gHw6203;
-
-// begin v 6301 adds
-
-struct Hw6300_t {
-    double mjjmin, chnprb[20];
-    int iopstp, iopsh;
-    bool  optm, chon[20];
-} ;
-
-extern  Hw6300_t* gHw6300 ;
-
-struct  Hwpmrs_t {
-    double fmrs[44688]	/* was [3][8][49][38] */;
-} ;
-
-extern  Hwpmrs_t* gHwpmrs ;
-
-struct Hwcirc_t {
-    int circop, circac, circvr, circrv, circch;
-} ;
-
-extern  Hwcirc_t* gHwcirc ;
-
-
-
-//end v6301 adds
-
-// v6.400
-
-
-struct Hwdspb_t {
-    double abmode[100]	/* was [2][50] */, bbmode[1200]	/* was [2][12]
-	    [50] */, pbmode[600]	/* was [12][50] */, wtbmax[600]	/* was [12][50] */;
-    int idbprt[50], ibdrtp[50], ibmode[50], nbmode;
-};
-
-extern Hwdspb_t* gHwdspb ;
-
-
-struct Hwdsp2_t {
-    double a2mode[1000]	/* was [2][500] */, p2mode[500], wt2max[500];
-    int id2prt[500], i2drtp[500], n2mode;
-};
-
-extern Hwdsp2_t* gHwdsp2 ;
-
-struct Hwdsp3_t {
-    double a3mode[8000]	/* was [2][8][500] */, b3mode[8000]	/* was [2][8][500] */, p3mode[500], wt3max[500], spn3cf[4500]	/* was [3][3][500] */;
-    int id3prt[500], i3mode[4000]	/* was [8][500] */, i3drtp[4000]	/* was [8][500] */, n3mode, ndi3by[500], n3ncfl[500], i3drcf[4000] /* was [8][500] */;
-};
-
-extern Hwdsp3_t* gHwdsp3 ;
-
-struct Hwdsp4_t {
-    double a4mode[96]	/* was [2][12][4] */, b4mode[96]	/* was [2][12][4] */, p4mode[576]	/* was [12][12][4] */, wt4max[576]	/* was [12][12][4] */;
-    int id4prt[4], i4mode[8]	/* was [2][4] */, n4mode;
-};
-
-extern Hwdsp4_t* gHwdsp4 ;
-
-struct Hwdspn_t {
-    int ndecsy, nsearch, lrdec, lwdec;
-    bool syspin, threeb, fourb;
-    char taudec[6];
-};
-extern Hwdspn_t* gHwdspn ;
-
-struct Hwspin_t {
-    complex<double> mespn[2400]	/* was [2][2][2][2][3][50] */, rhospn[200]	/* was [2][2][50] */;
-    double spncfc[450]	/* was [3][3][50] */;
-    int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[4000], nsntry;
-    bool decspn[50];
-    int ncfl[50], spcopt;
-};
-extern Hwspin_t* gHwspin;
-
-struct Hwstau_t {
-    int jak1, jak2, itdkrc, ifphot;
-};
-
-extern Hwstau_t* gHwstau;
-//end v6400 adds
-
-
-
-
-
-struct Hwumsc_t {
-    int lhwout;
-} ;
-
-extern Hwumsc_t* gHwumsc;
-
-
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig6400.inc b/Generators/Herwig_i/Herwig_i/herwig6400.inc
deleted file mode 100644
index a128e27b83b96014c7bfe1b5bb99f535c2718105..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig6400.inc
+++ /dev/null
@@ -1,329 +0,0 @@
-C           ****COMMON BLOCK FILE FOR HERWIG VERSION 6.4****
-C
-C ALTERATIONS: Layout completely overhauled for 5.9
-C
-C
-C New common blocks added for version 6.1:
-C              HWCLUS,HWSUSY,HWRPAR,HWMINB
-C
-C New variables added for version 6.1:
-C              OMHMIX,ET2MIX,PH3MIX,IOP4JT,NPRFMT,
-C              PRNDEF,PRNTEX,PRNWEB,EFFMIN,GCUTME,
-C              IOP4JT,NPRFMT                       see HWPRAM
-C              Y4JT,DURHAM                         see HWHARD
-C              QORQQB,QBORQQ                       see HWPROP
-C              NRECO                               see HWUCLU
-C              TXNAME                              see HWUNAM
-C              PPCL,NCL,IDCL                       see HWCLUS
-C              TANB,ALPHAH,COSBPA,SINBPA,COSBMA,
-C              SINBMA,COSA,SINA,COSB,SINB,COTB,
-C              ZMIXSS,ZMXNSS,ZSGNSS,LFCH,RFCH,
-C              SLFCH,SRFCH,WMXUSS,WMXVSS,WSGNSS,
-C              QMIXSS,LMIXSS,THETAT,THETAB,THETAL,
-C              ATSS,ABSS,ALSS,MUSS,FACTSS,GHWWSS,
-C              GHZZSS,GHDDSS,GHUUSS,GHWHSS,GHSQSS,
-C              XLMNSS,RMMNSS,DMSSM,SENHNC,
-C              SSPARITY,SUSYIN                     see HWSUSY
-C              LAMDA1,LAMDA2,LAMDA3,HRDCOL,RPARTY,
-C              COLUPD                              see HWRPAR
-C              PMBN1,PMBN2,PMBN3,PMBK1,PMBK2,
-C              PMBM1,PMBM2,PMBP1,PMBP2,PMBP3       see HWMINB
-C
-C New parameters added for version 6.1:
-C              NMXCL
-C
-C Parameter NMXRES raised to 500
-C
-C Scalar variables changed to arrays of size 2:
-C              CLSMR,PSPLT,CLDIR                   see HWPRAM
-C
-C   NEW for HERWIG6.200
-C
-C New common blocks added for version 6.2:
-C	       HWGRAV 				   see HWHGRV
-C
-C   NEW for HERWIG6.202
-C
-C New common block added for version 6.202:
-C              HW6202
-C which contains all other new variables, parameters and
-C control flags introduced since version 6.1, so that
-C other common blocks become identical to version 6.1
-C
-C New parameters added for version 6.2:
-C	       VIPWID,DXRCYL,DXZMAX,DXRSPH,LRSUSY  see HWIGIN	
-C	       GRVLAM,EMGRV,GAMGRV		   see HWHGRV
-C
-C New control flags added for version 6.2:
-C              WZRFR                               see HWBJCO
-C              FIX4JT                              see HWIGIN
-C              IMSSM,IHIGGS                        see HWUINC
-C
-C New variable added for version 6.2:
-C              PARITY                              see HWUINC
-C
-C  Version 6.203:
-C
-C  NMXHEP raised to 4000 for LHC studies
-C
-C
-      IMPLICIT NONE
-      DOUBLE PRECISION ZERO,ONE,TWO,THREE,FOUR,HALF
-      PARAMETER (ZERO =0.D0, ONE =1.D0, TWO =2.D0,
-     &           THREE=3.D0, FOUR=4.D0, HALF=0.5D0)
-C
-      DOUBLE PRECISION
-     & ACCUR,AFCH,ALPFAC,ALPHEM,ANOMSC,ASFIXD,AVWGT,B1LIM,BETAF,BRFRAC,
-     & BRHIG,BTCLM,CAFAC,CFFAC,CLDKWT,CLMAX,CLPOW,CLQ,CLSMR,CMMOM,COSS,
-     & COSTH,CSPEED,CTHRPW,CTMAX,DECPAR,DECWT,DISF,DKLTM,EBEAM1,EBEAM2,
-     & EMLST,EMMAX,EMMIN,EMPOW,EMSCA,ENHANC,ENSOF,EPOLN,ETAMIX,EVWGT,
-     & EXAG,F0MIX,F1MIX,F2MIX,GAMH,GAMMAX,GAMW,GAMWT,GAMZ,GAMZP,GCOEF,
-     & GEV2NB,GEV2MM,GPOLN,H1MIX,HBAR,HARDST,OMEGA0,PBEAM1,PBEAM2,PDIQK,
-     & PGSMX,PGSPL,PHEP,PHIMIX,PHIPAR,PHOMAS,PIFAC,PLTCUT,PPAR,PPOLN,
-     & PRECO,PRSOF,PSPLT,PTINT,PTMAX,PTMIN,PTPOW,PTRMS,PXRMS,PWT,Q2MAX,
-     & Q2MIN,Q2POW,Q2WWMN,Q2WWMX,QCDL3,QCDL5,QCDLAM,QDIQK,QEV,QFCH,QG,
-     & QLIM,QSPAC,QV,QWT,REPWT,RESN,RHOHEP,RHOPAR,RLTIM,RMASS,RMIN,
-     & RSPIN,SCABI,SINS,SNGWT,SWEIN,SWTEF,SUD,THMAX,TLOUT,TMTOP,TMNISR,
-     & TQWT,VCKM,VFCH,VGCUT,VHEP,VMIN2,VPAR,VPCUT,VQCUT,VTXPIP,VTXQDK,
-     & WBIGST,WGTMAX,WGTSUM,WHMIN,WSQSUM,XFACT,XLMIN,XMIX,XMRCT,XX,
-     & XXMIN,YBMAX,YBMIN,YJMAX,YJMIN,YMIX,YMRCT,YWWMAX,YWWMIN,ZBINM,
-     & ZJMAX,ZMXISR,Y4JT,EFFMIN,PPCL,
-     & TANB,ALPHAH,COSBPA,SINBPA,COSBMA,SINBMA,COSA,SINA,COSB,SINB,COTB,
-     & ZMIXSS,ZMXNSS,ZSGNSS,LFCH,RFCH,SLFCH,SRFCH, WMXUSS,WMXVSS,WSGNSS,
-     & QMIXSS,LMIXSS,THETAT,THETAB,THETAL,ATSS,ABSS,ALSS,MUSS,FACTSS,
-     & GHWWSS,GHZZSS,GHDDSS,GHUUSS,GHWHSS,GHSQSS,
-     & XLMNSS,RMMNSS,DMSSM,SENHNC,SSPARITY,LAMDA1,LAMDA2,LAMDA3,
-     & PMBN1,PMBN2,PMBN3,PMBK1,PMBK2,PMBM1,PMBM2,PMBP1,PMBP2,PMBP3,
-     & OMHMIX,ET2MIX,PH3MIX,GCUTME
-C
-      INTEGER
-     & CLDIR,IAPHIG,IBRN,IBSH,ICHRG,ICO,IDCMF,IDHEP,IDHW,IDK,IDKPRD,IDN,
-     & IDPAR,IDPDG,IERROR,IFLAV,IFLMAX,IFLMIN,IHPRO,IMQDK,INHAD,INTER,
-     & IOPDKL,IOPHIG,IOPREM,IPART1,IPART2,IPRINT,IPRO,IPROC,ISLENT,
-     & ISPAC,ISTAT,ISTHEP,ISTPAR,JCOPAR,JDAHEP,JDAPAR,JMOHEP,JMOPAR,
-     & JNHAD,LNEXT,LOCN,LOCQ,LRSUD,LSTRT,LWEVT,LWSUD,MAPQ,MAXER,MAXEV,
-     & MAXFL,MAXPR,MODBOS,MODMAX,MODPDF,NBTRY,NCLDK,NCOLO,NCTRY,NDKYS,
-     & NDTRY,NETRY,NEVHEP,NEVPAR,NFLAV,NGSPL,NHEP,NME,NMODES,NMXCDK,
-     & NMXDKS,NMXHEP,NMXJET,NMXMOD,NMXPAR,NMXQDK,NMXRES,NMXSUD,NPAR,
-     & NPRODS,NQDK,NQEV,NRES,NRN,NSPAC,NSTRU,NSTRY,NSUD,NUMER,NUMERU,
-     & NWGTS,NZBIN,SUDORD,IOP4JT,HRDCOL,NMXCL,NCL,IDCL,NPRFMT,NRECO
-C
-      LOGICAL
-     & AZSOFT,AZSPIN,BGSHAT,BREIT,CLRECO,COLISR,DKPSET,FROST,FSTEVT,
-     & FSTWGT,GENEV,GENSOF,HARDME,HVFCEN,MAXDKL,MIXING,NOSPAC,NOWGT,
-     & PRNDEC,PIPSMR,PRVTX,RSTAB,SOFTME,TMPAR,TPOL,USECMF,VTOCDK,VTORDK,
-     & ZPRIME,RPARTY,COLUPD,PRNDEF,PRNTEX,PRNWEB,DURHAM,SUSYIN,
-     & QORQQB,QBORQQ
-C
-      CHARACTER*4
-     & BDECAY
-      CHARACTER*8
-     & PART1,PART2,RNAME
-      CHARACTER*20
-     & AUTPDF
-      CHARACTER*37
-     & TXNAME
-C
-C New standard event common
-      PARAMETER (NMXHEP=4000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-C
-C Beams, process and number of events
-      COMMON/HWBEAM/IPART1,IPART2
-      COMMON/HWBMCH/PART1,PART2
-      COMMON/HWPROC/EBEAM1,EBEAM2,PBEAM1,PBEAM2,IPROC,MAXEV
-C
-C Basic parameters (and quantities derived from them)
-      COMMON/HWPRAM/AFCH(16,2),ALPHEM,B1LIM,BETAF,BTCLM,CAFAC,CFFAC,
-     & CLMAX,CLPOW,CLSMR(2),CSPEED,ENSOF,ETAMIX,F0MIX,F1MIX,F2MIX,GAMH,
-     & GAMW,GAMZ,GAMZP,GEV2NB,H1MIX,PDIQK,PGSMX,PGSPL(4),PHIMIX,PIFAC,
-     & PRSOF,PSPLT(2),PTRMS,PXRMS,QCDL3,QCDL5,QCDLAM,QDIQK,QFCH(16),QG,
-     & QSPAC,QV,SCABI,SWEIN,TMTOP,VFCH(16,2),VCKM(3,3),VGCUT,VQCUT,
-     & VPCUT,ZBINM,EFFMIN,OMHMIX,ET2MIX,PH3MIX,GCUTME,
-     & IOPREM,IPRINT,ISPAC,LRSUD,LWSUD,MODPDF(2),NBTRY,NCOLO,NCTRY,
-     & NDTRY,NETRY,NFLAV,NGSPL,NSTRU,NSTRY,NZBIN,IOP4JT(2),NPRFMT,
-     & AZSOFT,AZSPIN,CLDIR(2),HARDME,NOSPAC,PRNDEC,PRVTX,SOFTME,ZPRIME,
-     & PRNDEF,PRNTEX,PRNWEB
-C
-      COMMON/HWPRCH/AUTPDF(2),BDECAY
-C
-C Parton shower common (same format as /HEPEVT/)
-      PARAMETER (NMXPAR=500)
-      COMMON/HWPART/NEVPAR,NPAR,ISTPAR(NMXPAR),IDPAR(NMXPAR),
-     & JMOPAR(2,NMXPAR),JDAPAR(2,NMXPAR),PPAR(5,NMXPAR),VPAR(4,NMXPAR)
-C
-C Parton polarization common
-      COMMON/HWPARP/DECPAR(2,NMXPAR),PHIPAR(2,NMXPAR),RHOPAR(2,NMXPAR),
-     & TMPAR(NMXPAR)
-C
-C Electroweak boson common
-      PARAMETER (MODMAX=5)
-      COMMON/HWBOSC/ALPFAC,BRHIG(12),ENHANC(12),GAMMAX,RHOHEP(3,NMXHEP),
-     & IOPHIG,MODBOS(MODMAX)
-C
-C Parton colour common
-      COMMON/HWPARC/JCOPAR(4,NMXPAR)
-C
-C other HERWIG branching, event and hard subprocess common blocks
-      COMMON/HWBRCH/ANOMSC(2,2),HARDST,PTINT(3,2),XFACT,INHAD,JNHAD,
-     & NSPAC(7),ISLENT,BREIT,FROST,USECMF
-C
-      COMMON/HWEVNT/AVWGT,EVWGT,GAMWT,TLOUT,WBIGST,WGTMAX,WGTSUM,WSQSUM,
-     & IDHW(NMXHEP),IERROR,ISTAT,LWEVT,MAXER,MAXPR,NOWGT,NRN(2),NUMER,
-     & NUMERU,NWGTS,GENSOF
-C
-      COMMON/HWHARD/ASFIXD,CLQ(7,6),COSS,COSTH,CTMAX,DISF(13,2),EMLST,
-     & EMMAX,EMMIN,EMPOW,EMSCA,EPOLN(3),GCOEF(7),GPOLN,OMEGA0,PHOMAS,
-     & PPOLN(3),PTMAX,PTMIN,PTPOW,Q2MAX,Q2MIN,Q2POW,Q2WWMN,Q2WWMX,QLIM,
-     & SINS,THMAX,Y4JT,TMNISR,TQWT,XX(2),XLMIN,XXMIN,YBMAX,YBMIN,YJMAX,
-     & YJMIN,YWWMAX,YWWMIN,WHMIN,ZJMAX,ZMXISR,IAPHIG,IBRN(2),IBSH,
-     & ICO(10),IDCMF,IDN(10),IFLMAX,IFLMIN,IHPRO,IPRO,MAPQ(6),MAXFL,
-     & BGSHAT,COLISR,FSTEVT,FSTWGT,GENEV,HVFCEN,TPOL,DURHAM
-C
-C Arrays for particle properties (NMXRES = max no of particles defined)
-      PARAMETER(NMXRES=500)
-      COMMON/HWPROP/RLTIM(0:NMXRES),RMASS(0:NMXRES),RSPIN(0:NMXRES),
-     & ICHRG(0:NMXRES),IDPDG(0:NMXRES),IFLAV(0:NMXRES),NRES,
-     & VTOCDK(0:NMXRES),VTORDK(0:NMXRES),
-     & QORQQB(0:NMXRES),QBORQQ(0:NMXRES)
-C
-      COMMON/HWUNAM/RNAME(0:NMXRES),TXNAME(2,0:NMXRES)
-C
-C Arrays for particle decays (NMXDKS = max total no of decays,
-C                             NMXMOD = max no of modes for a particle)
-      PARAMETER(NMXDKS=4000,NMXMOD=200)
-      COMMON/HWUPDT/BRFRAC(NMXDKS),CMMOM(NMXDKS),DKLTM(NMXRES),
-     & IDK(NMXDKS),IDKPRD(5,NMXDKS),LNEXT(NMXDKS),LSTRT(NMXRES),NDKYS,
-     & NME(NMXDKS),NMODES(NMXRES),NPRODS(NMXDKS),DKPSET,RSTAB(0:NMXRES)
-C
-C Weights used in cluster decays
-      COMMON/HWUWTS/REPWT(0:3,0:4,0:4),SNGWT,DECWT,QWT(3),PWT(12),
-     & SWTEF(NMXRES)
-C
-C Parameters for cluster decays (NMXCDK = max total no of cluster
-C                                         decay channels)
-      PARAMETER(NMXCDK=4000)
-      COMMON/HWUCLU/CLDKWT(NMXCDK),CTHRPW(12,12),PRECO,RESN(12,12),
-     & RMIN(12,12),LOCN(12,12),NCLDK(NMXCDK),NRECO,CLRECO
-C
-C Variables controling mixing and vertex information
-      COMMON/HWDIST/EXAG,GEV2MM,HBAR,PLTCUT,VMIN2,VTXPIP(4),XMIX(2),
-     & XMRCT(2),YMIX(2),YMRCT(2),IOPDKL,MAXDKL,MIXING,PIPSMR
-C
-C Arrays for temporarily storing heavy-b,c-hadrons decaying partonicaly
-C (NMXQDK = max no such decays in an event)
-      PARAMETER (NMXQDK=20)
-      COMMON/HWQDKS/VTXQDK(4,NMXQDK),IMQDK(NMXQDK),LOCQ(NMXQDK),NQDK
-C
-C Parameters for Sudakov form factors
-C (NMXSUD= max no of entries in lookup table)
-      PARAMETER (NMXSUD=1024)
-      COMMON/HWUSUD/ACCUR,QEV(NMXSUD,6),SUD(NMXSUD,6),INTER,NQEV,NSUD,
-     & SUDORD
-C
-      PARAMETER (NMXJET=200)
-C
-C SUSY parameters
-      COMMON/HWSUSY/
-     & TANB,ALPHAH,COSBPA,SINBPA,COSBMA,SINBMA,COSA,SINA,COSB,SINB,COTB,
-     & ZMIXSS(4,4),ZMXNSS(4,4),ZSGNSS(4), LFCH(16),RFCH(16),
-     & SLFCH(16,4),SRFCH(16,4), WMXUSS(2,2),WMXVSS(2,2), WSGNSS(2),
-     & QMIXSS(6,2,2),LMIXSS(6,2,2),
-     & THETAT,THETAB,THETAL,ATSS,ABSS,ALSS,MUSS,FACTSS,
-     & GHWWSS(3),GHZZSS(3),GHDDSS(4),GHUUSS(4),GHWHSS(3),
-     & GHSQSS(4,6,2,2),XLMNSS,RMMNSS,DMSSM,SENHNC(24),SSPARITY,SUSYIN
-C
-C R-Parity violating parameters and colours
-      COMMON /HWRPAR/ LAMDA1(3,3,3),LAMDA2(3,3,3),
-     &                LAMDA3(3,3,3),HRDCOL(2,5),RPARTY,COLUPD
-C
-C Parameters for minimum bias/soft underlying event
-      COMMON/HWMINB/
-     & PMBN1,PMBN2,PMBN3,PMBK1,PMBK2,PMBM1,PMBM2,PMBP1,PMBP2,PMBP3
-C
-C Cluster common used by soft event routines
-      PARAMETER (NMXCL=500)
-      COMMON/HWCLUS/PPCL(5,NMXCL),IDCL(NMXCL),NCL
-C
-C  Parameters for resonant graviton production
-      DOUBLE PRECISION GRVLAM,EMGRV,GAMGRV
-      COMMON/HWGRAV/GRVLAM,EMGRV,GAMGRV
-C
-C  Other new parameters for version 6.2
-      DOUBLE PRECISION VIPWID,DXRCYL,DXZMAX,DXRSPH
-      LOGICAL WZRFR,FIX4JT
-      INTEGER IMSSM,IHIGGS,PARITY,LRSUSY
-      COMMON/HW6202/VIPWID(3),DXRCYL,DXZMAX,DXRSPH,WZRFR,FIX4JT,
-     & IMSSM,IHIGGS,PARITY,LRSUSY
-C
-C  New parameters for version 6.203
-      DOUBLE PRECISION ABWGT,ABWSUM,AVABW
-      INTEGER NNEGWT,NNEGEV
-      LOGICAL NEGWTS
-      COMMON/HW6203/ABWGT,ABWSUM,AVABW,NNEGWT,NNEGEV,NEGWTS
-C
-C  New parameters for version 6.3
-      INTEGER IMAXCH,IMAXOP
-      PARAMETER (IMAXCH=20,IMAXOP=40)
-      DOUBLE PRECISION MJJMIN,CHNPRB(IMAXCH)
-      INTEGER IOPSTP,IOPSH
-      LOGICAL OPTM,CHON(IMAXCH)
-      COMMON/HW6300/MJJMIN,CHNPRB,IOPSTP,IOPSH,OPTM,CHON
-C  New PDF's for version 6.3
-      INTEGER NXMRS,NQMRS,NPMRS
-      PARAMETER(NXMRS=49,NQMRS=37,NPMRS=8)
-      DOUBLE PRECISION FMRS(3,NPMRS,NXMRS,NQMRS+1)
-      COMMON /HWPMRS/FMRS
-C  Circe interface for version 6.3
-      INTEGER CIRCOP,CIRCAC,CIRCVR,CIRCRV,CIRCCH
-      COMMON /HWCIRC/CIRCOP,CIRCAC,CIRCVR,CIRCRV,CIRCCH
-C  New parameters and commons for spin correlations
-C--constants for the arrays
-      INTEGER NMXSPN,NCFMAX
-      PARAMETER(NMXSPN=50,NCFMAX=3)
-      INTEGER NMODE2,NMODE3,NDIAGR,NMODEB,NMODE4
-      PARAMETER(NMODE2=500,NMODE3=500,NDIAGR=8,NMODEB=50,NMODE4=4)
-C--common block for X --> X gauge boson
-      DOUBLE PRECISION ABMODE(2,NMODEB),BBMODE(2,12,NMODEB),
-     & PBMODE(12,NMODEB),WTBMAX(12,NMODEB)
-      INTEGER IDBPRT(NMODEB),IBMODE(NMODEB),IBDRTP(NMODEB),NBMODE
-      COMMON /HWDSPB/ABMODE,BBMODE,PBMODE,WTBMAX,IDBPRT,IBDRTP,IBMODE,
-     & NBMODE
-C--common block for two body decays	
-      DOUBLE PRECISION A2MODE(2,NMODE2),P2MODE(NMODE2),WT2MAX(NMODE2)
-      INTEGER ID2PRT(NMODE2),I2DRTP(NMODE2),N2MODE
-      COMMON /HWDSP2/A2MODE,P2MODE,WT2MAX,ID2PRT,I2DRTP,N2MODE
-C--common block for three body decays
-      DOUBLE PRECISION A3MODE(2,NDIAGR,NMODE3),B3MODE(2,NDIAGR,NMODE3),
-     & P3MODE(NMODE3),WT3MAX(NMODE3),SPN3CF(NCFMAX,NCFMAX,NMODE3)
-      INTEGER ID3PRT(NMODE3),I3MODE(NDIAGR,NMODE3),
-     & I3DRTP(NDIAGR,NMODE3),N3MODE,NDI3BY(NMODE3),N3NCFL(NMODE3),
-     &	I3DRCF(NDIAGR,NMODE3)
-      COMMON /HWDSP3/A3MODE,B3MODE,P3MODE,WT3MAX,SPN3CF,ID3PRT,I3MODE,
-     &	I3DRTP,N3MODE,NDI3BY,N3NCFL,I3DRCF
-C--common block for four body decays
-      DOUBLE PRECISION A4MODE(2,12,NMODE4),B4MODE(2,12,NMODE4),
-     & P4MODE(12,12,NMODE4),WT4MAX(12,12,NMODE4)
-      INTEGER ID4PRT(NMODE4),I4MODE(2,NMODE4),N4MODE
-      COMMON /HWDSP4/A4MODE,B4MODE,P4MODE,WT4MAX,ID4PRT,I4MODE,N4MODE
-C--common block for spin correlations in event
-      INTEGER NDECSY,NSEARCH,LRDEC,LWDEC
-      LOGICAL SYSPIN,THREEB,FOURB
-      CHARACTER *6 TAUDEC
-      COMMON /HWDSPN/NDECSY,NSEARCH,LRDEC,LWDEC,SYSPIN,THREEB,
-     &	FOURB,TAUDEC
-
-      INTEGER IDSPN(NMXSPN),JMOSPN(NMXSPN),JDASPN(2,NMXSPN),NSPN,
-     &	ISNHEP(NMXHEP),NSNTRY,NCFL(NMXSPN),SPCOPT
-      DOUBLE COMPLEX MESPN(2,2,2,2,NCFMAX,NMXSPN),RHOSPN(2,2,NMXSPN)
-      DOUBLE PRECISION SPNCFC(NCFMAX,NCFMAX,NMXSPN)
-      LOGICAL DECSPN(NMXSPN)
-      COMMON /HWSPIN/MESPN,RHOSPN,SPNCFC,IDSPN,JMOSPN,JDASPN,
-     &	NSPN,ISNHEP,NSNTRY,DECSPN,NCFL,SPCOPT
-      INTEGER JAK1,JAK2,ITDKRC,IFPHOT
-      COMMON /HWSTAU/ JAK1,JAK2,ITDKRC,IFPHOT
-
-C---OUTPUT UNIT NUMBER
-      COMMON/HWUMSC/LHWOUT
-      INTEGER LHWOUT
diff --git a/Generators/Herwig_i/Herwig_i/herwig6500.h b/Generators/Herwig_i/Herwig_i/herwig6500.h
deleted file mode 100644
index 571904e1ee80651453c6622a5785728e166f9e76..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig6500.h
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __HERWIG65_HH__
-#define __HERWIG65_HH__
-
-/* Common Block Declarations */
-#include <complex>
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-    double alpfac, brhig[12], enhanc[12], gammax, rhohep[12000];
-//     int iophig, modbos[5];
-    int iophig, modbos[8];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-    int idhw[4000], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[5], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, dmssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwgrav_t {
-    double grvlam, emgrv, gamgrv;
-} ;
-
-extern  Hwgrav_t* gHwgrav ;
-
-struct Hw6202_t {
-    double vipwid[3], dxrcyl, dxzmax, dxrsph;
-    int wzrfr, fix4jt;
-    int imssm, ihiggs, parity, lrsusy;
-} ;
-
-extern  Hw6202_t* gHw6202 ;
-
-//end v 6202 adds
-
-// v 6203
-
-struct Hw6203_t {
-    double abwgt, abwsum, avabw;
-    int nnegwt, nnegev;
-    int negwts;
-} ;
-
-extern  Hw6203_t* gHw6203;
-
-// begin v 6301 adds
-
-struct Hw6300_t {
-    double mjjmin, chnprb[20];
-    int iopstp, iopsh;
-    int  optm, chon[20];
-} ;
-
-extern  Hw6300_t* gHw6300 ;
-
-struct  Hwpmrs_t {
-    double fmrs[44688]	/* was [3][8][49][38] */;
-} ;
-
-extern  Hwpmrs_t* gHwpmrs ;
-
-struct Hwcirc_t {
-    int circop, circac, circvr, circrv, circch;
-} ;
-
-extern  Hwcirc_t* gHwcirc ;
-
-
-
-//end v6301 adds
-
-// v6.400
-
-
-struct Hwdspb_t {
-    double abmode[100]	/* was [2][50] */, bbmode[1200]	/* was [2][12]
-	    [50] */, pbmode[600]	/* was [12][50] */, wtbmax[600]	/* was [12][50] */;
-    int idbprt[50], ibdrtp[50], ibmode[50], nbmode;
-};
-
-extern Hwdspb_t* gHwdspb ;
-
-
-struct Hwdsp2_t {
-    double a2mode[1000]	/* was [2][500] */, p2mode[500], wt2max[500];
-    int id2prt[500], i2drtp[500], n2mode;
-};
-
-extern Hwdsp2_t* gHwdsp2 ;
-
-struct Hwdsp3_t {
-    double a3mode[8000]	/* was [2][8][500] */, b3mode[8000]	/* was [2][8][500] */, p3mode[500], wt3max[500], spn3cf[4500]	/* was [3][3][500] */;
-    int id3prt[500], i3mode[4000]	/* was [8][500] */, i3drtp[4000]	/* was [8][500] */, n3mode, ndi3by[500], n3ncfl[500], i3drcf[4000] /* was [8][500] */;
-};
-
-extern Hwdsp3_t* gHwdsp3 ;
-
-struct Hwdsp4_t {
-    double a4mode[96]	/* was [2][12][4] */, b4mode[96]	/* was [2][12][4] */, p4mode[576]	/* was [12][12][4] */, wt4max[576]	/* was [12][12][4] */;
-    int id4prt[4], i4mode[8]	/* was [2][4] */, n4mode;
-};
-
-extern Hwdsp4_t* gHwdsp4 ;
-
-struct Hwdspn_t {
-    int ndecsy, nsearch, lrdec, lwdec;
-    int syspin, threeb, fourb;
-    char taudec[6];
-};
-extern Hwdspn_t* gHwdspn ;
-
-struct Hwspin_t {
-    std::complex<double> mespn[2400]	/* was [2][2][2][2][3][50] */, rhospn[200]	/* was [2][2][50] */;
-    double spncfc[450]	/* was [3][3][50] */;
-    int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[4000], nsntry;
-    int decspn[50];
-    int ncfl[50], spcopt;
-};
-extern Hwspin_t* gHwspin;
-
-struct Hwstau_t {
-    int jak1, jak2, itdkrc, ifphot;
-};
-
-extern Hwstau_t* gHwstau;
-//end v6400 adds
-
-
-// v6500
-
-struct Hwgupr_t {
-  double lhwgt[100], lhwgts[100], lhmxsm, lhxsct[100], lhxerr[100], lhxmax[100];
-  int    lhiwgt[100], ityplh, lhnevt[100];
-  int    lhsoft, lhglsf;
-};
-extern Hwgupr_t* gHwgupr;
-
-struct Hw6500_t {
-  int prespl;
-};
-extern Hw6500_t* gHw6500;
-
-//end v6500 adds
-
-
-struct Hwumsc_t {
-    int lhwout;
-} ;
-
-extern Hwumsc_t* gHwumsc;
-
-
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig6504.h b/Generators/Herwig_i/Herwig_i/herwig6504.h
deleted file mode 100644
index 15b8692db2eb57223b0da18d713c18097c4febcd..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig6504.h
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __HERWIG65_HH__
-#define __HERWIG65_HH__
-
-/* Common Block Declarations */
-#include <complex>
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-    double alpfac, brhig[12], enhanc[12], gammax, rhohep[12000];
-//     int iophig, modbos[5];
-    int iophig, modbos[9];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-    int idhw[4000], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[5], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, dmssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwgrav_t {
-    double grvlam, emgrv, gamgrv;
-} ;
-
-extern  Hwgrav_t* gHwgrav ;
-
-struct Hw6202_t {
-    double vipwid[3], dxrcyl, dxzmax, dxrsph;
-    int wzrfr, fix4jt;
-    int imssm, ihiggs, parity, lrsusy;
-} ;
-
-extern  Hw6202_t* gHw6202 ;
-
-//end v 6202 adds
-
-// v 6203
-
-struct Hw6203_t {
-    double abwgt, abwsum, avabw;
-    int nnegwt, nnegev;
-    int negwts;
-} ;
-
-extern  Hw6203_t* gHw6203;
-
-// begin v 6301 adds
-
-struct Hw6300_t {
-    double mjjmin, chnprb[20];
-    int iopstp, iopsh;
-    int  optm, chon[20];
-} ;
-
-extern  Hw6300_t* gHw6300 ;
-
-struct  Hwpmrs_t {
-    double fmrs[44688]	/* was [3][8][49][38] */;
-} ;
-
-extern  Hwpmrs_t* gHwpmrs ;
-
-struct Hwcirc_t {
-    int circop, circac, circvr, circrv, circch;
-} ;
-
-extern  Hwcirc_t* gHwcirc ;
-
-
-
-//end v6301 adds
-
-// v6.400
-
-
-struct Hwdspb_t {
-    double abmode[100]	/* was [2][50] */, bbmode[1200]	/* was [2][12]
-	    [50] */, pbmode[600]	/* was [12][50] */, wtbmax[600]	/* was [12][50] */;
-    int idbprt[50], ibdrtp[50], ibmode[50], nbmode;
-};
-
-extern Hwdspb_t* gHwdspb ;
-
-
-struct Hwdsp2_t {
-    double a2mode[1000]	/* was [2][500] */, p2mode[500], wt2max[500];
-    int id2prt[500], i2drtp[500], n2mode;
-};
-
-extern Hwdsp2_t* gHwdsp2 ;
-
-struct Hwdsp3_t {
-    double a3mode[8000]	/* was [2][8][500] */, b3mode[8000]	/* was [2][8][500] */, p3mode[500], wt3max[500], spn3cf[4500]	/* was [3][3][500] */;
-    int id3prt[500], i3mode[4000]	/* was [8][500] */, i3drtp[4000]	/* was [8][500] */, n3mode, ndi3by[500], n3ncfl[500], i3drcf[4000] /* was [8][500] */;
-};
-
-extern Hwdsp3_t* gHwdsp3 ;
-
-struct Hwdsp4_t {
-    double a4mode[96]	/* was [2][12][4] */, b4mode[96]	/* was [2][12][4] */, p4mode[576]	/* was [12][12][4] */, wt4max[576]	/* was [12][12][4] */;
-    int id4prt[4], i4mode[8]	/* was [2][4] */, n4mode;
-};
-
-extern Hwdsp4_t* gHwdsp4 ;
-
-struct Hwdspn_t {
-    int ndecsy, nsearch, lrdec, lwdec;
-    int syspin, threeb, fourb;
-    char taudec[6];
-};
-extern Hwdspn_t* gHwdspn ;
-
-struct Hwspin_t {
-    std::complex<double> mespn[2400]	/* was [2][2][2][2][3][50] */, rhospn[200]	/* was [2][2][50] */;
-    double spncfc[450]	/* was [3][3][50] */;
-    int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[4000], nsntry;
-    int decspn[50];
-    int ncfl[50], spcopt;
-};
-extern Hwspin_t* gHwspin;
-
-struct Hwstau_t {
-    int jak1, jak2, itdkrc, ifphot;
-};
-
-extern Hwstau_t* gHwstau;
-//end v6400 adds
-
-
-// v6500
-
-struct Hwgupr_t {
-  double lhwgt[100], lhwgts[100], lhmxsm, lhxsct[100], lhxerr[100], lhxmax[100];
-  int    lhiwgt[100], ityplh, lhnevt[100];
-  int    lhsoft, lhglsf;
-};
-extern Hwgupr_t* gHwgupr;
-
-struct Hw6500_t {
-  int prespl;
-};
-extern Hw6500_t* gHw6500;
-
-//end v6500 adds
-
-// v6504
-
-struct Hw6504_t {
-  int itoprd;
-};
-extern Hw6504_t* gHw6504;
-
-//end v6504 adds
-
-// Jimmy common blocks
-
-struct Jmflag_t {
-  int jmp1, jmp2, jmbug, mscat, fn_type, msflag;
-};
-extern Jmflag_t* gJmflag;
-
-// end Jimmy common blocks
-
-// struct Hwumsc_t {
-//     int lhwout;
-// } ;
-
-// extern Hwumsc_t* gHwumsc;
-
-
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig6505.h b/Generators/Herwig_i/Herwig_i/herwig6505.h
deleted file mode 100644
index d26dd382dccfcbee5e02a1158e463d1f9da135a6..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig6505.h
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __HERWIG65_HH__
-#define __HERWIG65_HH__
-
-/* Common Block Declarations */
-#include <complex>
-
-const int m_nmxhep = 10000;
-
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-  // rhohep = 3*NMXHEP
-//   double alpfac, brhig[12], enhanc[12], gammax, rhohep[30000];
-  double alpfac, brhig[12], enhanc[12], gammax, rhohep[3*m_nmxhep];
-  int iophig, modbos[50];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-  // idhw = NMXHEP
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-//     int idhw[10000], ierror, istat, lwevt, maxer, maxpr;
-    int idhw[m_nmxhep], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[5], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, dmssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwgrav_t {
-    double grvlam, emgrv, gamgrv;
-} ;
-
-extern  Hwgrav_t* gHwgrav ;
-
-struct Hw6202_t {
-    double vipwid[3], dxrcyl, dxzmax, dxrsph;
-    int wzrfr, fix4jt;
-    int imssm, ihiggs, parity, lrsusy;
-} ;
-
-extern  Hw6202_t* gHw6202 ;
-
-//end v 6202 adds
-
-// v 6203
-
-struct Hw6203_t {
-    double abwgt, abwsum, avabw;
-    int nnegwt, nnegev;
-    int negwts;
-} ;
-
-extern  Hw6203_t* gHw6203;
-
-// begin v 6301 adds
-
-struct Hw6300_t {
-    double mjjmin, chnprb[20];
-    int iopstp, iopsh;
-    int  optm, chon[20];
-} ;
-
-extern  Hw6300_t* gHw6300 ;
-
-struct  Hwpmrs_t {
-    double fmrs[44688]	/* was [3][8][49][38] */;
-} ;
-
-extern  Hwpmrs_t* gHwpmrs ;
-
-struct Hwcirc_t {
-    int circop, circac, circvr, circrv, circch;
-} ;
-
-extern  Hwcirc_t* gHwcirc ;
-
-
-
-//end v6301 adds
-
-// v6.400
-
-
-struct Hwdspb_t {
-    double abmode[100]	/* was [2][50] */, bbmode[1200]	/* was [2][12]
-	    [50] */, pbmode[600]	/* was [12][50] */, wtbmax[600]	/* was [12][50] */;
-    int idbprt[50], ibdrtp[50], ibmode[50], nbmode;
-};
-
-extern Hwdspb_t* gHwdspb ;
-
-
-struct Hwdsp2_t {
-    double a2mode[1000]	/* was [2][500] */, p2mode[500], wt2max[500];
-    int id2prt[500], i2drtp[500], n2mode;
-};
-
-extern Hwdsp2_t* gHwdsp2 ;
-
-struct Hwdsp3_t {
-    double a3mode[8000]	/* was [2][8][500] */, b3mode[8000]	/* was [2][8][500] */, p3mode[500], wt3max[500], spn3cf[4500]	/* was [3][3][500] */;
-    int id3prt[500], i3mode[4000]	/* was [8][500] */, i3drtp[4000]	/* was [8][500] */, n3mode, ndi3by[500], n3ncfl[500], i3drcf[4000] /* was [8][500] */;
-};
-
-extern Hwdsp3_t* gHwdsp3 ;
-
-struct Hwdsp4_t {
-    double a4mode[96]	/* was [2][12][4] */, b4mode[96]	/* was [2][12][4] */, p4mode[576]	/* was [12][12][4] */, wt4max[576]	/* was [12][12][4] */;
-    int id4prt[4], i4mode[8]	/* was [2][4] */, n4mode;
-};
-
-extern Hwdsp4_t* gHwdsp4 ;
-
-struct Hwdspn_t {
-    int ndecsy, nsearch, lrdec, lwdec;
-    int syspin, threeb, fourb;
-    char taudec[6];
-};
-extern Hwdspn_t* gHwdspn ;
-
-struct Hwspin_t {
-  // isnhep = NMXHEP
-    std::complex<double> mespn[2400]	/* was [2][2][2][2][3][50] */, rhospn[200]	/* was [2][2][50] */;
-    double spncfc[450]	/* was [3][3][50] */;
-//     int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[10000], nsntry;
-    int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[m_nmxhep], nsntry;
-    int decspn[50];
-    int ncfl[50], spcopt;
-};
-extern Hwspin_t* gHwspin;
-
-struct Hwstau_t {
-    int jak1, jak2, itdkrc, ifphot;
-};
-
-extern Hwstau_t* gHwstau;
-//end v6400 adds
-
-
-// v6500
-
-struct Hwgupr_t {
-  double lhwgt[100], lhwgts[100], lhmxsm, lhxsct[100], lhxerr[100], lhxmax[100];
-  int    lhiwgt[100], ityplh, lhnevt[100];
-  int    lhsoft, lhglsf;
-};
-extern Hwgupr_t* gHwgupr;
-
-struct Hw6500_t {
-  int prespl;
-};
-extern Hw6500_t* gHw6500;
-
-//end v6500 adds
-
-// v6504
-
-struct Hw6504_t {
-  int itoprd;
-};
-extern Hw6504_t* gHw6504;
-
-//end v6504 adds
-
-// Jimmy common blocks
-
-struct Jmparm_t {
-  double ptjim, ygamma, jmzmin, jmrad[264], phad, jmu2, jmv2, jmarry[17][106], nlost, totscat;
-  int anomoff, jcmvar, jmueo, jmptyp[117], jmbug, fn_type, msflag, maxmstry;
-};
-extern Jmparm_t* gJmparm;
-
-// end Jimmy common blocks
-
-// struct Hwumsc_t {
-//     int lhwout;
-// } ;
-
-// extern Hwumsc_t* gHwumsc;
-
-
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig6510.h b/Generators/Herwig_i/Herwig_i/herwig6510.h
deleted file mode 100644
index ce0e4a82900ea707d688d94d6e89e651c2829faf..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig6510.h
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef __HERWIG65_HH__
-#define __HERWIG65_HH__
-
-/* Common Block Declarations */
-#include <complex>
-
-const int m_nmxhep = 10000;
-
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-  // rhohep = 3*NMXHEP
-//   double alpfac, brhig[12], enhanc[12], gammax, rhohep[30000];
-  double alpfac, brhig[12], enhanc[12], gammax, rhohep[3*m_nmxhep];
-  int iophig, modbos[50];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-  // idhw = NMXHEP
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-//     int idhw[10000], ierror, istat, lwevt, maxer, maxpr;
-    int idhw[m_nmxhep], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[5], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, dmssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwgrav_t {
-    double grvlam, emgrv, gamgrv;
-} ;
-
-extern  Hwgrav_t* gHwgrav ;
-
-struct Hw6202_t {
-    double vipwid[3], dxrcyl, dxzmax, dxrsph;
-    int wzrfr, fix4jt;
-    int imssm, ihiggs, parity, lrsusy;
-} ;
-
-extern  Hw6202_t* gHw6202 ;
-
-//end v 6202 adds
-
-// v 6203
-
-struct Hw6203_t {
-    double abwgt, abwsum, avabw;
-    int nnegwt, nnegev;
-    int negwts;
-} ;
-
-extern  Hw6203_t* gHw6203;
-
-// begin v 6301 adds
-
-struct Hw6300_t {
-    double mjjmin, chnprb[20];
-    int iopstp, iopsh;
-    int  optm, chon[20];
-} ;
-
-extern  Hw6300_t* gHw6300 ;
-
-struct  Hwpmrs_t {
-    double fmrs[44688]	/* was [3][8][49][38] */;
-} ;
-
-extern  Hwpmrs_t* gHwpmrs ;
-
-struct Hwcirc_t {
-    int circop, circac, circvr, circrv, circch;
-} ;
-
-extern  Hwcirc_t* gHwcirc ;
-
-
-
-//end v6301 adds
-
-// v6.400
-
-
-struct Hwdspb_t {
-    double abmode[100]	/* was [2][50] */, bbmode[1200]	/* was [2][12]
-	    [50] */, pbmode[600]	/* was [12][50] */, wtbmax[600]	/* was [12][50] */;
-    int idbprt[50], ibdrtp[50], ibmode[50], nbmode;
-};
-
-extern Hwdspb_t* gHwdspb ;
-
-
-struct Hwdsp2_t {
-    double a2mode[1000]	/* was [2][500] */, p2mode[500], wt2max[500];
-    int id2prt[500], i2drtp[500], n2mode;
-};
-
-extern Hwdsp2_t* gHwdsp2 ;
-
-struct Hwdsp3_t {
-    double a3mode[8000]	/* was [2][8][500] */, b3mode[8000]	/* was [2][8][500] */, p3mode[500], wt3max[500], spn3cf[4500]	/* was [3][3][500] */;
-    int id3prt[500], i3mode[4000]	/* was [8][500] */, i3drtp[4000]	/* was [8][500] */, n3mode, ndi3by[500], n3ncfl[500], i3drcf[4000] /* was [8][500] */;
-};
-
-extern Hwdsp3_t* gHwdsp3 ;
-
-struct Hwdsp4_t {
-    double a4mode[96]	/* was [2][12][4] */, b4mode[96]	/* was [2][12][4] */, p4mode[576]	/* was [12][12][4] */, wt4max[576]	/* was [12][12][4] */;
-    int id4prt[4], i4mode[8]	/* was [2][4] */, n4mode;
-};
-
-extern Hwdsp4_t* gHwdsp4 ;
-
-struct Hwdspn_t {
-    int ndecsy, nsearch, lrdec, lwdec;
-    int syspin, threeb, fourb;
-    char taudec[6];
-};
-extern Hwdspn_t* gHwdspn ;
-
-struct Hwspin_t {
-  // isnhep = NMXHEP
-    std::complex<double> mespn[2400]	/* was [2][2][2][2][3][50] */, rhospn[200]	/* was [2][2][50] */;
-    double spncfc[450]	/* was [3][3][50] */;
-//     int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[10000], nsntry;
-    int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[m_nmxhep], nsntry;
-    int decspn[50];
-    int ncfl[50], spcopt;
-};
-extern Hwspin_t* gHwspin;
-
-struct Hwstau_t {
-    int jak1, jak2, itdkrc, ifphot;
-};
-
-extern Hwstau_t* gHwstau;
-//end v6400 adds
-
-
-// v6500
-
-struct Hwgupr_t {
-  double lhwgt[100], lhwgts[100], lhmxsm, lhxsct[100], lhxerr[100], lhxmax[100];
-  int    lhiwgt[100], ityplh, lhnevt[100];
-  int    lhsoft, lhglsf;
-};
-extern Hwgupr_t* gHwgupr;
-
-struct Hw6500_t {
-  int prespl;
-};
-extern Hw6500_t* gHw6500;
-
-//end v6500 adds
-
-// v6504
-
-struct Hw6504_t {
-  int itoprd;
-};
-extern Hw6504_t* gHw6504;
-
-//end v6504 adds
-
-// v6506
-
-struct Hw6506_t {
-  double pdfx0, pdfpow;
-};
-extern Hw6506_t* gHw6506;
-
-//end v6506 adds
-
-// v6506
-
-struct Hw6510_t {
-  int nedtry;
-};
-extern Hw6510_t* gHw6510;
-
-//end v6510 adds
-
-// Jimmy common blocks
-
-struct Jmparm_t {
-  double ptjim, ygamma, jmzmin, jmrad[264], phad, jmu2, jmv2, jmarry[17][106], nlost, totscat;
-  int anomoff, jcmvar, jmueo, jmptyp[117], jmbug, fn_type, msflag, maxmstry;
-};
-extern Jmparm_t* gJmparm;
-
-// end Jimmy common blocks
-
-// common for PDF information
-struct Hrwpdf_t {
-  double x1, x2, q;
-  int id1, id2, idpdf1, idpdf2;
-};
-extern Hrwpdf_t* gHrwpdf;
-
-
-// struct Hwumsc_t {
-//     int lhwout;
-// } ;
-
-// extern Hwumsc_t* gHwumsc;
-
-
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/herwig6520.h b/Generators/Herwig_i/Herwig_i/herwig6520.h
deleted file mode 100644
index d11abb9b8f659333b10f37ffd5b176b1465df1f7..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/herwig6520.h
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef HERWIG_I_HERWIG6520_H
-#define HERWIG_I_HERWIG6520_H
-
-/* Common Block Declarations */
-#include <complex>
-
-const int nmxhep = 10000;
-
-struct Hwbeam_t {
-    int ipart1, ipart2;
-} ;
-
-extern  Hwbeam_t* gHwbeam;
-
-struct Hwbmch_t {
-    char part1[8], part2[8];
-} ;
-
-extern  Hwbmch_t* gHwbmch;
-
-struct Hwproc_t {
-    double ebeam1, ebeam2, pbeam1, pbeam2;
-    int iproc, maxev;
-} ;
-extern  Hwproc_t* gHwproc;
-
-struct Hwpram_t {
-    double afch[32], alphem, b1lim, betaf, btclm, cafac,
-	   cffac, clmax, clpow, clsmr[2], cspeed, ensof, etamix, f0mix, f1mix, 
-	    f2mix, gamh, gamw, gamz, gamzp, gev2nb, h1mix, pdiqk, pgsmx, 
-	  pgspl[4], phimix, pifac, prsof, psplt[2], ptrms, pxrms, qcdl3, qcdl5,
-	     qcdlam, qdiqk, qfch[16], qg, qspac, qv, scabi, swein, tmtop, 
-	    vfch[32], vckm[9], 
-	    vgcut, vqcut, vpcut, zbinm,
-            effmin, omhmix, et2mix, ph3mix, gcutme; 
-    int ioprem, iprint, ispac, lrsud, lwsud, modpdf[2], nbtry, ncolo, 
-	    nctry, ndtry, netry, nflav, ngspl, nstru, nstry, nzbin,
-            iop4jt[2], nprfmt;
-    int azsoft, azspin;
-    int cldir[2];
-    int hardme, nospac, prndec, prvtx, softme, zprime;
-    int prndef, prntex, prnweb;
-} ;
-extern  Hwpram_t* gHwpram ;
-
-struct Hwprch_t {
-    char autpdf[2][20], bdecay[4];
-} ;
-
-extern  Hwprch_t* gHwprch ;
-
-struct Hwpart_t {
-    int nevpar, npar, istpar[500], idpar[500], jmopar[1000],
-	    jdapar[1000];
-    double ppar[2500], vpar[2000];
-} ;
-extern  Hwpart_t* gHwpart ;
-
-struct Hwparp_t {
-    double decpar[1000], phipar[1000], rhopar[1000];
-    int tmpar[500];
-} ;
-extern  Hwparp_t* gHwparp ;
-
-struct Hwbosc_t {
-  // rhohep = 3*NMXHEP
-//   double alpfac, brhig[12], enhanc[12], gammax, rhohep[30000];
-  double alpfac, brhig[12], enhanc[12], gammax, rhohep[3*nmxhep];
-  int iophig, modbos[50];
-} ;
-
-extern  Hwbosc_t* gHwbosc ;
-
-struct Hwparc_t {
-    int jcopar[2000];
-} ;
-extern  Hwparc_t* gHwparc ;
-
-struct Hwbrch_t {
-    double anomsc[4], hardst, ptint[6], xfact;
-    int inhad, jnhad, nspac[7], islent;
-    int breit, frost, usecmf;
-} ;
-
-extern  Hwbrch_t* gHwbrch ;
-
-struct Hwevnt_t {
-  // idhw = NMXHEP
-    double avwgt, evwgt, gamwt, tlout, wbigst, wgtmax, wgtsum, wsqsum;
-//     int idhw[10000], ierror, istat, lwevt, maxer, maxpr;
-    int idhw[nmxhep], ierror, istat, lwevt, maxer, maxpr;
-    int nowgt;
-    int nrn[2], numer, numeru, nwgts;
-    int gensof;
-} ;
-
-extern  Hwevnt_t* gHwevnt ;
-
-struct Hwhard_t {
-    double asfixd, clq[42], coss, costh, ctmax, disf[26],
-            emlst, emmax, emmin, empow, emsca, epoln[3],
-	    gcoef[7], gpoln, omega0, phomas, ppoln[3], ptmax, ptmin, ptpow, 
-      q2max, q2min, q2pow, q2wwmn, q2wwmx, qlim, sins, thmax, y4jt, tmnisr, 
-	    tqwt, xx[2], xlmin, xxmin, ybmax, ybmin, yjmax, yjmin, ywwmax, 
-	    ywwmin, whmin, zjmax, zmxisr;
-    int iaphig, ibrn[2], ibsh, ico[10], idcmf, idn[10], iflmax, iflmin, 
-	    ihpro, ipro, mapq[6], maxfl;
-    int bgshat, colisr, fstevt, fstwgt, genev, hvfcen, tpol, durham;
-} ;
-
-extern  Hwhard_t* gHwhard ;
-
-struct Hwprop_t {
-    double rltim[501], rmass[501], rspin[501];
-    int ichrg[501], idpdg[501], iflav[501], nres;
-    int vtocdk[501], vtordk[501];
-    int qorqqb[501], qborqq[501];
-} ;
-
-extern  Hwprop_t* gHwprop ;
-
-struct Hwunam_t {
-    char rname[4008];  /* 8*501 */
-    char txname[37074];   /*  2*37*501  */
-} ;
-
-extern  Hwunam_t* gHwunam ;
-
-struct Hwupdt_t{
-    double brfrac[4000], cmmom[4000], dkltm[500];
-    int idk[4000], idkprd[20000], lnext[4000], 
-	    lstrt[500], ndkys, nme[4000], nmodes[500], nprods[4000];
-    int dkpset, rstab[501];
-} ;
-
-extern  Hwupdt_t*  gHwupdt ;
-
-struct Hwuwts_t{
-    double repwt[100], sngwt, decwt, qwt[3], 
-	    pwt[12], swtef[500];
-} ;
-
-extern  Hwuwts_t* gHwuwts ;
-
-struct Hwuclu_t{
-    double cldkwt[4000], cthrpw[144], preco, 
-	    resn[144], rmin[144];
-    int locn[144], ncldk[4000], nreco;
-    int clreco;
-} ;
-
-extern  Hwuclu_t* gHwuclu ;
-
-struct Hwdist_t {
-    double exag, gev2mm, hbar, pltcut, vmin2, vtxpip[5], xmix[2], xmrct[2]
-	    , ymix[2], ymrct[2];
-    int iopdkl;
-    int maxdkl, mixing, pipsmr;
-} ;
-
-extern  Hwdist_t* gHwdist ;
-
-struct Hwqdks_t{
-    double vtxqdk[80];
-    int imqdk[20], locq[20], nqdk;
-} ;
-
-extern  Hwqdks_t* gHwqdks ;
-
-struct Hwusud_t{
-    double accur, qev[6144], sud[6144];
-    int inter, nqev, nsud, sudord;
-} ;
-
-extern  Hwusud_t* gHwusud ;
-
-// v 6.1
-struct Hwsusy_t {
-    double tanb, alphah, cosbpa, sinbpa, cosbma, sinbma, cosa, sina,
-          cosb, sinb, cotb, zmixss[16], zmxnss[16], zsgnss[4],
-          lfch[16], rfch[16], slfch[64], srfch[64], wmxuss[4],
-          wmxvss[4], wsgnss[2], qmixss[24], lmixss[24],
-          thetat, thetab, thetal, atss, abss, alss, muss, factss,
-          ghwwss[3], ghzzss[3], ghddss[4], ghuuss[4], ghwhss[3],
-          ghsqss[96], xlmnss, rmmnss, dmssm, senhnc[24], ssparity;
-    int susyin;
-} ;
-
-extern  Hwsusy_t* gHwsusy ;
-
-struct Hwrpar_t {
-    double lamda1[27], lamda2[27], lamda3[27];
-    int hrdcol[10];
-    int rparty, colupd;
-} ;
-
-extern  Hwrpar_t* gHwrpar ;
-
-struct Hwminb_t {
-    double pmbn1, pmbn2, pmbn3, pmbk1, pmbk2, pmbm1, pmbm2,
-          pmbp1, pmbp2, pmbp3;
-} ;
-
-extern  Hwminb_t* gHwminb ;
-
-struct Hwclus_t {
-    double ppcl[2500];
-    int idcl[500], ncl;
-} ;
-
-extern  Hwclus_t* gHwclus ;
-
-  // end v6.1 adds
-
-struct Hwgrav_t {
-    double grvlam, emgrv, gamgrv;
-} ;
-
-extern  Hwgrav_t* gHwgrav ;
-
-struct Hw6202_t {
-    double vipwid[3], dxrcyl, dxzmax, dxrsph;
-    int wzrfr, fix4jt;
-    int imssm, ihiggs, parity, lrsusy;
-} ;
-
-extern  Hw6202_t* gHw6202 ;
-
-//end v 6202 adds
-
-// v 6203
-
-struct Hw6203_t {
-    double abwgt, abwsum, avabw;
-    int nnegwt, nnegev;
-    int negwts;
-} ;
-
-extern  Hw6203_t* gHw6203;
-
-// begin v 6301 adds
-
-struct Hw6300_t {
-    double mjjmin, chnprb[20];
-    int iopstp, iopsh;
-    int  optm, chon[20];
-} ;
-
-extern  Hw6300_t* gHw6300 ;
-
-struct  Hwpmrs_t {
-    double fmrs[44688]	/* was [3][8][49][38] */;
-} ;
-
-extern  Hwpmrs_t* gHwpmrs ;
-
-struct Hwcirc_t {
-    int circop, circac, circvr, circrv, circch;
-} ;
-
-extern  Hwcirc_t* gHwcirc ;
-
-
-
-//end v6301 adds
-
-// v6.400
-
-
-struct Hwdspb_t {
-    double abmode[100]	/* was [2][50] */, bbmode[1200]	/* was [2][12]
-	    [50] */, pbmode[600]	/* was [12][50] */, wtbmax[600]	/* was [12][50] */;
-    int idbprt[50], ibdrtp[50], ibmode[50], nbmode;
-};
-
-extern Hwdspb_t* gHwdspb ;
-
-
-struct Hwdsp2_t {
-    double a2mode[1000]	/* was [2][500] */, p2mode[500], wt2max[500];
-    int id2prt[500], i2drtp[500], n2mode;
-};
-
-extern Hwdsp2_t* gHwdsp2 ;
-
-struct Hwdsp3_t {
-    double a3mode[8000]	/* was [2][8][500] */, b3mode[8000]	/* was [2][8][500] */, p3mode[500], wt3max[500], spn3cf[4500]	/* was [3][3][500] */;
-    int id3prt[500], i3mode[4000]	/* was [8][500] */, i3drtp[4000]	/* was [8][500] */, n3mode, ndi3by[500], n3ncfl[500], i3drcf[4000] /* was [8][500] */;
-};
-
-extern Hwdsp3_t* gHwdsp3 ;
-
-struct Hwdsp4_t {
-    double a4mode[96]	/* was [2][12][4] */, b4mode[96]	/* was [2][12][4] */, p4mode[576]	/* was [12][12][4] */, wt4max[576]	/* was [12][12][4] */;
-    int id4prt[4], i4mode[8]	/* was [2][4] */, n4mode;
-};
-
-extern Hwdsp4_t* gHwdsp4 ;
-
-struct Hwdspn_t {
-    int ndecsy, nsearch, lrdec, lwdec;
-    int syspin, threeb, fourb;
-    char taudec[6];
-};
-extern Hwdspn_t* gHwdspn ;
-
-struct Hwspin_t {
-  // isnhep = NMXHEP
-    std::complex<double> mespn[2400]	/* was [2][2][2][2][3][50] */, rhospn[200]	/* was [2][2][50] */;
-    double spncfc[450]	/* was [3][3][50] */;
-//     int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[10000], nsntry;
-    int idspn[50], jmospn[50], jdaspn[100]	/* was [2][50] */, nspn, isnhep[nmxhep], nsntry;
-    int decspn[50];
-    int ncfl[50], spcopt;
-};
-extern Hwspin_t* gHwspin;
-
-struct Hwstau_t {
-    int jak1, jak2, itdkrc, ifphot;
-};
-
-extern Hwstau_t* gHwstau;
-//end v6400 adds
-
-
-// v6500
-
-struct Hwgupr_t {
-  double lhwgt[100], lhwgts[100], lhmxsm, lhxsct[100], lhxerr[100], lhxmax[100];
-  int    lhiwgt[100], ityplh, lhnevt[100];
-  int    lhsoft, lhglsf;
-};
-extern Hwgupr_t* gHwgupr;
-
-struct Hw6500_t {
-  int prespl;
-};
-extern Hw6500_t* gHw6500;
-
-//end v6500 adds
-
-// v6504
-
-struct Hw6504_t {
-  int itoprd;
-};
-extern Hw6504_t* gHw6504;
-
-//end v6504 adds
-
-// v6506
-
-struct Hw6506_t {
-  double pdfx0, pdfpow;
-};
-extern Hw6506_t* gHw6506;
-
-//end v6506 adds
-
-// v6510
-
-struct Hw6510_t {
-  int ndetry;
-};
-extern Hw6510_t* gHw6510;
-
-//end v6510 adds
-
-// v6520
-
-struct Hw6520_t {
-  double dqxtra;
-  int trunsh, ptveto;
-};
-extern Hw6520_t* gHw6520;
-
-//end v6520 adds
-
-// Jimmy common blocks
-
-struct Jmparm_t {
-  double ptjim, ygamma, jmzmin, jmrad[264], phad, jmu2, jmv2, jmarry[17][106], nlost, totscat;
-  int anomoff, jcmvar, jmueo, jmptyp[117], jmbug, fn_type, msflag, maxmstry;
-};
-extern Jmparm_t* gJmparm;
-
-// end Jimmy common blocks
-
-// common for PDF information
-struct Hrwpdf_t {
-  double x1, x2, q;
-  int id1, id2, idpdf1, idpdf2;
-};
-extern Hrwpdf_t* gHrwpdf;
-
-
-// struct Hwumsc_t {
-//     int lhwout;
-// } ;
-
-// extern Hwumsc_t* gHwumsc;
-
-
-
-#endif
diff --git a/Generators/Herwig_i/Herwig_i/wgtacp.h b/Generators/Herwig_i/Herwig_i/wgtacp.h
deleted file mode 100644
index c3fc89f46947bcbed76692a8275f089547f19873..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/wgtacp.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef WGTACP_h
-#define WGTACP_h
-#include <vector>
-
-extern "C" {
-  void* wgtacp_address_();
-}
-
-/**
-@class      Wgtacp.hh
-
-@brief      Class definition for Wgtacp common block.
-
-@author     Jan Kotanski
-*/
-
-class Wgtacp {
-public:
-  Wgtacp();
-  ~Wgtacp();
-  
-  inline void init(); // inlined for speed of access (small function)
-  
-  inline double wgtacp(int i);
-  inline int userwgts();
-
-private: 
-  struct WGTACP;
-  friend struct WGTACP;
-  
-  enum {
-    WgtacpSize = 28
-  };
-
-  struct WGTACP 
-  {
-    double wgtacp[WgtacpSize];
-    int     userwgts;
- };
-
-  static WGTACP* s_wgtacp;
-};
-
-#include "Herwig_i/wgtacp.icc"
-
-#endif
-
diff --git a/Generators/Herwig_i/Herwig_i/wgtacp.icc b/Generators/Herwig_i/Herwig_i/wgtacp.icc
deleted file mode 100644
index 2300e59960f16a7a7de79771284ddc5a439abce8..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/Herwig_i/wgtacp.icc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Wgtacp  
-
-// initialise pointer
-void Wgtacp::init(){
-  if ( !s_wgtacp ) {
-    s_wgtacp = static_cast< WGTACP* >( wgtacp_address_() );
-  }
-}
-
-double Wgtacp::wgtacp(int i){
-  init();
-  return s_wgtacp->wgtacp[i];
-}
-
-int Wgtacp::userwgts(){
-  init();
-  return s_wgtacp->userwgts;
-}
-
diff --git a/Generators/Herwig_i/doc/Dpemc_i.pdf b/Generators/Herwig_i/doc/Dpemc_i.pdf
deleted file mode 100644
index 97a58f1852fd0e6db3f41dd76442706ea6d7f640..0000000000000000000000000000000000000000
Binary files a/Generators/Herwig_i/doc/Dpemc_i.pdf and /dev/null differ
diff --git a/Generators/Herwig_i/doc/Dpemc_i.tex b/Generators/Herwig_i/doc/Dpemc_i.tex
deleted file mode 100644
index 6e2edc26d9496deea42fc1fea0afc908e785f37d..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/doc/Dpemc_i.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\textwidth=6.5in
-\textheight=9.0in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}   
-\def\topfraction{1.}
-\def\textfraction{0.} 
-          
-\begin{document}
-\title{Dpemc\_i: An interface between Dpemc and Athena}
-\author{ Vojtech Juranek (Vojtech.Juranek@cern.ch)}
-\date{March, 2006}
-
-\maketitle       
-
-This package runs Dpemc from within Athena, puts the events into the
-transient store in HepMC format. 
-As Dpemc is an extension to Heriwg, the user should read documentation of Herwig\_i interface. 
-
-The module is activated from the jobOptions service. See the example in {\bf Generators/Herwig\_i/share/jobOptions.dpemc.py }.
-The following is needed if you wish to run Dpemc
-\begin{verbatim}
-theApp.DLLs  += [ "Dpemc\_i" ]  
-theApp.TopAlg = ["Dpemc"]
-\end{verbatim}
-The parameters are passed via the following line in the jobOptions.py
-file.
-\begin{verbatim}
-Dpemc.DpemcCommand = ["variable index value"]
-\end{verbatim} 
-In addition to Herwig variables there are several variables, which can be changed.
-The list of Dpemc variables that can be changed is as follows:
-{\bf 
-typepr,
-typint,
-gapspr,
-prospr,
-cdffac,
-nstru
-}.
-For more details see http://boonekam.home.cern.ch/boonekam/dpemc.htm .
-
-\end{document}
diff --git a/Generators/Herwig_i/doc/Herwig.pdf b/Generators/Herwig_i/doc/Herwig.pdf
deleted file mode 100644
index 0534d625c138303809e9b028afa28962166d25d6..0000000000000000000000000000000000000000
Binary files a/Generators/Herwig_i/doc/Herwig.pdf and /dev/null differ
diff --git a/Generators/Herwig_i/doc/Herwig.tex b/Generators/Herwig_i/doc/Herwig.tex
deleted file mode 100644
index 8fa3d4cc85b529dd7cd993cccfe310f47748c5ce..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/doc/Herwig.tex
+++ /dev/null
@@ -1,186 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\textwidth=6.5in
-\textheight=9.0in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}   
-\def\topfraction{1.}
-\def\textfraction{0.}           
-\begin{document}
-\title{Herwig\_i: An interface between HERWIG/JIMMY and Athena}
-\author{ 
-Ian Hinchliffe (I\_Hinchliffe@lbl.gov), \\
-Georgios Stavropoulos (George.Stavropoulos@cern.ch) \\
-Jon Butterworth (J.Butterworth@ucl.ac.uk)}
-%\today
-
-\maketitle       
- 
-\noindent
-This package runs HERWIG, with optional underlying event simulation
-from JIMMY, from within Athena, puts the events into the transient
-store in HepMC format. See the GeneratorModules documentation for
-general information. The note refers only to HERWIG specific
-material. The External/Herwig package is used to set up the paths to
-the HERWIG library. The current HERWIG version is 6.510, and the
-current JIMMY version is 4.31.
-
-Note that all parameters passed to HERWIG are in the units specified
-in the HERWIG manual. In particular, energies and masses are in GeV,
-not the standard atlas units of MeV. 
-
-The module is activated from the jobOptions service. See the example in 
-\begin{verbatim}
-Generators/Herwig\_i/share/jobOptions.herwig.py
-\end{verbatim}
-which leaves JIMMY turned off, and 
-\begin{verbatim}
-Generators/Herwig\_i/share/jobOptions.jimmy.py
-\end{verbatim}
-for an example to run with it on. Note that it is recommended to turn
-JIMMY on and leave the internal HERWIG soft underlying event turned
-off, if you want to get a more realistic underlying event.
-
-The HERWIG parameters are set from the job options service. 
-The following is needed if you wish to run HERWIG
-\begin{verbatim}
-theApp.DLLs  += [ "Herwig_i" ]  
-theApp.TopAlg = ["Herwig"]
-\end{verbatim}
-The parameters are passed via the following line in the jobOptions.py
-file.
-\begin{verbatim}
-Herwig.HerwigCommand = ["variable index value"]
-\end{verbatim} 
-Here {\bf variable} is a valid HERWIG variable. Consult the HERWIG
-documentation for the variable names and what they do. If the {\bf
-  variable} is an array, {\bf index} specifies the entry to be
-changed. {\bf value} is the value of the variable.  For example
-\begin{verbatim}
-Herwig.HerwigCommand = ["iproc 1499","modpdf 10042", "autpdf HWLHAPDF"]
-\end{verbatim} 
-produces $W$ bosons using the CTEQ structure functions. {\bf note that
-all variable names are lower case, parameter values are case sensitive
-(CTEQ in this example).}
-\begin{verbatim}
-Herwig.HerwigCommand = ["iproc 2150","modpdf 10042", "autpdf HWLHAPD
-", "ptmin 100.", "ptmax 200.", "emmin 80.", "emmax 100."]   
-AtRndmGenSvc.Seeds = ["HERWIG 390020611 821000366", "HERWIG_INIT
-820021 2347532"]
-\end{verbatim}
-produces $Z+jet$ events and resets the random number seeds. Note that
-the random number seeds are set by the Athena random number service.
-All variables that are marked as settable by users in the HERWIG
-Manual can be changed. Please report any bugs.
-
-\medskip
-
-\subsection*{Note on using JIMMY for the underyling event}
-
-\noindent
-JIMMY is developed as a plug-and-play add-on of HERWIG. It is turned
-on by setting the variable {\tt msflag = 1}. The following, JIMMY
-specific, variables may also be set: jmbug, ptjim, and jmueo which are
-documented on the external JIMMY package documentation page:
-
-{\tt http://projects.hepforge.org/jimmy/ }.
-
-\subsection*{Note regarding SUSY}
-
-\noindent
-For simulation of a SUSY process, ISAWIG must first be run to generate
-an intput file. ISAWIG is a standalone program \cite{isawig}.
-The name of this file is then passed with
-
-\begin{verbatim}
-Herwig.HerwigCommand=["susyfile myfile"] 
-\end{verbatim}
-where myfile is the name of your input file.
-
-\subsection*{Interface to TAUOLA and PHOTOS}
-
-\noindent
-HERWIG is interfaced to TAUOLA and PHOTOS in a different way than the
-other Generator Modules (Pythia, etc).  To activate TAUOLA and PHOTOS
-in HERWIG you simply need to add in you jobOptions file
-\begin{verbatim}
-Herwig.HerwigCommand += ["taudec TAUOLA"]
-\end{verbatim}
-For more information on how HERWIG works with TAUOLA, please refer to
-the HERWIG manual.
-
-\subsection*{Random Numbers}
-
-\noindent
-Herwig\_i/Herwig.cxx is using the AtRndmGenSvc Athena Service to
-provide to HERWIG (via the hwrgen function, found in
-Herwig\_i/src/hwrgen.F) the necessary random numbers. This service is
-using the RanecuEngine of CLHEP, and is based on the ``stream'' logic,
-each stream being able to provide an idependent sequence of random
-numbers. Herwig.cxx is using two streams: HERWIG\_INIT and HERWIG. The
-first stream is used to provide random numbers for the initialization
-phase of HERWIG and the second one for the event generation. The user
-can set the initial seeds of each stream via the following option in
-the jobOption file.
-
-\begin{verbatim} 
-AtRndmGenSvc.Seeds = [``HERWIG_INIT 2345533 9922199'', ``HERWIG 5498921 659091'']
-\end{verbatim}
-
-
-
-The above sets the seeds of the HERWIG\_INIT stream to 2345533 and
-9922199 and of the HERWIG one to 5498921 and 659091. If the user will
-not set the seeds of a stream then the AtRndmGenSvc will use default
-values.
-
-The seeds of the Random number service are saved for each event in
-the HepMC Event record and they are printed on screen by DumpMC. In
-this way an event can be reproduced easily. The user has to rerun the
-job by simply seting the seeds of the HERWIG stream (the seeds of the
-HERWIG\_INIT stream should stay the same) to the seeds of that event.
-
-Additionaly the AtRndmGenSvc is dumping into a file (AtRndmGenSvc.out)
-the seeds of all the streams at the end of the job. This file can be
-read back by the service if the user set the option
-{\tt AtRndmGenSvc.ReadFromFile = true;} 
-(default = false). In this case the file
-AtRndmGenSvc.out is read and the streams saved in this file are
-created with seeds as in this file. The name of the file to be read
-can be set by the user via the option
-{\tt AtRndmGenSvc.FileToRead = MyFileName;}
-The above file should also be written out when a job crashes. 
-The above options are contained in 
-{\tt Herwig\_i/share/jobOptions.herwig.py}.
-
-\subsection*{Note on hadronizing parton level generated events from Les Houches Type generators}
-
-This is supported by Herwig, as explained in Chapter 9.1 of the 6.5 Herwig
-manual). External procesess usually read a file containting events.
-At present several externals are available, AcerMC, Alpgen, McAtNlo,
-MadCUP, MadGraph, GR@PPA, and Charybdis. To find out how to run these
-external processes please refer to the documentation of these generators.
-
-\subsection*{Note on LHAPDF structure functions}
-
-\noindent
-In the case you want to run HERWIG with the LHAPDF structure functions
-you need to set the autpdf variable to HWLHAPDF and the modpdf one to
-the LHAPDF set/member index (see the documentation of the
-Generators/Lhapdf\_i package for the LHAPDF set/member index
-settings).
-
-\begin{thebibliography}{99}
-  \bibitem{isawig}http://www-thphys.physics.ox.ac.uk/users/PeterRichardson/HERWIG/isawig.html
-\end{thebibliography}
-
-\end{document}
-
-
-
-
-
diff --git a/Generators/Herwig_i/doc/Jimmy.pdf b/Generators/Herwig_i/doc/Jimmy.pdf
deleted file mode 100644
index e1955fcf48851f2b4244b1e4b8448500b7b6a2f2..0000000000000000000000000000000000000000
Binary files a/Generators/Herwig_i/doc/Jimmy.pdf and /dev/null differ
diff --git a/Generators/Herwig_i/doc/packagedoc.h b/Generators/Herwig_i/doc/packagedoc.h
deleted file mode 100644
index c057ed32f73dd621d84f9426c2bd0889e4916cef..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/doc/packagedoc.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-
- <i>
-
-The herwig interface documentation is in  pdf format, have a look at
-
-https://svnweb.cern.ch/trac/atlasoff/browser/Generators/Herwig_i/trunk/doc/Herwig.pdf
-
-This package also contains the interface to run the Dpemc generator, an extension to Herwig. Have a look at Herwig_i/share/jobOptions.dpemc.py for an example. The Dpemc variables that can be changed include  typepr, typint, gapspr, prospr, cdffac, nstru. For more details see http://boonekam.home.cern.ch/boonekam/dpemc.htm 
-
-This package also contains an interface between Jimmy and Athena. It puts the events into the transient store in HepMC format. Jimmy is developed as a plug-and-play add-on of Herwig. Ther user of the ATLAS Jimmy interface should read the documentation of the Herwig_i interface to understand how to set the herwig parameters, by replacing the word Herwig with the word Jimmy in Herwig_i's documentation. The Jimmy_i interface provides in addition the possibility to set the following, Jimmy specific, variables: msflag, jmbug, ptjim, and jmueo which are documented on the external Jimmy package documentation page in http://hepforge.cedar.ac.uk/jimmy . There is an example jobOptions file, see Generators/Herwig_i/share/jobOptions.jimmy.py
-
-</i>
-@author 
-
-Judith Katzy (Jan 2008)
-updated E.M.Lobodzinska (Jun 2009)
-        
-Vojtech Juranek for Dpemc
-
-Georgios Stavropoulos for Jimmy        
-
-@page Herwig_i_page 
-
-
-
-
-*/
diff --git a/Generators/Herwig_i/share/JimmyZee.rtt.py b/Generators/Herwig_i/share/JimmyZee.rtt.py
deleted file mode 100644
index 6c24f1af94542b989554a08bbc32c35ee4958bdb..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/share/JimmyZee.rtt.py
+++ /dev/null
@@ -1,78 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = DEBUG
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["JIMMY 390020611 821000366", "JIMMY_INIT 820021 2347532"]
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Herwig_i.Herwig_iConf import Herwig
-job +=Herwig()
-job.Herwig.HerwigCommand = [ "iproc 11351",
-                       "modpdf 10042",
-                       "autpdf HWLHAPDF",
-                       "emmin 60.",
-                       "msflag 1",
-                       "jmbug 0",
-                       "jmueo 1",
-                       "ptjim 4.91",
-                       "jmrad 73 1.8",
-                       "pltcut 0.0000000000333",
-                       "ptmin 10.",
-                       "prsof 0",
-                       "rmass 198 80.425",
-                       "rmass 199 80.425",
-                       "rmass 200 91.19",
-                       "gamw 2.124",
-                       "gamz 2.495",
-                       "taudec TAUOLA",
-                       "clpow 1.20"]
-                       
-from Tauola_i.Tauola_iConf import Tauola
-job +=Tauola()
-job.Tauola.TauolaCommand = [    "tauola polar 1",
-                                "tauola radcor 1",
-                                "tauola phox 0.01",
-                                "tauola dmode 0",
-                                "tauola jak1 0",
-                                "tauola jak2 0"]
-                                
-from Photos_i.Photos_iConf import Photos
-job +=Photos()
-job.Photos.PhotosCommand = [ "photos pmode 1",
-                             "photos xphcut 0.01",
-                             "photos alpha -1.",
-                             "photos interf 1",
-                             "photos isec 1",
-                             "photos itre 0",
-                             "photos iexp 1",
-                             "photos iftop 0"]
-
-from GeneratorFilters.GeneratorFiltersConf import LeptonFilter
-job +=LeptonFilter()
-job.LeptonFilter.Ptcut = 10000.
-job.LeptonFilter.Etacut = 2.7
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Herwig_i/share/jobOptions.dpemc.py b/Generators/Herwig_i/share/jobOptions.dpemc.py
deleted file mode 100644
index 4da9cdb414f14e0cd34a99269b196730da236415..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/share/jobOptions.dpemc.py
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py")
-include( "PartPropSvc/PartPropSvc.py" )
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.ExtSvc += ["AtRndmGenSvc"]
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc = Service( "MessageSvc" )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-theApp.EvtMax = 10
-# Generator fragment - the following 2 lines are needed to invoke Dpemc:
-
-theApp.Dlls  += [ "Dpemc_i","TruthExamples"]
-theApp.TopAlg = ["Dpemc","DumpMC"]
-
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["DPEMC 390020611 821000366", "DPEMC_INIT 820021 2347532"]
-Dpemc = Algorithm( "Dpemc" )
-# parameters are passed via the following line:
-Dpemc.DpemcCommand = ["typepr EXC","typint QCD","iproc 9905","gapspr 0.03","prospr 0.9","cdffac 3.8","nstru 11","ifit 2"]
-# 
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Herwig_i/share/jobOptions.herwig.filter.histogram.py b/Generators/Herwig_i/share/jobOptions.herwig.filter.histogram.py
deleted file mode 100644
index 804f45f411b571b917c5f5e4842f0d7e4b2d65ba..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/share/jobOptions.herwig.filter.histogram.py
+++ /dev/null
@@ -1,61 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-# make sure we are loading the ParticleProperty service
-from PartPropSvc.PartPropSvcConf import PartPropSvc
-ServiceMgr += PartPropSvc()
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-
-from Herwig_i.Herwig_iConf import Herwig
-from TruthExamples.TruthExamplesConf import  HistSample
-from GeneratorFilters.GeneratorFiltersConf import ZtoLeptonFilter
-from GaudiAlg.GaudiAlgConf import Sequencer
-
-theApp.HistogramPersistency = "HBOOK"
-job +=  Sequencer("Generator")
-job.Generator.Members = ["Herwig", "ZtoLeptonFilter", "HistSample"]
-# this single should do the same
-#job +=  Sequencer("Generator",Members=["Herwig", "ZtoLeptonFilter", "HistSample"])
-
-from GaudiSvc.GaudiSvcConf import HistogramPersistencySvc
-ServiceMgr += HistogramPersistencySvc()
-ServiceMgr.HistogramPersistencySvc.OutputFile  = "herwig.hbook"
-ServiceMgr.NTupleSvc.Output     = [ "FILE1 DATAFILE='herwigtuple1.hbook' TYP='HBOOK' OPT='NEW'" ]
-
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-ServiceMgr.MessageSvc.OutputLevel               = FATAL
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 11000
-
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-job += Herwig()
-job.Herwig.HerwigCommand = ["iproc 2150", "modpdf 10042", "autpdf HWLHAPDF", "ptmin 100.", "ptmax 200.", "emmin 80.", "emmax 100.", "msflag 0"]
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Herwig_i/share/jobOptions.herwig.py b/Generators/Herwig_i/share/jobOptions.herwig.py
deleted file mode 100644
index 67066e6c0f447a5cb9077e257670ff9fe8f38c5d..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/share/jobOptions.herwig.py
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = DEBUG
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["HERWIG 390020611 821000366", "HERWIG_INIT 820021 2347532"]
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Herwig_i.Herwig_iConf import Herwig
-job +=Herwig()
-job.Herwig.HerwigCommand = ["iproc 1500","beam2type P","beam1type P", "beam1energy 7000", "modpdf 10042", "autpdf HWLHAPDF", "msflag 0", "tlout -10000000."]
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Herwig_i/share/jobOptions.herwigrpv.py b/Generators/Herwig_i/share/jobOptions.herwigrpv.py
deleted file mode 100644
index 937013ec7d1e014a44ac147d3ce77a4ba9f2c410..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/share/jobOptions.herwigrpv.py
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = DEBUG
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["HERWIG 390020611 821000366", "HERWIG_INIT 820021 2347532"]
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Herwig_i.HerwigRpv_iConf import HerwigRpv
-job +=HerwigRpv()
-job.HerwigRpv.HerwigCommand = ["iproc 11500","modpdf 10042", "autpdf HWLHAPDF", "msflag 1", "jmbug 0", "ptmin 10.", "iprint 2"]
-
-#from TruthExamples.TruthExamplesConf import DumpMC
-#job += DumpMC()
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Herwig_i/share/jobOptions.jimmy.py b/Generators/Herwig_i/share/jobOptions.jimmy.py
deleted file mode 100644
index bd777d2f8f1c6bf93888d0cc6c5ef9c9cb00b335..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/share/jobOptions.jimmy.py
+++ /dev/null
@@ -1,38 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = DEBUG
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5 
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["HERWIG 390020611 821000366", "HERWIG_INIT 820021 2347532"]
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Herwig_i.Herwig_iConf import Herwig
-job +=Herwig()
-job.Herwig.HerwigCommand = ["iproc 11500","modpdf 10042", "autpdf HWLHAPDF", "msflag 1", "jmbug 0", "ptmin 10."]
-
-job.Herwig.UpdateHadronStatCode = True
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Herwig_i/src/Address.cxx b/Generators/Herwig_i/src/Address.cxx
deleted file mode 100644
index 6116a0a7d8ad0724807841e850d41e7227884026..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/Address.cxx
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//  Sept 09 1997 P.Murat (CDF)
-//  this routine is supposed to be called from FORTRAN, it returns an
-//  address of its parameter
-//  revision history:
-//  -----------------
-//------------------------------------------------------------------------------
-extern "C" void* address_(void* var) {
-  return var;
-}
-
diff --git a/Generators/Herwig_i/src/Address_c.cxx b/Generators/Herwig_i/src/Address_c.cxx
deleted file mode 100644
index 826baf504a82b53c370e035d64bc7bac94500eb6..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/Address_c.cxx
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//  Sept 09 1997 P.Murat (CDF)
-//  this routine is supposed to be called from FORTRAN, it returns an
-//  address of its parameter
-//  revision history:
-//  -----------------
-//------------------------------------------------------------------------------
-extern "C" void* adressc_(void* var) {
-  return var;
-}
-
diff --git a/Generators/Herwig_i/src/Address_cx.cxx b/Generators/Herwig_i/src/Address_cx.cxx
deleted file mode 100644
index 94465cb62d098ed3beae62be54efd90b05122cc2..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/Address_cx.cxx
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//  Sept 09 1997 P.Murat (CDF)
-//  this routine is supposed to be called from FORTRAN, it returns an
-//  address of its parameter
-//  revision history:
-//new version for complex -- Ian Hinchliffe
-//  -----------------
-//------------------------------------------------------------------------------
-extern "C" void* adrescx_(void* var) {
-  return var;
-}
-
diff --git a/Generators/Herwig_i/src/Address_f.cxx b/Generators/Herwig_i/src/Address_f.cxx
deleted file mode 100644
index 6b5bacc8bf1587ce342322ec14fe57a73e9303a3..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/Address_f.cxx
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//  Sept 09 1997 P.Murat (CDF)
-//  this routine is supposed to be called from FORTRAN, it returns an
-//  address of its parameter
-//  revision history:
-//  -----------------
-//------------------------------------------------------------------------------
-extern "C" void* adressf_(void* var) {
-  return var;
-}
-
diff --git a/Generators/Herwig_i/src/Address_i.cxx b/Generators/Herwig_i/src/Address_i.cxx
deleted file mode 100644
index fa7a9f1489eeb05052535c4607b30fe5537b448c..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/Address_i.cxx
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//  Sept 09 1997 P.Murat (CDF)
-//  this routine is supposed to be called from FORTRAN, it returns an
-//  address of its parameter
-//  revision history:
-//  -----------------
-//------------------------------------------------------------------------------
-extern "C" void* adressi_(void* var) {
-  return var;
-}
-
diff --git a/Generators/Herwig_i/src/Address_lg.cxx b/Generators/Herwig_i/src/Address_lg.cxx
deleted file mode 100644
index d5712c57c8e911e87bb38500b8880aa9ae74c9f1..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/Address_lg.cxx
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//  this routine is supposed to be called from FORTRAN, it returns an
-//  address of its parameter
-//  revision history:
-//  -----------------
-//------------------------------------------------------------------------------
-extern "C" void* adreslg_(void* var) {
-  return var;
-}
-
diff --git a/Generators/Herwig_i/src/Herwig.cxx b/Generators/Herwig_i/src/Herwig.cxx
deleted file mode 100644
index 1006ae3f0798def2bac56e7065a2194ad54322c5..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/Herwig.cxx
+++ /dev/null
@@ -1,951 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// -------------------------------------------------------------
-// File:Herwig.cxx
-// Generators/Herwig.cxx Description: Allows the user
-// to generate Herwig events and store the result in the
-// Transient Store.
-//
-// AuthorList:
-// Ian Hinchliffe:  Initial Code October : 2000
-// Modeled after the CDF code by Marge Shapriro and Jeremy Lys
-// Modified for Version 6.4 Jan 2002-- Ian Hinchliffe
-// AcerMC 1.x interface added by Borut Paul Kersevan (February 2003)
-// TAUOLA/PHOTOS interface added by Borut Paul Kersevan (October 2003)
-// Jimmy merged in by Jon Butterworth (Feb 2007)
-// Removed lots, but not all, of the irrelevant CDF stuff (JMB, Nov 2008)
-
-#include "Herwig_i/Herwig.h"
-#include "TruthUtils/GeneratorName.h"
-#include "GeneratorUtils/StringParse.h"
-
-#include "AthenaKernel/IAtRndmGenSvc.h"
-#include "CLHEP/Random/RandFlat.h"
-
-#include "Herwig_i/herwig6520.h"
-#include "Charybdis_i/CharybdisInterface.h"
-
-#include "HepMC/IO_HERWIG.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "Herwig_i/Lhefinfo.h"
-#include "Herwig_i/wgtacp.h"
-
-#include <cstdlib>
-
-using std::string;
-
-
-#define evtcon evtcon_
-extern struct EvtconStruct {
-  int istg;
-} evtcon;
-
-
-// AtRndmGenSvc setup
-namespace {
-  static IAtRndmGenSvc* p_AtRndmGenSvc;
-  static string herwig_stream = "HERWIG_INIT";
-}
-// Provide Fortran-accessible RNG engines
-extern "C" double atl_hwrgen_( int* /*idummy*/ )
-{
-  CLHEP::HepRandomEngine* engine = p_AtRndmGenSvc->GetEngine(herwig_stream);
-  return CLHEP::RandFlat::shoot(engine);
-}
-extern "C" double atl_phoran_( int* /*idummy*/ )
-{
-  CLHEP::HepRandomEngine* engine = p_AtRndmGenSvc->GetEngine("PHOTOS");
-  return CLHEP::RandFlat::shoot(engine);
-}
-extern "C" float atl_ranmar_()
-{
-  CLHEP::HepRandomEngine* engine = p_AtRndmGenSvc->GetEngine("TAUOLA");
-  return (float) CLHEP::RandFlat::shoot(engine);
-}
-
-
-// Declare C++-visible common block init function wrapper
-void InitHerwigCommonBlocks();
-
-
-extern "C" {
-
-  // In Herwig_i
-  void herwiginterface_(int* itopd);
-  void cdfreadsusy_(const char* ,int * , int);
-
-  // Structure functions in Herwig
-  void hwsfun_(const double *, const double *, const int *, const int *, const double *, const int *);
-
-  //  In Herwig
-  // SUSY
-  void hwissp_(int *syunit);
-
-  // Added for RPV 4-body decays (Sebastian Fleischmann/JMB)
-  void hwirpv_();
-  // NB: if the RPV code is not linked, a dummy version is called.
-
-  void hwuinc_();
-  // void hwusta(int *tstab);
-  // void hwabeg_();
-  void hweini_();
-  void hwuine_();
-  void hwupro_();
-  void hwepro_();
-  void hwbgen_();
-  void hwdhob_();
-  void hwcfor_();
-  void hwcdec_();
-  void hwdhad_();
-  void hwdhvy_();
-  void hwmevt_();
-  void hwufne_();
-  void hwefin_();
-  void hwanal_(int *ihwcod);
-  void hwmsct_(int *abort);
-  void hwgpdg_(int *mconv);
-  void extproc_(int*);
-
-  void upveto_(int*);
-
-  void jminit_();
-  void jmefin_();
-
-  // Charybdis fix
-  void charybdfix_();
-
-  // PDF information
-  void hwpdfinfo_();
-
-  // Alpgen termination
-  void alsfin_();
-
-}
-
-
-////////////////////////////////////////////////////////
-
-
-Atlas_HEPEVT* Herwig::s_atlas_HEPEVT = new Atlas_HEPEVT();
-
-
-//--------------------------------------------------------------------------
-
-
-Herwig::Herwig(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenModule(name, pSvcLocator)
-{
-  // printing-out manually set x-section for the MetaData
-  m_Default_SetCrossSection=-1.0;
-  m_Default_xsscale=-99999;
-  //properties
-  declareProperty("HerwigCommand", m_herwigCommandVector);
-  declareProperty("CrossSectionScaleFactor", m_xsscale=m_Default_xsscale);
-  declareProperty("SetCrossSection",m_SetCrossSection=m_Default_SetCrossSection);
-  declareProperty("UpdateHadronStatCode", m_updateHadronStatCode=true);
-
-  m_noshower_Parm = false;
-  m_nohadroniz_Parm = false;
-  m_itopd = 0;
-  m_ndetry = 0;
-  m_ExternalProcess = 0;
-}
-
-
-//--------------------------------------------------------------------------
-
-
-Herwig::~Herwig() { }
-
-
-//-------------------------------------------------------------
-
-
-AcerMC_acset& Herwig::acermc_acset() {
-  return m_acermc_acset;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-// Initialise the listing output, parameter and decay data input streams
-StatusCode Herwig::genInitialize() {
-  ATH_MSG_INFO("HERWIG INITIALISING.\n");
-
-  // Set up RNG service
-  /// @todo Use ServiceHandle + property method
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc", p_AtRndmGenSvc, CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == p_AtRndmGenSvc) {
-    ATH_MSG_ERROR("Could not initialize Random Number Service");
-    return RndmStatus;
-  }
-
-  // Default behaviour is to shower and hadronize
-  m_noshower_Parm = false;
-  m_nohadroniz_Parm = false;
-
-  // Map Herwig common blocks to global C structures
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-  InitHerwigCommonBlocks();
-
-  // Default the top decay, beams and beam energies
-  gHwproc->pbeam1 = 7000.;  // beam energies
-  gHwproc->pbeam2 = 7000.;  // beam energies
-  m_itopd = 0;
-  memcpy(gHwbmch->part1, "P       ", 8);
-  memcpy(gHwbmch->part2, "P       ", 8);
-  // ALL other settings should be given after the call to hwigin (in herwiginterface)
-
-  // Special loop over the input parameters to load iproc, beam type and beam energy
-  // before the call to herwiginterface_()
-  /// @todo Use a more normal loop!
-  CommandVector::const_iterator ic = m_herwigCommandVector.begin();
-  do {
-    StringParse mystring(*ic);
-    string myvar = mystring.piece(1);
-    int myint1 = mystring.intpiece(2);
-    double  myfl1 = mystring.numpiece(2);
-    string myvar2 = mystring.piece(2);
-    myvar2.resize(7, ' ');
-    if(myvar=="iproc") {
-      gHwproc->iproc = myint1;
-    }
-    else if(myvar=="beam1energy") {
-      gHwproc->pbeam1 = myfl1;
-    }
-    else if(myvar=="beam2energy") {
-      gHwproc->pbeam2 = myfl1;
-    }
-    else if(myvar=="topdec") {
-      m_itopd = myint1;
-    }
-    else if(myvar=="beam1type") {
-      strncpy(gHwbmch->part1,myvar2.c_str(),7);
-   }
-    else if(myvar=="beam2type") {
-      strncpy(gHwbmch->part2,myvar2.c_str(),7);
-    }
-    ic++;
-  } while (ic != m_herwigCommandVector.end());
-
-
-  // Call Fortran routine to initialize Herwig common block
-  herwiginterface_(&m_itopd);
-
-  // Set timeout and maximum number of errors to sensibe defaults
-  gHwevnt->maxer = 10000000;
-  gHwevnt->tlout = -10000000.0;
-
-  m_ExternalProcess = 0;
-
-  // No hardcoded defaults here!!
-  //
-  // Anything different from generator default should
-  // be set in job options.
-
-  // Now read in all the parameter changes from the user
-  for (size_t i = 0; i < m_herwigCommandVector.size(); i++) {
-    ATH_MSG_INFO("Command is '" << m_herwigCommandVector[i] << "'");
-    StringParse mystring(m_herwigCommandVector[i]);
-    string myvar = mystring.piece(1);
-    string myvar1 = mystring.piece(2);
-    int myint1 = mystring.intpiece(2);
-    int myint2 = mystring.intpiece(3);
-    double myfl1 = mystring.numpiece(2);
-    double myfl2 = mystring.numpiece(3);
-    if (myvar== "beam1type" || myvar== "beam2type" ||
-        myvar== "beam1energy" || myvar== "beam2energy") {
-      // Beam types and energy already done.
-    }
-    // Process number for external processes set here.
-    else if (myvar=="iproc") {
-      if (myvar1 == "charybdis") {
-        gHwproc->iproc = -200;
-        m_ExternalProcess = CHARYBDIS;
-      } else if (myvar1 == "acermc") {
-        gHwproc->iproc = -600;
-        m_ExternalProcess = ACERMC;
-      } else if(myvar1 == "alpgen") {
-        gHwproc->iproc = -1400;
-        m_ExternalProcess = ALPGEN;
-        if (myint2 > 0) {
-          gHwproc->iproc -= myint2;
-        }
-      } else if (myvar1 == "madgraph") {
-        gHwproc->iproc = -950;
-        m_ExternalProcess = MADGRAPH;
-      } else if (myvar1 == "madcup") {
-        gHwproc->iproc = -800;
-        m_ExternalProcess = MADCUP;
-      } else if (myvar1 == "lhaext") {
-        gHwproc->iproc = -900;
-        m_ExternalProcess = LHAEXT;
-      } else if (myvar1 == "mcatnlo") {
-        gHwproc->iproc = -700;
-        m_ExternalProcess = MCATNLO;
-      } else if (myvar1 == "lhef") {
-        gHwproc->iproc = -100;
-        m_ExternalProcess = LHEF;
-      } else if (myvar1 == "horace") {
-        gHwproc->iproc = -300;
-        m_ExternalProcess = HORACE;
-      } else {
-        gHwproc->iproc=myint1;
-      }
-      extproc_(&m_ExternalProcess);
-    }
-    // AcerMC tt~ decay mode switching
-    else if (myvar=="acset12") {
-      if (gHwproc->iproc == -600) {
-        this->acermc_acset().acset12() = myint1;
-        ATH_MSG_INFO("mamy incjalizacje acera" << myint1);
-      }
-    }
-
-    // ------- HWHARD common block
-    // Kinematic limits
-    else if (myvar == "ptmin") { gHwhard->ptmin = myfl1; }
-    else if (myvar == "ptmax") { gHwhard->ptmax = myfl1; }
-    else if (myvar == "emmin") { gHwhard->emmin = myfl1; }
-    else if (myvar == "emmax") { gHwhard->emmax = myfl1; }
-    else if (myvar == "q2min") { gHwhard->q2min = myfl1; }
-    else if (myvar == "ptpow") { gHwhard->ptpow = myfl1;}
-
-    // ------- HWDIST common block
-    else if (myvar == "pltcut") { gHwdist->pltcut = myfl1; }
-    else if (myvar == "mixing") { gHwdist->mixing = myint1; }
-
-    // -------  HWPRAM common block
-    else if (myvar == "ispac") {
-      gHwpram->ispac = myint1;
-    } else if (myvar == "qspac") {
-      gHwpram->qspac = myfl1;
-    }
-    else if (myvar=="azsoft") {
-      gHwpram->azsoft = (myvar1 != "false");
-      ATH_MSG_INFO(" " << myvar << " is set to " << (gHwpram->azsoft ? "true" : "false"));
-    }
-    else if (myvar == "azspin") {
-      gHwpram->azspin = (myvar1 != "false");
-      ATH_MSG_INFO(" " << myvar << " is set to " << (gHwpram->azspin ? "true" : "false"));
-    }
-    else if (myvar == "nospac") {
-      gHwpram->nospac = (myvar1 != "false");
-      ATH_MSG_INFO(" " << myvar << " is set to " << (gHwpram->nospac ? "true" : "false"));
-    }
-    else if (myvar == "hardme") {
-      gHwpram->hardme = (myvar1 != "false");
-      ATH_MSG_INFO(" " << myvar << " is set to " << (gHwpram->hardme ? "true" : "false"));
-    }
-    else if (myvar == "softme") {
-      gHwpram->softme = (myvar1 != "false");
-      ATH_MSG_INFO(" " << myvar << " is set to " << (gHwpram->softme ? "true" : "false"));
-    }
-
-    // weak parameters and widths
-    else if (myvar == "ncolo") { gHwpram->ncolo = myint1; }
-    else if (myvar == "nflav") { gHwpram->nflav = myint1; }
-    else if (myvar == "swein") { gHwpram->swein = myfl1; }
-    else if (myvar == "scabi") { gHwpram->scabi = myfl1; }
-
-    // print options
-    else if (myvar == "prvtx") { gHwpram->prvtx = myint1; }
-    else if (myvar == "prndef"){ gHwpram->prndef = myint1; }
-    else if (myvar == "prntex"){ gHwpram->prntex = myint1; }
-    else if (myvar == "prnweb"){ gHwpram->prnweb = myint1; }
-    else if (myvar == "nprfmt"){ gHwpram->nprfmt = myint1; }
-    else if (myvar == "iprint"){ gHwpram->iprint = myint1; }
-
-    // Widths
-    else if (myvar == "gamh") { gHwpram->gamh = myfl1; }
-    else if (myvar == "gamw") { gHwpram->gamw = myfl1; }
-    else if (myvar == "gamz") { gHwpram->gamz = myfl1; }
-    else if (myvar == "gamzp") { gHwpram->gamzp = myfl1; } // Z'
-    else if (myvar == "zprime") {
-      gHwpram->zprime = (myvar1 != "false");
-      ATH_MSG_INFO(" " << myvar << " is set to " << (gHwpram->zprime ? "true" : "false"));
-    }
-
-    else if (myvar == "effmin") {
-      gHwpram->effmin = myfl1;
-    }
-    else if (myvar == "psplt") {
-      gHwpram->psplt[0] = myfl1;
-      gHwpram->psplt[1] = myfl2;
-    }
-    else if (myvar == "cldir") {
-      gHwpram->cldir[0] = myint1;
-      gHwpram->cldir[1] = myint2;
-    }
-    else if (myvar == "clsmr") {
-      gHwpram->clsmr[0] = myfl1;
-      gHwpram->clsmr[1] = myfl2;
-    }
-    else if (myvar == "ensof") { gHwpram->ensof = myfl1;}
-    else if (myvar == "qcdlam"){ gHwpram->qcdlam = myfl1;}
-    else if (myvar == "clpow") { gHwpram->clpow = myfl1;}
-    else if (myvar == "prsof") { gHwpram->prsof = myfl1;}
-    else if (myvar == "ptrms") { gHwpram->ptrms = myfl1;}
-    else if (myvar == "vgcut") { gHwpram->vgcut = myfl1;}
-    else if (myvar == "vqcut") { gHwpram->vqcut = myfl1;}
-    else if (myvar == "vpcut") { gHwpram->vpcut = myfl1;}
-    // Allow user to set different PDF for each beam (this might be needed for
-    // non-LHC runs or photoproduction)
-    else if (myvar == "modpdf1") { gHwpram->modpdf[0] = myint1; }
-    else if (myvar == "modpdf2") { gHwpram->modpdf[1] = myint1; }
-    // If beam id not specified, assume both are the same PDF.
-    else if (myvar == "modpdf") {
-      gHwpram->modpdf[0] = myint1;
-      gHwpram->modpdf[1] = myint1;
-    }
-
-    // HWPRCH common block
-    // allow user to use PDFs from different libraries for each beam
-    else if (myvar == "autpdf1") {
-      string autlocal = myvar1;
-      int nch = (autlocal.size()<20) ? autlocal.size() : 19;
-      for (int i=0; i<20; i++) {
-        if(i < nch) {
-          gHwprch->autpdf[0][i] = autlocal.data()[i];
-        } else {
-          gHwprch->autpdf[0][i] = ' ';
-        }
-      }
-    }
-    else if (myvar == "autpdf2") {
-      string autlocal = myvar1;
-      int nch = (autlocal.size()<20) ? autlocal.size() : 19;
-      for (int i=0; i<20; i++) {
-        if(i < nch) {
-          gHwprch->autpdf[1][i] = autlocal.data()[i];
-        } else {
-          gHwprch->autpdf[1][i] = ' ';
-        }
-      }
-    }
-    else if (myvar == "autpdf") {
-      string autlocal = myvar1;
-      int nch = (autlocal.size()<20) ? autlocal.size() : 19;
-      for (int i=0; i<20; i++) {
-        if(i < nch) {
-          gHwprch->autpdf[0][i] = autlocal.data()[i];
-          gHwprch->autpdf[1][i] = autlocal.data()[i];
-        } else {
-          gHwprch->autpdf[0][i] = ' ';
-          gHwprch->autpdf[1][i] = ' ';
-        }
-      }
-    }
-
-    // output control and random numbers
-    else if (myvar == "maxer") { gHwevnt->maxer = myint1; }
-    else if (myvar == "maxpr") { gHwevnt->maxpr = myint1; }
-
-    else if (myvar == "nrn") {
-      if (myint1 == 1) {
-        gHwevnt->nrn[0] = myint2;
-      } else if (myint1 == 2) {
-        gHwevnt->nrn[1] = myint2;
-      }
-    }
-    else if (myvar == "nowgt") {
-      /// @todo Why handled differently from other '=false' cases?
-      //if (myvar1 == "false") { gHwevnt->nowgt = false; }
-      gHwevnt->nowgt = (myvar1 != "false");
-      ATH_MSG_INFO(" " << myvar << " is set to " << (gHwevnt->nowgt ? "true" : "false"));
-    }
-    else if (myvar == "wgtmax") { gHwevnt->wgtmax = myfl1; }
-    else if (myvar == "tlout") { gHwevnt->tlout = myfl1; }
-
-    // Particle masses
-    else if (myvar == "rmass") {
-      if (myint1 > 0 && myint1 < 501) {
-        gHwprop->rmass[myint1] = myfl2;
-      }
-    }
-
-    // Particle stability
-    else if (myvar == "rstab") {
-      if (myint1 > 0 && myint1 < 501) {
-        gHwupdt->rstab[myint1] = myint2;
-      }
-    }
-
-    // Boson decay modes
-    else if (myvar == "modbos") {
-      if(myint1 > 0 && myint1 < 10) {
-        gHwbosc->modbos[myint1-1] = myint2;
-      }
-    }
-
-    // SUSY filename
-    else if (myvar == "susyfile") {
-      m_read_Filesusy = myvar1;
-    }
-
-    // Graviton stuff
-    else if (myvar == "grvlam") { gHwgrav->grvlam = myfl1; }
-    else if (myvar == "emgrv")  { gHwgrav ->emgrv = myfl1; }
-    else if (myvar == "gamgrv") { gHwgrav->gamgrv = myfl1; }
-
-    // version 6.506 stuff
-    else if (myvar == "pdfx0")  { gHw6506->pdfx0  = myfl1; }
-    else if (myvar == "pdfpow") { gHw6506->pdfpow = myfl1; }
-
-    // version 6.510 stuff
-    else if (myvar == "ndetry") { m_ndetry = myint1; }
-
-    // version 6.520 stuff
-    else if (myvar == "trunsh") {
-      gHw6520->trunsh = (myvar1 != "false");
-      //ATH_MSG_INFO(" " << myvar << " is set to " << (gHw6520->trunsh ? "true" : "false"));
-    }
-
-    // Tauola switch
-    else if (myvar == "taudec") {
-      int nch = (myvar1.size() < 7) ? myvar1.size() : 6;
-      for (int i = 0; i < 6; i++) {
-        if(i < nch) {
-          gHwdspn->taudec[i] = myvar1.data()[i];
-        }
-      }
-    }
-
-    // Spin correlations menu
-    else if (myvar=="syspin") { gHwdspn->syspin = myint1; }
-    else if (myvar=="spcopt") { gHwspin->spcopt = myint1; }
-
-    // Jimmy common blocks
-    else if (myvar == "msflag") { gJmparm->msflag = myint1; }
-    else if (myvar == "jmbug") { gJmparm->jmbug = myint1; }
-    else if (myvar == "ptjim") { gJmparm->ptjim = (double) myfl1; }
-    else if (myvar == "jmueo") { gJmparm->jmueo=myint1;}
-    else if (myvar == "jmrad") {
-      if (myint1 > 0 && myint1 < 264) {
-        gJmparm->jmrad[myint1-1] = myfl2;
-      } else {
-        ATH_MSG_ERROR("JMRAD ARRAY HAS ONLY 264 elements [1 to 264]");
-      }
-    }
-
-    // Charybdis parameters - added by nick brett - 04-02-05
-    else if (myvar == "charyb") { ::WriteCharybdisParam(myint1, myint2, (double)myfl2); }
-
-    // Colour singlet exchange parameters - added by James Monk 25.Apr.2008
-    else if (myvar == "asfixd") { gHwhard->asfixd = myfl1; }
-    else if (myvar == "omega0") { gHwhard->omega0 = myfl1; }
-    else {
-      if (myvar != "topdec") {
-        ATH_MSG_WARNING("ERROR in HERWIG PARAMETERS: " << myvar << " is not a known variable name. "
-                        << "It could be a typo on your part or a mistake in the Herwig_i code. "
-                        << "NB. Not all variables are changeable");
-      }
-    }
-  }
-
-  // Save the HERWIG_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = p_AtRndmGenSvc->GetEngine(herwig_stream);
-  const long* sip =	engine->getSeeds();
-  long int si1 = sip[0];
-  long int si2 = sip[1];
-
-  // Special settings for Alpgen
-  if (m_ExternalProcess == ALPGEN) gHwevnt->maxpr = 4;
-
-  // Special settings for SUSY
-  if ((gHwproc->iproc >= 3000 && gHwproc->iproc < 5000) ||
-      (gHwproc->iproc >= 13000 && gHwproc->iproc < 15000)) {
-    int syunit = 66;
-    const string& fileName = m_read_Filesusy;
-    cdfreadsusy_(fileName.c_str(),&syunit,fileName.size());
-    hwissp_(&syunit);
-  }
-
-  // Added for RPV 4-body decays (Sebastian Fleischmann/JMB)
-  // NB: if the RPV code is not linked, a dummy version is called.
-  hwirpv_();
-   ATH_MSG_INFO("mamy dalej");
-
-  hwuinc_(); // calculate herwig constants
- ATH_MSG_INFO("mamy dalej stale");
-  hweini_(); // initialise herwig event.
-   ATH_MSG_INFO("mamy incjalizacje zd. herwiga");
-  jminit_(); // initialise jimmy event.
- ATH_MSG_INFO("mamy incjalizacje jimmy");
-
-  // ... and set them back to the stream for proper save
-  p_AtRndmGenSvc->CreateStream(si1, si2, herwig_stream);
-  herwig_stream = "HERWIG";
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode Herwig::callGenerator() {
-  ATH_MSG_DEBUG("HERWIG generating");
-
-  bool goodev = false;
-  int abort = 1;
-
-  // Save the random number seeds in the event
-  CLHEP::HepRandomEngine* engine = p_AtRndmGenSvc->GetEngine(herwig_stream);
-  const long* s = engine->getSeeds();
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-
-  while (!goodev && abort == 1) {
-    hwuine_(); // initialize event
-    if (m_ExternalProcess == ALPGEN) {
-      ATH_MSG_DEBUG("HERWIG/ALPGEN");
-      hwepro_();
-      // Store info for PDFInfo
-      hwpdfinfo_();
-
-      // Matching-driven veto
-      int ipveto = 0;
-      upveto_(&ipveto);
-      if (ipveto != 0) {
-        gHwevnt->ierror = -1;
-        ATH_MSG_INFO("EVENT KILLED BY UPVETO. EXECUTION CONTINUES");
-      }
-
-      if (evtcon.istg <= 0) {
-        hwbgen_();  // Generate parton cascade
-        // Do Jimmy underlying event if required.
-        abort = 0;
-        if (gJmparm->msflag == 1) {
-          hwmsct_(&abort);
-        }
-        if (abort == 0) {
-          hwdhob_();  // Do heavy quark decays
-          hwcfor_();  // Do cluster formation
-          hwcdec_();  // Do cluster decays
-          hwdhad_();  // Do unstable particle decays
-          hwdhvy_();  // Do heavy flavor decays
-          hwmevt_();  // Add soft underlying event
-        }
-      }
-    } else {
-      hwepro_();  // Generate hard process
-      // Store info for PDFInfo
-      hwpdfinfo_();
-
-      if (gHwproc->iproc == -200 ) {
-        charybdfix_(); //reset hard cms code to BH=40
-      }
-      if (evtcon.istg <= 0) {
-	abort = 0;
-        if (!m_noshower_Parm) {
-          hwbgen_();  // Generate parton cascade
-          if (gJmparm->msflag == 1) {
-            hwmsct_(&abort);
-          }
-          if (abort == 0) {
-            hwdhob_();  // Do heavy quark decays
-            if (!m_nohadroniz_Parm) {
-              hwcfor_();  // Do cluster formation
-              hwcdec_();  // Do cluster decays
-              hwdhad_();  // Do unstable particle decays
-              hwdhvy_();  // Do heavy flavor decays
-              hwmevt_();  // Add soft underlying event
-            }
-          }
-        }
-      }
-    }
-
-    // User event analysis if wanted
-    if (evtcon.istg > 0) {
-      std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << "\n"
-                << "!! " << generator_name(m_ExternalProcess) << " TERMINATES NORMALLY: NO MORE EVENTS IN FILE !!!" << "\n"
-                << "!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE								!!" << "\n"
-                << "!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!" << "\n"
-                << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-      return StatusCode::FAILURE;
-    }
-
-    if (abort == 0) {
-      hwufne_();  // Finish event
-      int ihwcod = 1;
-      hwanal_(&ihwcod);
-      if (gHwevnt->ierror == 0) {
-        goodev = true;
-      } else { //modified by T.Sasaki
-        goodev = false;
-        abort = 1; //for loop again
-      }
-    }
-
-  }
-
-  ATH_MSG_DEBUG("HERWIG generating done.");
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode Herwig::genFinalize() {
-  ATH_MSG_INFO("HERWIG ending.");
-
-  // Don't call this again for AlpGen
-  if (m_ExternalProcess != ALPGEN) {
-    ATH_MSG_DEBUG("Call HWEFIN and HWAEND at endRun");
-    hwefin_();
-  } else {
-    if (evtcon.istg <= 0) {
-      alsfin_(); // when finished gracefully
-    }
-  }
-  if (gJmparm->msflag == 1) {
-    jmefin_();
-  }
-
-  // User terminal calculations if wanted
-  if (m_SetCrossSection==m_Default_SetCrossSection)
-    {
-      //always print out generator's version
-      std::cout << "MetaData: generator = Herwig " << HWVERSION << std::endl;
-      //always print out the non-scaled x-section
-      std::cout << "MetaData: cross-section (nb)= " << gHwevnt->avwgt << std::endl;
-
-      //print out additional MetaData fields if cross-section scaling is requested
-      if (m_xsscale != m_Default_xsscale)
-	{
-	  std::cout << "MetaData: cross-section*CrossSectionScaleFactor (nb)= " << gHwevnt->avwgt * m_xsscale << std::endl;
-	  std::cout << "MetaData: CrossSectionScaleFactor = " << m_xsscale << std::endl;
-	}
-    }
-  else
-    {
-      std::cout << "Printing cross-section passed by SetCrossSection in JO: "<< std::endl;
-      std::cout << "MetaData: cross-section (nb)= " << m_SetCrossSection << std::endl;
-    }
-
-
-  // hwaend_();
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode Herwig::fillEvt(HepMC::GenEvent* evt) {
-  ATH_MSG_DEBUG("HERWIG Atlas_HEPEVT filling.");
-  store_Atlas_HEPEVT();
-
-  ATH_MSG_DEBUG("HERWIG filling.");
-  // Fill event into HepMC and transient store
-  HepMC::IO_HERWIG hepio;
-  hepio.fill_next_event(evt);
-  int pr_id = HERWIG + m_ExternalProcess + gHwproc->iproc;
-  if (gHwproc->iproc < 0) pr_id = HERWIG + m_ExternalProcess;
-  string taustring;
-  taustring.assign(gHwdspn->taudec,6);
-  if (taustring == "TAUOLA") pr_id += TAUOLA_PHOTOS;
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-
-  // Set beam particle status = 4
-  if (evt->valid_beam_particles()) {
-    evt->beam_particles().first->set_status(4);
-    evt->beam_particles().second->set_status(4);
-  } else {
-    ATH_MSG_WARNING("NO VALID BEAM PARTICLES");
-  }
-
-  // Set PDF info
-  const int id1 = gHrwpdf->id1;
-  const int id2 = gHrwpdf->id2;
-  const double x1 = gHrwpdf->x1;
-  const double x2 = gHrwpdf->x2;
-  const double q = gHrwpdf->q;
-  // PDF id(s)
-  const int idPdf1 = gHrwpdf->idpdf1;
-  const int idPdf2 = gHrwpdf->idpdf2;
-  // Store x*Pdf(id,x,Q) in PdfInfo structure instead of Pdf ID(s)
-
-  size_t idx1;
-  size_t idx2;
-
-
-  if(id1==21)
-    idx1=12;
-  else if(id1 >= 1 && id1 <= 6)
-    idx1=id1-1;
-  else if(id1 <= -1 && id1 >= -6)
-    idx1=5-id1;
-  else
-    idx1=100;
-
-  if(id2==21)
-    idx2=25;
-  else if(id2 >= 1 && id2 <= 6)
-    idx2=id2+12;
-  else if(id2 <= -1 && id2 >= -6)
-    idx2=18-id2;
-  else
-    idx2=100;
-
-  double  xpdf1 = -999.,
-    xpdf2 = -999.;
-
-  int ld1=1;
-  int ld2=2;
-  int idh1=gHwevnt->idhw[ ld1-1 ];
-  int idh2=gHwevnt->idhw[ ld2-1 ];
-  int nset=0;
-  double disf[26];
-
-  if ( idx1 > 25 || idx2 > 25 ) {
-    ATH_MSG_WARNING( "PDF index out of range!" );
-  } else {
-
-    hwsfun_(&x1, &q, &idh1, &nset, &(disf[0]), &ld1);
-    hwsfun_(&x2, &q, &idh2, &nset, &(disf[13]), &ld2);
-
-    xpdf1 = disf[ idx1 ];
-    xpdf2 = disf[ idx2 ];
-  }
-
-
-  if ( m_ExternalProcess == LHEF ) {
-      // for external (lhe) generators read pdf information from LHEFINFO common block (filled by Lhef_i)
-    Lhefinfo linfo;
-
-    ATH_MSG_DEBUG("lhefinfo, id1: "   << linfo.id1());
-    ATH_MSG_DEBUG("lhefinfo, id2: "   << linfo.id2());
-    ATH_MSG_DEBUG("lhefinfo, x1: "    << linfo.x1());
-    ATH_MSG_DEBUG("lhefinfo, x2: "    << linfo.x2());
-    ATH_MSG_DEBUG("lhefinfo, scale: " << linfo.scalePdf());
-    ATH_MSG_DEBUG("lhefinfo, xpdf1: " << linfo.xPdf1());
-    ATH_MSG_DEBUG("lhefinfo, xpdf2: " << linfo.xPdf2());
-
-    HepMC::PdfInfo tmp_pdi( linfo.id1(), linfo.id2(), linfo.x1(), linfo.x2(),
-        linfo.scalePdf(), linfo.xPdf1(), linfo.xPdf2() );
-    evt->set_pdf_info(tmp_pdi);
-
-  } else {
-    HepMC::PdfInfo tmp_pdi( id1, id2, x1, x2, q, xpdf1, xpdf2, idPdf1, idPdf2 );
-    evt->set_pdf_info( tmp_pdi );
-  }
-
-  ATH_MSG_DEBUG("pdfinfo: "
-                << evt->pdf_info()->id1() << ", "
-                << evt->pdf_info()->id2() << ", "
-                << evt->pdf_info()->x1() << ", "
-                << evt->pdf_info()->x2() << ", "
-                << evt->pdf_info()->scalePDF() << ", "
-                << evt->pdf_info()->pdf1() << ", "
-                << evt->pdf_info()->pdf2() << ", "
-                << evt->pdf_info()->pdf_id1() << ", "
-                << evt->pdf_info()->pdf_id2() );
-
-  // Set weights to +/-1 if we a generating unweighted events.
-  //(consider better way to deal with theMCATNLO case in future...)
-  if (gHwevnt->nowgt || m_ExternalProcess == MCATNLO){
-    if (gHwevnt->evwgt < 0.) evt->weights().push_back(-1.);
-    else if (gHwevnt->evwgt > 0.) evt->weights().push_back(1.);
-    else if (gHwevnt->evwgt == 0.) ATH_MSG_WARNING("EVENT WEIGHT = 0 !!!!!!");
-  }  else {
-    evt->weights().push_back(gHwevnt->evwgt);
-  }
-  // Set user weights for WZ McAtNlo processes
-  if(m_ExternalProcess == MCATNLO){
-    Wgtacp uwgts;
-
-    if(uwgts.userwgts() != 0){
-       // check if we have WW or WZ process (WZ only 10 weights .ne. -999, WW 28)
-
-       //for(int i=0; i<uwgts.nElements(); i++){
-       for(int i=0; i<uwgts.userwgts(); i++){
-             evt->weights().push_back(uwgts.wgtacp(i));
-//             std::cout << "wgh, wgtacp[" << i << "] = " << uwgts.wgtacp(i) << std::endl;
-       }
-     }
-
-    ATH_MSG_DEBUG("McAtNlo userweghts: " << uwgts.userwgts());
-
-    //    HepMC::WeightContainer tst_wgt;
-    //    for(unsigned int i=0; i<evt->weights().size(); i++){
-    //    tst_wgt = evt->weights();
-    //    std::cout << "evt, weights[" << i << "] = " << tst_wgt[i] << std::endl;
-    //      }
-  }
-
-  if ( m_updateHadronStatCode ) {
-    ATH_MSG_INFO( "Hadron update" );
-    updateStatusCode( evt );
-  }
-
-  // Convert cm->mm and GeV->MeV
-  //cmTomm(evt);
-  GeVToMeV(evt);
-
-  return StatusCode::SUCCESS;
-}
-
-void Herwig::updateStatusCode( HepMC::GenEvent *evt )
-{
-    // loop over particles in event (put it to a filter? TODO)
-  for ( HepMC::GenEvent::particle_iterator p =  evt->particles_begin(); p != evt->particles_end(); ++p ) {
-    HepPDT::ParticleID pid( (*p)->pdg_id() );
-
-    if ( pid.isHadron() ) {
-      HepMC::GenVertex *endVertex = (*p)->end_vertex();
-
-      int statusCode = (*p)->status();
-      if ( endVertex && statusCode != 1 && statusCode != 4 ) {
-
-        bool sameHadronFound = false;
-        for ( HepMC::GenVertex::particle_iterator child = endVertex->particles_begin( HepMC::family );
-              child != endVertex->particles_end( HepMC::family ); ++child ) {
-
-          if ( *child != *p ) {   // remove current hadron from the list of children
-            if ( (*child)->pdg_id() == (*p)->pdg_id() ) {
-              sameHadronFound = true;
-              break;
-            }
-          }
-        }
-
-        if ( !sameHadronFound ) {
-          (*p)->set_status( 2 );
-        }
-      } // else - doesn't have end_vertex (status code=1)
-    }
-  }
-
-}
-
-void Herwig::store_Atlas_HEPEVT() {
-  ATH_MSG_DEBUG("atlas_HEPEVT params: "
-                << "nhep=" << s_atlas_HEPEVT->nhep() << ", "
-                << "isthep(10)=" << s_atlas_HEPEVT->isthep(10) << ", "
-                << "idhep(10)=" << s_atlas_HEPEVT->idhep(10) << ", "
-                << "jmohep(1,10)=" << s_atlas_HEPEVT->jmohep(1,10) << ", "
-                << "jdahep(2,10)=" << s_atlas_HEPEVT->jdahep(2,10));
-   /// @todo Ugly... and a memory leak?
-  s_atlas_HEPEVT->fill();
-  Atlas_HEPEVT* ahep = new Atlas_HEPEVT();
-  *(ahep) = *(s_atlas_HEPEVT);
-  string keyid = "Herwig";
-  StatusCode sc = evtStore()->record(ahep, keyid);
-  if (!sc.isSuccess()) {
-    ATH_MSG_WARNING("Could not record Atlas_HEPEVT");
-  }
-}
diff --git a/Generators/Herwig_i/src/HerwigDummies/circee.F b/Generators/Herwig_i/src/HerwigDummies/circee.F
deleted file mode 100644
index 30d3a851530ae04850d6eab7219f685f36bf5d02..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/circee.F
+++ /dev/null
@@ -1,63 +0,0 @@
-C-----------------------------------------------------------------------
-C                           H E R W I G
-C
-C            a Monte Carlo event generator for simulating
-C        +---------------------------------------------------+
-C        | Hadron Emission Reactions With Interfering Gluons |
-C        +---------------------------------------------------+
-C I.G. Knowles(*), G. Marchesini(+), M.H. Seymour($) and B.R. Webber(#)
-C-----------------------------------------------------------------------
-C with Minimal Supersymmetric Standard Model Matrix Elements by
-C                S. Moretti(&,X) and K. Odagiri(^)
-C-----------------------------------------------------------------------
-C R parity violating Supersymmetric Decays and Matrix Elements by
-C                          P. Richardson(#)
-C-----------------------------------------------------------------------
-C matrix element corrections to top decay and Drell-Yan type processes
-C                         by G. Corcella(")
-C-----------------------------------------------------------------------
-C Deep Inelastic Scattering and Heavy Flavour Electroproduction by
-C                  G. Abbiendi(@) and L. Stanco(%)
-C-----------------------------------------------------------------------
-C and Jet Photoproduction in Lepton-Hadron Collisions by J. Chyla(~)
-C-----------------------------------------------------------------------
-C(*)  Department of Physics & Astronomy, University of Edinburgh
-C(+)  Dipartimento di Fisica, Universita di Milano-Bicocca
-C($)  Department of Physics & Astronomy, University of Manchester
-C(#)  Cavendish Laboratory, Cambridge
-C(&)  Theory Division, CERN
-C(X)  Institute of Particle Physics Phenomenology, University of Durham
-C(^)  Theory Group, KEK
-C(")  Max Planck Institute, Munich
-C(@)  Dipartimento di Fisica, Universita di Bologna
-C(%)  Dipartimento di Fisica, Universita di Padova
-C(~)  Institute of Physics, Prague
-C-----------------------------------------------------------------------
-C                  Version 6.504 - 12 August 2003
-C-----------------------------------------------------------------------
-C Main references:
-C
-C    G.Corcella, I.G.Knowles, G.Marchesini, S.Moretti, K.Odagiri,
-C    P.Richardson, M.H.Seymour and B.R.Webber, JHEP 0101 (2001) 010
-C
-C    G.Marchesini,  B.R.Webber,  G.Abbiendi,  I.G.Knowles,  M.H.Seymour,
-C    and L.Stanco, Computer Physics Communications 67 (1992) 465.
-C-----------------------------------------------------------------------
-C Please see the official HERWIG information page:
-C    http://hepwww.rl.ac.uk/theory/seymour/herwig/
-C-----------------------------------------------------------------------
-CDECK  ID>, CIRCEE.
-*CMZ :-        -03/07/01  17.07.47  by  Bryan Webber
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      FUNCTION CIRCEE (X1, X2)
-C-----------------------------------------------------------------------
-C     DUMMY FUNCTION: DELETE AND SET CIRCOP NON-ZERO
-C     IN MAIN PROGRAM IF YOU USE CIRCE BEAM SPECTRUM PACKAGE
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION CIRCEE, X1, X2
-      WRITE (6,10)
-   10 FORMAT(/10X,'CIRCEE CALLED BUT NOT LINKED')
-      CIRCEE = 0.0D0
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/circes.F b/Generators/Herwig_i/src/HerwigDummies/circes.F
deleted file mode 100644
index 7ad929d803d2d37408a340da665448d789a8486a..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/circes.F
+++ /dev/null
@@ -1,15 +0,0 @@
-CDECK  ID>, CIRCES.
-*CMZ :-        -03/07/01  17.07.47  by  Bryan Webber
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE CIRCES (XX1M, XX2M, XROOTS, XACC, XVER, XREV, XCHAT)
-C-----------------------------------------------------------------------
-C     DUMMY SUBROUTINE: DELETE AND SET CIRCOP NON-ZERO
-C     IN MAIN PROGRAM IF YOU USE CIRCE BEAM SPECTRUM PACKAGE
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION XX1M, XX2M, XROOTS
-      INTEGER XACC, XVER, XREV, XCHAT
-      WRITE (6,10)
-   10 FORMAT(/10X,'CIRCES CALLED BUT NOT LINKED')
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/circgg.F b/Generators/Herwig_i/src/HerwigDummies/circgg.F
deleted file mode 100644
index dc73889ef13d29c5ea86a49dd6e7aece46c0513f..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/circgg.F
+++ /dev/null
@@ -1,15 +0,0 @@
-CDECK  ID>, CIRCGG.
-*CMZ :-        -03/07/01  17.07.47  by  Bryan Webber
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      FUNCTION CIRCGG (X1, X2)
-C-----------------------------------------------------------------------
-C     DUMMY FUNCTION: DELETE AND SET CIRCOP NON-ZERO
-C     IN MAIN PROGRAM IF YOU USE CIRCE BEAM SPECTRUM PACKAGE
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION CIRCGG, X1, X2
-      WRITE (6,10)
-   10 FORMAT(/10X,'CIRCGG CALLED BUT NOT LINKED')
-      CIRCGG = 0.0D0
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/decadd.F b/Generators/Herwig_i/src/HerwigDummies/decadd.F
deleted file mode 100644
index 6bd768bef50e6c26d40008ac7727e9da3152afa6..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/decadd.F
+++ /dev/null
@@ -1,14 +0,0 @@
-CDECK  ID>, DECADD.
-*CMZ :-        -28/01/92  12.34.44  by  Mike Seymour
-*-- Author :    Luca Stanco
-C-----------------------------------------------------------------------
-      SUBROUTINE DECADD(LOGI)
-C-----------------------------------------------------------------------
-C     DUMMY SUBROUTINE: DELETE AND SET BDECAY='CLEO'
-C     IN MAIN PROGRAM IF YOU USE CLEO DECAY PACKAGE
-C-----------------------------------------------------------------------
-      LOGICAL LOGI
-      WRITE (6,10)
-   10 FORMAT(/10X,'DECADD CALLED BUT NOT LINKED')
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/eudini.F b/Generators/Herwig_i/src/HerwigDummies/eudini.F
deleted file mode 100644
index b34fb3fe170fd52773054ad4262ae82edf17d3b1..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/eudini.F
+++ /dev/null
@@ -1,13 +0,0 @@
-CDECK  ID>, EUDINI.
-*CMZ :-        -28/01/92  12.34.44  by  Mike Seymour
-*-- Author :    Luca Stanco
-C-----------------------------------------------------------------------
-      SUBROUTINE EUDINI
-C-----------------------------------------------------------------------
-C     DUMMY SUBROUTINE: DELETE AND SET BDECAY='EURO'
-C     IN MAIN PROGRAM IF YOU USE EURODEC DECAY PACKAGE
-C-----------------------------------------------------------------------
-      WRITE (6,10)
-   10 FORMAT(/10X,'EUDINI CALLED BUT NOT LINKED')
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/fragmt.F b/Generators/Herwig_i/src/HerwigDummies/fragmt.F
deleted file mode 100644
index 87f3777bb9e465d8dc436e63612ae8ac4fc7a507..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/fragmt.F
+++ /dev/null
@@ -1,14 +0,0 @@
-CDECK  ID>, FRAGMT.
-*CMZ :-        -28/01/92  12.34.44  by  Mike Seymour
-*-- Author :    Luca Stanco
-C-----------------------------------------------------------------------
-      SUBROUTINE FRAGMT(I,J,K)
-C-----------------------------------------------------------------------
-C     DUMMY SUBROUTINE: DELETE AND SET BDECAY='EURO'
-C     IN MAIN PROGRAM IF YOU USE EURODEC DECAY PACKAGE
-C-----------------------------------------------------------------------
-      INTEGER I,J,K
-      WRITE (6,10)
-   10 FORMAT(/10X,'FRAGMT CALLED BUT NOT LINKED')
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/hvhbvi.F b/Generators/Herwig_i/src/HerwigDummies/hvhbvi.F
deleted file mode 100644
index 71d2c4a2e1201472e2dfeca70a72349bcd1c9ec9..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/hvhbvi.F
+++ /dev/null
@@ -1,12 +0,0 @@
-CDECK  ID>, HVHBVI.
-*CMZ :-        -28/01/92  12.34.44  by  Mike Seymour
-*-- Author :    Mike Seymour
-C-----------------------------------------------------------------------
-      SUBROUTINE HVHBVI
-C-----------------------------------------------------------------------
-C     DUMMY ROUTINE: DELETE IF YOU LINK TO BARYON NUMBER VIOLATN PACKAGE
-C-----------------------------------------------------------------------
-      WRITE (6,10)
-   10 FORMAT(/10X,'HERBVI CALLED BUT NOT LINKED')
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/hwhvvj.F b/Generators/Herwig_i/src/HerwigDummies/hwhvvj.F
deleted file mode 100644
index 507608f66aeff05810dd2435ef0e72659bb4d421..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/hwhvvj.F
+++ /dev/null
@@ -1,11 +0,0 @@
-CDECK  ID>, HWHVVJ.
-*CMZ :-        -11/05/01  09.19.45  by  Bryan Webber
-*-- Author :    Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE HWHVVJ
-C-----------------------------------------------------------------------
-C   VV + 1 JET PRODUCTION, WHERE VV=WW,ZZ,WZ FOR IPROC=2850,2860,2870
-C-----------------------------------------------------------------------
-      PRINT *,'  VV + 1 JET CALLED BUT NOT YET IMPLEMENTED'
-      CALL HWWARN('HWHVVJ',500)
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/hwirpv.F b/Generators/Herwig_i/src/HerwigDummies/hwirpv.F
deleted file mode 100644
index c78b110b647a08eb20e381de92a1bee7d880d1e7..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/hwirpv.F
+++ /dev/null
@@ -1,9 +0,0 @@
-
-C----------------------------------------------------------------------
-      SUBROUTINE HWIRPV
-C----------------------------------------------------------------------
-C     THIS IS A DUMMY SUBROUTINE WHICH IS CALLED FROM THE INTERFACE
-C     WHEN RPV DECAYS ARE NOT BEING USED IN HERWIG (I.E. USUALLY!)
-C     Jon Butterworth, Sebastian Fleischmann
-C----------------------------------------------------------------------
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/hwugup.F b/Generators/Herwig_i/src/HerwigDummies/hwugup.F
deleted file mode 100644
index e2c14cdb5cb537ccb9c6a46070802d60fadb4b85..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/hwugup.F
+++ /dev/null
@@ -1,4 +0,0 @@
-      SUBROUTINE HWUGUP
- 
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/hwupro.F b/Generators/Herwig_i/src/HerwigDummies/hwupro.F
deleted file mode 100644
index de71a17d4cbc60e9ad95b01fffc2cf7262fb9a2b..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/hwupro.F
+++ /dev/null
@@ -1,5 +0,0 @@
-      SUBROUTINE HWUPRO
- 
- 
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/ieupdg.F b/Generators/Herwig_i/src/HerwigDummies/ieupdg.F
deleted file mode 100644
index 0f940e0fbba16bdd064a71dd2bef7ba1dca75ba3..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/ieupdg.F
+++ /dev/null
@@ -1,15 +0,0 @@
-CDECK  ID>, IEUPDG.
-*CMZ :-        -28/01/92  12.34.44  by  Mike Seymour
-*-- Author :    Luca Stanco
-C-----------------------------------------------------------------------
-      FUNCTION IEUPDG(I)
-C-----------------------------------------------------------------------
-C     DUMMY SUBROUTINE: DELETE AND SET BDECAY='EURO'
-C     IN MAIN PROGRAM IF YOU USE EURODEC DECAY PACKAGE
-C-----------------------------------------------------------------------
-      INTEGER IEUPDG,I
-      WRITE (6,10)
-   10 FORMAT(/10X,'IEUPDG CALLED BUT NOT LINKED')
-      IEUPDG=0
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/ipdgeu.F b/Generators/Herwig_i/src/HerwigDummies/ipdgeu.F
deleted file mode 100644
index 4b65abad3e466408479420b4d418a13bf77f6607..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/ipdgeu.F
+++ /dev/null
@@ -1,15 +0,0 @@
-CDECK  ID>, IPDGEU.
-*CMZ :-        -28/01/92  12.34.44  by  Mike Seymour
-*-- Author :    Luca Stanco
-C-----------------------------------------------------------------------
-      FUNCTION IPDGEU(I)
-C-----------------------------------------------------------------------
-C     DUMMY SUBROUTINE: DELETE AND SET BDECAY='EURO'
-C     IN MAIN PROGRAM IF YOU USE EURODEC DECAY PACKAGE
-C-----------------------------------------------------------------------
-      INTEGER IPDGEU,I
-      WRITE (6,10)
-   10 FORMAT(/10X,'IPDGEU CALLED BUT NOT LINKED')
-      IPDGEU=0
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/pytime.F b/Generators/Herwig_i/src/HerwigDummies/pytime.F
deleted file mode 100644
index 673070669c330bcae63cc9de303849d68bf3a605..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/pytime.F
+++ /dev/null
@@ -1,76 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYTIME
-C...Finds current date and time.
-C...Since this task is not standardized in Fortran 77, the routine
-C...is dummy, to be replaced by the user. Examples are given for
-C...the Fortran 90 routine and DEC Fortran 77, and what to do if
-C...you do not have access to suitable routines.
- 
-      SUBROUTINE PYTIME(IDATI)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-c      CHARACTER*8 ATIME
-C...Local array.
-      INTEGER IDATI(6),IDTEMP(3)
- 
-C...Example 0: if you do not have suitable routines.
-      DO 100 J=1,6
-      IDATI(J)=0
-  100 CONTINUE
- 
-C...Example 1: Fortran 90 routine.
-C      INTEGER IVAL(8)
-C      CALL DATE_AND_TIME(VALUES=IVAL)
-C      IDATI(1)=IVAL(1)
-C      IDATI(2)=IVAL(2)
-C      IDATI(3)=IVAL(3)
-C      IDATI(4)=IVAL(5)
-C      IDATI(5)=IVAL(6)
-C      IDATI(6)=IVAL(7)
- 
-C...Example 2: DEC Fortran 77. AIX.
-C      CALL IDATE(IMON,IDAY,IYEAR)
-C      IDATI(1)=IYEAR
-C      IDATI(2)=IMON
-C      IDATI(3)=IDAY
-C      CALL ITIME(IHOUR,IMIN,ISEC)
-C      IDATI(4)=IHOUR
-C      IDATI(5)=IMIN
-C      IDATI(6)=ISEC
- 
-C...Example 3: DEC Fortran, IRIX, IRIX64.
-C      CALL IDATE(IMON,IDAY,IYEAR)
-C      IDATI(1)=IYEAR
-C      IDATI(2)=IMON
-C      IDATI(3)=IDAY
-C      CALL TIME(ATIME)
-C      IHOUR=0
-C      IMIN=0
-C      ISEC=0
-C      READ(ATIME(1:2),'(I2)') IHOUR
-C      READ(ATIME(4:5),'(I2)') IMIN
-C      READ(ATIME(7:8),'(I2)') ISEC
-C      IDATI(4)=IHOUR
-C      IDATI(5)=IMIN
-C      IDATI(6)=ISEC
- 
-C...Example 4: GNU LINUX libU77, SunOS.
-      CALL IDATE(IDTEMP)
-      IDATI(1)=IDTEMP(3)
-      IDATI(2)=IDTEMP(2)
-      IDATI(3)=IDTEMP(1)
-      CALL ITIME(IDTEMP)
-      IDATI(4)=IDTEMP(1)
-      IDATI(5)=IDTEMP(2)
-      IDATI(6)=IDTEMP(3)
- 
-C...Common code to ensure right century.
-      IDATI(1)=2000+MOD(IDATI(1),100)
- 
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/qqinit.F b/Generators/Herwig_i/src/HerwigDummies/qqinit.F
deleted file mode 100644
index e6f7d5844fa46d6178ba8608cf8d9700fd13a10e..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/qqinit.F
+++ /dev/null
@@ -1,14 +0,0 @@
-CDECK  ID>, QQINIT.
-*CMZ :-        -28/01/92  12.34.44  by  Mike Seymour
-*-- Author :    Luca Stanco
-C-----------------------------------------------------------------------
-      SUBROUTINE QQINIT(QQLERR)
-C-----------------------------------------------------------------------
-C     DUMMY SUBROUTINE: DELETE AND SET BDECAY='CLEO'
-C     IN MAIN PROGRAM IF YOU USE CLEO DECAY PACKAGE
-C-----------------------------------------------------------------------
-      LOGICAL QQLERR
-      WRITE (6,10)
-   10 FORMAT(/10X,'QQINIT CALLED BUT NOT LINKED')
-      STOP
-      END
diff --git a/Generators/Herwig_i/src/HerwigDummies/timel.F b/Generators/Herwig_i/src/HerwigDummies/timel.F
deleted file mode 100644
index 568e4005898c144796baf036f493233e90a1bf04..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigDummies/timel.F
+++ /dev/null
@@ -1,5 +0,0 @@
-      SUBROUTINE TIMEL (T)
-
-      T = 9999.
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigInterface_65.F b/Generators/Herwig_i/src/HerwigInterface_65.F
deleted file mode 100644
index a348aa3da4ce15b472c01e11a87dd61befedf1c7..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigInterface_65.F
+++ /dev/null
@@ -1,106 +0,0 @@
-c
-      subroutine herwiginterface(itopd)
-c----------------------------------------------------------------------
-c   program initialization
-c----------------------------------------------------------------------
-c
-c  HERWIG common blocks (`external` loads in  block data)
-c-----------------------------------------------------------------------
-#include "HERWIG65.INC"
-#include "jimmy.inc"
-      EXTERNAL HWUDAT
-c-----------------------------------------------------------------------
-c  local variables
-c-----------------------------------------------------------------------
-      INTEGER       ITOPD
-      EXTERNAL HWHSCT
-      
-c------------------------------------------------------------------------------ 
-c  set defaults
-c------------------------------------------------------------------------------
-
-      CALL HWIGIN                       ! set HERWIG defaults
-
-C(BPK)->CHARYBDIS 1.003 FIX
-C---DEFINE BLACK HOLE
-      NRES=NRES+1
-      RNAME(NRES)='BlacHole'
-      IDPDG(NRES)=40
-
-      IF (ITOPD.GT.0) CALL TOPDEC
-
-      CALL JIMMIN
-
-c     Don't write out the sudaov tables by default
-      LWSUD         = 0
-
-      RETURN
-      END
-
-C
-C     The following two dummy routines are needed by Herwig...
-
-      Subroutine Hvcbvi
-#include "HERWIG65.INC"
-
-      Write(6,10)
- 10   Format(/10x,'HVCBVI called but not linked')
-      end
-
-
-      Subroutine Hwaend
-      end
-
-c
-      Subroutine cdfreadsusy(filnam,iunit)
-      character*(*)  filnam
-c      integer status
-c      integer sigtlu, sifrlu
-      integer iunit
-c-----------------------------------------------------------------------
-c  open the SUSY particle properties file
-c-----------------------------------------------------------------------
-
-c      status        = sigtlu(iunit)
-      write(*,*) ' '
-      write (*,6660)
- 6660 format (' SUSY filename is ')
-      write (*,*) filnam
-      write (*,6664) iunit
- 6664 format ('      and unit number is ',i6)
-C
-      open(unit=iunit,file=filnam,status='old',err=101
-     &     ,FORM='FORMATTED',ACCESS='SEQUENTIAL')
-      goto 102
-c-----------------------------------------------------------------------
-c  error: can't open SUSY file
-c-----------------------------------------------------------------------
-101   continue
-      write(*,*) ' '
-      write(*,*) ' ********************************************* '
-      write(*,*) ' '
-      write(*,*) 
-     $     ' Error in opening SUSY file for READING'
-      write(*,*)
-     $     ' Program will abort.'
-      write(*,*) ' '
-      write(*,*) ' ********************************************* '
-      write(*,*) ' '
-102   continue
-      end
-c
-c-----------------------------------------------------------------------
-c  dummy hwanal, called from HerwigModule.cxx, can be useful
-      subroutine hwanal(ihwcod)
-c  input ihwcod = 1, set to zero if want this event skipped
-#include "HERWIG65.INC"
-      integer ihwcod
-c
-c
-c skip if ierror ne 0
-      if(ierror.ne.0) return
-c
-cc  do whatever here
-cc  if want to skip this event, say  ihwcod = 0
-c
-      end
diff --git a/Generators/Herwig_i/src/HerwigModified/hwdtau.f b/Generators/Herwig_i/src/HerwigModified/hwdtau.f
deleted file mode 100644
index b7868c22cb7e3e200f325cbcda69b89b0ed0a21c..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/hwdtau.f
+++ /dev/null
@@ -1,256 +0,0 @@
-CDECK  ID>, HWDTAU.
-*CMZ :-        -17/10/01  09:42:21  by  Peter Richardson
-*-- Author :    Peter Richardson
-C
-C   Modified by Borut Kersevan to adjust for Atlas specific architecture:
-C   initialization (IOPT=-1) and finalizing (IOPT=2) are done in Tauola_i     
-C
-C   Oct.3, 2008:  Vladimir Savinov (V.S.) and Reza Yoosoofmiya (R.Y.) fixed two problems:  
-C                 1) on Feb.21, 2008 IFPHOT=0 statement was accidentally deleted 
-C                    from this source code - but default value for this variable is set to 1 in 
-C                    HERWIG's src/hwsteer/hwigin.F, as the result, src/hwsteer/hwuinc.f reinitializes
-C                    PHOTOS with defaults different from ATLAS's defaults which results in less 
-C                    FSR at Photos_i/PHOTOS level at a later time. The mistakenly deleted line is put back in. 
-C                 2) Introduced a few lines of code to force decays of pi0s produced in tau decays.
-C                 Notice that we allow HERWIG to decay taus but FSR will be generated in Photos_i's calls to PHOTOS
-C
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDTAU(IOPT,IHEP,POL)
-C-----------------------------------------------------------------------
-C     HERWIG-TAUOLA interface to perform tau decays using TAUOLA rather
-C     than HERWIG
-C     IOPT =-1 initialises
-C     IOPT = 1 performs decay
-C     IOPT = 2 write outs final TAUOLA information
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-
-C     Les Houches accord common block hep-ph/0109068
-C...User process event commonblock.
-c     Ian Hinchliffe (May 2002)
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &VTIMUP(MAXNUP),SPINUP(MAXNUP)
-      SAVE /HEPEUP/
-      INTEGER IMOTAU
-
-C     Les Houches accord common block
-C     Ian Hinchliffe (May 2002)
-C     this one added for atlas use
-      INTEGER ATLASCHOICE
-      COMMON/LESATLAS/ATLASCHOICE
-      SAVE /LESATLAS/
-
-C     Generator Names include
-C     while adding a new generator change in GeneratorName.h is needed
-C     too
-c     E.M. L.12.12.2008
-c this one added for atlas use
-      INTEGER ALPGEN,MCATNLO,LHAEXT
-      PARAMETER (ALPGEN=400000,MCATNLO=900000,LHAEXT=800000) 
-
-      INTEGER IOPT,IHEP,ID,ITAU,I,IMO,NHEPPO
-      DOUBLE PRECISION POL
-      REAL POL1(4)
-      CHARACTER *8 DUMMY
-C--common block for PHOTOS
-C(JMB)      LOGICAL QEDRAD
-C(JMB)      COMMON /PHOQED/ QEDRAD(NMXHEP)
-C--common blocks for TAUOLA
-      INTEGER NP1,NP2
-      COMMON /TAUPOS/ NP1, NP2
-      DOUBLE PRECISION Q1(4),Q2(4),P1(4),P2(4),P3(4),P4(4)      
-      COMMON / MOMDEC / Q1,Q2,P1,P2,P3,P4
-C(JMB)-->
-      DOUBLE PRECISION DIST(4),VERTX(4)
-C(JMB)--<
-
-C(BPK)-->
-
-C TAUOLA PARAMETER COMMON
-      INTEGER IFPOL,IFRADCOR,IFDMOD,IFJAK1,IFJAK2
-      REAL FFPHX
-      COMMON /FFTAU/IFPOL,IFRADCOR,IFDMOD,IFJAK1,IFJAK2,FFPHX
-
-C(BPK)--<
-
-C--->>>  V.S. and R.Y.  Oct.3, 2008
-      IFPHOT = 0
-C---<<<  V.S. and R.Y.  Oct.3, 2008
-
-
-C--initialisation
-      IF(IOPT.EQ.-1) THEN
-C--initialise TAUOLA
-C(BPK)  Done elsewere in Atlas s/w
-C       CALL INIETC(JAK1,JAK2,ITDKRC,IFPHOT)
-C       CALL INIMAS
-C       CALL INIPHX(0.01d0)
-C       CALL INITDK
-
-C--generate a decay
-      ELSEIF(IOPT.EQ.1) THEN
-
-C(BPK)--> 
-         IF (IFDMOD.EQ.1) THEN  ! LEP-LEP
-            CALL TAUBRS(1)
-         ELSEIF (IFDMOD.EQ.2) THEN ! HAD-HAD
-            CALL TAUBRS(2)
-         ELSEIF (IFDMOD.EQ.3) THEN ! LEP-HAD
-            PRINT *,
-     # 'HWDTAU: LEP-HAD MODE NOT POSSIBLE IN INTERNAL HERWIG PROCESSES'
-            STOP
-         ELSEIF (IFDMOD.EQ.4) THEN ! TAU->PI NU
-            CALL TAUBRS(4)
-         ELSE                   ! INCLUSIVE DECAY
-            CALL TAUBRS(0)
-         ENDIF
-C(BPK)--<
-
-        ISTHEP(IHEP)=195
-        ID = IDHW(IHEP)
-        IMO = IHEP
- 1      IMO = JMOHEP(1,IMO)
-        IF(IDHW(IMO).EQ.ID) GOTO 1
-C--id of tau for tauola
-        IF(ID.EQ.125) THEN
-          ITAU = 2
-          NP1 = IHEP
-          NP2 = IHEP
-        ELSEIF(ID.EQ.131) THEN
-          ITAU = 1
-          NP1 = IHEP
-          NP2 = IHEP
-        ELSE
-          CALL HWWARN('HWDTAU',501)
-        ENDIF
-C--set up the tau polarization
-        POL1(1) = 0.
-        POL1(2) = 0.
-        POL1(3) = REAL(POL)
-        POL1(4) = 0.
-
-C...=================================================================
-C...S.T. 
-C...fill polarization if external generator has the spin information.
-C...So far, only consider Alpgen.
-        IF (ATLASCHOICE.EQ.ALPGEN.OR.ATLASCHOICE.EQ.MCATNLO
-     $  .OR.ATLASCHOICE.EQ.LHAEXT) THEN
-C          write(*,*) "ST...========================================"
-C          write(*,*) "ST...Events/NHEP before Tauola",NEVHEP,NHEP
-C          write(*,*) "ST...Tauola",IHEP,IMO,ID,ITAU,ATLASCHOICE,POL,
-C     $               IFPOL
-
-          IF (IMO.LT.100) THEN
-C...Find mother particle of tau to ask exact mathing of 4-vector.
-            IMOTAU = 0
- 23         DO I=1,NUP
-C              write(*,*) "Check ALL",I,IDUP(I),IDHEP(IMO),
-C     $        IMO,JMOHEP(1,IMO),
-C     $        PUP(1,I),PHEP(1,IMO)
-              IF (IABS(IDUP(I)).GT.22.AND.IABS(IDUP(I)).LT.26
-     $            .AND.IDUP(I).EQ.IDHEP(IMO)) THEN
-C                IF (ABS(PUP(1,I)-PHEP(1,IMO)).LT.1.0E-3
-C     $         .AND.ABS(PUP(2,I)-PHEP(2,IMO)).LT.1.0E-3) THEN
-C              write(*,*) "Check 4-vector PHEP:",ISTHEP(IMO),IDHEP(IMO),
-C     $        PHEP(1,IMO),PHEP(2,IMO),PHEP(3,IMO),PHEP(4,IMO)
-C              write(*,*) "Check 4-vector LHA:",I,IDUP(I),
-C     $        PUP(1,I),PUP(2,I),PUP(3,I),PUP(4,I)
-                  IMOTAU = I
-C                ENDIF
-              ENDIF
-            ENDDO
-            IF (IMOTAU.EQ.0.AND.IMO.NE.6) THEN 
-              IMO = JMOHEP(1,IMO)
-              GO TO 23
-            ENDIF
-            IF (IMOTAU.EQ.0.AND.IMO.EQ.6) THEN 
-              DO I=1,NUP
-                IF (IABS(IDUP(I)).GT.22.AND.IABS(IDUP(I)).LT.26
-     $              .AND.IDUP(I).EQ.IDHEP(IMO)) THEN
-                  IMOTAU = I
-                ENDIF
-              ENDDO
-            ENDIF
-
-C...Find tau as daughter, so that the spin information is directly filled.
-            DO I=1,NUP
-               IF(MOTHUP(1,I).GT.0.AND.IMOTAU.GT.0) THEN 
-                  IF (IDUP(I).EQ.IDHEP(IHEP)
-     $                 .AND.IDUP(MOTHUP(1,I)).EQ.IDUP(IMOTAU)) THEN
-C                 write(*,*) "ST...TAU candidate",I,IDUP(I),IDUP(IMOTAU),
-C     $           PUP(1,I),PUP(2,I),PUP(3,I),PUP(4,I),SPINUP(I)
-                     POL1(3) = SPINUP(I)
-                  ENDIF
-               ENDIF
-            ENDDO
-
-C            write(*,*) "ST...Tauola polarization",IDHEP(IHEP),POL1(3)
-          ENDIF
-        ENDIF
-C...=================================================================
-
-
-C--tau momentum
-C--three components
-        DO I=1,3
-           IF(ID.EQ.125) THEN
-              P1(I) =-PHEP(I,IHEP)
-              P2(I) = PHEP(I,IHEP)
-           ELSE
-              P1(I) = PHEP(I,IHEP)
-              P2(I) =-PHEP(I,IHEP)
-           ENDIF
-C--we measure tau spins in lab frame
-          Q1(I) = ZERO
-        ENDDO
-C--energies
-        P1(4)=PHEP(4,IHEP)
-        P2(4)=PHEP(4,IHEP)
-        Q1(4)=P1(4)+P2(4)
-C--perform the decay and generate QED radiation if needed
-        NHEPPO=NHEP
-        CALL DEXAY(ITAU,POL1)
-
-C--->>> V.S. and R.Y.  Oct.3, 2008
-        if ( ID .eq. 1 ) then
-          CALL TAUPI0(0,1)
-        else
-          CALL TAUPI0(0,2)
-        endif
-C---<<< V.S. and R.Y.  Oct.3, 2008
-
-C(JMB)--> photos calls done elsewhere       
-C        IF(IFPHOT.EQ.1) THEN
-C          IF(ID.EQ.1) THEN
-C            CALL PHOTOS(NP1)
-C          ELSE
-C            CALL PHOTOS(NP2)
-C          ENDIF
-C        ENDIF
-C(JMB)--> add tau deay vertex info.
-        CALL HWUDKL(125,PHEP(1,IHEP),DIST)
-        CALL HWVSUM(4,VHEP(1,IHEP),DIST,VERTX)
-C(JMB)--<
-        IF(NHEPPO.NE.NHEP) THEN
-          DO 2 I=NHEPPO+1,NHEP
-C(JMB)          CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,I))
-          CALL HWVEQU(4,VERTX,VHEP(1,I))
- 2        CALL HWUIDT(1,IDHEP(I),IDHW(I),DUMMY)
-        ENDIF
-
-
-C--write out info at end
-      ELSEIF(IOPT.EQ.2) THEN
-C(BPK)  Done elsewere in Atlas s/w
-C       CALL DEXAY(100,POL1)
-
-C--otherwise issue warning
-      ELSE
-        CALL HWWARN('HWDTAU',500)
-      ENDIF
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/hwhsnm.f b/Generators/Herwig_i/src/HerwigModified/hwhsnm.f
deleted file mode 100644
index 4f907b1c27a57d7d1fbffa5b619e5a5a2b61bf2a..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/hwhsnm.f
+++ /dev/null
@@ -1,153 +0,0 @@
-CDECK  ID>, HWHSNM. 
-*CMZ :-        -20/09/95  15.28.53  by  Mike Seymour
-*-- Author :    Mike Seymour
-C-----------------------------------------------------------------------
-*-- Author :    Mike Seymour, Mark Heyes, Brian Cox, Jeff Forshaw 18.12.97
-* Upgraded to remove asymptotic approximation
-C-----------------------------------------------------------------------
-*__ Author :    Graham Jones, James Monk 15.04.2008
-* Allow switch between original asymptotic version and upgraded version for ATLAS
-* Switch depends on omega0 - omega0 > 0 runs the original (and uses that omega0 value)
-*                            omega0 < 0 runs the upgraded version
-C-----------------------------------------------------------------------
-      FUNCTION HWHSNM(ID1,ID2,S,T)
-C     MATRIX ELEMENT SQUARED FOR COLOUR-SINGLET PARTON-PARTON SCATTERING
-C     INCLUDES SPIN AND COLOUR AVERAGES AND SUMS.
-C     FOR PHOTON EXCHANGE, INTERFERENCE WITH U-CHANNEL CONTRIBUTION IS
-C     INCLUDED FOR IDENTICAL QUARKS AND LIKEWISE S-CHANNEL CONTRIBUTION
-C     FOR IDENTICAL QUARK-ANTIQUARK PAIRS.
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      DOUBLE PRECISION HWHSNM,HWUAEM,HWUALF,S,T,ASQ,AINU,AINS,Y,SOLD,
-     $ TOLD,QQ(13,13),ZETA3
-      INTEGER ID1,ID2
-      LOGICAL PHOTON
-      LOGICAL PRVSN
-C---ZETA3=RIEMANN ZETA FUNCTION(3)
-      PARAMETER (ZETA3=1.202056903159594D0)
-C---paramtric fit to the function used in the Bartels/Forshaw/et al. calculation
-      DOUBLE PRECISION para,parb,parc,pard,pare !,alphas
-      PARAMETER (para=7.6155D0)
-      PARAMETER (parb=-20.259D0)
-      PARAMETER (parc=41.534D0)
-      PARAMETER (pard=-2.6150D0)
-      PARAMETER (pare=8.6744D0)
-      DOUBLE PRECISION Z
-
-      SAVE ASQ,AINU,AINS,SOLD,TOLD,QQ
-      DATA ASQ,AINU,AINS,SOLD,TOLD,QQ/5*0,169*-1/
-      SAVE PRVSN
-      DATA PRVSN/.TRUE./
-C---PHOTON=.TRUE. FOR PHOTON EXCHANGE, .FALSE. FOR MUELLER-TANG
-      PHOTON=MOD(IPROC,100).GE.50
-      IF (OMEGA0.lt.0.) THEN
-      
-c---This is the upgraded version:      
-
-C---QQ CACHES THE KINEMATIC-INDEPENDENT FACTORS, TO MAKE IT RUN FASTER
-C  (BEARING IN MIND THAT THIS ROUTINE IS CALLED 169 TIMES PER EVENT)
-        IF (QQ(ID1,ID2).LT.0) THEN
-          IF(PRVSN) THEN 
-            WRITE(*,*)
-     $      "        USING UPGRADED HWHSNM FOR COLOUR SINGLET EXCHANGE" 
-            PRVSN = .FALSE.
-          ENDIF
-
-          IF (PHOTON) THEN
-            IF (ID1.EQ.13.OR.ID2.EQ.13) THEN
-              QQ(ID1,ID2)=0
-            ELSE
-              QQ(ID1,ID2)=(QFCH(MOD(ID1-1,6)+1)*QFCH(MOD(ID2-1,6)+1))**2
-     $            *(4*PIFAC)**2
-            ENDIF
-          ELSE
-            IF (ID1.EQ.13.AND.ID2.EQ.13) THEN
-              QQ(ID1,ID2)=CAFAC**4
-            ELSEIF (ID1.EQ.13.OR.ID2.EQ.13) THEN
-              QQ(ID1,ID2)=(CAFAC*CFFAC)**2
-            ELSE
-              QQ(ID1,ID2)=CFFAC**4
-            ENDIF
-            QQ(ID1,ID2)=QQ(ID1,ID2)*16*PIFAC
-          ENDIF
-        ENDIF
-C---THE KINEMATIC-DEPENDENT PART IS ALSO CACHED
-        IF (S.NE.SOLD.OR.T.NE.TOLD) THEN
-          IF (PHOTON) THEN
-            AINS=HWUAEM(T)**2
-            ASQ=2*(S**2+(S+T)**2)/T**2*AINS
-            AINU=(-2)*S/T*AINS
-            AINS=2*AINS-AINU
-          ELSE
-            Y=LOG(S/(-T))
-            Z=(1.5/PIFAC)*asfixd*Y
-            ASQ=1.D0/(4.D0*PIFAC)*asfixd**4
-     &            *(para+parb*Z+parc*Z**2+exp(pard+pare*Z))
-     &            *(S/T)**2
-
-            AINU=0
-            AINS=0
-          ENDIF
-        ENDIF
-C---THE FINAL ANSWER IS JUST THEIR PRODUCT
-        IF (ID1.EQ.ID2) THEN
-          HWHSNM=QQ(ID1,ID2)*(ASQ+AINU)
-        ELSEIF (ABS(ID1-ID2).EQ.6) THEN
-          HWHSNM=QQ(ID1,ID2)*(ASQ+AINS)
-        ELSE
-          HWHSNM=QQ(ID1,ID2)*ASQ
-        ENDIF
-      ELSE
-c---This is the original version:   
-        IF (QQ(ID1,ID2).LT.ZERO) THEN
-        
-          IF(PRVSN) THEN 
-            WRITE(*,*)
-     $      "        USING ORIGINAL HWHSNM FOR COLOUR SINGLET EXCHANGE" 
-            PRVSN=.FALSE.
-          ENDIF
-        
-          IF (PHOTON) THEN
-            IF (ID1.EQ.13.OR.ID2.EQ.13) THEN
-              QQ(ID1,ID2)=0
-            ELSE
-              QQ(ID1,ID2)=(QFCH(MOD(ID1-1,6)+1)*QFCH(MOD(ID2-1,6)+1))**2
-     $            *(4*PIFAC)**2
-            ENDIF
-          ELSE
-            IF (ID1.EQ.13.AND.ID2.EQ.13) THEN
-              QQ(ID1,ID2)=CAFAC**4
-            ELSEIF (ID1.EQ.13.OR.ID2.EQ.13) THEN
-              QQ(ID1,ID2)=(CAFAC*CFFAC)**2
-            ELSE
-              QQ(ID1,ID2)=CFFAC**4
-            ENDIF
-            QQ(ID1,ID2)=QQ(ID1,ID2)*
-     $          PIFAC**3/(4*(3.5*ASFIXD*CAFAC*ZETA3)**3)
-     $          *(16*PIFAC)
-          ENDIF
-        ENDIF
-C---THE KINEMATIC-DEPENDENT PART IS ALSO CACHED
-        IF (S.NE.SOLD.OR.T.NE.TOLD) THEN
-          IF (PHOTON) THEN
-            AINS=HWUAEM(T)**2
-            ASQ=2*(S**2+(S+T)**2)/T**2*AINS
-            AINU=(-4)*S/T*AINS/NCOLO
-            AINS=4*AINS/NCOLO-AINU
-          ELSE
-            Y=LOG(S/(-T))+ONE
-            ASQ=HWUALF(1,EMSCA)**4*(S/T)**2*EXP(2*OMEGA0*Y)/Y**3
-            AINU=0
-            AINS=0
-          ENDIF
-        ENDIF
-C---THE FINAL ANSWER IS JUST THEIR PRODUCT
-        IF (ID1.EQ.ID2) THEN
-          HWHSNM=QQ(ID1,ID2)*(ASQ+AINU)
-        ELSEIF (ABS(ID1-ID2).EQ.6) THEN
-          HWHSNM=QQ(ID1,ID2)*(ASQ+AINS)
-        ELSE
-          HWHSNM=QQ(ID1,ID2)*ASQ
-        ENDIF
-      ENDIF
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/hwugup.f b/Generators/Herwig_i/src/HerwigModified/hwugup.f
deleted file mode 100644
index 64ec9d52fcc36e55df11306f24bf9dfae902e703..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/hwugup.f
+++ /dev/null
@@ -1,21 +0,0 @@
-C-----------------------------------------------------------------------
-      SUBROUTINE HWUGUP
-C-----------------------------------------------------------------------
-C     Subroutine to handle termination of HERWIG if reaches end of event
-C     file
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-C--reset the number of events to the correct value
-      NEVHEP = NEVHEP-1
-C--output information on the events
-      CALL HWEFIN
-C--run users end code
-      CALL HWAEND
-C ATLAS/JMB Argh athena doesn't like to STOP!
-C These lines should force HWEPRO to stop trying to generate and event
-C and terminate.
-      IERROR=-1
-      GENEV=.TRUE.
-C      STOP
-      END
-
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwdboz.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwdboz.f
deleted file mode 100644
index b4881e43dcfe3a4a6a008c7349526f42de45ad0b..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwdboz.f
+++ /dev/null
@@ -1,161 +0,0 @@
-CDECK  ID>, HWDBOZ.
-*CMZ :-        -29/04/91  18.00.03  by  Federico Carminati
-*-- Author :    Mike Seymour
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDBOZ(IDBOS,IFER,IANT,CV,CA,BR,IOPT)
-C-----------------------------------------------------------------------
-C     CHOOSE DECAY MODE OF BOSON
-C     IOPT=2 TO RESET COUNTERS, 1 FOR BOSON PAIR, 0 FOR ANY OTHERS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      DOUBLE PRECISION HWRGEN,BRMODE(12,3),CV,CA,BR,BRLST,BRCOM,FACZ,
-     & FACW
-      INTEGER HWRINT,IDBOS,IDEC,IDMODE(2,12,3),IFER,IANT,IOPT,I1,I2,
-     & I1LST,I2LST,NWGLST,NUMDEC,NPAIR,MODTMP,JFER
-      LOGICAL GENLST
-      EXTERNAL HWRGEN,HWRINT
-      SAVE FACW,FACZ,NWGLST,GENLST,NUMDEC,NPAIR,I1LST,I2LST,BRLST
-      SAVE IDMODE,BRMODE
-      DATA NWGLST,GENLST,NPAIR/-1,.FALSE.,0/
-C---STORE THE DECAY MODES (FERMION FIRST)
-      DATA IDMODE/  2,  7,  4,  9,  6, 11,  2,  9,  4,  7,
-     &            122,127,124,129,126,131,8*0,
-     &              1,  8,  3, 10,  5, 12,  3,  8,  1, 10,
-     &            121,128,123,130,125,132,8*0,
-     &              1,  7,  2,  8,  3,  9,  4, 10,  5, 11,  6, 12,
-     &            121,127,123,129,125,131,122,128,124,130,126,132/
-C---STORE THE BRANCHING RATIOS TO THESE MODES
-      DATA BRMODE/0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,
-     &            0.108D0,0.108D0,4*0.0D0,
-     &            0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,
-     &            0.108D0,0.108D0,4*0.0D0,
-     &            0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
-     &            0.033D0,0.033D0,0.033D0,0.067D0,0.067D0,0.067D0/
-C---FACTORS FOR CV AND CA FOR W AND Z
-      DATA FACW,FACZ/2*0.0D0/
-      IF (FACZ.EQ.ZERO) FACZ=SQRT(SWEIN)
-      IF (FACW.EQ.ZERO) FACW=0.5/SQRT(2D0)
-      IF (IDBOS.LT.198.OR.IDBOS.GT.200) THEN
-        CALL HWWARN('HWDBOZ',101)
-        GOTO 999
-      ENDIF
-C---IF THIS IS A NEW EVENT SINCE LAST TIME, ZERO COUNTERS
-      IF (NWGTS.NE.NWGLST .OR.(GENEV.NEQV.GENLST).OR. IOPT.EQ.2) THEN
-        NPAIR=0
-        NUMDEC=0
-        NWGLST=NWGTS
-        GENLST=GENEV
-        IF (IOPT.EQ.2) RETURN
-      ENDIF
-      NUMDEC=NUMDEC+1
-      IF (NUMDEC.GT.MODMAX) THEN
-        CALL HWWARN('HWDBOZ',102)
-        GOTO 999
-      ENDIF
-C---IF PAIR OPTION SPECIFIED FOR THE FIRST TIME, MAKE CHOICE
-      IF (IOPT.EQ.1) THEN
-        IF (NUMDEC.GT.MODMAX-1) THEN
-          CALL HWWARN('HWDBOZ',103)
-          GOTO 999
-        ENDIF
-        IF (NPAIR.EQ.0) THEN
-          IF (HWRGEN(1).GT.HALF) THEN
-            MODTMP=MODBOS(NUMDEC+1)
-            MODBOS(NUMDEC+1)=MODBOS(NUMDEC)
-            MODBOS(NUMDEC)=MODTMP
-          ENDIF
-          NPAIR=NUMDEC
-        ELSE
-          NPAIR=0
-        ENDIF
-      ENDIF
-C---SELECT USER'S CHOICE
-      IF (IDBOS.EQ.200) THEN
-        IF (MODBOS(NUMDEC).EQ.1) THEN
-          I1=1
-          I2=6
-        ELSEIF (MODBOS(NUMDEC).EQ.2) THEN
-          I1=7
-          I2=7
-        ELSEIF (MODBOS(NUMDEC).EQ.3) THEN
-          I1=8
-          I2=8
-        ELSEIF (MODBOS(NUMDEC).EQ.4) THEN
-          I1=9
-          I2=9
-        ELSEIF (MODBOS(NUMDEC).EQ.5) THEN
-          I1=7
-          I2=8
-        ELSEIF (MODBOS(NUMDEC).EQ.6) THEN
-          I1=10
-          I2=12
-        ELSEIF (MODBOS(NUMDEC).EQ.7) THEN
-          I1=5
-          I2=5
-        ELSE
-          I1=1
-          I2=12
-        ENDIF
-      ELSE
-        IF (MODBOS(NUMDEC).EQ.1) THEN
-          I1=1
-          I2=5
-        ELSEIF (MODBOS(NUMDEC).EQ.2) THEN
-          I1=6
-          I2=6
-        ELSEIF (MODBOS(NUMDEC).EQ.3) THEN
-          I1=7
-          I2=7
-        ELSEIF (MODBOS(NUMDEC).EQ.4) THEN
-          I1=8
-          I2=8
-        ELSEIF (MODBOS(NUMDEC).EQ.5) THEN
-          I1=6
-          I2=7
-        ELSE
-          I1=1
-          I2=8
-        ENDIF
-      ENDIF
- 10   IDEC=HWRINT(I1,I2)
-      IF (HWRGEN(0).GT.BRMODE(IDEC,IDBOS-197).AND.I1.NE.I2) GOTO 10
-      IFER=IDMODE(1,IDEC,IDBOS-197)
-      IANT=IDMODE(2,IDEC,IDBOS-197)
-C---CALCULATE BRANCHING RATIO
-C   (RESULT IS NOT WELL-DEFINED AFTER THE FIRST CALL OF A PAIR)
-      BR=0
-      DO 20 IDEC=I1,I2
- 20     BR=BR+BRMODE(IDEC,IDBOS-197)
-      IF (IOPT.EQ.1) THEN
-        IF (NPAIR.NE.0) THEN
-          I1LST=I1
-          I2LST=I2
-          BRLST=BR
-        ELSE
-          BRCOM=0
-          DO 30 IDEC=MAX(I1,I1LST),MIN(I2,I2LST)
- 30         BRCOM=BRCOM+BRMODE(IDEC,IDBOS-197)
-          BR=2*BR*BRLST - BRCOM**2
-        ENDIF
-      ENDIF
-C---SET UP VECTOR AND AXIAL VECTOR COUPLINGS (NORMALIZED TO THE
-C   CONVENTION WHERE THE WEAK CURRENT IS G*(CV-CA*GAM5) )
-      IF (IDBOS.EQ.200) THEN
-        IF (IFER.LE.6) THEN
-C Quark couplings
-           CV=VFCH(IFER,1)
-           CA=AFCH(IFER,1)
-        ELSE
-C lepton couplings
-           JFER=IFER-110
-           CV=VFCH(JFER,1)
-           CA=AFCH(JFER,1)
-        ENDIF
-        CV=CV * FACZ
-        CA=CA * FACZ
-      ELSE
-        CV=FACW
-        CA=FACW
-      ENDIF
- 999  RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwdbz2.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwdbz2.f
deleted file mode 100644
index ad68aa20fee3e003fea215f37e26b77f5ebf43c6..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwdbz2.f
+++ /dev/null
@@ -1,179 +0,0 @@
-CDECK  ID>, HWDBZ2.
-*CMZ :-        -02/04/01  12.11.55  by  Peter Richardson
-*-- Author :    Peter Richardson based on Mike Seymour's HWDBOZ
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDBZ2(IDBOS,IFER,IANT,CV,CA,BR,IOPT,MASS)
-C-----------------------------------------------------------------------
-C     CHOOSE DECAY MODE OF BOSON
-C     IOPT=2 TO RESET COUNTERS, 1 FOR BOSON PAIR, 0 FOR ANY OTHERS
-C     IDENTICAL TO HWDBOZ BUT REQUIRES DECAY MODE ACCESSIBLE FOR GIVEN
-C     MASS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      DOUBLE PRECISION HWRGEN,BRMODE(12,3),CV,CA,BR,BRLST,BRCOM,FACZ,
-     & FACW,MSMODE(12,3),MASS
-      INTEGER HWRINT,IDBOS,IDEC,IDMODE(2,12,3),IFER,IANT,IOPT,I1,I2,
-     & I1LST,I2LST,NWGLST,NUMDEC,NPAIR,MODTMP,JFER,NTRY
-      LOGICAL GENLST
-      EXTERNAL HWRGEN,HWRINT
-      SAVE FACW,FACZ,MSMODE,NWGLST,GENLST,NUMDEC,NPAIR,I1LST,I2LST,BRLST
-      SAVE IDMODE,BRMODE
-      DATA NWGLST,GENLST,NPAIR/-1,.FALSE.,0/
-C---STORE THE DECAY MODES (FERMION FIRST)
-      DATA IDMODE/  2,  7,  4,  9,  6, 11,  2,  9,  4,  7,
-     &            122,127,124,129,126,131,8*0,
-     &              1,  8,  3, 10,  5, 12,  3,  8,  1, 10,
-     &            121,128,123,130,125,132,8*0,
-     &              1,  7,  2,  8,  3,  9,  4, 10,  5, 11,  6, 12,
-     &            121,127,123,129,125,131,122,128,124,130,126,132/
-C---STORE THE BRANCHING RATIOS TO THESE MODES
-      DATA BRMODE/0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,
-     &            0.108D0,0.108D0,4*0.0D0,
-     &            0.321D0,0.321D0,0.000D0,0.017D0,0.017D0,0.108D0,
-     &            0.108D0,0.108D0,4*0.0D0,
-     &            0.154D0,0.120D0,0.154D0,0.120D0,0.152D0,0.000D0,
-     &            0.033D0,0.033D0,0.033D0,0.067D0,0.067D0,0.067D0/
-      DATA MSMODE/36*0.0D0/
-C---FACTORS FOR CV AND CA FOR W AND Z
-      DATA FACW,FACZ/2*0.0D0/
-      IF (FACZ.EQ.ZERO) FACZ=SQRT(SWEIN)
-      IF (FACW.EQ.ZERO) FACW=0.5/SQRT(2D0)
-      IF (IDBOS.LT.198.OR.IDBOS.GT.200) THEN
-        CALL HWWARN('HWDBZ2',101)
-        GOTO 999
-      ENDIF
-      IF(MSMODE(1,1).EQ.ZERO) THEN
-        DO I1=1,12
-          DO I2=1,3
-            MSMODE(I1,I2)=RMASS(IDMODE(1,I1,I2))+RMASS(IDMODE(2,I1,I2))
-          ENDDO
-        ENDDO
-      ENDIF
-C---IF THIS IS A NEW EVENT SINCE LAST TIME, ZERO COUNTERS
-      IF (NWGTS.NE.NWGLST .OR.(GENEV.NEQV.GENLST).OR. IOPT.EQ.2) THEN
-        NPAIR=0
-        NUMDEC=0
-        NWGLST=NWGTS
-        GENLST=GENEV
-        IF (IOPT.EQ.2) RETURN
-      ENDIF
-      NUMDEC=NUMDEC+1
-      IF (NUMDEC.GT.MODMAX) THEN
-        CALL HWWARN('HWDBZ2',102)
-        GOTO 999
-      ENDIF
-C---IF PAIR OPTION SPECIFIED FOR THE FIRST TIME, MAKE CHOICE
-      IF (IOPT.EQ.1) THEN
-        IF (NUMDEC.GT.MODMAX-1) THEN
-          CALL HWWARN('HWDBZ2',103)
-          GOTO 999
-        ENDIF
-        IF (NPAIR.EQ.0) THEN
-          IF (HWRGEN(1).GT.HALF) THEN
-            MODTMP=MODBOS(NUMDEC+1)
-            MODBOS(NUMDEC+1)=MODBOS(NUMDEC)
-            MODBOS(NUMDEC)=MODTMP
-          ENDIF
-          NPAIR=NUMDEC
-        ELSE
-          NPAIR=0
-        ENDIF
-      ENDIF
-C---SELECT USER'S CHOICE
-      IF (IDBOS.EQ.200) THEN
-        IF (MODBOS(NUMDEC).EQ.1) THEN
-          I1=1
-          I2=6
-        ELSEIF (MODBOS(NUMDEC).EQ.2) THEN
-          I1=7
-          I2=7
-        ELSEIF (MODBOS(NUMDEC).EQ.3) THEN
-          I1=8
-          I2=8
-        ELSEIF (MODBOS(NUMDEC).EQ.4) THEN
-          I1=9
-          I2=9
-        ELSEIF (MODBOS(NUMDEC).EQ.5) THEN
-          I1=7
-          I2=8
-        ELSEIF (MODBOS(NUMDEC).EQ.6) THEN
-          I1=10
-          I2=12
-        ELSEIF (MODBOS(NUMDEC).EQ.7) THEN
-          I1=5
-          I2=5
-        ELSE
-          I1=1
-          I2=12
-        ENDIF
-      ELSE
-        IF (MODBOS(NUMDEC).EQ.1) THEN
-          I1=1
-          I2=5
-        ELSEIF (MODBOS(NUMDEC).EQ.2) THEN
-          I1=6
-          I2=6
-        ELSEIF (MODBOS(NUMDEC).EQ.3) THEN
-          I1=7
-          I2=7
-        ELSEIF (MODBOS(NUMDEC).EQ.4) THEN
-          I1=8
-          I2=8
-        ELSEIF (MODBOS(NUMDEC).EQ.5) THEN
-          I1=6
-          I2=7
-        ELSE
-          I1=1
-          I2=8
-        ENDIF
-      ENDIF
-      NTRY = 0
- 10   IDEC=HWRINT(I1,I2)
-      NTRY = NTRY+1
-      IF (HWRGEN(0).GT.BRMODE(IDEC,IDBOS-197).AND.I1.NE.I2) GOTO 10
-      IF(MASS.LT.MSMODE(IDEC,IDBOS-197).AND.NTRY.LT.NBTRY) GOTO 10
-      IF(NTRY.GE.NBTRY) THEN
-        BR = ZERO
-        RETURN
-      ENDIF
-      IFER=IDMODE(1,IDEC,IDBOS-197)
-      IANT=IDMODE(2,IDEC,IDBOS-197)
-C---CALCULATE BRANCHING RATIO
-C   (RESULT IS NOT WELL-DEFINED AFTER THE FIRST CALL OF A PAIR)
-      BR=0
-      DO 20 IDEC=I1,I2
- 20     IF(MSMODE(IDEC,IDBOS-197).LT.MASS) BR=BR+BRMODE(IDEC,IDBOS-197)
-      IF (IOPT.EQ.1) THEN
-        IF (NPAIR.NE.0) THEN
-          I1LST=I1
-          I2LST=I2
-          BRLST=BR
-        ELSE
-          BRCOM=0
-          DO 30 IDEC=MAX(I1,I1LST),MIN(I2,I2LST)
- 30         IF(MSMODE(IDEC,IDBOS-197).LT.MASS)
-     &            BRCOM=BRCOM+BRMODE(IDEC,IDBOS-197)
-          BR=2*BR*BRLST - BRCOM**2
-        ENDIF
-      ENDIF
-C---SET UP VECTOR AND AXIAL VECTOR COUPLINGS (NORMALIZED TO THE
-C   CONVENTION WHERE THE WEAK CURRENT IS G*(CV-CA*GAM5) )
-      IF (IDBOS.EQ.200) THEN
-        IF (IFER.LE.6) THEN
-C Quark couplings
-           CV=VFCH(IFER,1)
-           CA=AFCH(IFER,1)
-        ELSE
-C lepton couplings
-           JFER=IFER-110
-           CV=VFCH(JFER,1)
-           CA=AFCH(JFER,1)
-        ENDIF
-        CV=CV * FACZ
-        CA=CA * FACZ
-      ELSE
-        CV=FACW
-        CA=FACW
-      ENDIF
- 999  RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwdho1.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwdho1.f
deleted file mode 100644
index d66d8eeb6cf1d88fd3be94855925a7212dd8e57f..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwdho1.f
+++ /dev/null
@@ -1,132 +0,0 @@
-CDECK  ID>, HWDHO1.
-*CMZ :-        -17/10/01  10:19:15  by  Peter Richardson
-*-- Author :    Ian Knowles & Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDHO1(IHEP,ID,IM,NPR,LHEP,MHEP)
-C-----------------------------------------------------------------------
-C   Subroutine to perform the first part of the heavy object decays
-C   IE to select the decay mode
-C   was part of HWDHOB
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      DOUBLE PRECISION HWUMBW,HWRGEN,SDKM,RN,BF
-      INTEGER IST(4),IHEP,ID,IM,I,JHEP,LHEP,MHEP,NPR,MTRY,NTRY,IS
-      EXTERNAL HWRGEN
-      SAVE IST
-      DATA IST/113,114,114,114/
-      IF (IERROR.NE.0) RETURN
-      IF(.NOT.RPARTY) THEN
-        NHEP = NHEP+1
-        ISTHEP(NHEP) = 3
-        IDHW(NHEP) = 20
-        IDHEP(NHEP) = 0
-        CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,NHEP))
-        CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,NHEP))
-        JMOHEP(1,NHEP)=JMOHEP(1,IHEP)
-        JMOHEP(2,NHEP)=JMOHEP(2,IHEP)
-        JDAHEP(1,NHEP)=JDAHEP(1,IHEP)
-        JDAHEP(2,NHEP)=JDAHEP(2,IHEP)
-      ENDIF
-C Make a copy of decaying object
-      NHEP=NHEP+1
-      ISTHEP(NHEP)=155
-      IDHW(NHEP)=IDHW(IHEP)
-      IDHEP(NHEP)=IDHEP(IHEP)
-      CALL HWVEQU(5,PHEP(1,IHEP),PHEP(1,NHEP))
-      CALL HWVEQU(4,VHEP(1,IHEP),VHEP(1,NHEP))
-      JMOHEP(1,NHEP)=JMOHEP(1,IHEP)
-      JMOHEP(2,NHEP)=JMOHEP(2,IHEP)
-C--copy the location of the particle in the spin block
-      IF(SYSPIN.AND.NSPN.NE.0) THEN
-         IF(ISNHEP(IHEP).EQ.0) THEN
-           IS = IHEP
-           MTRY = 0
- 5         MTRY = MTRY+1
-           IS = JMOHEP(1,IS)
-           IF(ISNHEP(IS).EQ.0.AND.MTRY.LE.NETRY) GOTO 5
-           IF(MTRY.GT.NETRY) THEN
-             CALL HWWARN('HWDHO1',102)
-             GOTO 999
-           ENDIF
-           ISNHEP(IHEP) = ISNHEP(IS)
-         ENDIF
-         ISNHEP(NHEP) = ISNHEP(JMOHEP(1,NHEP))
-      ENDIF
-      MTRY=0
- 15   MTRY=MTRY+1
-C Select decay mode
-      RN=HWRGEN(0)
-      BF=0.
-      IM=LSTRT(ID)
-      DO 20 I=1,NMODES(ID)
-      BF=BF+BRFRAC(IM)
-      IF (BF.GE.RN) GOTO 30
-  20  IM=LNEXT(IM)
-      CALL HWWARN('HWDHO1',50)
-  30  IF (NHEP+5.GT.NMXHEP) THEN
-        CALL HWWARN('HWDHO1',100)
-        GOTO 999
-      ENDIF
-      NPR=NPRODS(IM)
-      JDAHEP(1,NHEP)=NHEP+1
-      JDAHEP(2,NHEP)=NHEP+NPR
-C Reset colour pointers (if set)
-      JHEP=JMOHEP(2,IHEP)
-      IF (JHEP.GT.0) THEN
-        IF (JDAHEP(2,JHEP).EQ.IHEP) JDAHEP(2,JHEP)=NHEP
-        IF(.NOT.RPARTY.AND.ISTHEP(JHEP).EQ.155
-     &    .AND.ABS(IDHEP(JHEP)).GT.1000000
-     &    .AND.JDAHEP(2,JHEP-1).EQ.IHEP) JDAHEP(2,JHEP-1) = NHEP
-      ENDIF
-      JHEP=JDAHEP(2,IHEP)
-      IF (JHEP.GT.0) THEN
-        IF (JMOHEP(2,JHEP).EQ.IHEP) JMOHEP(2,JHEP)=NHEP
-        IF(.NOT.RPARTY.AND.ISTHEP(JHEP).EQ.155
-     &    .AND.ABS(IDHEP(JHEP)).GT.1000000
-     &    .AND.JMOHEP(2,JHEP-1).EQ.IHEP) JMOHEP(2,JHEP-1) = NHEP
-      ENDIF
-C--Reset colour pointers if baryon number violated
-      IF(.NOT.RPARTY) THEN
-        DO JHEP=1,NHEP
-          IF(ISTHEP(JHEP).EQ.155
-     &       .AND.ABS(IDHEP(JHEP)).GT.1000000.AND.
-     &       JDAHEP(2,JHEP-1).EQ.IHEP) JDAHEP(2,JHEP-1)= NHEP
-          IF(JDAHEP(2,JHEP).EQ.IHEP) JDAHEP(2,JHEP)=NHEP
-          IF(JMOHEP(2,JHEP).EQ.IHEP) JMOHEP(2,JHEP)=NHEP
-        ENDDO
-        IF(HRDCOL(1,1).EQ.IHEP) HRDCOL(1,1)=NHEP
-      ENDIF
-C Relabel original track
-      IF (ISTHEP(IHEP).NE.120) ISTHEP(IHEP)=3
-      JMOHEP(2,IHEP)=JMOHEP(1,IHEP)
-      JDAHEP(1,IHEP)=NHEP
-      JDAHEP(2,IHEP)=NHEP
-C Label decay products and choose masses
-      LHEP=NHEP
-      MHEP=LHEP+1
-      NTRY=0
- 35   NTRY=NTRY+1
-      SDKM=PHEP(5,NHEP)
-      DO 40 I=1,NPR
-      NHEP=NHEP+1
-      IDHW(NHEP)=IDKPRD(I,IM)
-      IDHEP(NHEP)=IDPDG(IDKPRD(I,IM))
-      ISTHEP(NHEP)=IST(I)
-      JMOHEP(1,NHEP)=LHEP
-      JDAHEP(1,NHEP)=0
-      PHEP(5,NHEP)=HWUMBW(IDKPRD(I,IM))
- 40   SDKM=SDKM-PHEP(5,NHEP)
-      IF (SDKM.LT.ZERO) THEN
-        NHEP=NHEP-NPR
-        IF (NTRY.LE.NETRY) GO TO 35
-        CALL HWWARN('HWDHO1',1)
-        IF (MTRY.LE.NETRY) GO TO 15
-        CALL HWWARN('HWDHO1',101)
-        GOTO 999
-      ENDIF
-C Assign production vertices to decay products
-      CALL HWUDKL(ID,PHEP(1,IHEP),VHEP(1,MHEP))
-      CALL HWVSUM(4,VHEP(1,IHEP),VHEP(1,MHEP),VHEP(1,MHEP))
-      CALL HWVEQU(4,VHEP(1,MHEP),VHEP(1,NHEP))
- 999  RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwdho2.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwdho2.f
deleted file mode 100644
index 83e16da58c130834da154aab94137ba19a423f59..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwdho2.f
+++ /dev/null
@@ -1,155 +0,0 @@
-CDECK  ID>, HWDH02.
-*CMZ :-        -30/09/02  14:05:28  by  Peter Richardson
-*-- Author :    Ian Knowles & Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDHO2(IHEP,IM,NPR,MHEP,LHEP,KHEP,PW)
-C-----------------------------------------------------------------------
-C   Subroutine to perform the second part of the heavy object decays
-C   IE generate the kinematics for the decay
-C   was part of HWDHOB
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      COMMON/FFS/TB,BT
-      COMMON/SFF/IT1,IB1,IT2,IB2
-      DOUBLE PRECISION TB,BT
-      INTEGER IT1,IB1,IT2,IB2,ISP
-      DOUBLE PRECISION GAMHPM
-      DOUBLE PRECISION HWUPCM,HWRGEN,PCM,
-     & EMMX,EMWSQ,GMWSQ,EMLIM,PW(5),EMTST,HWDPWT,HWDWWT,HWULDO,HWDHWT
-      DOUBLE COMPLEX RHOIN(2,2,2)
-      INTEGER IHEP,IM,KHEP,LHEP,MHEP,NPR,RHEP
-      EXTERNAL HWRGEN,HWDPWT,HWDWWT,HWDHWT
-      SAVE RHOIN
-      DATA RHOIN/(1.0D0,0.0D0),(0.0D0,0.0D0),
-     &           (0.0D0,0.0D0),(0.0D0,0.0D0),
-     &           (0.5D0,0.0D0),(0.0D0,0.0D0),
-     &           (0.0D0,0.0D0),(0.5D0,0.0D0)/
-      ISP = INT(2*RSPIN(IDHW(IHEP)))+1
-      IF (IERROR.NE.0) RETURN
-      IF (NPR.EQ.2) THEN
-C Two body decay: LHEP -> MHEP + NHEP
-        IF(NME(IM).GT.20000.AND.NME(IM).LT.30000) THEN
-C--generate a two body decay to a gauge boson as a three body decay
-          CALL HWDSM3(2,IHEP,MHEP,NHEP,0,NME(IM)-20000,RHOIN(1,1,ISP),1)
-C--generate a two body decay of a Higgs to two gauge bosons
-        ELSEIF(NME(IM).GT.40000.AND.NME(IM).LT.50000) THEN
-          CALL HWDSM4(1,IHEP,MHEP,NHEP,NME(IM)-40000)
-C--if spin correlations call the routine to set-up the matrix element
-        ELSEIF(SYSPIN.AND.NME(IM).GE.30000.AND.NME(IM).LE.40000) THEN
-          CALL HWDSM2(IHEP,MHEP,NHEP,NME(IM)-30000,RHOIN(1,1,ISP),1)
-        ELSE
-          PCM=HWUPCM(PHEP(5,IHEP),PHEP(5,MHEP),PHEP(5,NHEP))
-          CALL HWDTWO(PHEP(1,IHEP),PHEP(1,MHEP),
-     &                PHEP(1,NHEP),PCM,TWO,.FALSE.)
-        ENDIF
-      ELSEIF (NPR.EQ.3) THEN
-C Three body decay: LHEP -> KHEP + MHEP + NHEP
-        KHEP=MHEP
-        MHEP=MHEP+1
-C Provisional colour self-connection of KHEP
-        JMOHEP(2,KHEP)=KHEP
-        JDAHEP(2,KHEP)=KHEP
-        IF (NME(IM).EQ.100) THEN
-C Generate decay momenta using full (V-A)*(V-A) matrix element
-          EMMX=PHEP(5,IHEP)-PHEP(5,NHEP)
-          EMWSQ=RMASS(198)**2
-          GMWSQ=(RMASS(198)*GAMW)**2
-          EMLIM=GMWSQ
-          IF (EMMX.LT.RMASS(198)) EMLIM=EMLIM+(EMWSQ-EMMX**2)**2
-  50      CALL HWDTHR(PHEP(1,IHEP),PHEP(1,MHEP),
-     &                PHEP(1,KHEP),PHEP(1,NHEP),HWDWWT)
-          CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,MHEP),PW)
-          PW(5)=HWULDO(PW,PW)
-          EMTST=(EMWSQ-PW(5))**2
-          IF ((EMTST+GMWSQ)*HWRGEN(1).GT.EMLIM) GOTO 50
-          PW(5)=SQRT(PW(5))
-C Assign production vertices to 1 and 2
-          CALL HWUDKL(198,PW,VHEP(1,KHEP))
-          CALL HWVSUM(4,VHEP(1,NHEP),VHEP(1,KHEP),VHEP(1,KHEP))
-        ELSE IF (NME(IM).EQ.200) THEN
-C Generate decay momenta using full
-C ((V-A)*TB1+(V+A)*CT1)*((V-A)*TB2+(V+A)*CT2)) matrix element
-          GAMHPM=RMASS(206)/DKLTM(206)
-C sort tan(beta)
-          IF((IDK(IM).EQ.  2).OR.(IDK(IM).EQ.  4).OR.
-     &       (IDK(IM).EQ.  6).OR.(IDK(IM).EQ.  8).OR.
-     &       (IDK(IM).EQ. 10).OR.(IDK(IM).EQ. 12).OR.
-     &       (IDK(IM).EQ.122).OR.(IDK(IM).EQ.124).OR.
-     &       (IDK(IM).EQ.126).OR.(IDK(IM).EQ.128).OR.
-     &       (IDK(IM).EQ.130).OR.(IDK(IM).EQ.132))THEN
-            TB=TANB
-          ELSE
-            TB=1./TANB
-          END IF
-          IF((IDKPRD(1,IM).EQ.  2).OR.(IDKPRD(1,IM).EQ.  4).OR.
-     &       (IDKPRD(1,IM).EQ.  6).OR.(IDKPRD(1,IM).EQ.  8).OR.
-     &       (IDKPRD(1,IM).EQ. 10).OR.(IDKPRD(1,IM).EQ. 12).OR.
-     &       (IDKPRD(1,IM).EQ.122).OR.(IDKPRD(1,IM).EQ.124).OR.
-     &       (IDKPRD(1,IM).EQ.126).OR.(IDKPRD(1,IM).EQ.128).OR.
-     &       (IDKPRD(1,IM).EQ.130).OR.(IDKPRD(1,IM).EQ.132))THEN
-            BT=TANB
-          ELSE
-            BT=1./TANB
-          END IF
-          IT1=IDK(IM)
-          IB1=IDKPRD(3,IM)
-          IT2=IDKPRD(1,IM)
-          IB2=IDKPRD(2,IM)
-          EMMX=PHEP(5,IHEP)-PHEP(5,NHEP)
-          EMWSQ=RMASS(206)**2
-          GMWSQ=(RMASS(206)*GAMHPM)**2
-          EMLIM=GMWSQ
-          IF (EMMX.LT.RMASS(206)) EMLIM=EMLIM+(EMWSQ-EMMX**2)**2
-  55      CALL HWDTHR(PHEP(1,IHEP),PHEP(1,NHEP),
-     &                PHEP(1,KHEP),PHEP(1,MHEP),HWDHWT)
-          CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,MHEP),PW)
-          PW(5)=HWULDO(PW,PW)
-          EMTST=(EMWSQ-PW(5))**2
-          IF ((EMTST+GMWSQ)*HWRGEN(2).GT.EMLIM) GOTO 55
-          PW(5)=SQRT(PW(5))
-C Assign production vertices to 1 and 2
-          CALL HWUDKL(206,PW,VHEP(1,KHEP))
-          CALL HWVSUM(4,VHEP(1,NHEP),VHEP(1,KHEP),VHEP(1,KHEP))
-        ELSEIF(NME(IM).EQ.300) THEN
-C Generate momenta using 3-body RPV matrix element
-          CALL HWDRME(LHEP,KHEP)
-C--Three body SUSY decay
-        ELSEIF(NME(IM).GE.10000.AND.NME(IM).LT.20000) THEN
-          CALL HWDSM3(3,IHEP,MHEP,KHEP,NHEP,NME(IM)-10000,
-     &                RHOIN(1,1,ISP),1)
-C--special for top decay
-          IF(ABS(IDHEP(IHEP)).EQ.6) THEN
-            CALL HWVSUM(4,PHEP(1,KHEP),PHEP(1,MHEP),PW)
-            CALL HWUMAS(PW)
-          ENDIF
-        ELSE
-C Three body phase space decay
-          CALL HWDTHR(PHEP(1,IHEP),PHEP(1,MHEP),
-     &                PHEP(1,KHEP),PHEP(1,NHEP),HWDPWT)
-        ENDIF
-        CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,MHEP))
-      ELSEIF(NPR.EQ.4) THEN
-C Four body decay: LHEP -> KHEP + RHEP + MHEP + NHEP
-        KHEP = MHEP
-        RHEP = MHEP+1
-        MHEP = MHEP+2
-        ISTHEP(NHEP) = 114
-C Provisional colour connections of KHEP and RHEP
-        JMOHEP(2,KHEP)=RHEP
-        JDAHEP(2,KHEP)=RHEP
-        JMOHEP(2,RHEP)=KHEP
-        JDAHEP(2,RHEP)=KHEP
-C Four body RPV decay
-        IF(NME(IM).EQ.1000) THEN
-           CALL HWDRPD(IHEP,KHEP,NHEP)
-C Four body phase space decay
-        ELSE
-           CALL HWDFOR(PHEP(1,IHEP),PHEP(1,KHEP),PHEP(1,RHEP),
-     &          PHEP(1,MHEP),PHEP(1,NHEP))
-        ENDIF
-        CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,RHEP))
-        CALL HWVEQU(4,VHEP(1,KHEP),VHEP(1,MHEP))
-      ELSE
-        CALL HWWARN('HWDHO2',100)
-      ENDIF
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwdho3.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwdho3.f
deleted file mode 100644
index c1c4c00eb44efe60d639f55c4f875a8e50cd152c..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwdho3.f
+++ /dev/null
@@ -1,204 +0,0 @@
-CDECK  ID>, HWDHO3.
-*CMZ :-        -17/10/01  10:19:15  by  Peter Richardson
-*-- Author :    Ian Knowles & Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDHO3(ID,IM,NPR,MHEP,LHEP,KHEP,CLSAVE)
-C-----------------------------------------------------------------------
-C   Subroutine to perform the third part of the heavy object decays
-C   IE setup the colour connections
-C   was part of HWDHOB
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER ID,IM,KHEP,LHEP,MHEP,NPR,CLSAVE(2)
-      IF (IERROR.NE.0) RETURN
-C Colour connections
-      IF (ID.EQ.6.OR.ID.EQ.12.OR.(ID.GE.209.AND.ID.LE.212)
-     &                       .OR.(ID.GE.215.AND.ID.LE.218)) THEN
-        IF ((NPR.EQ.3.AND.NME(IM).EQ.100).OR.
-     &      ((SYSPIN.OR.THREEB).AND.NPR.EQ.3.AND.
-     &        NME(IM).GE.10000.AND.NME(IM).LE.20000)) THEN
-C usual heavy quark decay
-          JMOHEP(2,KHEP)=MHEP
-          JDAHEP(2,KHEP)=MHEP
-          JMOHEP(2,MHEP)=KHEP
-          JDAHEP(2,MHEP)=KHEP
-          JMOHEP(2,NHEP)=LHEP
-          JDAHEP(2,NHEP)=LHEP
-        ELSEIF (ABS(IDHEP(MHEP)).EQ.37) THEN
-C heavy quark to charged Higgs 2->2
-          JMOHEP(2,MHEP)=MHEP
-          JDAHEP(2,MHEP)=MHEP
-          JMOHEP(2,NHEP)=LHEP
-          JDAHEP(2,NHEP)=LHEP
-        ELSEIF (ABS(IDHEP(NHEP)).EQ.37) THEN
-C heavy quark to charged Higgs 2->2
-          JMOHEP(2,MHEP)=LHEP
-          JDAHEP(2,MHEP)=LHEP
-          JMOHEP(2,NHEP)=NHEP
-          JDAHEP(2,NHEP)=NHEP
-        ELSE IF (NPR.EQ.3.AND.NME(IM).EQ.200) THEN
-C heavy quark to charged Higgs 2->3
-          JMOHEP(2,KHEP)=MHEP
-          JDAHEP(2,KHEP)=MHEP
-          JMOHEP(2,MHEP)=KHEP
-          JDAHEP(2,MHEP)=KHEP
-          JMOHEP(2,NHEP)=LHEP
-          JDAHEP(2,NHEP)=LHEP
-        ELSE
-          CALL HWWARN('HWDHO3',100)
-          GOTO 999
-        ENDIF
-      ELSEIF(.NOT.RPARTY.AND.NPR.EQ.4.AND.(ID.EQ.429.OR.ID.EQ.435)) THEN
-        JMOHEP(2,KHEP) = KHEP 
-        JDAHEP(2,KHEP) = KHEP 
-        JMOHEP(2,KHEP+1) = KHEP+2 
-        JDAHEP(2,KHEP+1) = KHEP+2 
-        JMOHEP(2,KHEP+2) = KHEP+1 
-        JDAHEP(2,KHEP+2) = KHEP+1 
-        JMOHEP(2,KHEP+3) = KHEP+3 
-        JDAHEP(2,KHEP+3) = KHEP+3 
-      ELSE
-        IF(.NOT.RPARTY.AND.
-     &     ((NPR.EQ.2.AND.ID.GE.401.AND.ID.LT.448.AND.
-     &         IDHW(MHEP).LE.132.AND.IDHW(NHEP).LE.132)
-     &     .OR.(NPR.EQ.3.AND.ID.GE.449.AND.ID.LE.457.AND.
-     &         IDHW(MHEP).LE.132.AND.IDHW(NHEP).LE.132.AND.
-     &         IDHW(MHEP-1).LE.132))) THEN
-C R-parity violating SUSY decays
-          IF(NPR.EQ.2) THEN
-C--Rparity slepton colour connections
-            IF(ID.GE.425.AND.ID.LE.448) THEN
-              IF(IDHW(MHEP).GT.12) THEN
-                JMOHEP(2,MHEP) = MHEP
-                JDAHEP(2,MHEP) = MHEP
-                JMOHEP(2,NHEP) = NHEP
-                JDAHEP(2,NHEP) = NHEP
-              ELSE
-                JMOHEP(2,MHEP) = NHEP
-                JDAHEP(2,MHEP) = NHEP
-                JMOHEP(2,NHEP) = MHEP
-                JDAHEP(2,NHEP) = MHEP
-              ENDIF
-C--Rparity squark colour connections
-            ELSE
-              IF(IDHEP(LHEP).GT.0) THEN
-C--LQD decay colour connections
-                IF(IDHW(MHEP).GT.12) THEN
-                  JMOHEP(2,MHEP) = MHEP
-                  JDAHEP(2,MHEP) = MHEP
-                  JMOHEP(2,NHEP) = LHEP
-                  JDAHEP(2,NHEP) = LHEP
-                ELSE
-C--UDD decay colour connections
-                  HVFCEN = .TRUE.
-                  CALL HWDRCL(LHEP,MHEP,CLSAVE)
-                ENDIF
-              ELSE
-C--Antisquark connections
-                IF(IDHW(MHEP).GT.12) THEN
-                  JMOHEP(2,MHEP) = MHEP
-                  JDAHEP(2,MHEP) = MHEP
-                  JMOHEP(2,NHEP) = LHEP
-                  JDAHEP(2,NHEP) = LHEP
-                ELSE
-                  HVFCEN = .TRUE.
-                 CALL HWDRCL(LHEP,MHEP,CLSAVE)
-                ENDIF
-              ENDIF
-            ENDIF
-          ELSE
-            IF(ID.GE.450.AND.ID.LE.457) THEN
-C--Rparity Neutralino/Chargino colour connection
-              IF(IDHW(MHEP-1).LE.12.AND.IDHW(MHEP).LE.12.
-     &               AND.IDHW(NHEP).LE.12) THEN
-                HVFCEN = .TRUE.
-                CALL HWDRCL(LHEP,MHEP,CLSAVE)
-              ELSE
-                JMOHEP(2,MHEP) = NHEP
-                JDAHEP(2,MHEP) = NHEP
-                JMOHEP(2,NHEP) = MHEP
-                JDAHEP(2,NHEP) = MHEP
-              ENDIF
-C--Rparity gluino colour connections
-            ELSEIF(ID.EQ.449) THEN
-              IF(IDHW(MHEP-1).LE.12.AND.IDHW(MHEP).LE.12.
-     &               AND.IDHW(NHEP).LE.12) THEN
-                HVFCEN = .TRUE.
-                CALL HWDRCL(LHEP,MHEP,CLSAVE)
-C--Now the lepton number violating decay
-              ELSE
-                IF(IDHW(MHEP).LE.6) THEN
-                  JMOHEP(2,MHEP) = LHEP
-                  JDAHEP(2,MHEP) = NHEP
-                  JMOHEP(2,NHEP) = MHEP
-                  JDAHEP(2,NHEP) = LHEP
-                ELSE
-                  JMOHEP(2,MHEP) = NHEP
-                  JDAHEP(2,MHEP) = LHEP
-                  JMOHEP(2,NHEP) = LHEP
-                  JDAHEP(2,NHEP) = MHEP
-                ENDIF
-              ENDIF
-            ELSE
-              CALL HWWARN('HWDHO3',101)
-              GOTO 999
-            ENDIF
-          ENDIF
-        ELSE
-C Normal SUSY decays
-          IF (ID.LE.448.AND.ID.GT.207) THEN
-C Squark (or slepton)
-            IF (IDHW(MHEP).EQ.449) THEN
-              IF (IDHEP(LHEP).GT.0) THEN
-                JMOHEP(2,MHEP)=LHEP
-                JDAHEP(2,MHEP)=NHEP
-                JMOHEP(2,NHEP)=MHEP
-                JDAHEP(2,NHEP)=LHEP
-              ELSE
-                JMOHEP(2,MHEP)=NHEP
-                JDAHEP(2,MHEP)=LHEP
-                JMOHEP(2,NHEP)=LHEP
-                JDAHEP(2,NHEP)=MHEP
-              ENDIF
-            ELSE
-              IF(NPR.EQ.3.AND.IDHW(MHEP).LE.12) THEN
-                JMOHEP(2,MHEP)=NHEP
-                JDAHEP(2,MHEP)=NHEP
-                JMOHEP(2,NHEP)=MHEP
-                JDAHEP(2,NHEP)=MHEP
-              ELSE
-                JMOHEP(2,MHEP)=MHEP
-                JDAHEP(2,MHEP)=MHEP
-                JMOHEP(2,NHEP)=LHEP
-                JDAHEP(2,NHEP)=LHEP
-              ENDIF
-            ENDIF
-          ELSEIF (ID.EQ.449) THEN
-C Gluino
-            IF (IDHW(NHEP).EQ.13) THEN
-              JMOHEP(2,MHEP)=MHEP
-              JDAHEP(2,MHEP)=MHEP
-              JMOHEP(2,NHEP)=LHEP
-              JDAHEP(2,NHEP)=LHEP
-            ELSEIF (IDHEP(MHEP).GT.0) THEN
-              JMOHEP(2,MHEP)=LHEP
-              JDAHEP(2,MHEP)=NHEP
-              JMOHEP(2,NHEP)=MHEP
-              JDAHEP(2,NHEP)=LHEP
-            ELSE
-              JMOHEP(2,MHEP)=NHEP
-              JDAHEP(2,MHEP)=LHEP
-              JMOHEP(2,NHEP)=LHEP
-              JDAHEP(2,NHEP)=MHEP
-            ENDIF
-          ELSE
-C Gaugino or Higgs
-            JMOHEP(2,MHEP)=NHEP
-            JDAHEP(2,MHEP)=NHEP
-            JMOHEP(2,NHEP)=MHEP
-            JDAHEP(2,NHEP)=MHEP
-          ENDIF
-        ENDIF
-      ENDIF
- 999  RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwdho4.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwdho4.f
deleted file mode 100644
index 52197d830017654d2e0ad37bfdf62bc34d14447d..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwdho4.f
+++ /dev/null
@@ -1,221 +0,0 @@
-CDECK  ID>, HWDHO4.
-*CMZ :-        -30/09/02  14:05:28  by  Peter Richardson
-*-- Author :    Ian Knowles & Bryan Webber
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDHO4(IHEP,ID,IM,NPR,MHEP,LHEP,KHEP,PW)
-C-----------------------------------------------------------------------
-C   Subroutine to perform the fourth part of the heavy object decays
-C   IE parton-showers with special treatment for top
-C   was part of HWDHOB
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      DOUBLE PRECISION PW(5),PDW(5,3),PDT(5,4),vtau(5)
-      INTEGER IHEP,ID,IM,I,KHEP,LHEP,MHEP,NPR,NTRY,WHEP,SHEP,CLSAVE(2)
-      DOUBLE COMPLEX RHOIN(2,2)
-      SAVE RHOIN
-      DATA RHOIN/(0.5D0,0.0D0),(0.0D0,0.0D0),
-     &           (0.0D0,0.0D0),(0.5D0,0.0D0)/
-      IF (IERROR.NE.0) RETURN
-      SHEP = NHEP
-C---SPECIAL CASE FOR THREE-BODY TOP DECAYS:
-C   RELABEL THEM AS TWO TWO-BODY DECAYS FOR PARTON SHOWERING
-      IF ((ID.EQ.6.OR.ID.EQ.12).AND.NPR.EQ.3.AND.
-     &     (NME(IM).EQ.100.OR.NME(IM).EQ.200.OR.
-     &     (NME(IM).GT.10000.AND.NME(IM).LE.20000.AND.
-     &     (SYSPIN.OR.THREEB)))) THEN
-C---STORE W/H DECAY PRODUCTS
-        CALL HWVEQU(10,PHEP(1,KHEP),PDW)
-C---BOOST THEM INTO W/H REST FRAME
-        CALL HWULOF(PW,PDW(1,1),PDW(1,3))
-C---REPLACE THEM BY W/H
-        CALL HWVEQU(5,PW,PHEP(1,KHEP))
-        WHEP=KHEP
-        IF (NME(IM).EQ.100.OR.(NME(IM).GT.10000.AND.
-     &      NME(IM).LE.20000.AND.(SYSPIN.OR.THREEB)))IDHW(KHEP)=198
-        IF((NME(IM).EQ.100.OR.(NME(IM).GT.10000.AND.
-     &      NME(IM).LE.20000.AND.(SYSPIN.OR.THREEB))).AND.(ID.EQ.12))
-     &       IDHW(KHEP)=199
-        IF (NME(IM).EQ.200)IDHW(KHEP)=206
-        IF((NME(IM).EQ.200).AND.(ID.EQ.12))IDHW(KHEP)=207
-        IDHEP(KHEP)=IDPDG(IDHW(KHEP))
-        JMOHEP(2,KHEP)=KHEP
-        JDAHEP(2,KHEP)=KHEP
-        CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,KHEP))
-C---AND MOVE B UP
-        CALL HWVEQU(5,PHEP(1,NHEP),PHEP(1,MHEP))
-        IDHW(MHEP)=IDHW(NHEP)
-        IDHEP(MHEP)=IDHEP(NHEP)
-        JDAHEP(2,LHEP)=MHEP
-        JMOHEP(2,MHEP)=JMOHEP(2,NHEP)
-        JDAHEP(2,MHEP)=JDAHEP(2,NHEP)
-        CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,MHEP))
-        NHEP=MHEP
-C---DO PARTON SHOWER
-        EMSCA=PHEP(5,IHEP)
-        CALL HWBGEN
-        IF (IERROR.NE.0) RETURN
-C---FIND BOOSTED W/H MOMENTUM
-        NTRY=0
- 41     NTRY=NTRY+1
-        IF (NTRY.GT.NHEP.OR.WHEP.LE.0.OR.WHEP.GT.NHEP) THEN
-          CALL HWWARN('HWDHO4',100)
-          GOTO 999
-        ENDIF
-        WHEP=JDAHEP(1,WHEP)
-        IF (ISTHEP(WHEP).NE.190) GOTO 41
-C---AND HENCE ITS CHILDRENS MOMENTA
-        CALL HWULOB(PHEP(1,WHEP),PDW(1,3),PHEP(1,NHEP+1))
-        CALL HWVDIF(4,PHEP(1,WHEP),PHEP(1,NHEP+1),PHEP(1,NHEP+2))
-        PHEP(5,NHEP+2)=PDW(5,2)
-C---LABEL THEM
-        ISTHEP(WHEP)=195
-        DO 51 I=1,2
-          IDHW(NHEP+I)=IDKPRD(I,IM)
-          IDHEP(NHEP+I)=IDPDG(IDHW(NHEP+I))
-          ISTHEP(NHEP+I)=112+I
-          JDAHEP(I,WHEP)=NHEP+I
-          JMOHEP(1,NHEP+I)=WHEP
-          JMOHEP(2,NHEP+I)=NHEP+3-I
-          JDAHEP(2,NHEP+I)=NHEP+3-I
- 51     CONTINUE
-        NHEP=NHEP+2
-C---ASSIGN PRODUCTION VERTICES TO 1 AND 2
-        IF(NME(IM).EQ.100)CALL HWUDKL(198,PW,VHEP(1,NHEP))
-        IF(NME(IM).EQ.200)CALL HWUDKL(206,PW,VHEP(1,NHEP))
-        CALL HWVSUM(4,VHEP(1,WHEP),VHEP(1,NHEP),VHEP(1,NHEP))
-        CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,NHEP-1))
-C---DO PARTON SHOWERS
-        EMSCA=PW(5)
-C--modification to use photos in top decays
-        IF(ITOPRD.EQ.1) CALL HWPHTP(WHEP)
-C--end of modification
-        CALL HWBGEN
-        IF (IERROR.NE.0) RETURN
-C--special for four body tau decays
-      ELSEIF((ID.EQ.429.OR.ID.EQ.435).AND.NPR.EQ.4) THEN
-C--copy the momenta and id's of the decay products
-         CALL HWVZRO(5,PDT(1,4))
-         DO I=1,3
-            CALL HWVEQU(5,PHEP(1,KHEP-1+I),PDT(1,I))
-            CALL HWVSUM(4,PHEP(1,KHEP-1+I),PDT(1,4),PDT(1,4))
-         ENDDO
-         CALL HWUMAS(PDT(1,4))
-C--boost them into the rest frame of the gaugino
-         DO I=1,3
-            CALL HWULOF(PDT(1,4),PDT(1,I),PDT(1,I))
-         ENDDO
-C--replace them with the neutralino/chargino
-         CALL HWVEQU(5,PDT(1,4),PHEP(1,KHEP))
-         WHEP=KHEP
-         IF(ID.EQ.429.AND.IDHW(NHEP).EQ.126) THEN
-            IDHW(KHEP) = 456
-         ELSEIF(ID.EQ.435.AND.IDHW(NHEP).EQ.132) THEN
-            IDHW(KHEP) = 454
-         ELSE
-            IDHW(KHEP) = 450
-         ENDIF
-         IDHEP(KHEP)=IDPDG(IDHW(KHEP))
-         JMOHEP(2,KHEP)=KHEP
-         JDAHEP(2,KHEP)=KHEP
-         CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,KHEP))
-c--move tau/nu_tau up
-         CALL HWVEQU(5,PHEP(1,NHEP),PHEP(1,KHEP+1))
-         IDHW(KHEP+1)=IDHW(NHEP)
-         IDHEP(KHEP+1)=IDHEP(NHEP)
-         JDAHEP(2,KHEP+1)=KHEP+1
-         JMOHEP(2,KHEP+1)=KHEP+1
-         CALL HWVEQU(4,VHEP(1,NHEP),VHEP(1,KHEP+1))
-         NHEP=KHEP+1
-         JDAHEP(2,LHEP)=KHEP+1
-         ISTHEP(LHEP+1)=113
-         ISTHEP(LHEP+2)=114
-C--do the parton shower (does nothing but relabels status codes)
-         EMSCA=PHEP(5,IHEP)
-         CALL HWBGEN
-         IF (IERROR.NE.0) RETURN
-C--find the boosted gaugino
-         NTRY=0
- 52      NTRY=NTRY+1
-         IF (NTRY.GT.NHEP.OR.WHEP.LE.0.OR.WHEP.GT.NHEP) THEN
-            CALL HWWARN('HWDHO4',101)
-            GOTO 999
-         ENDIF
-         WHEP=JDAHEP(1,WHEP)
-         IF (ISTHEP(WHEP).NE.190) GOTO 52
-C--copy of particle for RPV colour code
-         NHEP = NHEP+1
-         ISTHEP(NHEP) = 3
-         IDHW(NHEP) = 20
-         IDHEP(NHEP) = 0
-         CALL HWVEQU(5,PHEP(1,WHEP),PHEP(1,NHEP))
-         CALL HWVEQU(4,VHEP(1,WHEP),VHEP(1,NHEP))
-         JMOHEP(1,NHEP)=JMOHEP(1,WHEP)
-         JMOHEP(2,NHEP)=JMOHEP(2,WHEP)
-         JDAHEP(1,NHEP)=JDAHEP(1,WHEP)
-         JDAHEP(2,NHEP)=JDAHEP(2,WHEP)
-C--copy of gaugino
-         NHEP=NHEP+1
-         ISTHEP(NHEP)=155
-         IDHW(NHEP)=IDHW(WHEP)
-         IDHEP(NHEP)=IDHEP(WHEP)
-         CALL HWVEQU(5,PHEP(1,WHEP),PHEP(1,NHEP))
-         CALL HWVEQU(4,VHEP(1,WHEP),VHEP(1,NHEP))
-         JMOHEP(1,NHEP)=JMOHEP(1,WHEP)
-         JMOHEP(2,NHEP)=JMOHEP(2,WHEP)
-C Relabel original track
-         IF (ISTHEP(WHEP).NE.120) ISTHEP(WHEP)=3
-         JMOHEP(2,WHEP)=JMOHEP(1,WHEP)
-         JDAHEP(1,WHEP)=NHEP
-         JDAHEP(2,WHEP)=NHEP
-         WHEP=NHEP
-C---children of the gaugino
-         CALL HWUDKL(IDHW(WHEP),PDT(1,4),VTAU)
-         CALL HWVSUM(4,VHEP(1,WHEP),VTAU,VTAU)
-         DO I=1,3
-C--momenta boost back to new frame
-            CALL HWULOB(PHEP(1,WHEP),PDT(1,I),PDT(1,I))
-            CALL HWVEQU(5,PDT(1,I),PHEP(1,NHEP+I))
-            CALL HWVEQU(4,VTAU,VHEP(1,NHEP+I))
-            IDHW(NHEP+I)=IDKPRD(I,IM)
-            IDHEP(NHEP+I)=IDPDG(IDHW(NHEP+I))
-            ISTHEP(NHEP+I)=114
-            JMOHEP(1,NHEP+I)=WHEP
-         ENDDO
-         ISTHEP(NHEP+1)=113
-         JDAHEP(1,WHEP)=NHEP+1
-         JDAHEP(2,WHEP)=NHEP+3
-C--MAKE THE COLOUR CONNECTIONS
-         IF(IDHW(NHEP+1).LE.12.AND.IDHW(NHEP+2).LE.12.
-     &        AND.IDHW(NHEP+3).LE.12) THEN
-            HVFCEN = .TRUE.
-            CALL HWDRCL(WHEP,NHEP+2,CLSAVE)
-         ELSE
-            JMOHEP(2,NHEP+1) = NHEP+1
-            JDAHEP(2,NHEP+1) = NHEP+1
-            JMOHEP(2,NHEP+2) = NHEP+3
-            JDAHEP(2,NHEP+2) = NHEP+3
-            JMOHEP(2,NHEP+3) = NHEP+2
-            JDAHEP(2,NHEP+3) = NHEP+2
-         ENDIF
-         NHEP=NHEP+3
-C---DO PARTON SHOWERS
-         EMSCA=PDT(5,4)
-         CALL HWBGEN
-         IF (IERROR.NE.0) RETURN     
-      ELSE
-C Do parton showers
-        EMSCA=PHEP(5,IHEP)
-        CALL HWBGEN
-        IF (IERROR.NE.0) RETURN
-C--special for gauge boson decay modes of gauginos and four body higgs
-C--call routine to add decay products and generate parton shower
-        IF(NME(IM).GT.20000.AND.NME(IM).LT.30000) THEN
-          CALL HWDSM3(-1,IHEP,MHEP,SHEP,0,NME(IM)-20000,RHOIN,
-     &       ISNHEP(IHEP))
-        ELSEIF(NME(IM).GT.40000.AND.NME(IM).LT.50000) THEN
-          CALL HWDSM4(2,IHEP,MHEP,SHEP,NME(IM)-40000)
-        ENDIF
-        IF (IERROR.NE.0) RETURN
-      ENDIF
- 999  RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwdsm2.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwdsm2.f
deleted file mode 100644
index 440dc4dc36fcd42cad54949cb815958822f48dbb..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwdsm2.f
+++ /dev/null
@@ -1,332 +0,0 @@
-CDECK  ID>, HWDSM2.
-*CMZ :-        -09/04/02  13:46:07  by  Peter Richardson
-*-- Author :    Peter Richardson
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDSM2(ID,IOUT1,IOUT2,IMODE,RHOIN,IDSPIN)
-C-----------------------------------------------------------------------
-C  Subroutine to calculate the two body matrix element for spin
-C  correlations
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER IOUT1,IOUT2,IMODE,IDSPIN,ID,I,J,IDP(3),P0,P1,P2,O(2),P0P,
-     &     NTRY
-      DOUBLE PRECISION XMASS,PLAB,PRW,PCM,PREF(5),P(5,3),PM(5,3),PCMA,
-     &     HWUPCM,MA(3),MA2(3),HWULDO,PP,HWVDOT,N(3),EPS,PRE,PHS,A(2),
-     &     WGT,WTMAX,HWRGEN
-      DOUBLE COMPLEX RHOIN(2,2),S,D,ME(2,2,2),F1(2,2,8),F0(2,2,8),
-     &     F2M(2,2,8),F1M(2,2,8),F1F(2,2,8),F2(2,2,8,8),F0B(2,2,8,8)
-      COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
-      SAVE O,PREF
-      DATA PREF/1.0D0,0.0D0,0.0D0,1.0D0,0.0D0/
-      DATA O/2,1/
-      COMMON/HWHEWS/S(8,8,2),D(8,8)
-      PARAMETER(EPS=1D-20)
-      EXTERNAL HWUPCM,HWULDO,HWVDOT,HWRGEN
-C--first setup if this is the start of a new spin chain
-      IF(NSPN.EQ.0) THEN
-C--zero the elements of the array
-        CALL HWVZRI(  NMXHEP,ISNHEP)
-        CALL HWVZRI(  NMXSPN,JMOSPN)
-        CALL HWVZRI(2*NMXSPN,JDASPN)
-        CALL HWVZRI(  NMXSPN, IDSPN)
-        NSPN = NSPN+1
-        JMOSPN(NSPN) = 0
-        IDSPN (NSPN) = ID
-        DECSPN(NSPN) = .FALSE.
-        IF(RSPIN(IDHW(ID)).EQ.ZERO) THEN
-          RHOSPN(1,1,NSPN) = ONE
-          RHOSPN(2,1,NSPN) = ZERO
-          RHOSPN(1,2,NSPN) = ZERO
-          RHOSPN(2,2,NSPN) = ZERO
-        ELSE
-          RHOSPN(1,1,NSPN) = HALF
-          RHOSPN(2,1,NSPN) = ZERO
-          RHOSPN(1,2,NSPN) = ZERO
-          RHOSPN(2,2,NSPN) = HALF
-        ENDIF
-        ISNHEP(ID)    = NSPN
-      ENDIF
-C--MA is mass for this decay (OFF-SHELL)
-C--generate the momenta for a two body decay
-      P(5,1) = PHEP(5,   ID)
-      P(5,2) = PHEP(5,IOUT1)
-      P(5,3) = PHEP(5,IOUT2)
-      IDP(1) = IDHW(ID)
-      IDP(2) = IDHW(IOUT1)
-      IDP(3) = IDHW(IOUT2)
-      DO 1 I=1,3
-      MA(I)  = P(5,I)
- 1    MA2(I) = MA(I)**2
-      PCMA   = HWUPCM(P(5,1),P(5,2),P(5,3))
-C--setup the couplings
-      DO 2 I=1,2
- 2    A(I) = A2MODE(I,IMODE)
-C--phase space factor
-      PHS = PCMA/MA2(1)/8.0D0/PIFAC
-C--maximum weight
-      WTMAX = WT2MAX(IMODE)
-      NTRY = 0
- 1000 NTRY = NTRY+1
-      CALL HWVEQU(5,PHEP(1,ID),P(1,1))
-      CALL HWDTWO(P(1,1),P(1,2),P(1,3),PCMA,2.0D0,.TRUE.)
-      DO 3 I=1,3
-C--compute the references vectors
-C--not important if SM particle which can't have spin measured
-C--ie anything other the top and tau
-C--also not important if particle is approx massless
-C--first the SM particles other than top and tau
-      IF(IDP(I).LT.400.AND.(IDP(I).NE.6.AND.IDP(I).NE.12
-     &                .AND.IDP(I).NE.125.AND.IDP(I).NE.131)) THEN
-        CALL HWVEQU(5,PREF,PLAB(1,I+3))
-C--all other particles
-      ELSE
-        PP = SQRT(HWVDOT(3,P(1,I),P(1,I)))
-        CALL HWVSCA(3,ONE/PP,P(1,I),N)
-        PLAB(4,I+3) = HALF*(P(4,I)-PP)
-        PP = HALF*(PP-MA(I)-PP**2/(MA(I)+P(4,I)))
-        CALL HWVSCA(3,PP,N,PLAB(1,I+3))
-        CALL HWUMAS(PLAB(1,I+3))
-        PP = HWVDOT(3,PLAB(1,I+3),PLAB(1,I+3))
-C--fix to avoid problems if approx massless due to energy
-        IF(PP.LT.EPS) CALL HWVEQU(5,PREF,PLAB(1,I+3))
-      ENDIF
-C--now the massless vectors
-      PP = HALF*P(5,I)**2/HWULDO(PLAB(1,I+3),P(1,I))
-      DO 4 J=1,4
- 4    PLAB(J,I) = P(J,I)-PP*PLAB(J,I+3)
- 3    CALL HWUMAS(PLAB(1,I))
-C--change order of momenta for call to HE code
-      DO 5 I=1,3
-      PM(1,I) = P(3,I)
-      PM(2,I) = P(1,I)
-      PM(3,I) = P(2,I)
-      PM(4,I) = P(4,I)
- 5    PM(5,I) = P(5,I)
-      DO 6 I=1,6
-      PCM(1,I)=PLAB(3,I)
-      PCM(2,I)=PLAB(1,I)
-      PCM(3,I)=PLAB(2,I)
-      PCM(4,I)=PLAB(4,I)
- 6    PCM(5,I)=PLAB(5,I)
-C--compute the S functions
-      CALL HWHEW2(6,PCM(1,1),S(1,1,2),S(1,1,1),D)
-      DO 7 I=1,6
-      DO 7 J=1,6
-      S(I,J,2) = -S(I,J,2)
- 7    D(I,J)   = TWO*D(I,J)
-C--now compute the F functions needed
-      CALL HWH2F2(6,F1 ,5,PM(1,2), MA(2))
-      CALL HWH2F2(6,F0 ,4,PM(1,1), MA(1))
-      CALL HWH2F2(6,F1M,5,PM(1,2),-MA(2))
-      CALL HWH2F2(6,F2M,6,PM(1,3),-MA(3))
-      CALL HWH2F1(6,F1F,5,PM(1,2), MA(2))
-      CALL HWH2F3(6,F2   ,PM(1,3),ZERO  )
-      CALL HWH2F3(6,F0B  ,PM(1,1),ZERO  )
-C--now compute the diagrams
-C--fermion --> fermion scalar
-      IF(I2DRTP(IMODE).EQ.1) THEN
-        PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,2),PCM(1,5))
-        PRE = HALF/SQRT(PRE)
-        DO 10 P0=1,2
-        DO 10 P1=1,2
-        ME(P0,P1,2) = (0.0D0,0.0D0)
- 10     ME(P0,P1,1) = PRE*( A(O(P1))*S(5,2,O(P1))*F0(  P1 ,O(P0),2)
-     &                     +A(  P1 )*MA(2)*       F0(O(P1),O(P0),5))
-C--fermion --> scalar fermion   diagrams
-      ELSEIF(I2DRTP(IMODE).EQ.2) THEN
-        PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,3),PCM(1,6))
-        PRE = HALF/SQRT(PRE)
-        DO 20 P0=1,2
-        DO 20 P2=1,2
-        ME(P0,2,P2) = (0.0D0,0.0D0)
- 20     ME(P0,1,P2) = PRE*( A(O(P2))*S(6,3,O(P2))*F0(  P2 ,O(P0),3)
-     &                     +A(  P2 )*MA(3)*       F0(O(P2),O(P0),6))
-C--fermion --> scalar antifermion
-      ELSEIF(I2DRTP(IMODE).EQ.3) THEN
-        PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,3),PCM(1,6))
-        PRE =(-HALF)/SQRT(PRE)
-        DO 30 P0=1,2
-        DO 30 P2=1,2
-        ME(P0,2,P2) = (0.0D0,0.0D0)
- 30     ME(P0,1,P2) = PRE*( A(  P0 )*S(4,1,P0)*F2M(O(P0),O(P2),1)
-     &                     -A(O(P0))*MA(1)    *F2M(  P0 ,O(P2),4))
-C--fermion --> fermion gauge boson
-      ELSEIF(I2DRTP(IMODE).EQ.4) THEN
-        PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,2),PCM(1,5))*
-     &        HWULDO(PM(1,3),PCM(1,6))
-        PRE = HALF/SQRT(PRE)
-        DO 40 P0=1,2
-        DO 40 P1=1,2
-        ME(P0,P1,1) =(-PRE)*A(1)*F1F(O(P1),2,3)*S(3,6,2)*F0(1,O(P0),3)
- 40     ME(P0,P1,2) = PRE*     F1F(O(P1),1,3)*S(3,6,1)*F0(2,O(P0),3)
-C--scalar  --> fermion antifermion
-      ELSEIF(I2DRTP(IMODE).EQ.5) THEN
-        PRE = HWULDO(PM(1,2),PCM(1,5))*HWULDO(PM(1,3),PCM(1,6))
-        PRE =(-HALF)/SQRT(PRE)
-        DO 50 P1=1,2
-        DO 50 P2=1,2
-        ME(2,P1,P2) = (0.0D0,0.0D0)
- 50     ME(1,P1,P2) = PRE*( A(O(P1))*S(5,2,O(P1))*F2M(  P1 ,O(P2),2)
-     &                     +A(  P1 )*MA(2)*       F2M(O(P1),O(P2),5))
-C--scalar --> fermion fermion
-      ELSEIF(I2DRTP(IMODE).EQ.6) THEN
-        PRE = HWULDO(PM(1,2),PCM(1,5))*HWULDO(PM(1,3),PCM(1,6))
-        PRE = HALF/SQRT(PRE)
-        DO 60 P1=1,2
-        DO 60 P2=1,2
-        ME(2,P1,P2) = (0.0D0,0.0D0)
- 60     ME(1,P1,P2) = PRE*( A(O(P2))*S(6,3,O(P2))*F1M(  P2 ,P1,3)
-     &                     +A(  P2 )*MA(3)*       F1M(O(P2),P1,6))
-C--fermion --> fermion pion
-      ELSEIF(I2DRTP(IMODE).EQ.7) THEN
-        PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,2),PCM(1,5))
-        PRE = 0.25D0/SQRT(PRE)/RMASS(198)**2
-        DO 70 P0=1,2
-        DO 70 P1=1,2
-        ME(P0,P1,2) = (0.0D0,0.0D0)
- 70     ME(P0,P1,1) =PRE*(
-     &              MA(1)*A(O(P0))*( S(5,2,O(P1))*F2(  P1 ,O(P0),2,4)
-     &                                     +MA(2)*F2(O(P1),O(P0),5,4))
-     &            +A(P0)*S(1,4,P0)*( S(5,2,O(P1))*F2(  P1 ,  P0 ,2,1)
-     &                                     +MA(2)*F2(O(P1),  P0 ,5,1)))
-C--scalar  --> antifermion fermion
-      ELSEIF(I2DRTP(IMODE).EQ.8) THEN
-        PRE = HWULDO(PM(1,2),PCM(1,5))*HWULDO(PM(1,3),PCM(1,6))
-        PRE =(-HALF)/SQRT(PRE)
-        DO 80 P1=1,2
-        DO 80 P2=1,2
-        ME(2,P1,P2) = (0.0D0,0.0D0)
- 80     ME(1,P1,P2) = PRE*( A(O(P2))*S(6,3,O(P2))*F1M(  P2 ,O(P1),3)
-     &                     +A(  P2 )*MA(3)*       F1M(O(P2),O(P1),6))
-C--neutralino --> gravitino photon
-      ELSEIF(I2DRTP(IMODE).EQ.9) THEN
-        PRE = TWO*HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,3),PCM(1,6))
-        PRE = TWO/SQRT(PRE)
-        DO 90 P1=1,2
-        DO 90 P2=1,2
-        ME(P1,P2,O(P2)) = (0.0D0,0.0D0)
- 90     ME(P1,P2,  P2 ) = PRE*S(2,3,P2)*S(3,6,O(P2))*
-     &       S(3,2,P2)*F0(O(P2),P1,2)
-C--neutralino --> gravitino scalar
-      ELSEIF(I2DRTP(IMODE).EQ.10) THEN
-        PRE = TWO*HWULDO(PM(1,1),PCM(1,4))
-        PRE = ONE/SQRT(PRE)
-        DO 100 P1=1,2
-        DO 100 P2=1,2
-        ME(P1,P2,2) = (0.0D0,0.0D0)
- 100    ME(P1,P2,1) = PRE*F2(P2,1,2,2)*F0(1,O(P1),2)
-C--sfermion --> fermion gravitino
-      ELSEIF(I2DRTP(IMODE).EQ.11) THEN
-        PRE = TWO*HWULDO(PM(1,2),PCM(1,5))
-        PRE = ONE/SQRT(PRE)
-        DO 110 P1=1,2
-        DO 110 P2=1,2
-        ME(2,P1,P2) = (0.0D0,0.0D0)
- 110    ME(1,P1,P2) = PRE*A(O(P2))*F1M(O(P1),P2,3)*F0B(P2,P2,3,3)
-C--antisfermion --> antifermion gravitino
-      ELSEIF(I2DRTP(IMODE).EQ.12) THEN
-        PRE = TWO*HWULDO(PM(1,2),PCM(1,5))
-        PRE = ONE/SQRT(PRE)
-        DO 120 P1=1,2
-        DO 120 P2=1,2
-        ME(2,P1,P2) = (0.0D0,0.0D0)
- 120    ME(1,P1,P2) = PRE*A(O(P2))*F0B(P2,P2,3,3)*F1(P2,O(P1),3)
-C--scalar --> antifermion antifermion
-      ELSEIF(I2DRTP(IMODE).EQ.13) THEN
-        PRE = HWULDO(PM(1,2),PCM(1,5))*HWULDO(PM(1,3),PCM(1,6))
-        PRE = HALF/SQRT(PRE)
-        DO 130 P1=1,2
-        DO 130 P2=1,2
-        ME(2,P1,P2) = (0.0D0,0.0D0)
- 130    ME(1,P1,P2) = PRE*( A(  P1 )*S(5,2,  P1 )*F2M(O(P1),O(P2),2)
-     &                     +A(O(P1))*MA(2)       *F2M(  P1 ,O(P2),5))
-C--antifermion --> scalar antifermion
-      ELSEIF(I2DRTP(IMODE).EQ.14) THEN
-        PRE = HWULDO(PM(1,1),PCM(1,4))*HWULDO(PM(1,3),PCM(1,6))
-        PRE = HALF/SQRT(PRE)
-        DO 140 P0=1,2
-        DO 140 P2=1,2
-        ME(P0,2,P2) = (0.0D0,0.0D0)
- 140    ME(P0,1,P2) = PRE*( A(O(P0))*S(4,1,O(P0))*F2M(  P0 ,O(P2),1)
-     &                     -A(  P0 )*MA(1)       *F2M(O(P0),O(P2),4))
-C--unrecognized type of diagram
-      ELSE
-        CALL HWWARN('HWDSM2',500)
-      ENDIF
-C--compute the maximum weight
-      WTMAX=0.0d0
-      DO 490 P0=1,2
-      DO 490 P1=1,2
-      DO 490 P2=1,2
- 490  WTMAX = WTMAX+DREAL(ME(P0,P1,P2)*DCONJG(ME(P0,P1,P2)))
-      WTMAX = WTMAX*PHS*P2MODE(IMODE)
-C--now compute the weight
-      WGT = ZERO
-      DO 500 P0 =1,2
-      DO 500 P0P=1,2
-      DO 500 P1 =1,2
-      DO 500 P2 =1,2
- 500  WGT = WGT+PHS*P2MODE(IMODE)*DREAL(
-     &       ME(P0,P1,P2)*DCONJG(ME(P0P,P1,P2))*RHOIN(P0,P0P))
-      IF(I2DRTP(IMODE).EQ.5.OR.I2DRTP(IMODE).EQ.6.OR.
-     &   I2DRTP(IMODE).EQ.8.OR.I2DRTP(IMODE).EQ.13) GOTO 300
-C--issue warning if greater than maximum
-      IF(WGT.GT.WTMAX) THEN
-        CALL HWWARN('HWDSM2',1)
-        WRITE(6,2000) RNAME(IDK(ID2PRT(IMODE))),
-     &   RNAME(IDKPRD(1,ID2PRT(IMODE))),RNAME(IDKPRD(2,ID2PRT(IMODE))),
-     &   WTMAX,1.1D0*WGT
-        WT2MAX(IMODE) = 1.1D0*WGT
-        WTMAX         = WT2MAX(IMODE)
-      ENDIF
-      IF(HWRGEN(0)*WTMAX.GT.WGT.AND.NTRY.LT.NSNTRY) GOTO 1000
-      IF(NTRY.GE.NSNTRY) THEN
-        CALL HWWARN('HWDSM2',100)
-        GOTO 999
-      ENDIF
-C--now enter the momenta in the common block
- 300  CALL HWVEQU(5,P(1,2),PHEP(1,IOUT1))
-      CALL HWVEQU(5,P(1,3),PHEP(1,IOUT2))
-C--set up the spin information
-C--setup for all decays
-      JMOSPN(NSPN+1) = IDSPIN
-      JMOSPN(NSPN+2) = IDSPIN
-      JDASPN(1,IDSPIN) = NSPN+1
-      JDASPN(2,IDSPIN) = NSPN+2
-      IDSPN(NSPN+1) = IOUT1
-      IDSPN(NSPN+2) = IOUT2
-      DO 11 I=1,2
-      DECSPN(NSPN+I) = .FALSE.
-      DO 11 J=1,2
- 11   JDASPN(I,NSPN+J) = 0
-      ISNHEP(IOUT1) = NSPN+1
-      ISNHEP(IOUT2) = NSPN+2
-      DO 12 I=1,2
-        IF(RSPIN(IDHW(IDSPN(NSPN+I))).EQ.ZERO) THEN
-          RHOSPN(1,1,NSPN+I) = ONE
-          RHOSPN(2,1,NSPN+I) = ZERO
-          RHOSPN(1,2,NSPN+I) = ZERO
-          RHOSPN(2,2,NSPN+I) = ZERO
-        ELSE
-          RHOSPN(1,1,NSPN+I) = HALF
-          RHOSPN(2,1,NSPN+I) = ZERO
-          RHOSPN(1,2,NSPN+I) = ZERO
-          RHOSPN(2,2,NSPN+I) = HALF
-        ENDIF
- 12   CONTINUE
-      NSPN = NSPN+2
-C--now enter the matrix element
-      DO 150 P0=1,2
-      DO 150 P1=1,2
-      DO 150 P2=1,2
-      MESPN(P0,P1,P2,2,1,IDSPIN) = (0.0D0,0.0D0)
- 150  MESPN(P0,P1,P2,1,1,IDSPIN) = ME(P0,P1,P2)
-      SPNCFC(1,1,IDSPIN) = ONE
-      NCFL(IDSPIN) = 1
-      RETURN
-C--format statements
- 2000 FORMAT(/'WEIGHT FOR DECAY ',A8,' --> ',A8,' ',A8, 'EXCEEDS MAX',
-     &       /10X,'    MAXIMUM WEIGHT =',1PG24.16,
-     &       /10X,'NEW MAXIMUM WEIGHT =',1PG24.16)
- 999  RETURN
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwhssq.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwhssq.f
deleted file mode 100644
index 158a2dbd32880fdc5fd36b884c77abe7f99cc8a2..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwhssq.f
+++ /dev/null
@@ -1,895 +0,0 @@
-CDECK  ID>, HWHSSQ.
-*CMZ :-        -18/05/99  20.33.45  by  Kosuke Odagiri
-*-- Author :    Kosuke Odagiri
-C-----------------------------------------------------------------------
-      SUBROUTINE HWHSSQ
-C-----------------------------------------------------------------------
-C     SUSY HARD 2 PARTON -> 2 SPARTON PROCESSES
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      DOUBLE PRECISION HWRGEN, HWUALF, EPS, HCS, RCS, DIST, NC, NC2,
-     & NC2C, ML2(6), ML4(6), MR2(6), MR4(6), MG2, SM, DM, QPE,
-     & SQPE, FACTR, AFAC, AF, BONE, CFAC, CFC2, CFC3, CONE,
-     & CONN, CONT, CONU, CONL, CONR, DFAC, DONE, PF, S,
-     & S2, TT, TT2, TMG, TMG2, UU, UU2, UMG, UMG2,
-     & L, L2, TTML, UUML, R, R2, TTMR, UUMR, SN2TH
-      DOUBLE PRECISION
-     & AUSTLL(6),   AUSTRR(6),
-     & ASTULL(6,6), ASTURR(6,6), ASTULR(6,6), ASTURL(6,6),
-     & AUTSLL(6,6), AUTSRR(6,6), AUTSLR(6,6), AUTSRL(6,6),
-     & BSTULL(6),   BSTURR(6),   BSTULR(6),   BSTURL(6),
-     & BSUTLL(6),   BSUTRR(6),   BSUTLR(6),   BSUTRL(6),
-     & BUTSLL(6),   BUTSRR(6),   BUTSLR(6),   BUTSRL(6),
-     & BUSTLL(6),   BUSTRR(6),   BUSTLR(6),   BUSTRL(6),
-     & CSTU(6), CSUT(6), CSTUL(6), CSTUR(6), CSUTL(6), CSUTR(6),
-     & CTSUL(6), CTSUR(6), CTUSL(6), CTUSR(6), DUTS, DTSU, DSTU
-      INTEGER IQ, IQ1, IQ2, ID1, ID2, IGL, SSL, SSR, GLU
-      EXTERNAL HWRGEN, HWUALF
-      SAVE HCS, AUSTLL, AUSTRR, ASTULL, ASTURR, ASTULR, ASTURL,
-     & AUTSLL, AUTSRR, AUTSLR, AUTSRL, BSTULL, BSTURR, BSTULR,
-     & BSTURL, BSUTLL, BSUTRR, BSUTLR, BSUTRL, BUTSLL, BUTSRR, BUTSLR,
-     & BUTSRL, BUSTLL, BUSTRR, BUSTLR, BUSTRL, CSTU, CSUT, CSTUL, CSTUR,
-     & CSUTL, CSUTR, CTSUL, CTSUR, CTUSL, CTUSR, DUTS, DTSU, DSTU
-      PARAMETER (EPS = 1.D-9, IGL = 49, SSL = 400, SSR = 412, GLU = 449)
-      CALL    HWSGEN(.FALSE.)
-      IF (GENEV) THEN
-        RCS = HCS*HWRGEN(0)
-      ELSE
-        SN2TH = 0.25D0 - 0.25D0*COSTH**2
-        S     = XX(1)*XX(2)*PHEP(5,3)**2
-        FACTR = FACTSS*HWUALF(1,EMSCA)**2
-        NC    = CAFAC
-        NC2   = NC**2
-        NC2C  = ONE - ONE/NC2
-        AFAC  = FACTR*NC2C/FOUR
-        CFAC  = FACTR*CFFAC/FOUR
-        CFC2  = FACTR/CFFAC/FOUR
-        CFC3  = FACTR/FOUR
-        DFAC  = FACTR/NC2C
-        S2    = S**2
-        MG2   = RMASS(GLU)**2
-        DO 10 IQ = 1, 6
-          IQ1     = SSL + IQ
-          IQ2     = SSR + IQ
-          ML2(IQ) = RMASS(IQ1)**2
-          ML4(IQ) = ML2(IQ)**2
-          MR2(IQ) = RMASS(IQ2)**2
-          MR4(IQ) = MR2(IQ)**2
-   10   CONTINUE
-c     gluino pair production
-        QPE  = S - FOUR*MG2
-        IF (QPE.GE.ZERO) THEN
-          SQPE = SQRT(S*QPE)
-          PF   = SQPE/S
-          TT   = (SQPE*COSTH - S) / TWO
-          TT2  = TT**2
-          UU   = - S - TT
-          UU2  = UU**2
-c            ~ ~
-c     g g -> g g
-c
-          DONE =
-     &     DFAC*PF/TWO*(UU2+TT2+FOUR*MG2*S*SQPE**2*SN2TH/TT/UU)/S2/TT/UU
-          DUTS = DONE*UU2
-          DTSU = DONE*TT2
-          DSTU = DONE*S2
-c       _    ~ ~
-c     q q -> g g
-c
-          DO 21 IQ = 1, 6
-            L    = ML2(IQ)-MG2
-            L2   = L**2
-            TTML = TT-L
-            UUML = UU-L
-            R    = MR2(IQ)-MG2
-            R2   = R**2
-            TTMR = TT-R
-            UUMR = UU-R
-            CONE = TWO*PF**2*SN2TH
-            CONL = CONE/UUML/TTML
-            CONR = CONE/UUMR/TTMR
-            CONT = (UU2-L2)*CONL+(UU2-R2)*CONR+L2/TTML**2+R2/TTMR**2
-            CONU = (TT2-L2)*CONL+(TT2-R2)*CONR+L2/UUML**2+R2/UUMR**2
-            CONN = CFAC*(PF-PF/NC2/(CONT+CONU)*( S2*(CONL+CONR)+
-     &            L2*((TT-UU)*CONL/CONE)**2+R2*((TT-UU)*CONR/CONE)**2 ))
-            CSTU(IQ) = CONT*CONN
-            CSUT(IQ) = CONU*CONN
-   21     CONTINUE
-        ELSE
-          DUTS = ZERO
-          DTSU = ZERO
-          DSTU = ZERO
-          DO 23 IQ = 1, 6
-            CSTU(IQ) = ZERO
-            CSUT(IQ) = ZERO
-   23     CONTINUE
-        END IF
-c     left handed squark (identical flavour) pair production
-        DO 22 IQ = 1, 6
-          QPE = S - FOUR*ML2(IQ)
-          IF (QPE.GE.ZERO) THEN
-            SQPE = SQRT(S*QPE)
-            PF   = SQPE/S
-            TT   = (SQPE*COSTH - S) / TWO
-            TT2  = TT**2
-            UU   = - S - TT
-            UU2  = UU**2
-c            ~ ~*
-c     g g -> q q
-c             L L
-            CONE = CFC2*PF*((SQPE*PF*SN2TH)**2+ML4(IQ))/TT2/UU2
-            CONN = CONE-CONE*S2/(TT2+UU2)/NC2
-            CSTUL(IQ)  = CONN*UU2
-            CSUTL(IQ)  = CONN*TT2
-c            ~ ~
-c     q q -> q q
-c             L L
-            TMG  = TT+ML2(IQ)-MG2
-            TMG2 = TMG**2
-            UMG  = UU+ML2(IQ)-MG2
-            UMG2 = UMG**2
-            BONE = AFAC*PF*MG2*S*(HALF-TMG*UMG/(TMG2+UMG2)/NC)
-            BSTULL(IQ) = BONE/TMG2
-            BSUTLL(IQ) = BONE/UMG2
-c       _    ~ ~*
-c     q q -> q q
-c             L L
-            AF   = AFAC*PF*PF**2*SN2TH
-            BONE = AF/TMG2-AF*S/(HALF*S2+TMG2)/TMG/NC
-            BUTSLL(IQ) = BONE*S2
-            BUSTLL(IQ) = BONE*TWO*TMG2
-c       _     ~ ~*
-c     q q  -> q'q'       q =/= q'
-c              L L
-            AUSTLL(IQ) = TWO*AF
-          ELSE
-            CSTUL(IQ)  = ZERO
-            CSUTL(IQ)  = ZERO
-            BSTULL(IQ) = ZERO
-            BSUTLL(IQ) = ZERO
-            BUTSLL(IQ) = ZERO
-            BUSTLL(IQ) = ZERO
-            AUSTLL(IQ) = ZERO
-          END IF
-c     right handed squark (identical flavour) pair production
-          QPE = S - FOUR*MR2(IQ)
-          IF (QPE.GE.ZERO) THEN
-            SQPE = SQRT(S*QPE)
-            PF   = SQPE/S
-            TT   = (SQPE*COSTH - S) / TWO
-            TT2  = TT**2
-            UU   = - S - TT
-            UU2  = UU**2
-c            ~ ~*
-c     g g -> q q
-c             R R
-            CONE = CFC2*PF*((SQPE*PF*SN2TH)**2+MR4(IQ))/TT2/UU2
-            CONN = CONE-CONE*S2/(TT2+UU2)/NC2
-            CSTUR(IQ) = CONN*UU2
-            CSUTR(IQ) = CONN*TT2
-c            ~ ~
-c     q q -> q q
-c             R R
-            TMG  = TT+MR2(IQ)-MG2
-            TMG2 = TMG**2
-            UMG  = UU+MR2(IQ)-MG2
-            UMG2 = UMG**2
-            BONE = AFAC*PF*MG2*S*(HALF-TMG*UMG/(TMG2+UMG2)/NC)
-            BSTURR(IQ) = BONE/TMG2
-            BSUTRR(IQ) = BONE/UMG2
-c       _    ~ ~*
-c     q q -> q q
-c             R R
-            AF = AFAC*PF*PF**2*SN2TH
-            BONE = AF/TMG2-AF*S/(HALF*S2+TMG2)/TMG/NC
-            BUTSRR(IQ) = BONE*S2
-            BUSTRR(IQ) = BONE*TWO*TMG2
-c       _     ~ ~*
-c     q q  -> q'q'       q =/= q'
-c              R R
-            AUSTRR(IQ) = TWO*AF
-          ELSE
-            CSTUR(IQ)  = ZERO
-            CSUTR(IQ)  = ZERO
-            BSTURR(IQ) = ZERO
-            BSUTRR(IQ) = ZERO
-            BUTSRR(IQ) = ZERO
-            BUSTRR(IQ) = ZERO
-            AUSTRR(IQ) = ZERO
-          END IF
-c     left and right handed squark (identical flavour) pair production
-          IQ1  = SSL + IQ
-          IQ2  = SSR + IQ
-          SM   = RMASS(IQ1)+RMASS(IQ2)
-          QPE  = S - SM**2
-          IF (QPE.GE.ZERO) THEN
-            DM   = RMASS(IQ1)-RMASS(IQ2)
-            SQPE = SQRT( QPE*(S-DM**2) )
-            PF   = SQPE/S
-            AF   = AFAC*PF
-            TT   = (SQPE*COSTH - S - SM*DM) / TWO
-            UU   = - S - TT
-            TMG  = TT + ML2(IQ) - MG2
-            TMG2 = TMG**2
-            UMG  = UU + MR2(IQ) - MG2
-            UMG2 = UMG**2
-c            ~ ~
-c     q q -> q q
-c             L R
-            BONE = AFAC*PF*SQPE**2*SN2TH
-            BSTULR(IQ) = BONE/TMG2
-            BSUTLR(IQ) = BONE/UMG2
-c       _    ~ ~*
-c     q q -> q q
-c             L R
-            BUTSLR(IQ) = AFAC*PF*MG2*S/TMG2
-            BUSTLR(IQ) = ZERO
-            TT   = (SQPE*COSTH - S + SM*DM) / TWO
-            UU   = - S - TT
-            TMG  = TT + MR2(IQ) - MG2
-            TMG2 = TMG**2
-            UMG  = UU + ML2(IQ) - MG2
-            UMG2 = UMG**2
-c            ~ ~
-c     q q -> q q
-c             R L
-c            BONE = AFAC*PF*SQPE**2*SN2TH
-c            BSTURL(IQ) = BONE/TMG2
-c            BSUTRL(IQ) = BONE/UMG2
-            BSTURL(IQ) = ZERO
-            BSUTRL(IQ) = ZERO
-c       _    ~ ~*
-c     q q -> q q
-c             R L
-            BUTSRL(IQ) = AFAC*PF*MG2*S/TMG2
-            BUSTRL(IQ) = ZERO
-          ELSE
-            BSTULR(IQ) = ZERO
-            BSUTLR(IQ) = ZERO
-            BUTSLR(IQ) = ZERO
-            BUSTLR(IQ) = ZERO
-            BSTURL(IQ) = ZERO
-            BSUTRL(IQ) = ZERO
-            BUTSRL(IQ) = ZERO
-            BUSTRL(IQ) = ZERO
-          END IF
-   22   CONTINUE
-c     distinct flavours - gq, qq'
-        DO 11 ID1 = 1, 6
-          IQ1  = SSL + ID1
-          SM   = RMASS(GLU)+RMASS(IQ1)
-          QPE  = S - SM**2
-          IF (QPE.GE.ZERO) THEN
-            DM   = RMASS(GLU)-RMASS(IQ1)
-            SQPE = SQRT( QPE*(S-DM**2) )
-            PF   = SQPE/S
-            TT   = (SQPE*COSTH - S - SM*DM) / TWO
-            TT2  = TT**2
-            UU   = - S - TT
-            UU2  = UU**2
-c            ~ ~
-c     g q -> g q
-c               L
-            CONE = (-UU+TWO*SM*DM*(ONE+MG2/TT+ML2(ID1)/UU))/S/TT/UU
-            CONN = CFC3*PF*CONE*(ONE-TT2/(UU2+S2)/NC2)
-            CTSUL(ID1) = CONN*UU2
-            CTUSL(ID1) = CONN*S2
-          ELSE
-            CTSUL(ID1) = ZERO
-            CTUSL(ID1) = ZERO
-          END IF
-          IQ2  = SSR + ID1
-          SM   = RMASS(GLU)+RMASS(IQ2)
-          QPE  = S - SM**2
-          IF (QPE.GE.ZERO) THEN
-            DM   = RMASS(GLU)-RMASS(IQ2)
-            SQPE = SQRT( QPE*(S-DM**2) )
-            PF   = SQPE/S
-            TT   = (SQPE*COSTH - S - SM*DM) / TWO
-            TT2  = TT**2
-            UU   = - S - TT
-            UU2  = UU**2
-c            ~ ~
-c     g q -> g q
-c               R
-            CONE = (-UU+TWO*SM*DM*(ONE+MG2/TT+MR2(ID1)/UU))/S/TT/UU
-            CONN = CFC3*PF*CONE*(ONE-TT2/(UU2+S2)/NC2)
-            CTSUR(ID1) = CONN*UU2
-            CTUSR(ID1) = CONN*S2
-          ELSE
-            CTSUR(ID1) = ZERO
-            CTUSR(ID1) = ZERO
-          END IF
-          IF(ID1.EQ.6) GOTO 11
-          DO 12 ID2 = 1, 6
-            IF(ID2.EQ.ID1) GOTO 12
-            IQ1  = SSL + ID1
-            IQ2  = SSL + ID2
-            SM   = RMASS(IQ1)+RMASS(IQ2)
-            QPE  = S - SM**2
-            IF (QPE.GE.ZERO) THEN
-              DM   = RMASS(IQ1)-RMASS(IQ2)
-              SQPE = SQRT( QPE*(S-DM**2) )
-              PF   = SQPE/S
-              TT   = (SQPE*COSTH - S - SM*DM) / TWO
-              UU   = - S - TT
-              TMG  = TT+ML2(ID1)-MG2
-              AF   = AFAC*PF/TMG/TMG
-c             ~ ~
-c     q q' -> q q'
-c              L L
-              ASTULL(ID1,ID2) = AF*MG2*S
-c       _     ~ ~*
-c     q q' -> q q'
-c              L L
-              AUTSLL(ID1,ID2) = AF*SQPE**2*SN2TH
-            ELSE
-              ASTULL(ID1,ID2) = ZERO
-              AUTSLL(ID1,ID2) = ZERO
-            END IF
-            IQ1  = SSR + ID1
-            IQ2  = SSR + ID2
-            SM   = RMASS(IQ1)+RMASS(IQ2)
-            QPE  = S - SM**2
-            IF (QPE.GE.ZERO) THEN
-              DM   = RMASS(IQ1)-RMASS(IQ2)
-              SQPE = SQRT( QPE*(S-DM**2) )
-              PF   = SQPE/S
-              TT   = (SQPE*COSTH - S - SM*DM) / TWO
-              UU   = - S - TT
-              TMG  = TT+MR2(ID1)-MG2
-              AF   = AFAC*PF/TMG/TMG
-c             ~ ~
-c     q q' -> q q'
-c              R R
-              ASTURR(ID1,ID2) = AF*MG2*S
-c       _     ~ ~*
-c     q q' -> q q'
-c              R R
-              AUTSRR(ID1,ID2) = AF*SQPE**2*SN2TH
-            ELSE
-              ASTURR(ID1,ID2) = ZERO
-              AUTSRR(ID1,ID2) = ZERO
-            END IF
-            IQ1  = SSL + ID1
-            IQ2  = SSR + ID2
-            SM   = RMASS(IQ1)+RMASS(IQ2)
-            QPE  = S - SM**2
-            IF (QPE.GE.ZERO) THEN
-              DM   = RMASS(IQ1)-RMASS(IQ2)
-              SQPE = SQRT( QPE*(S-DM**2) )
-              PF   = SQPE/S
-              TT   = (SQPE*COSTH - S - SM*DM) / TWO
-              UU   = - S - TT
-              TMG  = TT+ML2(ID1)-MG2
-              AF   = AFAC*PF/TMG/TMG
-c             ~ ~
-c     q q' -> q q'
-c              L R
-              ASTULR(ID1,ID2) = AF*SQPE**2*SN2TH
-c       _     ~ ~*
-c     q q' -> q q'
-c              L R
-              AUTSLR(ID1,ID2) = AF*MG2*S
-              TT   = (SQPE*COSTH - S + SM*DM) / TWO
-              UU   = - S - TT
-              TMG    = TT+MR2(ID1)-MG2
-              AF   = AFAC*PF/TMG/TMG
-c             ~ ~
-c     q q' -> q q'
-c              R L
-              ASTURL(ID2,ID1) = AF*SQPE**2*SN2TH
-c       _     ~ ~*
-c     q q' -> q q'
-c              R L
-              AUTSRL(ID2,ID1) = AF*MG2*S
-            ELSE
-              ASTULR(ID1,ID2) = ZERO
-              AUTSLR(ID1,ID2) = ZERO
-              ASTURL(ID2,ID1) = ZERO
-              AUTSRL(ID2,ID1) = ZERO
-            END IF
-   12     CONTINUE
-   11   CONTINUE
-      END IF
-      HCS = ZERO
-      DO 6 ID1 = 1, 13
-      IF (DISF(ID1,1).LT.EPS) GOTO 6
-      DO 5 ID2 = 1, 13
-      IF (DISF(ID2,2).LT.EPS) GOTO 5
-      DIST = DISF(ID1,1)*DISF(ID2,2)
-      IF (ID1.LT.7) THEN
-       IQ1 = ID1
-       IF (ID2.LT.7) THEN
-        IQ2 = ID2
-        IF (IQ1.NE.IQ2) THEN
-c        ~ ~
-c qq' -> q q'
-         HCS = HCS + ASTULL(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + ASTURR(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,2,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + ASTULR(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,2,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + ASTURL(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,0,3421,10)
-           GOTO 9
-         ENDIF
-        ELSE
-c        ~ ~
-c qq  -> q q
-         HCS = HCS +     BSTULL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSTURR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,2,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSTULR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,2,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSTURL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,0,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSUTLL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSUTRR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,2,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSUTLR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,2,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSUTRL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,0,4312,10)
-           GOTO 9
-         ENDIF
-        END IF
-       ELSEIF (ID2.NE.13) THEN
-        IQ2 = ID2-6
-        IF (IQ1.NE.IQ2) THEN
-c  _     ~ ~*
-c qq' -> q q'
-         HCS = HCS + AUTSLL(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,1,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + AUTSRR(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,3,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + AUTSLR(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,3,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + AUTSRL(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,1,3142,10)
-           GOTO 9
-         ENDIF
-        ELSE
-c  _     ~ ~*
-c qq  -> q'q'   (q =/= q')
-         DO 30 IQ = 1, 6
-         IF (IQ .EQ.IQ1) GOTO 30
-         HCS = HCS +     AUSTLL(IQ )*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,0,IQ ,1,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     AUSTRR(IQ )*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,2,IQ ,3,2413,10)
-           GOTO 9
-         ENDIF
-  30     CONTINUE
-c  _     ~ ~*
-c qq  -> q q
-         HCS = HCS +     BUTSLL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,1,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUTSRR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,3,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUTSLR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,3,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUTSRL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,1,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUSTLL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,1,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUSTRR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,3,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUSTLR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,3,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUSTRL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,1,2413,10)
-           GOTO 9
-         ENDIF
-         IQ  = IGL
-c  _     ~ ~
-c qq  -> g g
-         HCS = HCS +       CSTU(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,0,IQ ,0,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +       CSUT(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,0,IQ ,0,2341,10)
-           GOTO 9
-         ENDIF
-        END IF
-       ELSE
-         IQ2 = IGL
-c        ~ ~
-c qg  -> q g
-         HCS = HCS +      CTSUL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTSUR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,0,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTUSL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTUSR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,2,IQ2,0,3421,10)
-           GOTO 9
-         ENDIF
-       END IF
-      ELSEIF (ID1.NE.13) THEN
-       IQ1 = ID1 - 6
-       IF (ID2.LT.7) THEN
-        IQ2 = ID2
-        IF (IQ1.NE.IQ2) THEN
-c _      ~*~
-c qq' -> q q'
-         HCS = HCS + AUTSLL(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,0,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + AUTSRR(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,2,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + AUTSLR(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,2,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + AUTSRL(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,0,2413,10)
-           GOTO 9
-         ENDIF
-        ELSE
-c _      ~*~
-c qq  -> q'q'   (q =/= q')
-         DO 31 IQ = 1, 6
-         IF (IQ .EQ.IQ1) GOTO 31
-         HCS = HCS +      AUSTLL(IQ)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,1,IQ ,0,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      AUSTRR(IQ)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,3,IQ ,2,3142,10)
-           GOTO 9
-         ENDIF
-   31    CONTINUE
-c _      ~*~
-c qq  -> q q
-         HCS = HCS +     BUTSLL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,0,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUTSRR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,2,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUTSLR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,2,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUTSRL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,0,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUSTLL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,0,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUSTRR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,2,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUSTLR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,2,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BUSTRL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,0,3142,10)
-           GOTO 9
-         ENDIF
-c _      ~ ~
-c qq  -> g g
-         HCS = HCS +       CSTU(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IGL,0,IGL,0,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +       CSUT(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IGL,0,IGL,0,4123,10)
-           GOTO 9
-         ENDIF
-        END IF
-       ELSEIF (ID2.NE.13) THEN
-        IQ2 = ID2 - 6
-        IF (IQ1.NE.IQ2) THEN
-c __     ~*~*
-c qq' -> q q'
-         HCS = HCS + ASTULL(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,1,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + ASTURR(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,3,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + ASTULR(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,3,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS + ASTURL(IQ1,IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,1,4312,10)
-           GOTO 9
-         ENDIF
-        ELSE
-c __     ~*~*
-c qq  -> q q
-         HCS = HCS +     BSTULL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,1,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSTURR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,3,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSTULR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,3,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSTURL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,1,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSUTLL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,1,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSUTRR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,3,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSUTLR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,3,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +     BSUTRL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,1,3421,10)
-           GOTO 9
-         ENDIF
-        END IF
-       ELSE
-         IQ2 = IGL
-c _      ~*~
-c qg  -> q g
-         HCS = HCS +      CTSUL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,0,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTSUR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,0,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTUSL(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,1,IQ2,0,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTUSR(IQ1)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,3,IQ2,0,4312,10)
-           GOTO 9
-         ENDIF
-       END IF
-      ELSE
-       IQ1 = IGL
-       IF (ID2.LT.7) THEN
-         IQ2 = ID2
-c        ~ ~
-c gq  -> g q
-         HCS = HCS +      CTSUL(IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTSUR(IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,2,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTUSL(IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTUSR(IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,2,3421,10)
-           GOTO 9
-         ENDIF
-       ELSEIF (ID2.LT.13) THEN
-         IQ2 = ID2 - 6
-c  _     ~ ~*
-c gq  -> g q
-         HCS = HCS +      CTSUL(IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,1,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTSUR(IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,3,3142,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTUSL(IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,1,4312,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +      CTUSR(IQ2)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,3,4312,10)
-           GOTO 9
-         ENDIF
-       ELSE
-         IQ2 = IGL
-c        ~ ~*
-c gg  -> q q
-         DO 32 IQ = 1, 6
-         HCS = HCS +       CSTUL(IQ)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,0,IQ ,1,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +       CSTUR(IQ)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,2,IQ ,3,2413,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +       CSUTL(IQ)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,0,IQ ,1,4123,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +       CSUTR(IQ)*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ ,2,IQ ,3,4123,10)
-           GOTO 9
-         ENDIF
-   32    CONTINUE
-c        ~ ~
-c gg  -> g g
-         HCS = HCS +            DTSU*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,2341,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +            DSTU*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,3421,10)
-           GOTO 9
-         ENDIF
-         HCS = HCS +            DUTS*DIST
-         IF (GENEV.AND.HCS.GT.RCS) THEN
-           CALL HWHSSS(IQ1,0,IQ2,0,2413,10)
-           GOTO 9
-         ENDIF
-       END IF
-      END IF
-    5 CONTINUE
-    6 CONTINUE
-      EVWGT = HCS
-      RETURN
-C---GENERATE EVENT
-    9 IDN(1)=ID1
-      IDN(2)=ID2
-      IDCMF=15
-      CALL HWETWO(.TRUE.,.TRUE.)
-      IF (AZSPIN) THEN
-C Calculate coefficients for constructing spin density matrices
-C Set to zero for now
-        CALL HWVZRO(7,GCOEF)
-      END IF
-      END
diff --git a/Generators/Herwig_i/src/HerwigModified/rpv/hwirpv.f b/Generators/Herwig_i/src/HerwigModified/rpv/hwirpv.f
deleted file mode 100644
index 2c107f0454d3d7700e1c83519bf35967de615e4c..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/HerwigModified/rpv/hwirpv.f
+++ /dev/null
@@ -1,1927 +0,0 @@
-
-C----------------------------------------------------------------------
-      SUBROUTINE HWIRPV
-C----------------------------------------------------------------------
-c     SUBROUTINE TO INITIALISE THE NEW FOUR BODY RPV MATRIX ELEMENTS
-C----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      DOUBLE PRECISION EPS,TOTAL,OLD,NEW
-      INTEGER III,JJJ,KKK,I
-      PARAMETER(EPS=1.D-10)
-      LOGICAL FOUND,LLEFND(5,3,3,3),LQDFND(8,3,3,3),UDDFND(4,3,3,3),
-     &     NEUT,CHAR
-C--common block for the parameters for the new modes
-      DOUBLE PRECISION LLEMAX,LLEAVR,LQDMAX,LQDAVR,UDDMAX,UDDAVR
-      COMMON /HWDRP4/ LLEMAX(5,3,3,3),LLEAVR(5,3,3,3),
-     &                LQDMAX(8,3,3,3),LQDAVR(8,3,3,3),
-     &                UDDMAX(4,3,3,3),UDDAVR(4,3,3,3)
-C--look at the stau decay modes
-      NEUT=.FALSE.
-      CHAR=.TRUE.
-      DO I=1,NDKYS
-         IF(IDK(I).EQ.429) THEN
-C--check two body stau -> neutralino tau not present 
-            IF((IDKPRD(1,I).EQ.450.AND.IDKPRD(2,I).EQ.125).OR.
-     &         (IDKPRD(2,I).EQ.450.AND.IDKPRD(1,I).EQ.125)) NEUT=.TRUE.
-C--check two body stau -> chargino nu_tau not present
-            IF((IDKPRD(1,I).EQ.456.AND.IDKPRD(2,I).EQ.125).OR.
-     &         (IDKPRD(2,I).EQ.456.AND.IDKPRD(1,I).EQ.125)) CHAR=.TRUE.
-         ENDIF
-      ENDDO
-      NEUT=.false.
-C--zero the partial widths
-      DO 50 III=1,3
-      DO 50 JJJ=1,3
-      DO 50 KKK=1,3
-         DO 51 I=1,5
-         LLEFND(I,III,JJJ,KKK)=.FALSE.
-         LLEAVR(I,III,JJJ,KKK)=0.0D0
- 51      LLEMAX(I,III,JJJ,KKK)=0.0D0
-         DO 52 I=1,8
-         LQDFND(I,III,JJJ,KKK)=.FALSE.
-         LQDAVR(I,III,JJJ,KKK)=0.0D0
- 52      LQDMAX(I,III,JJJ,KKK)=0.0D0
-         DO 53 I=1,4
-         UDDFND(I,III,JJJ,KKK)=.FALSE.
-         UDDAVR(I,III,JJJ,KKK)=0.0D0
- 53      UDDMAX(I,III,JJJ,KKK)=0.0D0
- 50   CONTINUE
-      FOUND = .FALSE.
-C--ensure copuling initialisation
-      CALL HWISPC
-C--calculate all the modes we need
-C--first the LLE neutralino modes
-      IF(.NOT.NEUT) THEN 
-         DO 100 III=1,3
-         DO 100 JJJ=1,3
-         DO 100 KKK=1,3
-            IF(ABS(LAMDA1(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(125+2*III)+RMASS(126+2*JJJ)+
-     &           RMASS(119+2*KKK)+RMASS(125      ))) THEN
-               FOUND = .TRUE.
-               LLEFND(1,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> l_i+ nu_bar_j l_k- tau-
-               CALL HWDRMX(429,125+2*III,126+2*JJJ,119+2*KKK,125,
-     &              LLEMAX(1,III,JJJ,KKK),LLEAVR(1,III,JJJ,KKK))
-C-- stau- -> l_i- nu_j l_k+ tau-
-               CALL HWDRMX(429,119+2*III,120+2*JJJ,125+2*KKK,125,
-     &              LLEMAX(2,III,JJJ,KKK),LLEAVR(2,III,JJJ,KKK))
-C-- stau+ -> l_i- nu_j l_k+ tau+
-               CALL HWDRMX(435,119+2*III,120+2*JJJ,125+2*KKK,131,
-     &              LLEMAX(1,III,JJJ,KKK),LLEAVR(1,III,JJJ,KKK))
-C-- stau+ -> l_i+ nu_bar_j l_k- tau+
-               CALL HWDRMX(435,125+2*III,126+2*JJJ,119+2*KKK,131,
-     &              LLEMAX(2,III,JJJ,KKK),LLEAVR(2,III,JJJ,KKK))
-C--average
-               LLEAVR(1,III,JJJ,KKK) = 0.5D0*LLEAVR(1,III,JJJ,KKK)
-               LLEAVR(2,III,JJJ,KKK) = 0.5D0*LLEAVR(2,III,JJJ,KKK)
-            ENDIF
- 100     CONTINUE
-      ENDIF
-C-- LLE chargino modes
-C-- first mode
-      IF(.NOT.CHAR) THEN
-         DO 110 III=1,3
-         DO 110 JJJ=1,3
-         DO 110 KKK=1,3
-            IF(ABS(LAMDA1(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(126+2*III)+RMASS(125+2*JJJ)+
-     &           RMASS(126+2*III)+RMASS(126))) THEN
-               FOUND = .TRUE.
-               LLEFND(2,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> nu_i l_j- nu_bar_k nu_tau
-               CALL HWDRMX(429,120+2*III,119+2*JJJ,126+2*KKK,126,
-     &              LLEMAX(3,III,JJJ,KKK),LLEAVR(3,III,JJJ,KKK))
-C-- stau+ -> nu_bar_i l_j+ nu_k nu_bar_tau
-               CALL HWDRMX(435,126+2*III,125+2*JJJ,120+2*KKK,132,
-     &              LLEMAX(3,III,JJJ,KKK),LLEAVR(3,III,JJJ,KKK))
-C--average
-               LLEAVR(3,III,JJJ,KKK) = 0.5*LLEAVR(3,III,JJJ,KKK)
-            ENDIF
- 110     CONTINUE
-      ENDIF
-C--second mode
-      IF(.NOT.CHAR) THEN
-         DO 120 III=1,3
-         DO 120 JJJ=1,3
-         DO 120 KKK=1,3
-            IF(ABS(LAMDA1(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(126+2*III)+RMASS(126+2*JJJ)+
-     &           RMASS(125+2*III)+RMASS(126))) THEN
-               FOUND = .TRUE.
-               LLEFND(3,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> nu_i l_j- nu_bar_k nu_tau
-               CALL HWDRMX(429,126+2*III,126+2*JJJ,119+2*KKK,126,
-     &              LLEMAX(4,III,JJJ,KKK),LLEAVR(4,III,JJJ,KKK))
-C-- stau+ -> nu_bar_i l_j+ nu_k nu_bar_tau
-               CALL HWDRMX(435,120+2*III,120+2*JJJ,125+2*KKK,132,
-     &              LLEMAX(4,III,JJJ,KKK),LLEAVR(4,III,JJJ,KKK))
-C--average
-               LLEAVR(4,III,JJJ,KKK) = 0.5*LLEAVR(4,III,JJJ,KKK)
-            ENDIF
- 120     CONTINUE
-      ENDIF
-C--third mode
-      IF(.NOT.CHAR) THEN
-         DO 130 III=1,3
-         DO 130 JJJ=1,3
-         DO 130 KKK=1,3
-            IF(ABS(LAMDA1(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(125+2*III)+RMASS(125+2*JJJ)+
-     &           RMASS(125+2*III)+RMASS(126))) THEN
-               FOUND = .TRUE.
-               LLEFND(4,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> nu_i l_j- nu_bar_k nu_tau
-               CALL HWDRMX(429,119+2*III,119+2*JJJ,125+2*KKK,126,
-     &              LLEMAX(5,III,JJJ,KKK),LLEAVR(5,III,JJJ,KKK))
-C-- stau+ -> nu_bar_i l_j+ nu_k nu_bar_tau
-               CALL HWDRMX(435,125+2*III,125+2*JJJ,119+2*KKK,132,
-     &              LLEMAX(5,III,JJJ,KKK),LLEAVR(5,III,JJJ,KKK))
-C--average
-               LLEAVR(5,III,JJJ,KKK) = 0.5*LLEAVR(5,III,JJJ,KKK)
-            ENDIF
- 130     CONTINUE
-      ENDIF
-C--LQD neutralino modes 
-C--first mode
-      If(.NOT.NEUT) THEN
-         DO 200 III=1,3
-         DO 200 JJJ=1,3
-         DO 200 KKK=1,3
-            IF(ABS(LAMDA2(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(120+2*III)+RMASS(2*JJJ-1)+
-     &           RMASS(2*KKK+5)+RMASS(125))) THEN
-               FOUND = .TRUE.
-               LQDFND(1,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> nu_i d_j dbar_k tau-
-               CALL HWDRMX(429,120+2*III,2*JJJ-1,2*KKK+5,125,
-     &              LQDMAX(1,III,JJJ,KKK),LQDAVR(1,III,JJJ,KKK))
-C-- stau- -> nu_bar_i dbar_j d_k tau-
-               CALL HWDRMX(429,126+2*III,2*JJJ+5,2*KKK-1,125,
-     &              LQDMAX(3,III,JJJ,KKK),LQDAVR(3,III,JJJ,KKK))
-C-- stau+ -> nu_bar_i dbar_j d_k tau+
-               CALL HWDRMX(435,126+2*III,2*JJJ+5,2*KKK-1,131,
-     &              LQDMAX(1,III,JJJ,KKK),LQDAVR(1,III,JJJ,KKK))
-C-- stau+ -> nu_i d_j dbar_k tau+
-               CALL HWDRMX(435,120+2*III,2*JJJ-1,2*KKK+5,131,
-     &              LQDMAX(3,III,JJJ,KKK),LQDAVR(3,III,JJJ,KKK))
-C--average
-               LQDAVR(1,III,JJJ,KKK) = 0.5d0*LQDAVR(1,III,JJJ,KKK)
-               LQDAVR(3,III,JJJ,KKK) = 0.5d0*LQDAVR(3,III,JJJ,KKK)
-            ENDIF
- 200     CONTINUE
-      ENDIF
-C--second mode
-      IF(.NOT.NEUT) THEN
-         DO 210 III=1,3
-         DO 210 JJJ=1,3
-         DO 210 KKK=1,3
-            IF(ABS(LAMDA2(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(119+2*III)+RMASS(2*JJJ)+
-     &           RMASS( 5 +2*KKK)+RMASS( 125) ).AND.
-     &           JJJ.NE.3) THEN
-               FOUND = .TRUE.
-               LQDFND(2,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> l_i- u_j dbar_k tau-
-               CALL HWDRMX(429,119+2*III,2*JJJ,5+2*KKK,125,
-     &              LQDMAX(2,III,JJJ,KKK),LQDAVR(2,III,JJJ,KKK))
-C-- stau- -> l_i+ ubar_j d_k tau-
-               CALL HWDRMX(429,125+2*III,6+2*JJJ,2*KKK-1,125,
-     &              LQDMAX(4,III,JJJ,KKK),LQDAVR(4,III,JJJ,KKK))
-C-- stau+ -> l_i+ ubar_j d_k tau+
-               CALL HWDRMX(435,125+2*III,6+2*JJJ,2*KKK-1,131,
-     &              LQDMAX(2,III,JJJ,KKK),LQDAVR(2,III,JJJ,KKK))
-C-- stau+ -> l_i- u_j dbar_k tau+
-               CALL HWDRMX(435,119+2*III,2*JJJ,5+2*KKK,131,
-     &              LQDMAX(4,III,JJJ,KKK),LQDAVR(4,III,JJJ,KKK))
-C--store the average (this is the partial width)
-               LQDAVR(2,III,JJJ,KKK) = 0.5d0*LQDAVR(2,III,JJJ,KKK)
-               LQDAVR(4,III,JJJ,KKK) = 0.5d0*LQDAVR(4,III,JJJ,KKK)
-            ENDIF
- 210     CONTINUE
-      ENDIF
-C--chargino modes
-C--first mode
-      IF(.NOT.CHAR) THEN
-         DO 220 III=1,3
-         DO 220 JJJ=1,3
-         DO 220 KKK=1,3
-            IF(ABS(LAMDA2(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(119+2*III)+RMASS(2*JJJ-1)+
-     &           RMASS(2*KKK-1)+RMASS( 126) )) THEN
-               FOUND = .TRUE.
-               LQDFND(3,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> l_i- d_j dbar_k nu_tau
-               CALL HWDRMX(429,119+2*III,2*JJJ-1,5+2*KKK,126,
-     &              LQDMAX(5,III,JJJ,KKK),LQDAVR(5,III,JJJ,KKK))
-C--  stau+ -> l_i+ dbar_j d_k nu_tau_bar
-               CALL HWDRMX(435,125+2*III,2*JJJ+5,2*KKK-1,132,
-     &              LQDMAX(5,III,JJJ,KKK),LQDAVR(5,III,JJJ,KKK))
-C--store the average (this is the partial width)
-               LQDAVR(5,III,JJJ,KKK) = 0.5d0*LQDAVR(5,III,JJJ,KKK)
-            ENDIF
- 220     CONTINUE
-      ENDIF
-C--second mode
-      IF(.NOT.CHAR) THEN
-         DO 230 III=1,3
-         DO 230 JJJ=1,3
-         DO 230 KKK=1,3
-            IF(ABS(LAMDA2(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(120+2*III)+RMASS(2*JJJ-1)+
-     &           RMASS(2*KKK)+RMASS( 126) ).AND.
-     &           JJJ.NE.3) THEN
-               FOUND = .TRUE.
-               LQDFND(4,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> nu_bar_i ubar_j d_k nu_tau
-               CALL HWDRMX(429,126+2*III,6+2*JJJ,2*KKK-1,126,
-     &              LQDMAX(6,III,JJJ,KKK),LQDAVR(6,III,JJJ,KKK))
-C--  stau+ -> nu_i u_j dbar_k nu_tau_bar
-               CALL HWDRMX(435,120+2*III,2*JJJ,2*KKK+5,132,
-     &              LQDMAX(6,III,JJJ,KKK),LQDAVR(6,III,JJJ,KKK))
-C--store the average (this is the partial width)
-               LQDAVR(6,III,JJJ,KKK) = 0.5d0*LQDAVR(6,III,JJJ,KKK)
-            ENDIF
- 230     CONTINUE
-      ENDIF
-C--third mode
-      IF(.NOT.CHAR) THEN
-         DO 240 III=1,3
-         DO 240 JJJ=1,3
-         DO 240 KKK=1,3
-            IF(ABS(LAMDA2(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(120+2*III)+RMASS(2*JJJ-1)+
-     &           RMASS(2*KKK)+RMASS( 126) ).AND.
-     &           KKK.NE.3) THEN
-               FOUND = .TRUE.
-               LQDFND(5,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> nu_bar_i ubar_j d_k nu_tau
-               CALL HWDRMX(429,120+2*III,2*JJJ-1,2*KKK+6,126,
-     &              LQDMAX(7,III,JJJ,KKK),LQDAVR(7,III,JJJ,KKK))
-C--  stau+ -> nu_i u_j dbar_k nu_tau_bar
-               CALL HWDRMX(435,126+2*III,2*JJJ+5,2*KKK,132,
-     &              LQDMAX(7,III,JJJ,KKK),LQDAVR(7,III,JJJ,KKK))
-C--store the average (this is the partial width)
-               LQDAVR(7,III,JJJ,KKK) = 0.5d0*LQDAVR(7,III,JJJ,KKK)
-            ENDIF
- 240     CONTINUE
-      ENDIF
-C--fourth mode
-      IF(.NOT.CHAR) THEN
-         DO 250 III=1,3
-         DO 250 JJJ=1,3
-         DO 250 KKK=1,3
-            IF(ABS(LAMDA2(III,JJJ,KKK)).GT.EPS.AND.
-     &           RMASS(429).GT.(RMASS(119+2*III)+RMASS(2*JJJ)+
-     &           RMASS(2*KKK)+RMASS( 126) ).AND.
-     &           JJJ.NE.3.AND.KKK.NE.3) THEN
-               FOUND = .TRUE.
-               LQDFND(6,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> nu_bar_i ubar_j d_k nu_tau
-               CALL HWDRMX(429,119+2*III,2*JJJ,2*KKK+6,126,
-     &              LQDMAX(8,III,JJJ,KKK),LQDAVR(8,III,JJJ,KKK))
-C--  stau+ -> nu_i u_j dbar_k nu_tau_bar
-               CALL HWDRMX(435,125+2*III,2*JJJ+6,2*KKK,132,
-     &              LQDMAX(8,III,JJJ,KKK),LQDAVR(8,III,JJJ,KKK))
-C--store the average (this is the partial width)
-               LQDAVR(8,III,JJJ,KKK) = 0.5d0*LQDAVR(8,III,JJJ,KKK)
-            ENDIF
- 250     CONTINUE
-      ENDIF
-C--UDD Neutralino mode
-      IF(.NOT.NEUT) THEN
-         DO 300 III=1,3
-         DO 300 JJJ=1,3
-         DO 300 KKK=JJJ,3
-            IF(ABS(LAMDA3(III,JJJ,KKK)).GT.EPS.AND.III.NE.3.AND.
-     &           RMASS(429).GT.(RMASS(2*III  )+RMASS(2*JJJ-1)+
-     &           RMASS(2*KKK-1)+RMASS(125    ))) THEN
-               FOUND = .TRUE.
-               UDDFND(1,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> u_i d_j d_k tau-
-               CALL HWDRMX(429,2*III,2*JJJ-1,2*KKK-1,125,
-     &              UDDMAX(1,III,JJJ,KKK),UDDAVR(1,III,JJJ,KKK))
-C-- stau- -> ubar_i dbar_j dbar_k tau-
-               CALL HWDRMX(429,2*III+6,2*JJJ+5,2*KKK+5,125,
-     &              UDDMAX(2,III,JJJ,KKK),UDDAVR(2,III,JJJ,KKK))
-C-- stau+ -> ubar_i dbar_j dbar_k tau+
-               CALL HWDRMX(435,2*III+6,2*JJJ+5,2*KKK+5,131,
-     &              UDDMAX(1,III,JJJ,KKK),UDDAVR(1,III,JJJ,KKK))
-C-- stau+ -> u_i d_j d_k tau+
-               CALL HWDRMX(435,2*III,2*JJJ-1,2*KKK-1,131,
-     &              UDDMAX(2,III,JJJ,KKK),UDDAVR(2,III,JJJ,KKK))
-C--average
-               UDDAVR(1,III,JJJ,KKK) = 0.5*UDDAVR(1,III,JJJ,KKK)
-               UDDAVR(2,III,JJJ,KKK) = 0.5*UDDAVR(2,III,JJJ,KKK)
-            ENDIF
- 300     CONTINUE
-      ENDIF
-C--first chargino modes
-      IF(.NOT.CHAR) THEN
-         DO 310 III=1,3
-         DO 310 JJJ=III,3
-         DO 310 KKK=1,3
-            IF((ABS(LAMDA3(III,JJJ,KKK)).GT.EPS.OR.
-     &           ABS(LAMDA3(JJJ,KKK,III)).GT.EPS).AND.
-     &           RMASS(429).GT.(RMASS(2*III  )+RMASS(2*JJJ)+
-     &           RMASS(2*KKK-1)+RMASS(126  )).AND.
-     &           III.NE.3.AND.JJJ.NE.3) THEN
-               FOUND = .TRUE.
-               UDDFND(2,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau+ -> u_i u_j d_k nu_tau
-               CALL HWDRMX(435,2*III  ,2*JJJ  ,2*KKK-1,132,
-     &              UDDMAX(3,III,JJJ,KKK),UDDAVR(3,III,JJJ,KKK))
-C-- stau- -> ubar_i ubar_j dbar_k nu_taubar
-               CALL HWDRMX(429,2*III+6,2*JJJ+6,2*KKK+5,126,
-     &              UDDMAX(3,III,JJJ,KKK),UDDAVR(3,III,JJJ,KKK))
-C--average
-               UDDAVR(3,III,JJJ,KKK) = 0.5*UDDAVR(3,III,JJJ,KKK)
-            ENDIF
- 310     CONTINUE
-      ENDIF
-c--second chargino modes
-      IF(.NOT.CHAR) THEN
-         DO 320 III=1,3
-         DO 320 JJJ=III,3
-         DO 320 KKK=JJJ,3
-            IF((ABS(LAMDA3(III,JJJ,KKK)).GT.EPS.OR.
-     &           ABS(LAMDA3(JJJ,III,KKK)).GT.EPS.OR.
-     &           ABS(LAMDA3(KKK,JJJ,III)).GT.EPS).AND.
-     &           RMASS(429).GT.(RMASS(2*III-1)+RMASS(2*JJJ-1)+
-     &           RMASS(2*KKK-1)+RMASS(126    ))) THEN
-               FOUND = .TRUE.
-               UDDFND(3,III,JJJ,KKK)=.TRUE.
-C--calculate the partial width
-C-- stau- -> d_i d_j d_k nu_tau
-               CALL HWDRMX(429,2*III-1,2*JJJ-1,2*KKK-1,126,
-     &              UDDMAX(4,III,JJJ,KKK),UDDAVR(4,III,JJJ,KKK))
-C-- stau+ -> ubar_i ubar_j dbar_k nu_taubar
-               CALL HWDRMX(435,2*III+5,2*JJJ+5,2*KKK+5,132,
-     &              UDDMAX(4,III,JJJ,KKK),UDDAVR(4,III,JJJ,KKK))
-C--average
-               UDDAVR(4,III,JJJ,KKK) = 0.5*UDDAVR(4,III,JJJ,KKK)
-            ENDIF
- 320     CONTINUE
-      ENDIF
-C--return if no new modes found
-      IF(.NOT.FOUND) RETURN
-C--calculate the total partial width for the new modes
-      TOTAL=0.0D0
-      DO 400 III=1,3
-      DO 400 JJJ=1,3
-      DO 400 KKK=1,3
-         DO 401 I=1,5
- 401     TOTAL = TOTAL+LLEAVR(I,III,JJJ,KKK)
-         DO 402 I=1,8
- 402     TOTAL = TOTAL+LQDAVR(I,III,JJJ,KKK)
-         DO 403 I=1,4
- 403     TOTAL = TOTAL+UDDAVR(I,III,JJJ,KKK)
- 400  CONTINUE
-C-total partial width of the old modes
-      OLD = HBAR/RLTIM(429)
-c--NEW TOTAL AND RESET THE LIFETIME
-      NEW = OLD+TOTAL
-      RLTIM(429) = HBAR/NEW
-      RLTIM(435) = HBAR/NEW
-c--RENORMALISE THE OLD MODES
-      DO I=1,NDKYS
-         IF(IDK(I).EQ.429.OR.IDK(I).EQ.435) 
-     &        BRFRAC(I)=BRFRAC(I)*OLD/NEW
-      ENDDO
-C--now add the decay modes to the table this is quite complicated
-C--add the LLE modes
-      DO 500 III=1,3
-      DO 500 JJJ=1,3
-      DO 500 KKK=1,3
-c-- first neutralino mode
-         IF(LLEFND(1,III,JJJ,KKK)) THEN
-C--stau- 
-            CALL HWDRAD(429,125+2*III,126+2*JJJ,119+2*KKK,125,
-     &           LLEAVR(1,III,JJJ,KKK)/NEW)
-C--stau+
-            CALL HWDRAD(435,119+2*III,120+2*JJJ,125+2*KKK,131,
-     &           LLEAVR(1,III,JJJ,KKK)/NEW)
-c-- second neutralino mode
-C--stau-
-            CALL HWDRAD(429,119+2*III,120+2*JJJ,125+2*KKK,125,
-     &           LLEAVR(2,III,JJJ,KKK)/NEW)
-C--stau+
-            CALL HWDRAD(435,125+2*III,126+2*JJJ,119+2*KKK,131,
-     &           LLEAVR(2,III,JJJ,KKK)/NEW)
-         ENDIF
-C-- first chargino mode
-         IF(LLEFND(2,III,JJJ,KKK)) THEN
-C--stau-
-            CALL HWDRAD(429,120+2*III,119+2*JJJ,126+2*KKK,126,
-     &           LLEAVR(3,III,JJJ,KKK)/NEW)
-C--stau+
-            CALL HWDRAD(435,126+2*III,125+2*JJJ,120+2*KKK,136,
-     &           LLEAVR(3,III,JJJ,KKK)/NEW)
-         ENDIF
-C-- second chargino mode
-         IF(LLEFND(3,III,JJJ,KKK)) THEN
-C--stau-
-            CALL HWDRAD(429,126+2*III,126+2*JJJ,119+2*KKK,126,
-     &           LLEAVR(4,III,JJJ,KKK)/NEW)
-C--stau+
-            CALL HWDRAD(435,120+2*III,120+2*JJJ,125+2*KKK,132,
-     &           LLEAVR(4,III,JJJ,KKK)/NEW)
-         ENDIF
-C-- second chargino mode
-         IF(LLEFND(4,III,JJJ,KKK)) THEN
-C--stau-
-            CALL HWDRAD(429,119+2*III,119+2*JJJ,125+2*KKK,126,
-     &           LLEAVR(5,III,JJJ,KKK)/NEW)
-C--stau+
-            CALL HWDRAD(435,125+2*III,125+2*JJJ,119+2*KKK,132,
-     &           LLEAVR(5,III,JJJ,KKK)/NEW)
-         ENDIF
- 500  CONTINUE
-C--add the LQD modes
-      DO 600 III=1,3
-      DO 600 JJJ=1,3
-      DO 600 KKK=1,3
-         IF(LQDFND(1,III,JJJ,KKK)) THEN
-C--first mode
-c--stau-
-            CALL HWDRAD(429,120+2*III,2*JJJ-1,2*KKK+5,125,
-     &           LQDAVR(1,III,JJJ,KKK)/NEW)
-c--stau+
-            CALL HWDRAD(435,126+2*III,2*JJJ+5,2*KKK-1,131,
-     &           LQDAVR(1,III,JJJ,KKK)/NEW)
-C--second mode
-c--stau-
-            CALL HWDRAD(429,126+2*III,2*JJJ+5,2*KKK-1,125,
-     &           LQDAVR(3,III,JJJ,KKK)/NEW)
-c--stau+
-            CALL HWDRAD(435,120+2*III,2*JJJ-1,2*KKK+5,131,
-     &           LQDAVR(3,III,JJJ,KKK)/NEW)
-         ENDIF
-C--third mode
-         IF(LQDFND(2,III,JJJ,KKK)) THEN
-c--stau-
-            CALL HWDRAD(429,119+2*III,2*JJJ  ,2*KKK+5,125,
-     &           LQDAVR(2,III,JJJ,KKK)/NEW)
-c--stau+
-            CALL HWDRAD(435,125+2*III,2*JJJ+6,2*KKK-1,131,
-     &           LQDAVR(2,III,JJJ,KKK)/NEW)
-C--fourth mode
-c--stau-
-            CALL HWDRAD(429,125+2*III,2*JJJ+6,2*KKK-1,125,
-     &           LQDAVR(4,III,JJJ,KKK)/NEW)
-c--stau+
-            CALL HWDRAD(435,119+2*III,2*JJJ  ,2*KKK+5,131,
-     &           LQDAVR(4,III,JJJ,KKK)/NEW)
-         ENDIF
-c--chargino modes
-C--first mode
-         IF(LQDFND(3,III,JJJ,KKK)) THEN
-c--stau-
-            CALL HWDRAD(429,119+2*III,2*JJJ-1,2*KKK+5,126,
-     &           LQDAVR(5,III,JJJ,KKK)/NEW)
-c--stau+
-            CALL HWDRAD(435,125+2*III,2*JJJ+5,2*KKK-1,132,
-     &           LQDAVR(5,III,JJJ,KKK)/NEW)
-         ENDIF
-C--second mode
-         IF(LQDFND(4,III,JJJ,KKK)) THEN
-c--stau-
-            CALL HWDRAD(429,126+2*III,2*JJJ+6,2*KKK-1,126,
-     &           LQDAVR(6,III,JJJ,KKK)/NEW)
-c--stau+
-            CALL HWDRAD(435,120+2*III,2*JJJ  ,2*KKK+5,132,
-     &           LQDAVR(6,III,JJJ,KKK)/NEW)
-         ENDIF
-C--third mode
-         IF(LQDFND(5,III,JJJ,KKK)) THEN
-            CALL HWDRAD(429,120+2*III,2*JJJ-1,2*KKK+6,126,
-     &           LQDAVR(7,III,JJJ,KKK)/NEW)
-            CALL HWDRAD(435,126+2*III,2*JJJ+5,2*KKK  ,132,
-     &           LQDAVR(7,III,JJJ,KKK)/NEW)
-
-         ENDIF
-C--fourth mode
-         IF(LQDFND(6,III,JJJ,KKK)) THEN
-c--stau-
-            CALL HWDRAD(429,119+2*III,2*JJJ  ,2*KKK+6,126,
-     &           LQDAVR(8,III,JJJ,KKK)/NEW)
-c--stau+
-            CALL HWDRAD(435,125+2*III,2*JJJ+6,2*KKK  ,132,
-     &           LQDAVR(8,III,JJJ,KKK)/NEW)
-         ENDIF
- 600  CONTINUE
-C--add the UDD modes
-      DO 700 III=1,3
-      DO 700 JJJ=1,3
-      DO 700 KKK=1,3
-C--neutralino modes
-         IF(UDDFND(1,III,JJJ,KKK)) THEN
-C--first mode
-C--stau-
-            CALL HWDRAD(429,2*III,2*JJJ-1,2*KKK-1,125,
-     &           UDDAVR(1,III,JJJ,KKK)/NEW)
-C--stau+
-            CALL HWDRAD(435,2*III+6,2*JJJ+5,2*KKK+5,131,
-     &           UDDAVR(1,III,JJJ,KKK)/NEW)
-C--second mode
-C--stau-
-            CALL HWDRAD(429,2*III+6,2*JJJ+5,2*KKK+5,125,
-     &           UDDAVR(2,III,JJJ,KKK)/NEW)
-C--stau+
-            CALL HWDRAD(435,2*III,2*JJJ-1,2*KKK-1,131,
-     &           UDDAVR(2,III,JJJ,KKK)/NEW)
-         ENDIF
-C--first chargino mode
-         IF(UDDFND(2,III,JJJ,KKK)) THEN
-            CALL HWDRAD(429,2*III+6,2*JJJ+6,2*KKK+5,126,
-     &           UDDAVR(3,III,JJJ,KKK)/NEW)
-            CALL HWDRAD(435,2*III  ,2*JJJ  ,2*KKK-1,132,
-     &           UDDAVR(3,III,JJJ,KKK)/NEW)
-         ENDIF
-C--second chargino mode
-         IF(UDDFND(3,III,JJJ,KKK)) THEN
-            CALL HWDRAD(429,2*III-1,2*JJJ-1,2*KKK-1,126,
-     &           UDDAVR(4,III,JJJ,KKK)/NEW)
-            CALL HWDRAD(435,2*III+5,2*JJJ+5,2*KKK+5,132,
-     &           UDDAVR(4,III,JJJ,KKK)/NEW)
-         ENDIF
- 700  CONTINUE
-C--format statements for the output
-C AB      FORMAT('CALCULATING DECAY RATE FOR ',A8,' --> ',
-C AB    &     A8,' ',A8,' ',A8,' ',A8)
-C AB     FORMAT('PARTIAL WIDTH IS ',5E15.5,' +/- ',5E15.5)
-      END
-C----------------------------------------------------------------------
-      SUBROUTINE HWDRPM(WGT,IDIN,PIN,ID1,ID2,ID3,ID4,POUT,GEN)
-C----------------------------------------------------------------------
-C     subroutine to calculate the weight and momentum for a
-C     four body RPV decay
-C----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      DOUBLE PRECISION WGT,PIN(5),POUT(5,4),MCHIL2,MCHIU2,MCHI2,RHO,
-     &     HWRUNI,MCHI,PCM4,PCM1,PCM2,HWUPCM,PCHI(5),P23(5),FJAC,
-     &     F1,F2,M23,MIN,A(2,6),B(2,6),C(2,6),PCHIM(5),m122,M232,M132,
-     &     HWULDO,COLFAC,MAXWGT
-      INTEGER IDIN,ID1,ID2,ID3,ID4,I,J,O(2),IDINT(6),IG
-      DATA O/2,1/
-      EXTERNAL HWRUNI,HWUPCM,HWULDO
-C--H.E. functions
-      DOUBLE COMPLEX S,D,FCHI(2,2,8,8),FCHIM(2,2,8,8),ME(2,2,2,2),
-     &     PROPS(3,2)
-      INTEGER P1,P2,P3,P4,METYPE
-      COMMON/HWHEWS/S(8,8,2),D(8,8)
-      DOUBLE PRECISION XMASS,PLAB,PRW,PCM
-      COMMON/HWHEWP/XMASS(10),PLAB(5,10),PRW(5,2),PCM(5,10)
-      DOUBLE COMPLEX MESQ,II
-      PARAMETER(II=(0.0d0,1.0d0))
-C--common block for the couplings
-      DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
-     &     AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
-     &     HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
-     &     HZZ(2),ZAB(12,2,2),HHB(2,3),GS
-      COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
-     &               OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
-C--variables to be saved after initilisation
-      LOGICAL FIRST,CHRINO,GEN
-      DOUBLE PRECISION MN(2),MN2(2),GN(2),GMN(2)
-      DATA FIRST /.TRUE./
-      SAVE FIRST,MN,MN2,GN,GMN
-C--initialisation
-      IF(FIRST) THEN
-         FIRST = .FALSE.
-         HBAR=1.D-15*SQRT(GEV2NB/10.)/CSPEED
-         MN(1)  = RMASS(450)
-         GN(1)  = HBAR/RLTIM(450)
-         MN2(1) = MN(1)**2
-         GMN(1) = MN(1)*GN(1)
-         MN(2)  = RMASS(454)
-         GN(2)  = HBAR/RLTIM(454)
-         MN2(2) = MN(2)**2
-         GMN(2) = MN(2)*GN(2)
-      ENDIF
-C--work out if neutralino or chargino mode
-      CHRINO=ID4.EQ.126.OR.ID4.EQ.132
-C--mass of the incoming particle
-      MIN=PIN(5)
-C--check the kinematics
-      IF(MIN.LT.RMASS(ID1)+RMASS(ID2)+RMASS(ID3)+RMASS(ID4)) THEN
-         WGT = 0.0D0
-         RETURN
-      ENDIF
-C--generate the mass of the off-shell gaugino
-C--limits on the mass
-      MCHIU2 = (MIN-RMASS(ID4))**2
-      MCHIL2 = (RMASS(ID1)+RMASS(ID2)+RMASS(ID3))**2
-      IF(CHRINO) THEN
-         IG=2
-      ELSE
-         IG=1
-      ENDIF
-C--limits in transformaed variable
-      MCHIU2 = ATAN((MCHIU2-MN2(IG))/GMN(IG))
-      MCHIL2 = ATAN((MCHIL2-MN2(IG))/GMN(IG))
-C--generate the value of rho
-      RHO  = HWRUNI(0,MCHIL2,MCHIU2)
-C--convert to a mass
-      MCHI2 = GMN(IG)*TAN(RHO)+MN2(IG)
-      MCHI = SQRT(MCHI2)
-C--jacobian factor 
-      FJAC = (MCHIU2-MCHIL2)/GMN(IG)
-C--perform the first decay
-      PCHI(5) = MCHI
-      POUT(5,4) = RMASS(ID4)
-      PCM4 = HWUPCM(MIN,MCHI,POUT(5,4))
-      CALL HWDTWO(PIN,PCHI,POUT(1,4),PCM4,2.0D0,.TRUE.)
-C--weight for this piece
-      F1 = PCM4/8./PIFAC/MIN**2
-C--mass of the 23 system
-      M23 = SQRT(HWRUNI(2,(RMASS(ID2)+RMASS(ID3))**2,
-     &     (MCHI-RMASS(ID1))**2))
-      F2=((MCHI-RMASS(ID1))**2-(RMASS(ID2)+RMASS(ID3))**2)
-C--perform this decay
-      POUT(5,1) = RMASS(ID1)
-      P23(5) = M23
-      PCM1 = HWUPCM(MCHI,M23,POUT(5,1))
-      CALL HWDTWO(PCHI,P23,POUT(1,1),PCM1,2.0D0,.TRUE.)
-c--perform the last decay
-      POUT(5,2) = RMASS(ID2)
-      POUT(5,3) = RMASS(ID3)
-      PCM2 = HWUPCM(M23,POUT(5,2),POUT(5,3))
-      CALL HWDTWO(P23,POUT(1,2),POUT(1,3),PCM2,2.0D0,.TRUE.)
-C--weight for this piece
-      F2 = F2*PCM1*PCM2/64./PIFAC**4/MCHI/M23
-C--put the phase space weight all together
-      WGT = F1*FJAC*F2
-C--colour factor
-      IF(ID3.GT.12) THEN
-         COLFAC = 1.0D0
-      ELSEIF(ID1.GT.12) THEN
-         COLFAC = 3.0D0
-      ELSE 
-         COLFAC = 6.0D0
-      ENDIF
-C--couplings of the upper vertex
-      CALL HWDRTC(IDIN,CHRINO,A)
-C--neutralinos
-      IF(.NOT.CHRINO) THEN
-C--LLE decays
-         IF(ID3.GT.12) THEN
-            CALL HWDRN1(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C--LQD decays
-         ELSEIF(ID1.GT.12) THEN
-            CALL HWDRN2(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C--UDD decays
-         ELSE
-            CALL HWDRN3(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-         ENDIF
-C--chargino modes
-      ELSE
-C--LLE modes
-         IF(ID3.GT.12) THEN
-            CALL  HWDRC1(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C--LQD mode
-         ELSEIF(ID1.GT.12) THEN
-            CALL  HWDRC2(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C--UDD mode
-         ELSE
-            CALL  HWDRC3(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-         ENDIF
-      ENDIF
-C--now we have the couplings, masses and momenta we can calculate the matrix element
-C--reorder the momenta for the H.E. code
-C--outgoing particles
-      DO 6 I=1,4
-      PCM(1,I)=POUT(3,I)
-      PCM(2,I)=POUT(1,I)
-      PCM(3,I)=POUT(2,I)
-      PCM(4,I)=POUT(4,I)
- 6    PCM(5,I)=POUT(5,I)
-C-- intermediate neutralino
-      PCHIM(1) = PCHI(3)
-      PCHIM(2) = PCHI(1)
-      PCHIM(3) = PCHI(2)
-      PCHIM(4) = PCHI(4)
-      PCHIM(5) = PCHI(5)
-C--compute the S functions
-      CALL HWHEW2(4,PCM(1,1),S(1,1,2),S(1,1,1),D)
-      DO 7 I=1,8
-      DO 7 J=1,8
-      S(I,J,2) = -S(I,J,2)
- 7    D(I,J)   = TWO*D(I,J)
-C--compute the one 5 function we need
-      CALL HWH2F3(4,FCHI ,PCHIM, MN(IG))
-      CALL HWH2F3(4,FCHIM,PCHIM,-MN(IG))
-c--COMPUTE THE INVARIANTs
-      M122 = 2.0D0*HWULDO(POUT(1,1),POUT(1,2))
-      M232 = 2.0D0*HWULDO(POUT(1,2),POUT(1,3))
-      M132 = 2.0D0*HWULDO(POUT(1,1),POUT(1,3))
-C--propagators
-      DO J=1,2
-         IF(METYPE.LE.4.OR.METYPE.EQ.9.OR.METYPE.EQ.14) THEN
-            PROPS(1,J) = 1./(M232-RMASS(IDINT(J))**2
-     &           +II*RMASS(IDINT(J  ))*HBAR/RLTIM(IDINT(J  )))
-            PROPS(2,J) = 1./(M132-RMASS(IDINT(J+2))**2
-     &           +II*RMASS(IDINT(J+2))*HBAR/RLTIM(IDINT(J+2)))
-            PROPS(3,J) = 1./(M122-RMASS(IDINT(J+4))**2
-     &           +II*RMASS(IDINT(J+4))*HBAR/RLTIM(IDINT(J+4)))
-         ELSEIF(METYPE.EQ.5.OR.METYPE.EQ.10) THEN
-            PROPS(1,J) = 1./(M122-RMASS(IDINT(J  ))**2
-     &           +II*RMASS(IDINT(J  ))*HBAR/RLTIM(IDINT(J  )))
-         ELSE
-            PROPS(1,J) = 1./(M232-RMASS(IDINT(J))**2
-     &           +II*RMASS(IDINT(J  ))*HBAR/RLTIM(IDINT(J  )))
-            PROPS(2,J) = 1./(M132-RMASS(IDINT(J+2))**2
-     &           +II*RMASS(IDINT(J+2))*HBAR/RLTIM(IDINT(J+2)))
-         ENDIF
-      ENDDO
-c--COMPUTE THE MATRIX ELEMENT
-C--matrix element for stau decay
-      DO 100 P1=1,2
-      DO 100 P2=1,2
-      DO 100 P3=1,2
-      DO 100 P4=1,2
-         ME(P1,P2,P3,P4) = 0.0d0
-         DO J=1,2
-C--propagators
-C--LLE AND LQD NEUTRALINO 1
-            IF(METYPE.EQ.1) THEN
-C--   FIRST DIAGRAM
-               IF(P2.EQ.O(P3))  ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(P4,J  )*B(O(P1),J  )*C(O(P2),J  )*
-     &              S(2,3,P2)*FCHI(P1,P4,1,4)
-C--   SECOND DIAGRAM
-               IF(P1.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)+
-     &              (-PROPS(2,J))*A(P4,J+2)*B(O(P2),j+2)*C(O(P1),j+2)*
-     &              S(1,3,p1)*FCHI(P2,P4,2,4)
-C--   THIRD DIAGRAM
-               IF(P1.EQ.P2) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(3,J)*A(P4,J+4)*B(P3,j+4)*C(O(P1),j+4)
-     &              *S(2,1,P2)*FCHIM(o(P4),p3,4,3))
-C--UDD NEUTRALINO 1
-            ELSEIF(METYPE.EQ.2) THEN
-C--   FIRST  DIAGRAM
-               IF(P2.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -PROPS(1,J)*A(O(P4),J  )*B(O(P1),J  )*C(O(P2),J  )*
-     &              S(2,3,P2)*FCHI(P1,O(P4),1,4)
-C--   SECOND DIAGRAM
-               IF(P1.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(2,J)*A(O(P4),J+2)*B(O(P2),J+2)*C(O(P3),J+2)*
-     &              s(1,3,P1)*FCHI(P2,O(P4),2,4)
-C--   THIRD  DIAGRAM
-               IF(P1.EQ.P2) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(3,J)*A(O(P4),J+4)*B(O(P3),J+4)*C(O(P2),J+4)*
-     &              S(1,2,P1)*FCHI(P3,O(P4),3,4))
-C--LLE AND LQD NEUTRALINO 2
-            ELSEIF(METYPE.EQ.3) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.O(P3)) ME(P1,P2,P3,P4)= ME(P1,P2,P3,P4)
-     &              -(PROPS(1,J)*A(O(P4),J  )*B(  P1 ,J  )*C(  P2 ,J  )*
-     &              S(3,2,O(P2))*FCHIM(P4,P1,4,1))
-C--SECOND DIAGRAM
-               IF(P1.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(2,J)*A(O(P4),J+2)*B(  P2 ,j+2)*C(  P1 ,J+2)*
-     &              S(3,1,O(P1))*FCHIM(P4,P2,4,2)
-C--THIRD DIAGRAM
-               IF(P1.EQ.P2) ME(P1,P2,P3,P4)=ME(P1,P2,P3,P4)
-     &              +PROPS(3,J)*A(O(P4),J+4)*B(O(P3),j+4)*C(  P1 ,J+4)
-     &              *s(1,2,O(P2))*FCHI(P3,O(P4),3,4)
-C--UDD
-            ELSEIF(METYPE.EQ.4) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.P3) ME(P1,P2,P3,P4)=ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(O(P4),J  )*B(P1,J  )*C(P2,J  )*
-     &              S(2,3,O(P2))*FCHIM(P4,P1,4,1)
-C--SECOND DIAGRAM
-               IF(P1.EQ.P3) ME(P1,P2,P3,P4)=ME(P1,P2,P3,P4)
-     &              +PROPS(2,J)*A(O(P4),J+2)*B(P2,J+2)*C(P1,J+2)*
-     &              S(3,1,O(P3))*FCHIM(P4,P2,4,2)
-C--THIRD DIAGRAM
-               IF(P1.EQ.P2) ME(P1,P2,P3,P4)=ME(P1,P2,P3,P4)
-     &              -(PROPS(3,J)*A(O(P4),J+4)*B(P3,J+4)*C(P1,J+4)*
-     &              S(2,1,O(P1))*FCHIM(P4,P3,4,3))
-C--LLE AND LQD CHARGINO 1
-            ELSEIF(METYPE.EQ.5) THEN
-               IF(P1.EQ.P2) ME(P1,P2,P3,P4)=ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(O(P4),J  )*B(P3,J  )*C(O(P1),J)*
-     &              S(2,1, P2 )*FCHIM(P4,P3,4,3)
-C--LLE AND LQD CHARGINO 2
-            ELSEIF(METYPE.EQ.6) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(P4,J  )*B(O(P1),J  )*C(O(P2),J  )*
-     &              S(2,3,P2)*FCHI(P1,P4,1,4)
-C--SECOND DIAGRAM
-               IF(P1.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(2,J)*A(P4,J+2)*B(O(P2),J+2)*C(P3,J+2)*
-     &              S(1,3,P1)*FCHI(P2,P4,2,4)
-C--LLE AND LQD CHARGINO 3
-            ELSEIF(METYPE.EQ.7) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(O(P4),J  )*B(O(P1),J  )*C(P3,J  )*
-     &              S(2,3,P2)*FCHIM(P4,O(P1),4,1)
-C--SECOND DIAGRAM
-               IF(P1.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(2,J)*A(O(P4),J+2)*B(O(P2),J+2)*C(P3,J+2)*
-     &              S(1,3,P1)*FCHIM(P4,O(P2),4,2)
-C--UDD CHARGINO 1
-            ELSEIF(METYPE.EQ.8) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(P4,J  )*B(O(P1),J  )*C(O(P3),J  )*
-     &              S(2,3,P2)*FCHI(P1,P4,1,4)
-C--SECOND DIAGRAM
-               IF(P1.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(2,J)*A(P4,J+2)*B(O(P2),J+2)*C(O(P3),J+2)*
-     &              S(1,3,P1)*FCHI(P2,P4,2,4)
-C--UDD CHARGINO 2
-            ELSEIF(METYPE.EQ.9) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(1,J)*A(O(P4),J  )*B(O(P1),J  )*C(O(P2),J  )*
-     &              S(3,2,P3)*FCHIM(P4,O(P1),4,1))
-C--SECOND DIAGRAM
-               IF(P1.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(2,J)*A(O(P4),J+2)*B(O(P2),J+2)*C(O(P1),J+2)*
-     &              S(3,1,P3)*FCHIM(P4,O(P2),4,2))
-C--THIRD DIAGRAM
-               IF(P1.EQ.P2) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(3,J)*A(O(P4),J+4)*B(O(P3),J+4)*C(O(P2),J+4)*
-     &              S(1,2,P1)*FCHIM(P4,O(P3),4,3))
-C--LLE AND LQD CHARGINO 4
-            ELSEIF(METYPE.EQ.10) THEN
-               IF(P1.EQ.P2) ME(P1,P2,P3,P4)=ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(P4,J)*B(O(P3),J)*C(P1,J)*
-     &              S(1,2,O(P2))*FCHI(P3,P4,3,4)
-C--LLE AND LQD CHARGINO 5
-            ELSEIF(METYPE.EQ.11) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(1,J)*A(O(P4),J  )*B(P1,J  )*C(P2,J  )*
-     &              S(3,2,P3)*FCHIM(P4,P1,4,1))
-C--SECOND DIAGRAM
-               IF(P1.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(2,J)*A(O(P4),J+2)*B(P2,J+2)*C(P1,J+2)*
-     &              S(3,1,P3)*FCHIM(P4,P2,4,2))
-C--LLE AND LQD CHARGINO 6
-            ELSEIF(METYPE.EQ.12) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(P4,J  )*B(P1,J  )*C(P2,J  )*
-     &              S(3,2,O(P2))*FCHI(O(P1),P4,1,4)
-C--SECOND DIAGRAM
-               IF(P1.EQ.O(P3)) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(2,J)*A(P4,J+2)*B(P2,J+2)*C(P1,J+2)*
-     &              S(3,1,O(P1))*FCHI(O(P2),P4,2,4)
-C--UDD CHARGINO 3
-            ELSEIF(METYPE.EQ.13) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(1,J)*A(O(P4),J  )*B(P1,J  )*C(P2,J  )*
-     &              FCHIM(P4,P4,4,1)*S(3,2,O(P2)))
-C--SECOND DIAGRAM
-               IF(P1.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              -(PROPS(2,J)*A(O(P4),J+2)*B(P2,J+2)*C(P1,J+2)*
-     &              FCHIM(P4,P2,4,2)*S(3,1,O(P3)))
-C--UDD CHARGINO 4
-            ELSEIF(METYPE.EQ.14) THEN
-C--FIRST DIAGRAM
-               IF(P2.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(1,J)*A(P4,J  )*B(P1,J  )*C(P3,J  )*
-     &              S(2,3,O(P2))*FCHI(O(P1),P4,1,4)
-C--SECOND DIAGRAM
-               IF(P1.EQ.P3) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(2,J)*A(P4,J+2)*B(P2,J+2)*C(P3,J+2)*
-     &              S(1,3,O(P1))*FCHI(O(P2),P4,2,4)
-C--THIRD DIAGRAM
-               IF(P1.EQ.P2) ME(P1,P2,P3,P4) = ME(P1,P2,P3,P4)
-     &              +PROPS(3,J)*A(P4,J+4)*B(P3,J+4)*C(P1,J+4)*
-     &              S(2,1,O(P2))*FCHI(O(P3),P4,3,4)
-            ENDIF
-         ENDDO
- 100  CONTINUE
-C-- combine to get the matrix element squared
-      MESQ=0.0D0
-      DO 200 P1=1,2
-      DO 200 P2=1,2
-      DO 200 P3=1,2
-      DO 200 P4=1,2
- 200  MESQ=MESQ+ME(P1,P2,P3,P4)*DCONJG(ME(P1,P2,P3,P4))
-C--identical particle symmetry factor
-      IF(ID1.EQ.ID2.OR.ID1.EQ.ID3.OR.ID2.EQ.ID3) WGT=0.5D0*WGT
-C--final piece of the weight
-      WGT = WGT*DBLE(MESQ)*COLFAC
-C--if generating decays divide by maximum
-      IF(GEN) WGT=WGT/MAXWGT
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRPD(IHEP,MHEP,LHEP)
-C-----------------------------------------------------------------------
-C     four body rpv decay generator
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER IHEP,MHEP,LHEP,ID1,ID2,ID3,ID4,IDIN,NPOINT,NTRY,I
-      PARAMETER(NPOINT=1000)
-      DOUBLE PRECISION WGT,POUT(5,4),HWRGEN
-      EXTERNAL HWRGEN
-c--ID'S OF THE PARTICLES
-      IDIN = IDHW(IHEP)
-      ID1  = IDHW(MHEP)
-      ID2  = IDHW(MHEP+1)
-      ID3  = IDHW(MHEP+2)
-      ID4  = IDHW(LHEP)
-c--GENERATE THE DECAY MODE
-      NTRY = 0 
- 10   CALL HWDRPM(WGT,IDIN,PHEP(1,IHEP),ID1,ID2,ID3,ID4,POUT,.TRUE.)
-      IF(WGT.GT.HWRGEN(0)) then
-         DO I=1,4
-            CALL HWVEQU(5,POUT(1,I),PHEP(1,MHEP-1+I))
-         ENDDO
-      ELSEIF(NTRY.LT.NPOINT) THEN
-         NTRY=NTRY+1
-         GOTO 10
-      ELSE
-         CALL HWWARN('HWDRPD',100)
-         GOTO 999
-      ENDIF
- 999  END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRAD(IDIN,ID1,ID2,ID3,ID4,BR)
-C-----------------------------------------------------------------------
-C     ADD A FOUR BODY STAU DECAY TO THE DECAY TABLES
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER IDIN,ID1,ID2,ID3,ID4
-      DOUBLE PRECISION BR
-      IDK(NDKYS+1) = IDIN
-      NME(NDKYS+1) = 1000
-      IDKPRD(1,NDKYS+1) = ID1
-      IDKPRD(2,NDKYS+1) = ID2
-      IDKPRD(3,NDKYS+1) = ID3
-      IDKPRD(4,NDKYS+1) = ID4
-      IDKPRD(5,NDKYS+1) = 0
-      BRFRAC(NDKYS+1)   = BR
-      NDKYS=NDKYS+1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRMX(IDIN,ID1,ID2,ID3,ID4,MAXWGT,WIDTH)
-C-----------------------------------------------------------------------
-C     PERFORM THE INITIAL SEARCH FOR THE MAXIMUM WEIGHT AND CALCULATION
-c     OF THE PARTIAL WIDTH FOR A FOUR BODY RPV STAU DECAY
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER IDIN,ID1,ID2,ID3,ID4,NPOINT,I
-      DOUBLE PRECISION WGTSM,WGTSQ,WGT,PIN(5),MAXWGT,WIDTH,POUT(5,4)
-      PARAMETER(NPOINT=10000)
-C--Output the mode being calculated
-      IF(IPRINT.EQ.2) WRITE(*,10) RNAME(IDIN),RNAME(ID1),RNAME(ID2),
-     &     RNAME(ID3),RNAME(ID4)
-C--momentum of the decaying particle
-      DO I=1,3
-         PIN(I) = 0.0D0
-      ENDDO
-      PIN(4) = RMASS(IDIN)
-      PIN(5) = RMASS(IDIN)
-C--zero sum and sum squared
-      WGTSM = 0.0D0
-      WGTSQ = 0.0D0
-      DO I=1,NPOINT
-         CALL HWDRPM(WGT,IDIN,PIN,ID1,ID2,ID3,ID4,POUT,.FALSE.)
-         MAXWGT=MAX(MAXWGT,WGT)
-         WGTSM=WGTSM+WGT
-         WGTSQ=WGTSQ+WGT**2
-      ENDDO
-      WGTSM=WGTSM/DBLE(NPOINT)
-      WGTSQ=MAX(0.,WGTSQ/DBLE(NPOINT)-WGTSM**2)
-      WGTSQ = SQRT(WGTSQ/DBLE(NPOINT))
-      IF(IPRINT.EQ.2) WRITE(*,20) WGTSM,WGTSQ
-      WIDTH=WIDTH+WGTSM
-      RETURN
-C--format statements for the output
- 10   FORMAT('CALCULATING DECAY RATE FOR ',A8,' --> ',
-     &     A8,' ',A8,' ',A8,' ',A8)
- 20   FORMAT('PARTIAL WIDTH IS ',5E15.5,' +/- ',5E15.5)
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRTC(IDIN,CHRINO,A)
-C-----------------------------------------------------------------------
-C     CALCULATE THE COUPLINGS FOR THE STAU COUPLING FOR RPV 4 BODY STAU
-C     DECAYS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER IDIN,J
-      DOUBLE PRECISION A(2,6)
-      LOGICAL CHRINO
-C--common block for the couplings
-      DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
-     &     AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
-     &     HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
-     &     HZZ(2),ZAB(12,2,2),HHB(2,3),GS
-      COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
-     &               OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
-C--neutralino case
-      IF(.NOT.CHRINO) THEN 
-         IF(IDIN.EQ.435) THEN
-            DO J=1,6
-               A(1,J) =  AFN(2,11,1,1)
-               A(2,J) =  AFN(1,11,1,1)
-            ENDDO
-         ELSE
-            DO J=1,6
-               A(1,J) =  AFN(1,11,1,1)
-               A(2,J) =  AFN(2,11,1,1)
-            ENDDO
-         ENDIF
-C--chargino case
-      ELSE
-         IF(IDIN.EQ.435) THEN
-            DO J=1,6
-               A(1,J) =  AFC(2,11,1,1)
-               A(2,J) =  AFC(1,11,1,1)
-            ENDDO
-         ELSE
-            DO J=1,6
-               A(1,J) =  AFC(1,11,1,1)
-               A(2,J) =  AFC(2,11,1,1)
-            ENDDO
-         ENDIF
-      ENDIF
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRN1(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C-----------------------------------------------------------------------
-C     CALCULATE THE COUPLINGS FOR THE NEUTRALINO PART OF A FOUR BODY
-C     STAU DECAY FOR LLE COUPLINGS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER ID1,ID2,ID3,ID4,J,K,METYPE,III,JJJ,KKK,O(2),IDINT(6)
-      DOUBLE PRECISION B(2,6),C(2,6),MAXWGT
-      DATA O/2,1/
-C--common block for the couplings
-      DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
-     &     AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
-     &     HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
-     &     HZZ(2),ZAB(12,2,2),HHB(2,3),GS
-      COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
-     &               OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
-C--common block for the parameters for the new modes
-      DOUBLE PRECISION LLEMAX,LLEAVR,LQDMAX,LQDAVR,UDDMAX,UDDAVR
-      COMMON /HWDRP4/ LLEMAX(5,3,3,3),LLEAVR(5,3,3,3),
-     &                LQDMAX(8,3,3,3),LQDAVR(8,3,3,3),
-     &                UDDMAX(4,3,3,3),UDDAVR(4,3,3,3)
-c-- chi^0_1 -> l_i- nu_j e_k+
-      IF(IDPDG(ID1).GT.0) THEN
-         METYPE=1
-C--indices for the couplings
-         III = (ID1-119)/2
-         JJJ = (ID2-120)/2
-         KKK = (ID3-125)/2
-         DO J=1,2
-            DO K=1,2
-C--RPC neutralino decay couplings
-               B(K,J  ) = AFN(  K ,5+2*III,J,1)
-               B(K,J+2) = AFN(  K ,6+2*JJJ,J,1)
-               B(K,J+4) = AFN(O(K),5+2*KKK,J,1)
-            ENDDO
-C--the RPV couplings
-            C(1,J  ) = LMIXSS(2*III-1,1,J)*LAMDA1(III,JJJ,KKK)
-            C(2,J  ) = 0.0D0
-            C(1,J+2) = LAMDA1(III,JJJ,KKK)
-            C(2,J+2) = 0.0D0
-            C(1,J+4) = LMIXSS(2*KKK-1,2,J)*LAMDA1(III,JJJ,KKK)
-            C(2,J+4) = 0.0D0
-C--the intermediate particles
-            IDINT(J  ) = 423+2*III+(J-1)*12
-            IDINT(J+2) = 424+2*JJJ+(J-1)*12
-            IDINT(J+4) = 423+2*KKK+(J-1)*12
-         ENDDO
-         C(1,4) = 0.0D0
-C--set the maximum weight
-         IF(ID4.EQ.125) THEN
-            MAXWGT = LLEMAX(2,III,JJJ,KKK)
-         ELSE
-            MAXWGT = LLEMAX(1,III,JJJ,KKK)
-         ENDIF
-      ELSE
-c-- chi^0_1 -> l_i+ nubar_j e_k-
-         METYPE=3
-C--indices for the couplings
-         III = (ID1-125)/2
-         JJJ = (ID2-126)/2
-         KKK = (ID3-119)/2
-C--   RPC neutralino decay couplings
-         DO J=1,2
-            DO K=1,2
-               B(K,J  ) = AFN(O(K),5+2*III,J,1)
-               B(K,J+2) = AFN(O(K),6+2*JJJ,J,1)
-               B(K,J+4) = AFN(  K ,5+2*KKK,J,1)
-            ENDDO
-C--the RPV couplings
-            C(1,J  ) = 0.0D0
-            C(2,J  ) =  LMIXSS(2*III-1,1,J)*LAMDA1(III,JJJ,KKK)
-            C(1,J+2) = 0.0D0
-            C(2,J+2) =  LAMDA1(III,JJJ,KKK)
-            C(1,J+4) = 0.0D0
-            C(2,J+4) =  LMIXSS(2*KKK-1,2,J)*LAMDA1(III,JJJ,KKK)
-C--the intermediate particles
-            IDINT(J  ) = 423+2*III+(J-1)*12
-            IDINT(J+2) = 424+2*JJJ+(J-1)*12
-            IDINT(J+4) = 423+2*KKK+(J-1)*12
-         ENDDO
-         C(2,4) = 0.0D0
-C--set the maximum weight
-         IF(ID4.EQ.125) THEN
-            MAXWGT = LLEMAX(1,III,JJJ,KKK)
-         ELSE
-            MAXWGT = LLEMAX(2,III,JJJ,KKK)
-         ENDIF
-      ENDIF
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRN2(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C-----------------------------------------------------------------------
-C     CALCULATE THE COUPLINGS FOR THE NEUTRALINO PART OF A FOUR BODY
-C     STAU DECAY FOR LQD COUPLINGS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER ID1,ID2,ID3,ID4,J,K,METYPE,III,JJJ,KKK,O(2),IDINT(6)
-      DOUBLE PRECISION B(2,6),C(2,6),MAXWGT
-      DATA O/2,1/
-C--common block for the couplings
-      DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
-     &     AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
-     &     HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
-     &     HZZ(2),ZAB(12,2,2),HHB(2,3),GS
-      COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
-     &               OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
-C--common block for the parameters for the new modes
-      DOUBLE PRECISION LLEMAX,LLEAVR,LQDMAX,LQDAVR,UDDMAX,UDDAVR
-      COMMON /HWDRP4/ LLEMAX(5,3,3,3),LLEAVR(5,3,3,3),
-     &                LQDMAX(8,3,3,3),LQDAVR(8,3,3,3),
-     &                UDDMAX(4,3,3,3),UDDAVR(4,3,3,3)
-      IF(IDPDG(ID1).GT.0) THEN
-         METYPE=1
-C--chi^0_1 -> nu_i d_j dbar_k
-         IF(MOD(ID1,2).EQ.0) THEN
-C--indices for the couplings
-            III = (ID1-120)/2
-            JJJ = (ID2+1)/2
-            KKK = (ID3-5)/2
-            DO J=1,2
-               DO K=1,2
-C--RPC neutralino decay couplings
-C--first diagram
-                  B(K,J  ) = AFN(  K ,6+2*III,J,1)
-C--second diagram
-                  B(K,J+2) = AFN(  K ,2*JJJ-1,J,1)
-C--third diagram
-                  B(K,J+4) = AFN(O(K),2*KKK-1,J,1)
-               ENDDO
-C--the RPV couplings
-               C(1,J  ) =-LAMDA2(III,JJJ,KKK)
-               C(2,J  ) = 0.0D0
-               C(1,J+2) =(-QMIXSS(2*JJJ-1,1,J))*LAMDA2(III,JJJ,KKK)
-               C(2,J+2) = 0.0D0
-               C(1,J+4) =(-QMIXSS(2*KKK-1,2,J))*LAMDA2(III,JJJ,KKK) 
-               C(2,J+4) = 0.0D0
-C--the intermediate particles
-               IDINT(J  ) = 424+2*III+(J-1)*12
-               IDINT(J+2) = 399+2*JJJ+(J-1)*12
-               IDINT(J+4) = 399+2*KKK+(J-1)*12
-            ENDDO
-            C(1,2) = 0.0D0
-C--set the maximum weight
-            IF(ID4.EQ.125) THEN
-               MAXWGT = LQDMAX(1,III,JJJ,KKK)
-            ELSE
-               MAXWGT = LQDMAX(3,III,JJJ,KKK)
-            ENDIF
-C--chi^0_1 -> l_i- u_j dbar_k
-         ELSE
-C--indices for the couplings
-            III = (ID1-119)/2
-            JJJ =  ID2/2
-            KKK = (ID3-5)/2
-            DO J=1,2
-               DO K=1,2
-C--   RPC neutralino decay couplings
-C--   first diagram
-                  B(K,J  ) = AFN(  K ,2*III+5,J,1)
-C--   second diagram
-                  B(K,J+2) = AFN(  K ,2*JJJ  ,J,1)
-C--   third diagram
-                  B(K,J+4) = AFN(O(K),2*KKK-1,J,1)
-               ENDDO
-C--   the RPV couplings
-               C(1,J  ) =LMIXSS(2*III-1,1,J)*LAMDA2(III,JJJ,KKK)
-               C(2,J  ) = 0.0D0
-               C(1,J+2) =QMIXSS(2*JJJ,1,J)*LAMDA2(III,JJJ,KKK)
-               C(2,J+2) = 0.0D0
-               C(1,J+4) =QMIXSS(2*KKK-1,2,J)*LAMDA2(III,JJJ,KKK)
-               C(2,J+4) = 0.0D0
-C--the intermediate particles
-               IDINT(J  ) = 423+2*III+(J-1)*12
-               IDINT(J+2) = 400+2*JJJ+(J-1)*12
-               IDINT(J+4) = 399+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            IF(ID4.EQ.125) THEN
-               MAXWGT = LQDMAX(2,III,JJJ,KKK)
-            ELSE
-               MAXWGT = LQDMAX(4,III,JJJ,KKK)
-            ENDIF
-         ENDIF
-      ELSE
-         METYPE=3
-C--chi^0_1 -> nu_i d_j dbar_k
-         IF(MOD(ID1,2).EQ.0) THEN
-C--indices for the couplings
-            III = (ID1-126)/2
-            JJJ = (ID2-5)/2
-            KKK = (ID3+1)/2
-C--   RPC neutralino decay couplings
-            DO J=1,2
-               DO K=1,2
-C--first diagram
-                  B(K,J  ) = AFN(O(K),6+2*III,J,1)
-C--second diagram
-                  B(K,J+2) = AFN(O(K),2*JJJ-1,J,1)
-C--third diagram
-                  B(K,J+4) = AFN(  K ,2*KKK-1,J,1)
-               ENDDO
-C--the RPV couplings
-               C(1,J  ) = 0.0D0
-               C(2,J  ) =-LAMDA2(III,JJJ,KKK)
-               C(1,J+2) = 0.0D0
-               C(2,J+2) =(-QMIXSS(2*JJJ-1,1,J))*LAMDA2(III,JJJ,KKK)
-               C(1,J+4) = 0.0D0
-               C(2,J+4) =(-QMIXSS(2*KKK-1,2,J))*LAMDA2(III,JJJ,KKK)
-C--the intermediate particles
-               IDINT(J  ) = 424+2*III+(J-1)*12
-               IDINT(J+2) = 399+2*JJJ+(J-1)*12
-               IDINT(J+4) = 399+2*KKK+(J-1)*12
-            ENDDO
-            C(2,2) = 0.0D0
-C--maximum weight
-            IF(ID4.EQ.125) THEN
-               MAXWGT = LQDMAX(3,III,JJJ,KKK)
-            ELSE
-               MAXWGT = LQDMAX(1,III,JJJ,KKK)
-            ENDIF
-C--chi^0_1 -> l_i- u_j dbar_k
-         ELSE
-C--indices for the couplings
-            III = (ID1-125)/2
-            JJJ = (ID2-6)/2
-            KKK = (ID3+1)/2
-C--RPC neutralino decay couplings
-            DO J=1,2
-               DO K=1,2
-C--first diagram
-                  B(K,J  ) = AFN(O(K),2*III+5,J,1)
-C--second diagram
-                  B(K,J+2) = AFN(O(K),2*JJJ  ,J,1)
-C--   third diagram
-                  B(K,J+4) = AFN(  K ,2*KKK-1,J,1)
-               ENDDO
-C--the RPV couplings
-               C(1,J  ) = 0.0D0
-               C(2,J  ) = LMIXSS(2*III-1,1,J)*LAMDA2(III,JJJ,KKK)
-               C(1,J+2) = 0.0D0
-               C(2,J+2) = QMIXSS(2*JJJ,1,J)*LAMDA2(III,JJJ,KKK)
-               C(1,J+4) = 0.0D0
-               C(2,J+4) = QMIXSS(2*KKK-1,2,J)*LAMDA2(III,JJJ,KKK)
-C--the intermediate particles
-               IDINT(J  ) = 423+2*III+(J-1)*12
-               IDINT(J+2) = 400+2*JJJ+(J-1)*12
-               IDINT(J+4) = 399+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            IF(ID4.EQ.125) THEN
-               MAXWGT = LQDMAX(4,III,JJJ,KKK)
-            ELSE
-               MAXWGT = LQDMAX(2,III,JJJ,KKK)
-            ENDIF
-         ENDIF
-      ENDIF
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRN3(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C-----------------------------------------------------------------------
-C     CALCULATE THE COUPLINGS FOR THE NEUTRALINO PART OF A FOUR BODY
-C     STAU DECAY FOR UDD COUPLINGS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER ID1,ID2,ID3,ID4,J,K,METYPE,III,JJJ,KKK,O(2),IDINT(6)
-      DOUBLE PRECISION B(2,6),C(2,6),MAXWGT
-      DATA O/2,1/
-C--common block for the couplings
-      DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
-     &     AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
-     &     HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
-     &     HZZ(2),ZAB(12,2,2),HHB(2,3),GS
-      COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
-     &               OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
-C--common block for the parameters for the new modes
-      DOUBLE PRECISION LLEMAX,LLEAVR,LQDMAX,LQDAVR,UDDMAX,UDDAVR
-      COMMON /HWDRP4/ LLEMAX(5,3,3,3),LLEAVR(5,3,3,3),
-     &                LQDMAX(8,3,3,3),LQDAVR(8,3,3,3),
-     &                UDDMAX(4,3,3,3),UDDAVR(4,3,3,3)
-C--chi^0_1 -> u_i d_j d_k
-      IF(IDPDG(ID1).GT.0) THEN
-         METYPE=2
-C--indices for the rpv couplings
-         III =  ID1   /2
-         JJJ = (ID2+1)/2
-         KKK = (ID3+1)/2
-c-- RPC neutralino decay couplings
-         DO J=1,2
-            DO K=1,2
-               B(K,J  ) = AFN(  K ,2*III  ,J,1)
-               B(K,J+2) = AFN(  K ,2*JJJ-1,J,1)
-               B(K,J+4) = AFN(  K ,2*KKK-1,J,1)
-            ENDDO
-C--   the RPV couplings
-            C(1,J  ) = 0.0D0
-            C(2,J  ) = QMIXSS(2*III  ,2,J)*LAMDA3(III,JJJ,KKK)
-            C(1,J+2) = 0.0D0
-            C(2,J+2) = QMIXSS(2*JJJ-1,2,J)*LAMDA3(III,JJJ,KKK)
-            C(1,J+4) = 0.0D0
-            C(2,J+4) = QMIXSS(2*KKK-1,2,J)*LAMDA3(III,JJJ,KKK)
-C--the intermediate particles
-            IDINT(J  ) = 400+2*III+(J-1)*12
-            IDINT(J+2) = 399+2*JJJ+(J-1)*12
-            IDINT(J+4) = 399+2*KKK+(J-1)*12
-         ENDDO
-C--maximum weight
-         IF(ID4.EQ.125) THEN
-            MAXWGT=UDDMAX(1,III,JJJ,KKK)
-         ELSE
-            MAXWGT=UDDMAX(2,III,JJJ,KKK)
-         ENDIF
-C--chi^0_1 -> ubar_i dbar_j dbar_k
-      ELSE
-         METYPE=4
-C--indices for the rpv couplings
-         III = (ID1-6)/2
-         JJJ = (ID2-5)/2
-         KKK = (ID3-5)/2
-c-- RPC neutralino decay couplings
-         DO J=1,2
-            DO K=1,2
-               B(K,J  ) = AFN(O(K),2*III  ,J,1)
-               B(K,J+2) = AFN(O(K),2*JJJ-1,J,1)
-               B(K,J+4) = AFN(O(K),2*KKK-1,J,1)
-            ENDDO
-C--   the RPV couplings
-            C(1,J  ) = QMIXSS(2*III  ,2,J)*LAMDA3(III,JJJ,KKK)
-            C(2,J  ) = 0.0D0
-            C(1,J+2) = QMIXSS(2*JJJ-1,2,J)*LAMDA3(III,JJJ,KKK)
-            C(2,J+2) = 0.0D0
-            C(1,J+4) = QMIXSS(2*KKK-1,2,J)*LAMDA3(III,JJJ,KKK)
-            C(2,J+4) = 0.0D0
-C--the intermediate particles
-            IDINT(J  ) = 400+2*III+(J-1)*12
-            IDINT(J+2) = 399+2*JJJ+(J-1)*12
-            IDINT(J+4) = 399+2*KKK+(J-1)*12
-         ENDDO
-C--maximum weight
-         IF(ID4.EQ.125) THEN
-            MAXWGT=UDDMAX(2,III,JJJ,KKK)
-         ELSE
-            MAXWGT=UDDMAX(1,III,JJJ,KKK)
-         ENDIF
-      ENDIF
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRC1(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C-----------------------------------------------------------------------
-C     CALCULATE THE COUPLINGS FOR THE CHARGINO PART OF A FOUR BODY
-C     STAU DECAY FOR LLE COUPLINGS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER ID1,ID2,ID3,ID4,J,K,METYPE,III,JJJ,KKK,O(2),IDINT(6)
-      DOUBLE PRECISION B(2,6),C(2,6),MAXWGT
-      DATA O/2,1/
-C--common block for the couplings
-      DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
-     &     AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
-     &     HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
-     &     HZZ(2),ZAB(12,2,2),HHB(2,3),GS
-      COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
-     &               OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
-C--common block for the parameters for the new modes
-      DOUBLE PRECISION LLEMAX,LLEAVR,LQDMAX,LQDAVR,UDDMAX,UDDAVR
-      COMMON /HWDRP4/ LLEMAX(5,3,3,3),LLEAVR(5,3,3,3),
-     &                LQDMAX(8,3,3,3),LQDAVR(8,3,3,3),
-     &                UDDMAX(4,3,3,3),UDDAVR(4,3,3,3)
-C--first mode
-      IF(MOD(ID1,2).EQ.0.AND.MOD(ID3,2).EQ.0) THEN
-C--nu_i l_j- nubar_k
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=5
-C--indices for the couplings
-            III = (ID1-120)/2
-            JJJ = (ID2-119)/2
-            KKK = (ID3-126)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J) = AFC(O(K),5+2*KKK,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J)=LAMDA1(III,JJJ,KKK)*LMIXSS(2*KKK-1,2,J)
-               C(2,J)=0.0D0
-C--the intermediate particles
-               IDINT(J) = 423+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            WGTMAX=LLEMAX(3,III,JJJ,KKK)
-C--nubar_i l_j+ nu_k
-         ELSE
-            METYPE=10
-C--indices for the couplings
-            III = (ID1-126)/2
-            JJJ = (ID2-125)/2
-            KKK = (ID3-120)/2
-C--   RPC chargino decay couplings
-            DO J=1,2
-               DO K=1,2
-                  B(K,J) = AFC(  K ,5+2*KKK,J,1)
-               ENDDO
-C--   RPV coupling
-               C(2,J)=LAMDA1(III,JJJ,KKK)*LMIXSS(2*KKK-1,2,J)
-               C(1,J)=0.0D0
-C--the intermediate particles
-               IDINT(J) = 423+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            WGTMAX=LLEMAX(3,III,JJJ,KKK)
-         ENDIF
-C--second mode
-      ELSEIF(MOD(ID1,2).EQ.0.AND.MOD(ID2,2).EQ.0) THEN
-C--nu_i nu_j e_k+
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=6
-C--indices for the couplings
-            III = (ID1-120)/2
-            JJJ = (ID2-120)/2
-            KKK = (ID3-125)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J  ) = AFC(  K ,5+2*III,J,1)
-                  B(K,J+2) = AFC(  K ,5+2*JJJ,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=LAMDA1(III,JJJ,KKK)*LMIXSS(2*III-1,1,J)
-               C(2,J  )=0.0D0
-               C(1,J+2)=LAMDA1(III,JJJ,KKK)*LMIXSS(2*JJJ-1,1,J)
-               C(2,J+2)=0.0D0
-C--the intermediate particles
-               IDINT(J  ) = 423+2*III+(J-1)*12
-               IDINT(J+2) = 423+2*JJJ+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT = LLEMAX(4,III,JJJ,KKK)
-C--nubar_i nubar_j e_k-
-         ELSE
-            METYPE=11
-C--indices for the couplings
-            III = (ID1-126)/2
-            JJJ = (ID2-126)/2
-            KKK = (ID3-119)/2
-C--RPC chargino decay couplings
-            DO J=1,2
-               DO K=1,2
-                  B(K,J  ) = AFC(O(K),5+2*III,J,1)
-                  B(K,J+2) = AFC(O(K),5+2*JJJ,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=0.0D0
-               C(2,J  )=LAMDA1(III,JJJ,KKK)*LMIXSS(2*III-1,1,J)
-               C(1,J+2)=0.0D0
-               C(2,J+2)=LAMDA1(III,JJJ,KKK)*LMIXSS(2*JJJ-1,1,J)
-C--the intermediate particles
-               IDINT(J  ) = 423+2*III+(J-1)*12
-               IDINT(J+2) = 423+2*JJJ+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT = LLEMAX(4,III,JJJ,KKK)
-         ENDIF
-C--third mode
-      ELSE
-C--l_i- l_j- l_k+
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=7
-C--indices for the couplings
-            III = (ID1-119)/2
-            JJJ = (ID2-119)/2
-            KKK = (ID3-125)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J  ) = AFC(  K ,6+2*III,J,1)
-                  B(K,J+2) = AFC(  K ,6+2*JJJ,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=LAMDA1(III,JJJ,KKK)
-               C(2,J  )=0.0D0
-               C(1,J+2)=LAMDA1(III,JJJ,KKK)
-               C(2,J+2)=0.0D0
-C--the intermediate particles
-               IDINT(J  ) = 424+2*III+(J-1)*12
-               IDINT(J+2) = 424+2*JJJ+(J-1)*12
-            ENDDO
-            C(1,2)=0.0d0
-            C(1,4)=0.0d0
-C--maximum weight
-            MAXWGT = LLEMAX(5,III,JJJ,KKK)
-C--l_i- l_j- l_k+
-         ELSE
-            METYPE=12
-C--indices for the couplings
-            III = (ID1-125)/2
-            JJJ = (ID2-125)/2
-            KKK = (ID3-119)/2
-C--RPC chargino decay couplings
-            DO J=1,2
-               DO K=1,2
-                  B(K,J  ) = AFC(O(K),6+2*III,J,1)
-                  B(K,J+2) = AFC(O(K),6+2*JJJ,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=0.0D0
-               C(2,J  )=LAMDA1(III,JJJ,KKK)
-               C(1,J+2)=0.0D0
-               C(2,J+2)=LAMDA1(III,JJJ,KKK)
-C--the intermediate particles
-               IDINT(J  ) = 424+2*III+(J-1)*12
-               IDINT(J+2) = 424+2*JJJ+(J-1)*12
-            ENDDO
-            C(2,2)=0.0d0
-            C(2,4)=0.0d0
-C--maximum weight
-            MAXWGT = LLEMAX(5,III,JJJ,KKK)
-         ENDIF
-      ENDIF
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRC2(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C-----------------------------------------------------------------------
-C     CALCULATE THE COUPLINGS FOR THE CHARGINO PART OF A FOUR BODY
-C     STAU DECAY FOR LLE COUPLINGS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER ID1,ID2,ID3,ID4,J,K,METYPE,III,JJJ,KKK,O(2),IDINT(6)
-      DOUBLE PRECISION B(2,6),C(2,6),MAXWGT
-      DATA O/2,1/
-C--common block for the couplings
-      DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
-     &     AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
-     &     HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
-     &     HZZ(2),ZAB(12,2,2),HHB(2,3),GS
-      COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
-     &               OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
-C--common block for the parameters for the new modes
-      DOUBLE PRECISION LLEMAX,LLEAVR,LQDMAX,LQDAVR,UDDMAX,UDDAVR
-      COMMON /HWDRP4/ LLEMAX(5,3,3,3),LLEAVR(5,3,3,3),
-     &                LQDMAX(8,3,3,3),LQDAVR(8,3,3,3),
-     &                UDDMAX(4,3,3,3),UDDAVR(4,3,3,3)
-C--first mode
-      IF(MOD(ID1,2).EQ.1.AND.MOD(ID3,2).EQ.1) THEN
-C--l_i- d_j dbar_k
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=7
-C--indices for the couplings
-            III = (ID1-119)/2
-            JJJ = (ID2+1)/2
-            KKK = (ID3-5)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J  ) = AFC(  K ,6+2*III,J,1)
-                  B(K,J+2) = AFC(  K ,  2*JJJ,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=LAMDA2(III,JJJ,KKK)
-               C(2,J  )=0.0D0
-               C(1,J+2)=LAMDA2(III,JJJ,KKK)*QMIXSS(2*JJJ,1,J)
-               C(2,J+2)=0.0D0
-C--the intermediate particles
-               IDINT(J  ) = 424+2*III+(J-1)*12
-               IDINT(J+2) = 400+2*JJJ+(J-1)*12
-            ENDDO
-            C(1,2)=0.0d0
-C--maximum weight
-            MAXWGT=LQDMAX(5,III,JJJ,KKK)
-C--l_i+ dbar_j d_k
-         ELSE
-            METYPE=12
-C--indices for the couplings
-            III = (ID1-125)/2
-            JJJ = (ID2-5)/2
-            KKK = (ID3+1)/2
-C--RPC chargino decay couplings
-            DO J=1,2
-               DO K=1,2
-                  B(K,J  ) = AFC(O(K),6+2*III,J,1)
-                  B(K,J+2) = AFC(O(K),2*JJJ  ,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=0.0D0
-               C(2,J  )=LAMDA2(III,JJJ,KKK)
-               C(1,J+2)=0.0D0
-               C(2,J+2)=LAMDA2(III,JJJ,KKK)*QMIXSS(2*JJJ,1,J)
-C--the intermediate particles
-               IDINT(J  ) = 424+2*III+(J-1)*12
-               IDINT(J+2) = 400+2*JJJ+(J-1)*12
-            ENDDO
-            C(2,2)=0.0d0
-C--maximum weight
-            MAXWGT=LQDMAX(5,III,JJJ,KKK)
-         ENDIF
-C--second mode
-      ELSEIF(MOD(ID1,2).EQ.0.AND.MOD(ID3,2).EQ.1) THEN
-C--nu_i u_j dbar_k
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=6
-C--indices for the couplings
-            III = (ID1-120)/2
-            JJJ = (ID2  )/2
-            KKK = (ID3-5)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J  ) = AFC(  K ,5+2*III,J,1)
-                  B(K,J+2) = AFC(  K ,2*JJJ-1,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=LAMDA2(III,JJJ,KKK)*LMIXSS(2*III-1,1,J)
-               C(2,J  )=0.0D0
-               C(1,J+2)=LAMDA2(III,JJJ,KKK)*QMIXSS(2*JJJ-1,1,J)
-               C(2,J+2)=0.0D0
-C--the intermediate particles
-               IDINT(J  ) = 423+2*III+(J-1)*12
-               IDINT(J+2) = 399+2*JJJ+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=LQDMAX(6,III,JJJ,KKK)
-C--nubar_i ubar_j d_k   
-         ELSE
-            METYPE=11
-C--indices for the couplings
-            III = (ID1-126)/2
-            JJJ = (ID2-6)/2
-            KKK = (ID3+1)/2
-C--RPC chargino decay couplings
-            DO J=1,2
-               DO K=1,2
-                  B(K,J  ) = AFC(O(K),5+2*III,J,1)
-                  B(K,J+2) = AFC(O(K),2*JJJ-1,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=0.0D0
-               C(2,J  )=LAMDA2(III,JJJ,KKK)*LMIXSS(2*III-1,1,J)
-               C(1,J+2)=0.0D0
-               C(2,J+2)=LAMDA2(III,JJJ,KKK)*QMIXSS(2*JJJ-1,1,J)
-C--the intermediate particles
-               IDINT(J  ) = 423+2*III+(J-1)*12
-               IDINT(J+2) = 399+2*JJJ+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=LQDMAX(6,III,JJJ,KKK)
-         ENDIF
-C--third mode
-      ELSEIF(MOD(ID1,2).EQ.0.AND.MOD(ID3,2).EQ.0) THEN
-C--nu_i d_j ubar_k
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=5
-C--indices for the couplings
-            III = (ID1-120)/2
-            JJJ = (ID2+1)/2
-            KKK = (ID3-6)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J) = AFC(O(K),2*KKK-1,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J)=LAMDA2(III,JJJ,KKK)*QMIXSS(2*KKK-1,2,J)
-               C(2,J)=0.0D0
-C--the intermediate particles
-               IDINT(J) = 399+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=LQDMAX(7,III,JJJ,KKK)
-C--nubar_i dbar_j u_k
-         ELSE
-            METYPE=10
-C--indices for the couplings
-            III = (ID1-126)/2
-            JJJ = (ID2-5)/2
-            KKK = (ID3  )/2
-C--   RPC chargino decay couplings
-            DO J=1,2
-               DO K=1,2
-                  B(K,J) = AFC(  K ,2*KKK-1,J,1)
-               ENDDO
-C--   RPV coupling
-               C(1,J)=0.0D0
-               C(2,J)=LAMDA2(III,JJJ,KKK)*QMIXSS(2*KKK-1,2,J)
-C--the intermediate particles
-               IDINT(J) = 399+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=LQDMAX(7,III,JJJ,KKK)
-         ENDIF
-C--fourth mode
-      ELSE
-C--l_i- u_j ubar_k
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=5
-C--indices for the couplings
-            III = (ID1-119)/2
-            JJJ = (ID2  )/2
-            KKK = (ID3-6)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J) = AFC(O(K),2*KKK-1,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J)=(-LAMDA2(III,JJJ,KKK))*QMIXSS(2*KKK-1,2,J)
-               C(2,J)=0.0D0
-C--the intermediate particles
-               IDINT(J) = 399+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=LQDMAX(8,III,JJJ,KKK)
-C--l_i+ ubar_j u_k
-         ELSE
-            METYPE=10
-C--indices for the couplings
-            III = (ID1-125)/2
-            JJJ = (ID2-6)/2
-            KKK = (ID3  )/2
-C--   RPC chargino decay couplings
-            DO J=1,2
-               DO K=1,2
-                  B(K,J) = AFC(  K ,2*KKK-1,J,1)
-               ENDDO
-C--   RPV coupling
-               C(1,J)=0.0D0
-               C(2,J)=LAMDA2(III,JJJ,KKK)*QMIXSS(2*KKK-1,2,J)
-C--the intermediate particles
-               IDINT(J) = 399+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=LQDMAX(8,III,JJJ,KKK)
-         ENDIF
-      ENDIF
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE HWDRC3(ID1,ID2,ID3,ID4,B,C,METYPE,IDINT,MAXWGT)
-C-----------------------------------------------------------------------
-C     CALCULATE THE COUPLINGS FOR THE CHARGINO PART OF A FOUR BODY
-C     STAU DECAY FOR LLE COUPLINGS
-C-----------------------------------------------------------------------
-      INCLUDE 'HERWIG65.INC'
-      INTEGER ID1,ID2,ID3,ID4,J,K,METYPE,III,JJJ,KKK,O(2),IDINT(6)
-      DOUBLE PRECISION B(2,6),C(2,6),MAXWGT
-      DATA O/2,1/
-C--common block for the couplings
-      DOUBLE PRECISION SW,CW,TW,E,G,RT,ORT,MW,MZ,AFN(2,12,2,4),
-     &     AFG(2,6,2),AFC(2,12,2,2),OIJ(2,4,2),OIJP(2,2,2),OIJPP(2,4,4),
-     &     HNN(2,3,4,4),HCC(2,3,2,2),HNC(2,4,2),HFF(2,4,12),HWW(2),
-     &     HZZ(2),ZAB(12,2,2),HHB(2,3),GS
-      COMMON /HWSPNC/ SW,CW,TW,E,G,RT,ORT,MW,MZ,GS,AFN,AFG,AFC,OIJ,OIJP,
-     &               OIJPP,HNN,HCC,HNC,HFF,HWW,HZZ,ZAB,HHB
-C--common block for the parameters for the new modes
-      DOUBLE PRECISION LLEMAX,LLEAVR,LQDMAX,LQDAVR,UDDMAX,UDDAVR
-      COMMON /HWDRP4/ LLEMAX(5,3,3,3),LLEAVR(5,3,3,3),
-     &                LQDMAX(8,3,3,3),LQDAVR(8,3,3,3),
-     &                UDDMAX(4,3,3,3),UDDAVR(4,3,3,3)
-C--first mode
-      IF(MOD(ID1,2).EQ.0) THEN
-C--u_i u_j d_k
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=8
-C--indices for the couplings
-            III = (ID1  )/2
-            JJJ = (ID2  )/2
-            KKK = (ID3+1)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J  ) = AFC(  K ,2*III-1,J,1)
-                  B(K,J+2) = AFC(  K ,2*JJJ-1,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=0.0D0
-               C(2,J  )=LAMDA3(JJJ,KKK,III)*QMIXSS(2*III-1,2,J)
-               C(1,J+2)=0.0D0
-               C(2,J+2)=LAMDA3(III,JJJ,KKK)*QMIXSS(2*JJJ-1,2,J)
-C--the intermediate particles
-               IDINT(J  ) = 399+2*III+(J-1)*12
-               IDINT(J+2) = 399+2*JJJ+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=UDDMAX(3,III,JJJ,KKK)
-C--ubar_i ubar_j dbar_k
-         ELSE
-            METYPE=13
-C--indices for the couplings
-            III = (ID1-6)/2
-            JJJ = (ID2-6)/2
-            KKK = (ID3-5)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J  ) = AFC(O(K),2*III-1,J,1)
-                  B(K,J+2) = AFC(O(K),2*JJJ-1,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=LAMDA3(JJJ,KKK,III)*QMIXSS(2*III-1,2,J)
-               C(2,J  )=0.0D0
-               C(1,J+2)=LAMDA3(III,JJJ,KKK)*QMIXSS(2*JJJ-1,2,J)
-               C(2,J+2)=0.0D0
-C--the intermediate particles
-               IDINT(J  ) = 399+2*III+(J-1)*12
-               IDINT(J+2) = 399+2*JJJ+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=UDDMAX(3,III,JJJ,KKK)
-         ENDIF
-C--second mode
-      ELSE
-C--d_i d_j d_k
-         IF(IDPDG(ID1).GT.0) THEN
-            METYPE=9
-C--indices for the couplings
-            III = (ID1+1)/2
-            JJJ = (ID2+1)/2
-            KKK = (ID3+1)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J  ) = AFC(  K ,2*III,J,1)
-                  B(K,J+2) = AFC(  K ,2*JJJ,J,1)
-                  B(K,J+4) = AFC(  K ,2*KKK,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=0.0D0
-               C(2,J  )=LAMDA3(III,JJJ,KKK)*QMIXSS(2*III,2,J)
-               C(1,J+2)=0.0D0
-               C(2,J+2)=LAMDA3(JJJ,III,KKK)*QMIXSS(2*JJJ,2,J)
-               C(1,J+4)=0.0D0
-               C(2,J+4)=LAMDA3(KKK,III,JJJ)*QMIXSS(2*KKK,2,J)
-C--the intermediate particles
-               IDINT(J  ) = 400+2*III+(J-1)*12
-               IDINT(J+2) = 400+2*JJJ+(J-1)*12
-               IDINT(J+4) = 400+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=UDDMAX(4,III,JJJ,KKK)
-         ELSE
-            METYPE=14
-C--indices for the couplings
-            III = (ID1-5)/2
-            JJJ = (ID2-5)/2
-            KKK = (ID3-5)/2
-            DO J=1,2
-C--RPC chargino decay couplings
-               DO K=1,2
-                  B(K,J  ) = AFC(O(K),2*III,J,1)
-                  B(K,J+2) = AFC(O(K),2*JJJ,J,1)
-                  B(K,J+4) = AFC(O(K),2*KKK,J,1)
-               ENDDO
-C--RPV coupling
-               C(1,J  )=LAMDA3(III,JJJ,KKK)*QMIXSS(2*III,2,J)
-               C(2,J  )=0.0D0
-               C(1,J+2)=LAMDA3(JJJ,III,KKK)*QMIXSS(2*JJJ,2,J)
-               C(2,J+2)=0.0D0
-               C(1,J+4)=LAMDA3(KKK,III,JJJ)*QMIXSS(2*KKK,2,J)
-               C(2,J+4)=0.0D0
-C--the intermediate particles
-               IDINT(J  ) = 400+2*III+(J-1)*12
-               IDINT(J+2) = 400+2*JJJ+(J-1)*12
-               IDINT(J+4) = 400+2*KKK+(J-1)*12
-            ENDDO
-C--maximum weight
-            MAXWGT=UDDMAX(4,III,JJJ,KKK)
-         ENDIF
-      ENDIF
-      END
diff --git a/Generators/Herwig_i/src/InitHerwigCommonBlocks_65.cxx b/Generators/Herwig_i/src/InitHerwigCommonBlocks_65.cxx
deleted file mode 100644
index 448f86c397692480ea75bf803316fbffa690178f..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/InitHerwigCommonBlocks_65.cxx
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//-----------------------------------------------------------------------
-//  revision history:
-//  -----------------
-// *0001 Jan 24 1998 P.Murat: reorganize InitFortranCommonBlocks
-// *0002 Oct 29 1998: M. Shapiro:  Change to Herwig 5.9 
-// ATLAS VERSION for herwig61/athena Sept 2000 Ian Hinchliffe   
-// revised for herwig 6.3 Sept 2001
-// herwig 6.4 version Jan 2002
-//-----------------------------------------------------------------------
-
-
-#include "Herwig_i/herwig6520.h"
-
-Hwbeam_t* gHwbeam;
-Hwbmch_t* gHwbmch;
-Hwproc_t* gHwproc;
-Hwpram_t* gHwpram;
-Hwprch_t* gHwprch;
-Hwpart_t* gHwpart;
-Hwparp_t* gHwparp;
-Hwbosc_t* gHwbosc;
-Hwparc_t* gHwparc; 
-Hwbrch_t* gHwbrch;
-Hwevnt_t* gHwevnt;
-Hwhard_t* gHwhard;
-Hwprop_t* gHwprop;
-Hwunam_t* gHwunam;
-Hwupdt_t* gHwupdt;
-Hwuwts_t* gHwuwts;
-Hwuclu_t* gHwuclu;
-Hwdist_t* gHwdist;
-Hwqdks_t* gHwqdks;
-Hwusud_t* gHwusud;
-// 4 new, v61
-Hwsusy_t* gHwsusy;
-Hwrpar_t* gHwrpar;
-Hwminb_t* gHwminb;
-Hwclus_t* gHwclus;
-// 2 new, v6202
-Hwgrav_t* gHwgrav;
-Hw6202_t* gHw6202;
-// 1 new 6203
-Hw6203_t* gHw6203;
-// new 6300
-Hw6300_t* gHw6300;
-Hwcirc_t* gHwcirc;
-Hwpmrs_t* gHwpmrs;
-
-// new 6400
-Hwdspb_t* gHwdspb;
-Hwdsp2_t* gHwdsp2; 
-Hwdsp3_t* gHwdsp3;
-Hwdsp4_t* gHwdsp4;
-Hwdspn_t* gHwdspn;
-Hwspin_t* gHwspin;
-Hwstau_t* gHwstau;
-
-// new 6500
-Hwgupr_t* gHwgupr;
-Hw6500_t* gHw6500;
-//
-
-// new 6504
-Hw6504_t* gHw6504;
-// new 6506
-Hw6506_t* gHw6506;
-// new 6510
-Hw6510_t* gHw6510;
-// new 6520
-Hw6520_t* gHw6520;
-//
-
-// Jimmy common blocks
-Jmparm_t* gJmparm;
-
-// PDF information
-Hrwpdf_t* gHrwpdf;
-
-extern "C" void*  herwig_common_block_address_(const void*, int len);
-
-static int Initialized = 0;
-
-					// define pointers to FORTRAN common-blocks
-					// it is important that they are returned 
-					// by a FORTRAN routine, so it doesn't 
-					// require linking in any additional 
-					// object files
-void InitHerwigCommonBlocks(){
-
-  if (Initialized) return;
-  Initialized = 1;
-  gHwbeam    = (Hwbeam_t*   ) herwig_common_block_address_("HWBEAM",6); 
-  gHwbmch    = (Hwbmch_t*   ) herwig_common_block_address_("HWBMCH",6); 
-  gHwproc    = (Hwproc_t*   ) herwig_common_block_address_("HWPROC",6);
-  gHwpram    = (Hwpram_t*   ) herwig_common_block_address_("HWPRAM",6);
-  gHwprch    = (Hwprch_t*   ) herwig_common_block_address_("HWPRCH",6);
-  gHwpart    = (Hwpart_t*   ) herwig_common_block_address_("HWPART",6);
-  gHwparp    = (Hwparp_t*   ) herwig_common_block_address_("HWPARP",6);
-  gHwbosc    = (Hwbosc_t*   ) herwig_common_block_address_("HWBOSC",6);
-  gHwparc    = (Hwparc_t*   ) herwig_common_block_address_("HWPARC",6);
-  gHwbrch    = (Hwbrch_t*   ) herwig_common_block_address_("HWBRCH",6);
-  gHwevnt    = (Hwevnt_t*   ) herwig_common_block_address_("HWEVNT",6); 
-  gHwhard    = (Hwhard_t*   ) herwig_common_block_address_("HWHARD",6); 
-  gHwprop    = (Hwprop_t*   ) herwig_common_block_address_("HWPROP",6); 
-  gHwunam    = (Hwunam_t*   ) herwig_common_block_address_("HWUNAM",6);  
-  gHwupdt    = (Hwupdt_t*   ) herwig_common_block_address_("HWUPDT",6); 
-  gHwuwts    = (Hwuwts_t*   ) herwig_common_block_address_("HWUWTS",6); 
-  gHwuclu    = (Hwuclu_t*   ) herwig_common_block_address_("HWUCLU",6); 
-  gHwdist    = (Hwdist_t*   ) herwig_common_block_address_("HWDIST",6); 
-  gHwqdks    = (Hwqdks_t*   ) herwig_common_block_address_("HWQDKS",6); 
-  gHwusud    = (Hwusud_t*   ) herwig_common_block_address_("HWUSUD",6);
-  // v6.1
-  gHwsusy    = (Hwsusy_t*   ) herwig_common_block_address_("HWSUSY",6);
-  gHwrpar    = (Hwrpar_t*   ) herwig_common_block_address_("HWRPAR",6);
-  gHwminb    = (Hwminb_t*   ) herwig_common_block_address_("HWMINB",6);
-  gHwclus    = (Hwclus_t*   ) herwig_common_block_address_("HWCLUS",6);
-  // v6.202
-
-  gHw6202    = (Hw6202_t*   ) herwig_common_block_address_("HW6202",6);
-  gHwgrav    = (Hwgrav_t*   ) herwig_common_block_address_("HWGRAV",6);
-
-  // v6.203
-  gHw6203    = (Hw6203_t*   ) herwig_common_block_address_("HW6203",6);
-  // v6.301
-
-  gHw6300    = (Hw6300_t*   ) herwig_common_block_address_("HW6300",6);
-  gHwcirc    = (Hwcirc_t*   ) herwig_common_block_address_("HWCIRC",6);
-  gHwpmrs    = (Hwpmrs_t*   ) herwig_common_block_address_("HWPMRS",6);
-  // v6.400
-  gHwdspb    = (Hwdspb_t*   ) herwig_common_block_address_("HWDSPB",6);
-  gHwdsp2    = (Hwdsp2_t*   ) herwig_common_block_address_("HWDSP2",6);
-  gHwdsp3    = (Hwdsp3_t*   ) herwig_common_block_address_("HWDSP3",6);
-  gHwdsp4    = (Hwdsp4_t*   ) herwig_common_block_address_("HWDSP4",6);
-  gHwdspn    = (Hwdspn_t*   ) herwig_common_block_address_("HWDSPN",6);
-  gHwspin    = (Hwspin_t*   ) herwig_common_block_address_("HWSPIN",6);
-  gHwstau    = (Hwstau_t*   ) herwig_common_block_address_("HWSTAU",6);
-
-  // new 6500
-  gHwgupr    = (Hwgupr_t*   ) herwig_common_block_address_("HWGUPR",6);
-  gHw6500    = (Hw6500_t*   ) herwig_common_block_address_("HW6500",6);
-  // new 6504
-  gHw6504    = (Hw6504_t*   ) herwig_common_block_address_("HW6504",6);
-  // new 6510
-  gHw6510    = (Hw6510_t*   ) herwig_common_block_address_("HW6510",6);
-  // new 6520
-  gHw6520    = (Hw6520_t*   ) herwig_common_block_address_("HW6520",6);
-  //
-
-  // Jimmy common blocks
-  gJmparm    = (Jmparm_t*   ) herwig_common_block_address_("JMPARM",6);
-
-  // atlas special for pdfs
-  gHrwpdf    = (Hrwpdf_t*   ) herwig_common_block_address_("HRWPDF",6);;
-
-//   gHwumsc    = (Hwumsc_t*   ) herwig_common_block_address_("HWUMSC",6); 
-  //  gHepevt    = (Hepevt_t*  ) herwig_common_block_address_("HEPEVTD",7); 
-
-
-}
-
-
diff --git a/Generators/Herwig_i/src/Lhefinfo.cxx b/Generators/Herwig_i/src/Lhefinfo.cxx
deleted file mode 100644
index 647f084cfce47e0ed8675ab6952753999fe0b0d0..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/Lhefinfo.cxx
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access Lhef_i common block LHEFINFO
-#include "Herwig_i/Lhefinfo.h"
-
-// set pointer to zero at start
-Lhefinfo::LHEFINFO* Lhefinfo::s_lhefinfo = 0;
-
-// Constructor
-Lhefinfo::Lhefinfo() 
-{}
-
-// Destructor
-Lhefinfo::~Lhefinfo() 
-{}
-
-int& Lhefinfo::id1()
-{
-  init();
-  return s_lhefinfo->id1;
-}
-
-int& Lhefinfo::id2()
-{
-  init();
-  return s_lhefinfo->id2;
-}
-
-double& Lhefinfo::x1()
-{
-  init();
-  return s_lhefinfo->x1;
-}
-
-double& Lhefinfo::x2()
-{
-  init();
-  return s_lhefinfo->x2;
-}
-
-double& Lhefinfo::scalePdf()
-{
-  init();
-  return s_lhefinfo->scalePdf;
-}
-
-double& Lhefinfo::xPdf1()
-{
-  init();
-  return s_lhefinfo->xPdf1;
-}
-
-double& Lhefinfo::xPdf2()
-{
-  init();
-  return s_lhefinfo->xPdf2;
-}
-
diff --git a/Generators/Herwig_i/src/atoher_65.F b/Generators/Herwig_i/src/atoher_65.F
deleted file mode 100644
index 92af226a909f223248a63a6ef6f962cfd6c37414..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/atoher_65.F
+++ /dev/null
@@ -1,111 +0,0 @@
-      SUBROUTINE ALSHCD(CSHO)
-      CHARACTER*3 CSHO
-      CSHO='HER'
-      END
-
-      SUBROUTINE ALSHEN
-#include "HERWIG65.INC"
-      WGTSUM=WGTSUM-evwgt
-      WSQSUM=WSQSUM-evwgt**2
-      END
-
-      SUBROUTINE ALSHER(I)
-#include "HERWIG65.INC"
-      INTEGER I
-      I=0
-      IF (IERROR.NE.0.OR.EVWGT.EQ.0) THEN
-        I=1
-      ENDIF 
-      RETURN
-      END
-CDECK  ID>, UPINIT.
-*CMZ :-        -13/02/02  07.20.46  by  Peter Richardson
-*-- Author :    Michelangelo Mangano
-C----------------------------------------------------------------------
-      SUBROUTINE ALSHIN(I)
-C----------------------------------------------------------------------
-C     subroutine to initialise the events
-C----------------------------------------------------------------------
-#include "HERWIG65.INC"
-#include "AlpGen_i/alpsho.inc"
-      INTEGER I
-C COMMUNICATION CODE
-      I=1
-C FILL IN HERWIG SPECIFIC INPUTS
-      IF(MC.NE.0) RMASS(4)=MC
-      IF(MB.NE.0) RMASS(5)=MB
-      IF(MT.NE.0) RMASS(6)=MT
-      IF(MW.NE.0) THEN
-        RMASS(198)=MW
-        RMASS(199)=MW
-      ENDIF
-      IF(MZ.NE.0) RMASS(200)=MZ
-      IF(MH.NE.0) RMASS(201)=MH
-cc
-      END
-
-C-----------------------------------------------------------------------
-      SUBROUTINE ALSFIN
-C-----------------------------------------------------------------------
-C     HERWIG END OF FILE TREATMENT
-C-----------------------------------------------------------------------
-#include "HERWIG65.INC"
-#include "AlpGen_i/alpsho.inc"
-C--   GUP Run common block
-#include "GeneratorFortranCommon/heprup.inc"
-      DOUBLE PRECISION XSEC,EFF
-CC << OJ
-      INTEGER ISTG
-      COMMON/EVTCON/ISTG
-CC >> OJ
-      XSEC=XSECUP(1)
-      WGTMAX=XSEC*1.0D-3
-      WBIGST=XSEC*1.0D-3
-CC << OJ
-      IF (ISTG.LE.0) NEVHEP = NEVHEP+1
-CC >> OJ
-c      print *, 'WGTSUM=',WGTSUM
-      WGTSUM=WGTSUM*REAL(NEVHEP-1)/REAL(NEVHEP)
-      WSQSUM=WSQSUM*REAL(NEVHEP-1)/REAL(NEVHEP)
-      WGTSUM=WGTSUM*XSEC*1.0D-3
-      WSQSUM=WSQSUM*XSEC**2*1.0D-6
-C FILL HERWIG RUN LOG FILE
-      WRITE(NUNITOUT,*) " "
-      WRITE(NUNITOUT,*) "END OF RUN LOG: "
-      WRITE(NUNITOUT,*) "NUMBER OF INPUT PROCESSED:",NWGTS
-      WRITE(NUNITOUT,*)"NUMBER OF EVENTS GENERATED:",NEVHEP-1
-C JMB line below would give matching efficiency
-c      EFF=WGTSUM/REAL(NWGTS)
-C JMB line below would give matching*hadronisation efficiency
-      EFF=REAL(NEVHEP-1)/REAL(NWGTS)
-      WRITE(NUNITOUT,*)"MATCHING EFFICIENCY:",EFF
-      WRITE(NUNITOUT,*)"FINAL CROSS SECTION (PB):",XSEC*EFF
-      WRITE(NUNITOUT,*)"INTEGRATED LUMINOSITY (PB-1):",REAL(NEVHEP-1)
-     $     /(XSEC*EFF)
-      CALL HWUGUP
-      END
-
-*-- Author :    J Alwall
-C----------------------------------------------------------------------
-      SUBROUTINE MGSHIN(I)
-C----------------------------------------------------------------------
-C     subroutine to initialise the events FOR MADGRAPH ONLY
-C----------------------------------------------------------------------
-#include "HERWIG65.INC"
-#include "MadGraph_i/madsho.inc"
-      INTEGER I
-C COMMUNICATION CODE
-      I=1
-C FILL IN HERWIG SPECIFIC INPUT FOR SM ONLY
-      IF(MC.NE.0) RMASS(4)=MC
-      IF(MB.NE.0) RMASS(5)=MB
-      IF(MT.NE.0) RMASS(6)=MT
-      IF(MW.NE.0) THEN
-        RMASS(198)=MW
-        RMASS(199)=MW
-      ENDIF
-      IF(MZ.NE.0) RMASS(200)=MZ
-      IF(MH.NE.0) RMASS(201)=MH
-cc
-      END
-
diff --git a/Generators/Herwig_i/src/charybdfix.F b/Generators/Herwig_i/src/charybdfix.F
deleted file mode 100644
index 3533b6c62097bc0746c9791822f6058d10513f17..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/charybdfix.F
+++ /dev/null
@@ -1,18 +0,0 @@
-      subroutine charybdfix()
-
-c----------------------------------------------------------------------
-c   program initialization
-c----------------------------------------------------------------------
-c
-c  HERWIG common blocks (`external` loads in  block data)
-c-----------------------------------------------------------------------
-#include "HERWIG65.INC"
-#include "jimmy.inc"
-      external hwudat
-C--RELABEL HARD AS BLACK HOLE
-      IDHW(6)=NRES
-      IDHEP(6)=40
-
-      end
-      
-      
diff --git a/Generators/Herwig_i/src/components/Herwig_i_entries.cxx b/Generators/Herwig_i/src/components/Herwig_i_entries.cxx
deleted file mode 100644
index 964177e31110ea287ff824c97c3374408e4de708..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/components/Herwig_i_entries.cxx
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "Herwig_i/Herwig.h"
-
-DECLARE_COMPONENT( Herwig )
-
diff --git a/Generators/Herwig_i/src/componentsRpv/HerwigRpv_i_entries.cxx b/Generators/Herwig_i/src/componentsRpv/HerwigRpv_i_entries.cxx
deleted file mode 100644
index f8a0088505e275bdbc27c9838b5cfca80c1c8ea5..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/componentsRpv/HerwigRpv_i_entries.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-#include "Herwig_i/HerwigRpv.h"
-
-DECLARE_COMPONENT( HerwigRpv )
-
diff --git a/Generators/Herwig_i/src/extproc.F b/Generators/Herwig_i/src/extproc.F
deleted file mode 100644
index 566d47fb7d0d346941d5850e2486a1d1bcfd87c5..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/extproc.F
+++ /dev/null
@@ -1,9 +0,0 @@
-      SUBROUTINE EXTPROC(IPROC)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-#include "GeneratorFortranCommon/lesatlas.inc"
-      ATLASCHOICE = IPROC
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/gatlastaula_decres_hw.F b/Generators/Herwig_i/src/gatlastaula_decres_hw.F
deleted file mode 100644
index 20e6ac3c42b58c053e4c30ab7fea52c4f09e95f7..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/gatlastaula_decres_hw.F
+++ /dev/null
@@ -1,12 +0,0 @@
-C FORKING ROUTINE TO DECAY LEFTOVER RESONANCES IN PYTHIA
-      SUBROUTINE TAUOLA_DECRES_HW(ISTART)
-
-      INTEGER ISTART
-
-      CALL HWHEPC(ISTART)
-
-C---DO UNSTABLE PARTICLE DECAYS
-      CALL HWDHAD            
-
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/glhefinfo.F b/Generators/Herwig_i/src/glhefinfo.F
deleted file mode 100644
index b31849e8a74053616a19b18c806b23972327089f..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/glhefinfo.F
+++ /dev/null
@@ -1,12 +0,0 @@
-      FVOIDP FUNCTION LHEFINFO_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER PARTID1,PARTID2 
-      DOUBLE PRECISION PARTX1,PARTX2,SCALEPDF,XPDF1,XPDF2
-
-      COMMON/LHEFINFO/PARTID1,PARTID2,PARTX1,PARTX2,SCALEPDF,XPDF1,XPDF2
-c      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      
-      LHEFINFO_ADDRESS = GETADDR(PARTID1)
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/gwgtacp.F b/Generators/Herwig_i/src/gwgtacp.F
deleted file mode 100644
index e9012b3eec0391ccd0657e38d70a4d0605ead963..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/gwgtacp.F
+++ /dev/null
@@ -1,12 +0,0 @@
-      FVOIDP FUNCTION WGTACP_ADDRESS() 
-      IMPLICIT NONE
-      DOUBLE PRECISION WGTACP(28)
-      INTEGER USERWGTS
-      COMMON/CWGTACP/ WGTACP, USERWGTS
-
-
-      FVOIDP GETADDR
-      
-      WGTACP_ADDRESS = GETADDR(WGTACP)
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/herwig_common_block_address_65.F b/Generators/Herwig_i/src/herwig_common_block_address_65.F
deleted file mode 100644
index c164cd82aa99643454b0741cf4bd80688dc6979b..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/herwig_common_block_address_65.F
+++ /dev/null
@@ -1,191 +0,0 @@
-c  For herwig version 6.4 , Jan 2002
-c  Atlas version Ian Hinchliffe
-      FVOIDP function herwig_common_block_address(common_block_name)
-c-----------------------------------------------------------------------
-c  returns address of HERWIG common-block by name
-c  revision history:
-c  -----------------
-c Based on CDF code by  P.Murat, J Lys  et al
-c-----------------------------------------------------------------------
-C      implicit      none
-c
-c 2 Nov 2000 changed to adressi adressc and adressf to remove compile warnings
-c
-c 
-#include "HERWIG65.INC"
-#include "jimmy.inc"
-c     For parton desnity info
-      DOUBLE PRECISION X1,X2,Q
-      INTEGER ID1,ID2,IDPDF1,IDPDF2
-      COMMON /HRWPDF/ X1,X2,Q,ID1,ID2,IDPDF1,IDPDF2
-
-      character*(*) common_block_name
-c
-c-----------------------------------------------------------------------
-      FVOIDP adressi
-      FVOIDP adressf
-      FVOIDP adressc
-      FVOIDP adrescx
-      FVOIDP adreslg
-c-----------------------------------------------------------------------
-      if (common_block_name.eq.'HWBEAM')then
-       herwig_common_block_address = adressi(ipart1)
-
-      else if (common_block_name.eq.'HWBMCH')then
-       herwig_common_block_address = adressc(part1)
-
-      else if (common_block_name.eq.'HWPROC')then
-       herwig_common_block_address = adressf(ebeam1)
-
-      else if (common_block_name.eq.'HWPRAM')then
-       herwig_common_block_address = adressf(afch(1,1))
-
-      else if (common_block_name.eq.'HWPRCH')then
-       herwig_common_block_address = adressc(autpdf)
-
-      else if (common_block_name.eq.'HWPART')then
-       herwig_common_block_address = adressi(nevpar)
-    
-      else if (common_block_name.eq.'HWPARP')then
-       herwig_common_block_address = adressf(decpar(1,1))
-
-      else if (common_block_name.eq.'HWBOSC')then
-       herwig_common_block_address = adressf(alpfac)
-
-      else if (common_block_name.eq.'HWPARC')then
-       herwig_common_block_address = adressi(jcopar(1,1))
-
-      else if (common_block_name.eq.'HWBRCH')then
-       herwig_common_block_address = adressf(anomsc(1,1))
-
-      else if (common_block_name.eq.'HWEVNT')then
-       herwig_common_block_address = adressf(avwgt)
- 
-      else if (common_block_name.eq.'HWHARD')then
-       herwig_common_block_address = adressf(asfixd)
-
-      else if (common_block_name.eq.'HWPROP')then
-       herwig_common_block_address = adressf(rltim(0))
-
-      else if (common_block_name.eq.'HWUNAM')then
-       herwig_common_block_address = adressc(rname(0))
- 
-      else if (common_block_name.eq.'HWUPDT')then
-       herwig_common_block_address = adressf(brfrac(1))
-
-      else if (common_block_name.eq.'HWUWTS')then
-       herwig_common_block_address = adressf(repwt(0,0,0))
- 
-      else if (common_block_name.eq.'HWUCLU')then
-       herwig_common_block_address = adressf(cldkwt(1))
- 
-      else if (common_block_name.eq.'HWDIST')then
-       herwig_common_block_address = adressf(exag)
-
-      else if (common_block_name.eq.'HWQDKS')then
-       herwig_common_block_address = adressf(vtxqdk(1,1))
-
-      else if (common_block_name.eq.'HWUSUD')then
-       herwig_common_block_address = adressf(accur)     
-
-cc v6.1
-      else if (common_block_name.eq.'HWSUSY')then
-       herwig_common_block_address = adressf(tanb)
- 
-      else if (common_block_name.eq.'HWRPAR')then
-       herwig_common_block_address = adressf(lamda1(1,1,1))
- 
-      else if (common_block_name.eq.'HWMINB')then
-       herwig_common_block_address = adressf(pmbn1)
- 
-      else if (common_block_name.eq.'HWCLUS')then
-       herwig_common_block_address = adressf(ppcl(1,1))
- 
-cc v6.202
-      else if (common_block_name.eq.'HWGRAV')then
-       herwig_common_block_address = adressf(grvlam)
- 
-      else if (common_block_name.eq.'HW6202')then
-       herwig_common_block_address = adressf(vipwid(1))
-cc v6.203
-
-      else if (common_block_name.eq.'HW6203')then
-       herwig_common_block_address = adressf(abwgt)
-
-cc v6.301
-      else if (common_block_name.eq.'HW6300')then
-       herwig_common_block_address = adressf(mjjmin)
- 
-      else if (common_block_name.eq.'HWPMRS')then
-       herwig_common_block_address = adressf(FMRS(1,1,1,1))
-
-      else if (common_block_name.eq.'HWCIRC')then
-       herwig_common_block_address = adressi(circop)
-
-cc v6.400
-      else if (common_block_name.eq.'HWDSPB')then
-       herwig_common_block_address = adressf(abmode(1,1))
-
-      else if (common_block_name.eq.'HWDSP2')then
-         herwig_common_block_address = adressf(a2mode(1,1))
-
-      else if (common_block_name.eq.'HWDSP3')then
-         herwig_common_block_address = adressf(a3mode(1,1,1)) 
-
-      else if (common_block_name.eq.'HWDSP4')then
-         herwig_common_block_address = adressf(a4mode(1,1,1)) 
-
-      else if (common_block_name.eq.'HWDSPN')then
-         herwig_common_block_address = adressi(ndecsy) 
-
-      else if (common_block_name.eq.'HWSPIN')then
-         herwig_common_block_address = adrescx(mespn(1,1,1,1,1,1)) 
-
-      else if (common_block_name.eq.'HWSTAU')then
-         herwig_common_block_address = adressi(jak1)
-
-cc v6.500
-      else if (common_block_name.eq.'HWGUPR')then
-         herwig_common_block_address = adressf(lhwgt(1))
-
-      else if (common_block_name.eq.'HW6500')then
-         herwig_common_block_address = adreslg(prespl)
-
-cc v6.504
-      else if (common_block_name.eq.'HW6504')then
-         herwig_common_block_address = adressi(itoprd)
-
-cc v6.506
-      else if (common_block_name.eq.'HW6506')then
-         herwig_common_block_address = adressf(pdfx0)
-
-cc v6.510
-      else if (common_block_name.eq.'HW6510')then
-         herwig_common_block_address = adressi(ndetry)
-
-cc v6.520
-      else if (common_block_name.eq.'HW6520')then
-         herwig_common_block_address = adressf(dqxtra)
-
-cc Jimmy Common blocks
-      else if (common_block_name.eq.'JMPARM')then
-         herwig_common_block_address = adressf(ptjim)
-
-cc special for atlas (PDF information)
-
-      else if (common_block_name.eq.'HRWPDF')then
-         herwig_common_block_address = adressf(x1)  
-    
-     
-
-      else  
-
-       write(6,*) " Unknown Common Block Name:  " , common_block_name 
-       herwig_common_block_address = -99
-      end if
-
- 
-      return
-      end
-
-
diff --git a/Generators/Herwig_i/src/hwgpdg.F b/Generators/Herwig_i/src/hwgpdg.F
deleted file mode 100644
index a0a5ef5b7c4d7496648aafd69ee11c325cf2b5aa..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/hwgpdg.F
+++ /dev/null
@@ -1,41 +0,0 @@
-
-      subroutine HWGPDG(mconv)
-
-C...Purpose: to convert HERWIG event record contents to or from
-C...the standard event record common block.
-C...convert (mconv=1) from HERWIG numbering scheme to PDG numbering scheme
-C...     or (mconv=2) from PDG numbering scheme to HERWIG numbering scheme
-
-C...Only IDHEP needs to be changed
-C   1/28/98 - Overwrite particle ID as used in Herwig
-
-#include "HERWIG65.INC"
-
-      integer itmp,hwtpdg,mconv,I
-
-C...Conversion from HERWIG to standard.
-      if(mconv.EQ.1) then
-        do 140 I=1,NHEP
-          if(IDHEP(I).NE.0)then
-            itmp=IDHEP(I)
-            IDHEP(I) = hwtpdg(itmp,1)
-          elseif(IDHW(I).EQ.20)then
-C...????
-            IDHEP(I)=89
-          elseif(IDHW(I).LE.18)then
-C...the oddball intermediate states
-            IDHEP(I)=IDHW(I)+67
-          else
-C...undefined
-            IDHEP(I)=0
-          endif
- 140    CONTINUE
-C...Conversion from standard to HERWIG.
-      elseif(mconv.EQ.2)then
-        do 180 I=1,NHEP
-          itmp=IDHEP(I)
-          IDHEP(I) = hwtpdg(itmp,2)
- 180    CONTINUE
-      endif
-      return
-      end
diff --git a/Generators/Herwig_i/src/hwhepc.F b/Generators/Herwig_i/src/hwhepc.F
deleted file mode 100644
index 6d77c74aeb2c9cbeefc10ae4189d860a83241d78..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/hwhepc.F
+++ /dev/null
@@ -1,42 +0,0 @@
-C-----------------------------------------------------------------------
-      SUBROUTINE HWHEPC(IHEP0)
-
-#include "HERWIG65.INC"
-
-      INTEGER I,J,IHEP0,IHEP,JMOTH,ID
-      CHARACTER *8 DUMMY
-      DOUBLE PRECISION DIST(4),VERTX(4)
-      IF (IHEP0.EQ.NHEP) RETURN ! DON'T BOTHER
-
-C ADD DECAY LENGTH TO THE DECAY PRODUCTS - CALL HERWIG ROUTINES
-         IHEP=JMOHEP(1,IHEP0+1)
-         ID=IDHW(IHEP)
-c         PRINT *,'IDTAU',IDHEP(IHEP),IDHW(IHEP)
-         CALL HWUDKL(ID,PHEP(1,IHEP),DIST)
-         CALL HWVSUM(4,VHEP(1,IHEP),DIST,VERTX)
-
-      DO I=IHEP0+1,NHEP
-         CALL HWUIDT(1,IDHEP(I),IDHW(I),DUMMY)
-         JMOTH=JMOHEP(1,I)
-
-         DO J=JDAHEP(1,JMOTH),JDAHEP(2,JMOTH)
-            CALL HWVEQU(4,VERTX,VHEP(1,J)) ! VERTEX
-         ENDDO
-         IF (ABS(ISTHEP(JMOHEP(1,I))).EQ.2) THEN ! CORRECT STATUS CODES
-            IF (ABS(IDHEP(JMOHEP(1,I))).EQ.15) THEN ! TAU
-               ISTHEP(JMOHEP(1,I))=195
-            ELSE
-               ISTHEP(JMOHEP(1,I))=198 ! DECAYED RESONANCE
-            ENDIF
-         ENDIF
-         IF (ABS(IDHEP(I)).EQ.111) THEN ! PI0 - TO BE DECAYED
-            ISTHEP(I)=193 
-         ENDIF
-         IF (ABS(IDHEP(I)).EQ.221) THEN ! ETA - TO BE DECAYED
-            ISTHEP(I)=193 
-         ENDIF
-      ENDDO
-
-      RETURN
-      END
-
diff --git a/Generators/Herwig_i/src/hwpdfinfo.F b/Generators/Herwig_i/src/hwpdfinfo.F
deleted file mode 100644
index 6bacc70e178d79ddfbb623bbdd1787a5404226d5..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/hwpdfinfo.F
+++ /dev/null
@@ -1,25 +0,0 @@
-      SUBROUTINE HWPDFINFO
-C     Store the arguments to the PDF call at the appropriate stage of
-C     the event
-
-#include "HERWIG65.INC"
-#include "GeneratorFortranCommon/hepeup.inc"
-
-      DOUBLE PRECISION X1,X2,Q
-      INTEGER ID1,ID2,IDPDF1,IDPDF2
-      COMMON /HRWPDF/ X1,X2,Q,ID1,ID2,IDPDF1,IDPDF2
-
-      x1=(phep(4,4)+abs(phep(3,4)))/(phep(4,1)+abs(phep(3,1)))
-      x2=(phep(4,5)+abs(phep(3,5)))/(phep(4,2)+abs(phep(3,2)))
-      IF (iproc.GE.0) THEN
-         q=emsca
-      ELSE
-         q=scalup
-      ENDIF
-      id1=idpdg(idhw(4))
-      id2=idpdg(idhw(5))
-      idpdf1=modpdf(1)
-      idpdf2=modpdf(2)
-
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/hwrgen.F b/Generators/Herwig_i/src/hwrgen.F
deleted file mode 100644
index 8201e5336c0f0b220f665d6687afcf771759324c..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/hwrgen.F
+++ /dev/null
@@ -1,20 +0,0 @@
-      function HWRGEN(IDUMMY)
-      DOUBLE PRECISION HWRGEN, ATL_HWRGEN, HWRSET, HWRGET
-      INTEGER IDUMMY,ISEED(2),JSEED(2)
-      HWRGEN=ATL_HWRGEN(IDUMMY)
-      RETURN
-      ENTRY HWRSET(JSEED)      
-C-----------------------------------------------------------------------
-C     IF (JSEED(1).EQ.0.OR.JSEED(2).EQ.0) CALL HWWARN('HWRSET',99)
-      ISEED(1)=JSEED(1)
-      ISEED(2)=JSEED(2)
-      HWRSET=0.0D0
-      RETURN
-C-----------------------------------------------------------------------
-      ENTRY HWRGET(JSEED)
-C-----------------------------------------------------------------------
-      JSEED(1)=ISEED(1)
-      JSEED(2)=ISEED(2)
-      HWRGET=0.0D0
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/hwtpdg.F b/Generators/Herwig_i/src/hwtpdg.F
deleted file mode 100644
index f6355f29ceac7b3e62e5db4e57703d39e4775e8f..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/hwtpdg.F
+++ /dev/null
@@ -1,101 +0,0 @@
-      integer function hwtpdg(id,mconv)
-C...convert (mconv=1) from HERWIG numbering scheme to PDG numbering scheme
-C...     or (mconv=2) from PDG numbering scheme to HERWIG numbering scheme
-C
-C           ID = particle identification number
-
-C... ITABJ(I) converts miscellaneous HERWIG particle ID's to a standard scheme
-      integer itabj(99,2), noant(7)
-      data itabj/1,2,3,4,5,6,7,8,0,0,
-     1           11,12,13,14,15,16,0,0,0,0,
-     2           21,22,23,24,25,51,0,0,0,0,
-     3           0,32,0,0,35,36,37,0,0,0,
-     4           0,0,0,0,0,0,0,0,0,0,
-     5           0,0,0,0,0,0,0,0,0,0,
-     6           0,0,0,0,0,0,0,0,0,0,
-     7           0,0,0,0,0,0,0,0,0,0,
-     8           81,82,83,84,85,86,87,88,89,90,
-     9           91,92,93,94,95,96,97,9920022,9922212,
-     *           1,2,3,4,5,6,7,8,0,0,
-     1           11,12,13,14,15,16,0,0,0,0,
-     2           21,22,23,24,25,0,0,0,0,0,
-     3           0,32,0,0,35,36,37,0,0,0,
-     4           0,0,0,0,0,0,0,0,0,0,
-     5           26,0,0,0,0,0,0,0,0,0,
-     6           0,0,0,0,0,0,0,0,0,0,
-     7           0,0,0,0,0,0,0,0,0,0,
-     8           81,82,83,84,85,86,87,88,89,90,
-     9           91,92,93,94,95,96,97,0,0/
-      data noant/-21,-22,-23,-25,-51,-35,-36/
-      save itabj,noant
-
-      hwtpdg=id
-      ida=iabs(id)
-      j1=mod(ida,10)
-      i1=mod(ida/10,10)
-      i2=mod(ida/100,10)
-      i3=mod(ida/1000,10)
-      i4=mod(ida/10000,10)
-      i5=mod(ida/100000,10)
-      k99 = mod(ida/100000,100)
-      ksusy = mod(ida/1000000,10)
-      ku = mod(ida/10000000,10)
-      kqn=mod(ida/1000000000,10)
-
-      if(ida.eq.0)then
-C..        write(*,*) ' HWTPDG 1: particle ID is zero'
-      elseif(mconv.lt.1 .or. mconv.gt.2)then
-        hwtpdg=0
-        write(*,*) ' HWTPDG 2: unallowed conversion option'
-      elseif(kqn.eq.1) then
-C... ions not recognized
-        hwtpdg=0
-        write(*,*) ' HWTPDG 3: nonallowed ion'
-      elseif(ida.lt.100)then
-C...Higgs, etc.
-        hwtpdg=isign(itabj(ida,mconv),id)
-C...check for illegal antiparticles
-        if(id.lt.0)then
-          if(hwtpdg.ge.-99 .and. hwtpdg.le.-81) hwtpdg=0
-          do 101 j=1,7
-            if(hwtpdg.eq.noant(j)) hwtpdg=0
- 101      continue
-        endif
-      elseif(k99.eq.99 .and. mconv.eq.2) then
-C... special case remnant particles - used internally
-        hwtpdg = 0
-        if(id.eq.9920022) hwtpdg=isign(98,id)
-        if(ida.eq.9922212) hwtpdg=isign(99,id)
-      elseif(ksusy.eq.1 .or. ksusy.eq.2) then
-C... SUSY
-      elseif(i1.ne.0 .and. i3.ne.0 .and. j1.eq.2)then
-C...spin 1/2 baryons
-      elseif(i1.ne.0 .and. i3.ne.0 .and. j1.eq.4)then
-C...spin 3/2 baryons
-      elseif(i1.ne.0 .and. i2.ne.0 .and. i3.eq.0)then
-C...mesons
-        if(mconv.eq.1)then
-          if(ida.eq.20333) hwtpdg=isign(9000223,id)
-        elseif(mconv.eq.2)then
-          if(ida.eq.20333) hwtpdg=0
-          if(ida.eq.9000223) hwtpdg=isign(20333,id)
-        endif
-C...check for illegal antiparticles
-        if(i1.eq.i2 .and. id.lt.0) hwtpdg=0
-      elseif(i2.ne.0 .and. i3.ne.0 .and. i1.eq.0)then
-C...diquarks
-      else
-C...undefined
-        hwtpdg=0
-      endif
-C...check for illegal anti KS, KL
-      if(id.eq.-130 .or. id.eq.-310) hwtpdg=0
-
-      if(hwtpdg.eq.0 .and. ida.ne.0)then
-        if(mconv.eq.1) write(*,111) id
-        if(mconv.eq.2) write(*,112) id
-      endif
-      return
- 111  format('  HWTPDG 3: HERWIG particle ',I8,' translates to zero')
- 112  format('  HWTPDG 3: PDG particle ',I8,' translates to zero')
-      end
diff --git a/Generators/Herwig_i/src/topdec.F b/Generators/Herwig_i/src/topdec.F
deleted file mode 100644
index 4d56e702fa1a04c023b6ed188580eba69c012671..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/topdec.F
+++ /dev/null
@@ -1,75 +0,0 @@
-      SUBROUTINE TOPDEC
-
-#include "HERWIG65.INC"
-
-      INTEGER I,J,IBT,IQK,IQB
-      DOUBLE PRECISION BRCON
-
-      print *, "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
-
-C--code to change the top decay modes
-      BRCON = 0.5D0*(1.0D0-0.333D0)
-C--find the CKM unsurpressed modes and reset the branching ratios
-      DO I=1,NDKYS
-C--top decay modes
-         IF(IDK(I).EQ.6.AND.IDKPRD(4,I).EQ.0) THEN
-            IBT = 0
-            IQK = 0
-            IQB = 0
-            DO J=1,3
-               IF(IDKPRD(J,I).EQ.5) THEN
-                  IBT = IDKPRD(J,I)
-               ELSEIF(IDKPRD(J,I).LE.4) THEN
-                  IQK = IDKPRD(J,I)
-               ELSEIF(IDKPRD(J,I).LE.10) THEN
-                  IQB = IDKPRD(J,I)
-               ENDIF
-            ENDDO
-C--reset the branching ratios
-            IF(IBT.NE.0.AND.IQK.NE.0.AND.IQB.NE.0) THEN
-c--u d mode
-               IF(IQK.EQ.2.AND.IQB.EQ.7) THEN
-                  BRFRAC(I) = BRCON*VCKM(1,1)
-c--c s mode
-               ELSEIF(IQK.EQ.4.AND.IQB.EQ.9) THEN
-                  BRFRAC(I) = BRCON*VCKM(2,2)
-               ENDIF
-            ENDIF
-C--antitop decay modes
-         ELSE IF(IDK(I).EQ.12.AND.IDKPRD(4,I).EQ.0) THEN
-            IBT = 0
-            IQK = 0
-            IQB = 0
-            DO J=1,3
-               IF(IDKPRD(J,I).EQ.11) THEN
-                  IBT = IDKPRD(J,I)
-               ELSEIF(IDKPRD(J,I).LE.4) THEN
-                  IQK = IDKPRD(J,I)
-               ELSEIF(IDKPRD(J,I).LE.10) THEN
-                  IQB = IDKPRD(J,I)
-               ENDIF
-            ENDDO
-C--reset the branching ratios
-            IF(IBT.NE.0.AND.IQK.NE.0.AND.IQB.NE.0) THEN
-c--u d mode
-               IF(IQB.EQ.8.AND.IQK.EQ.1) THEN
-                  BRFRAC(I) = BRCON*VCKM(1,1)
-c--c s mode
-               ELSEIF(IQB.EQ.10.AND.IQK.EQ.3) THEN
-                  BRFRAC(I) = BRCON*VCKM(2,2)
-               ENDIF
-            ENDIF
-         ENDIF
-      ENDDO
-C--add the CKM supressed top decay modes
-      DO I=1,2
-         DO J=1,3
-            IF(I.NE.J) THEN
-               CALL HWMODK( 6,BRCON*VCKM(I,J),100, 2*I,(-2)*J+1, 5,0,0)
-               CALL HWMODK(-6,BRCON*VCKM(I,J),100,(-2)*I, 2*J-1,-5,0,0)
-            ENDIF
-         ENDDO
-      ENDDO
-
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/upevnt_hw.F b/Generators/Herwig_i/src/upevnt_hw.F
deleted file mode 100644
index 14715faea886446dc35b0f5dbad1325e6771cee5..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/upevnt_hw.F
+++ /dev/null
@@ -1,30 +0,0 @@
-      SUBROUTINE UPEVNT
-c     routine for Les Houches interface to external pythir routines
-c     adapted from base pythia code. 
-c     Ian Hinchliffe (May 2002)
-c     Adapted for Herwig by Borut Paul Kersevan (February 2003)
-
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
- 
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-
-      IF(ATLASCHOICE.EQ.CHARYBDIS) CALL USECHARYBDIS
-      IF(ATLASCHOICE.EQ.ACERMC) THEN
-         CALL USEACERMC
-         CALL ACERMC_ACSET12_HW(0)
-      ENDIF
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL USEALPGEN
-      IF(ATLASCHOICE.EQ.MADGRAPH) CALL USEMADGRAPH
-      IF(ATLASCHOICE.EQ.MADCUP) CALL USEMADCUP
-C      IF(ATLASCHOICE.EQ.TOPREX) CALL USETOPREX
-c      IF(ATLASCHOICE.EQ.LHAEXT) CALL USELHAEXT
-      IF(ATLASCHOICE.EQ.MCATNLO) CALL USEMCATNLO
-      IF(ATLASCHOICE.EQ.LHEF) CALL USELHEF
-      IF(ATLASCHOICE.EQ.HORACE) CALL USEHORACE
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/upinit_hw.F b/Generators/Herwig_i/src/upinit_hw.F
deleted file mode 100644
index 22025ababea984cb1cc4b4c6ad810f21c32d833f..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/upinit_hw.F
+++ /dev/null
@@ -1,29 +0,0 @@
-      SUBROUTINE UPINIT
-c     interface to external pythia processes using Les Houches accord
-c     Adapted for pythia 6.203
-c     Ian Hinchliffe (may 2002)
-c     Adapted for Herwig by Borut Paul Kersevan (February 2003)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
- 
-#include "GeneratorFortranCommon/heprup.inc"
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-
-      IF(ATLASCHOICE.EQ.CHARYBDIS) CALL INITCHARYBDIS
-      IF(ATLASCHOICE.EQ.ACERMC) THEN
-         CALL INITACERMC
-         CALL ACERMC_ACSET12_HW(-1)
-      ENDIF
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL INITALPGEN
-      IF(ATLASCHOICE.EQ.MADGRAPH) CALL INITMADGRAPH
-      IF(ATLASCHOICE.EQ.MADCUP) CALL INITMADCUP
-C      IF(ATLASCHOICE.EQ.TOPREX) CALL INITTOPREX
-c      IF(ATLASCHOICE.EQ.LHAEXT) CALL INITLHAEXT
-      IF(ATLASCHOICE.EQ.MCATNLO) CALL INITMCATNLO
-      IF(ATLASCHOICE.EQ.LHEF) CALL INITLHEF
-      IF(ATLASCHOICE.EQ.HORACE) CALL INITHORACE
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/upveto_hw.F b/Generators/Herwig_i/src/upveto_hw.F
deleted file mode 100644
index 03c9aa07ec46818078832469526134d022d16139..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/upveto_hw.F
+++ /dev/null
@@ -1,14 +0,0 @@
-      SUBROUTINE UPVETO(IPVETO)
-c     interface to external pythia processes using Les Houches accord
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
- 
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL VETOALPGEN(IPVETO)
-
-      RETURN
-      END
diff --git a/Generators/Herwig_i/src/wgtacp.cxx b/Generators/Herwig_i/src/wgtacp.cxx
deleted file mode 100644
index 5d5aafd5afd62f0f1e948d7c0fc2d7feafadcfa9..0000000000000000000000000000000000000000
--- a/Generators/Herwig_i/src/wgtacp.cxx
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access Lhef_i common block WGTACP
-#include "Herwig_i/wgtacp.h"
-
-// set pointer to zero at start
-Wgtacp::WGTACP* Wgtacp::s_wgtacp = 0;
-
-// Constructor
-Wgtacp::Wgtacp(){
-}
-
-// Destructor
-Wgtacp::~Wgtacp(){
-}
-
diff --git a/Generators/Horace_i/CMakeLists.txt b/Generators/Horace_i/CMakeLists.txt
deleted file mode 100644
index 3da55aef82f761d88727331a9577292aa3ab8d5c..0000000000000000000000000000000000000000
--- a/Generators/Horace_i/CMakeLists.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-################################################################################
-# Package: Horace_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( Horace_i )
-
-# this line failed automatic conversion in cmt2cmake :
-# macro Horace_i_fflags ""  32                "-DFVOIDP=INTEGER*4 -fno-second-underscore" 64                "-DFVOIDP=INTEGER*8 -fno-second-underscore"
-
-# Component(s) in the package:
-atlas_add_library( Horace_i
-                   src/*.F
-                   NO_PUBLIC_HEADERS )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-
diff --git a/Generators/Horace_i/share/CSC.ExtProcess.HerwigHorace.py b/Generators/Horace_i/share/CSC.ExtProcess.HerwigHorace.py
deleted file mode 100644
index 45eb5b52706b7d174bcf40b46eb69f3f76b396d2..0000000000000000000000000000000000000000
--- a/Generators/Horace_i/share/CSC.ExtProcess.HerwigHorace.py
+++ /dev/null
@@ -1,75 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-
-
-#--------------------------------------------------------------
-# Generator
-#--------------------------------------------------------------
-
-# ... Main generator : Herwig
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from Herwig_i.Herwig_iConf import Herwig
-topAlg += Herwig()
-
-Herwig = topAlg.Herwig
-Herwig.HerwigCommand = ["iproc horace",
-                        "modpdf 10042",
-                        "autpdf HWLHAPDF", 
-                        "msflag 1",
-                        "jmbug 0",
-                        "jmueo 1",
-                        "ptjim 4.91",
-                        "jmrad 73 1.8",
-                        "pltcut 0.0000000000333",
-                        "ptmin 10.",
-                        "prsof 0",
-                        "rmass 198 80.425",
-                        "rmass 199 80.425",
-                        "rmass 200 91.19",
-                        "gamw 2.124",
-                        "gamz 2.495"]
-
-#--------------------------------------------------------------
-# Filter
-#--------------------------------------------------------------
-
-from GeneratorFilters.GeneratorFiltersConf import LeptonFilter
-topAlg += LeptonFilter()
-
-LeptonFilter = topAlg.LeptonFilter
-LeptonFilter.Ptcut = 5000.
-LeptonFilter.Etacut = 2.8
-
-#---------------------------------------------------------------
-# POOL / Root output
-#---------------------------------------------------------------
-
-try:
-     Stream1.RequireAlgs +=  [ "LeptonFilter" ]
-except Exception, e:
-     pass
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
-#--------------------------------------------------------------
-# Configuration for EvgenJobTransforms
-#--------------------------------------------------------------
-from EvgenJobOptions.HerwigEvgenConfig import evgenConfig
-evgenConfig.efficiency = 0.71
diff --git a/Generators/Horace_i/share/README b/Generators/Horace_i/share/README
deleted file mode 100644
index 2e4d0788d93cdbea4475082bdd5695ad6505dfeb..0000000000000000000000000000000000000000
--- a/Generators/Horace_i/share/README
+++ /dev/null
@@ -1,5 +0,0 @@
-1) Make a soft link between horace conf file to horace.conf, which will be searched by Horace_i
-for example horace.conf -> PATH_TO_SHARE/horace_3.1_W+W-_mu_exp_unweighted.conf
-
-2) The events file listed in conf ("file where event are store horace_3.1_W+W-_mu_exp_unweighted.evts"
-should be reachable from the run directory
diff --git a/Generators/Horace_i/share/horace_3.1_W+W-_mu_exp_unweighted.conf b/Generators/Horace_i/share/horace_3.1_W+W-_mu_exp_unweighted.conf
deleted file mode 100644
index 70600ae02c7f548ed58b7375b7a825e87e0e9f01..0000000000000000000000000000000000000000
--- a/Generators/Horace_i/share/horace_3.1_W+W-_mu_exp_unweighted.conf
+++ /dev/null
@@ -1,24 +0,0 @@
- Horace 3.1 LHA configuration
- ----------------------------
- file where the events are stored
- horace_3.1_W+W-_mu_exp_unweighted.evts                          
- W+ and W- production
- CTEQ6 PDFs (with iset = 3)                        
- CoM energy
-  14000.
- Initial state hadrons
- 2212
- 2212
- unweighted events
- idwtup
- -3
- xsecup
-  19261.937
- xerrup
-  150.117922
- xmaxup
-  1156718.86
- 1/alpha_em
-  127.918
- number of entries in the file (at least)
- 1000
diff --git a/Generators/Horace_i/share/horace_3.1_W+W-_mu_exp_unweighted.stat b/Generators/Horace_i/share/horace_3.1_W+W-_mu_exp_unweighted.stat
deleted file mode 100644
index 7fd1f159f74057e741a09cb8328ede9fef696836..0000000000000000000000000000000000000000
--- a/Generators/Horace_i/share/horace_3.1_W+W-_mu_exp_unweighted.stat
+++ /dev/null
@@ -1,72 +0,0 @@
-  
- Requested number of unweighed events:   1000.
- Unweighted event n.   1000.
- Weighted event n.   76390.
- Weighted events after cuts  41451
-  
- Initial state particles:  2212   2212
- PDFs: CTEQ6 PDFs (with iset = 3)                        
-  
- C. of m. energy =  14000.00 GeV
- W+ & W- production, decaying into muons
-  
- W mass      =   80.398 GeV
- W width     =   2.124 GeV
- Z mass      =   91.1876 GeV
- Z width     =   2.4952 GeV
- sin^2(th_w) =   0.222645853
- delta_r     =   0. (one-loop EW delta_r)        
-  
- EW RC: exp    (MATCHED QED PS)
-  EW input scheme:  0
-  
- hit or miss cross section  =  19460.4818407 +-    611.3532226 (pb)
- h. or m. out-of-range bias =      0.0000000 +-     0.0000000 (pb)
- weighted cross section     =  19261.9370279 +-    150.1179220 (pb)
-  
- h. or m. efficiency =   1.30907 %    (out of range =      0)
- (upper limit =  150., to be set to  116.715618)
-  
- Events stored in file: 
- Wmunu_CTEQ6L_EW_1000/horace_3.1_W+W-_mu_exp_unweighted.evts                                                                                           
- Partial cross sections:
-   0 photons:  14037.014 +-  112.5389           (npoints:  30295)
-   1 photons:  4964.61309 +-  103.701613           (npoints:  9413)
-   2 photons:  247.148803 +-  31.380328           (npoints:  1535)
-   3 photons:  13.1568248 +-  9.26091784           (npoints:  200)
-   4 photons:  0.00427522415 +-  0.00329264048           (npoints:  7)
-   5 photons: -4.56739938E-10 +-  4.56736949E-10           (npoints:  1)
-  
- Negative weights statistics:
-  n. of weighted points   = 683
-  n. of unweighted events = 0
-  cross section  -25.1806509 +-  5.18946746
-  
- partial q-q['][bar] contributions
- -5 4   0.501566194
- -4 1   108.817925
- -4 3   872.415311
- -4 5   0.00318796509
- -3 2   188.251423
- -3 4   858.433368
- -2 1   3030.31559
- -2 3   71.2180993
- -1 2   4444.74792
- -1 4   54.3706076
- 1 -4   88.545512
- 1 -2   2984.43548
- 2 -3   194.672422
- 2 -1   4346.48278
- 3 -4   993.637153
- 3 -2   66.0327203
- 4 -5   2.74967617
- 4 -3   896.984121
- 4 -1   57.3237954
- 5 -4   1.99836928
- Sum:   19261.937
- ....
- Started by user ID 444 on grid15.pv.infn.it, process ID 22862
- ....
- Running time statistics:
- program started  146 s ago
- CPU time =  145 s (of which  145 s user time)
diff --git a/Generators/Horace_i/share/jobOptions.Herwig.AtlasHorace.py b/Generators/Horace_i/share/jobOptions.Herwig.AtlasHorace.py
deleted file mode 100755
index e9f9c80f98fde4f5aad145055d4c3d3d2fdb1d71..0000000000000000000000000000000000000000
--- a/Generators/Horace_i/share/jobOptions.Herwig.AtlasHorace.py
+++ /dev/null
@@ -1,131 +0,0 @@
-###############################################################
-#
-# Job options file Horace_i/jobOptions.Herwig.AtlasHorace.py
-#
-#==============================================================
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 100
-OUTPUT="/tmp/mc13.005143.HoraceZmumu.evgen.EVNT.v13004000._00001.pool.root"
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["HERWIG 390020611 821000366", "HERWIG_INIT 820021 2347532"]
-
-# Horace core jobOption
-include ( "Horace_i/CSC.ExtProcess.HerwigHorace.py")
-
-# nospac = true switch off initial-state radiation. Only forced splitting of non-valence partons is generated.
-# noshower = true switch off the parton shower
-
-#from TruthExamples.TruthExamplesConf import PrintMC
-#job += PrintMC()
-#job.PrintMC.McEventKey = "GEN_EVENT" #the storegate key for reading
-#job.PrintMC.VerboseOutput = TRUE     #dumps the event to stout (TRUE/FALSE)
-#job.PrintMC.PrintStyle = "Barcode"   #Event print style (Vertex/Barcode)
-#job.PrintMC.FirstEvent = 1           #First event to print
-#job.PrintMC.LastEvent = 10           #Last event to print or all after FirstEvent are printed
-
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-#from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-#Stream1 = AthenaPoolOutputStream( "Stream1" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-#Stream1.ItemList += [ "2101#*", "133273#*" ]
-#Stream1.OutputFile = "Wmunu-herwig-horace.pool.root"
-
-
-#---------------------------------------------------------------
-# On the fly conversion from GEN_EVENT to SpclMC
-#---------------------------------------------------------------
-
-##########################
-# Configure McAod options
-
-#from McParticleAlgs.McAodFlags import jobproperties as jp
-#jp.McAodFlags.doTruthEtIsolations = False
-
-########
-# Create the AOD McEventCollection
-#
-#from McParticleAlgs.JobOptCfg import McAodBuilder
-#from McParticleTools.McParticleToolsConf import NoopFilterTool
-#from McParticleTools.McParticleToolsConf import TruthParticleCnvTool
-#topAlg += McAodBuilder(
-#    "McAodBuilder",
-#    OutputLevel = INFO,
-#    FilterTool = NoopFilterTool(
-#                   McEvents = "GEN_EVENT",
-#                   DoEtIsolations = jp.McAodFlags.doTruthEtIsolations()
-#                   ),
-#    CnvTool = TruthParticleCnvTool(
-#                   McEvents = "GEN_AOD",
-#                   TruthParticlesOutput = "SpclMC",
-#                   DoEtIsolations = jp.McAodFlags.doTruthEtIsolations()
-#                   )
-#    )
-
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-#include( "ParticleBuilderOptions/McAOD_PoolCnv_jobOptions.py")
-
-#from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-#outStream = AthenaPoolOutputStream("OutStream")
-#outStream.ItemList  = [ "EventInfo#McEventInfo" ]
-#outStream.ItemList += [ "McEventCollection#GEN_EVENT" ]
-#outStream.ItemList += [ "McEventCollection#GEN_AOD" ]
-#outStream.ItemList += [ "TruthParticleContainer#SpclMC" ]
-##outStream.ItemList += [ "TruthEtIsolationsContainer#TruthEtIsol_GEN_EVENT" ]
-#outStream.OutputFile = OUTPUT
-
-#----------------------------------------------------------------
-# Ntuple service output
-#----------------------------------------------------------------
-
-#theApp.Dlls += [ 'RootHistCnv' ]                               
-#theApp.HistogramPersistency = 'ROOT'
-#HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-#HistogramPersistencySvc.OutputFile  = "herwig_horace_zmumu_hist.root"
-#THistSvc = Service( 'THistSvc' )
-#THistSvc.Output = [ "AANT DATAFILE='herwig_horace_zmumu_cbnt.root' OPT='RECREATE'" ]
-
-#theApp.Dlls   += [ "AnalysisTools" ]
-#AANTupleStream = Algorithm( "AANTupleStream" )
-#AANTupleStream.ExistDataHeader = False
-#AANTupleStream.OutputName = "herwig_horace_zmumu_cbnt.root"
-#theApp.TopAlg += [ "AANTupleStream" ]
-
-#include( 'CBNT_Athena/CBNT_AthenaAware_jobOptions.py' )             
-#include( 'CBNT_Athena/CBNT_EventInfo_jobOptions.py' )          
-#include( 'RecExCommon/CBNT_Truth_jobOptions.py' )
-
-#
-#  Atlfast
-#
-#---------------------------------------------------------------
-# Uncomment only one of the next two files at a time (ie.. make either CBNT or AOD).
-#include( "DC3_joboptions/GentoAtlfasttoCBNT.py" )
-#include( "DC3_joboptions/GentoAtlfasttoAOD.py" )
-
-#CBNT_Atlfast.FillHistory = True
-#CBNT_Atlfast.NtupleLocID="/FILE1/CBNT/t3333" 
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Horace_i/src/upevnt_horace.F b/Generators/Horace_i/src/upevnt_horace.F
deleted file mode 100644
index 0d42a7651f4fd57841985bcf776b7578387fdf84..0000000000000000000000000000000000000000
--- a/Generators/Horace_i/src/upevnt_horace.F
+++ /dev/null
@@ -1,132 +0,0 @@
-      SUBROUTINE USEHORACE
-c     M. Bellomo - C.M. Carloni Calame (october 2007)
-c     Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c     #include "GeneratorModules/heprup.inc"
-c     #include "GeneratorModules/hepeup.inc"
-c     LES HOUCHES COMMON BLOCKS
-c     Les Houches accord common block hep-ph/0109068
-c     User process event commonblock.
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &     ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),
-     &     PUP(5,MAXNUP),VTIMUP(MAXNUP),SPINUP(MAXNUP)
-      SAVE /HEPEUP/
-c     User process initialization commonblock.
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &     IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &     LPRUP(MAXPUP)
-      SAVE /HEPRUP/
-      common/horaceinterface/alpha,iu
-c      double precision pw(0:3),p3(0:3),p4(0:3),qph(40,0:3),ptmp(0:3)
-      character*1 tic
-      DOUBLE PRECISION Q2,ALEM,ALPS
-      COMMON /TRASFVAR/ Q2, ALEM, ALPS
-c     Constants  for run 
-      DOUBLE PRECISION SS,SQRTS
-      COMMON  /SAVV/   SS,SQRTS
-c      INTEGER ISUB
-      INTEGER I
-c     Counters
-      INTEGER NNT1,NNT2
-      DOUBLE PRECISION SIGSUM
-      COMMON/COUNTER/NNT1,NNT2,SIGSUM
-      data nnt1,nnt2,sigsum /0,0,0.d0/
-c     save kinematics for ntuples
-      DOUBLE PRECISION PSHAT,COSTH,X1,X2,EE1,SIGEVS,RABS
-      COMMON/SAVMAN/PSHAT,COSTH,X1,X2,EE1,SIGEVS,RABS
-c      DOUBLE PRECISION SIGWE 
-c      DOUBLE PRECISION PP1(4),PP2(4)
-      DOUBLE PRECISION ETA1,ETA2,PTLEP
-c      DOUBLE PRECISION qtmp(0:3),minv
-      COMMON/CUCU/ETA1,ETA2,PTLEP
-
-c     alpha for QED radiation from HORACE
-      AQEDUP = alpha            
-c     AQCDUP = ALPS
-
-      read(iu,*)tic,nev,npart,XWGTUP,SCALUP
-      read(iu,*)idup(1),icolup(1,1),icolup(2,1),pz1
-      read(iu,*)idup(2),icolup(1,2),icolup(2,2),pz2
-      
-      pup(1,1) = 0.d0
-      pup(2,1) = 0.d0
-      pup(3,1) = pz1
-      pup(4,1) = sqrt(pz1**2)
-      pup(5,1) = 0.d0
-
-      pup(1,2) = 0.d0
-      pup(2,2) = 0.d0
-      pup(3,2) = pz2
-      pup(4,2) = sqrt(pz2**2)
-      pup(5,2) = 0.d0
-      
-      NUP = npart + 1
-
-      do i = 3+1,NUP
-         read(iu,*)idup(i),icolup(1,i),icolup(2,i),
-     $        pup(1,i),pup(2,i),pup(3,i),pup(5,i)
-         pup(4,i)=sqrt(pup(1,i)**2+pup(2,i)**2+pup(3,i)**2+pup(5,i)**2)
-      enddo
-
-c     trick to get correct mother pdg id for W and Z processes
-      if(abs(idup(4)).eq.abs(idup(5))) then
-         idup(3) = 23
-      else
-         if(abs(idup(4)).eq.13) then
-            idup(3) = -((idup(4)/abs(idup(4)))*24)
-         else if(abs(idup(5)).eq.13) then
-            idup(3) = -((idup(5)/abs(idup(5)))*24)
-         endif   
-      endif
-c     "intermediate" boson, invariant mass to be conserved, sum of lepton momenta!!
-c     see hep-ph/0109068 -- intermediate particles have idup = 0
-      
-c      idup(3)  = 0
-      pup(1,3) = pup(1,4) + pup(1,5)
-      pup(2,3) = pup(2,4) + pup(2,5)
-      pup(3,3) = pup(3,4) + pup(3,5)
-      pup(4,3) = pup(4,4) + pup(4,5)
-      am2 = pup(4,3)**2 - pup(3,3)**2 - pup(2,3)**2 - pup(1,3)**2
-      pup(5,3) = am2/abs(am2) * sqrt(abs(am2))
-     
-      PSHAT=(pup(4,1) + pup(4,2))**2
-      
-      SIGSUM = SIGSUM+XWGTUP
-      
-      ISTUP(1)=-1
-      ISTUP(2)=-1
-      ISTUP(3)= 2  ! intermeditate time-like boson
-      do k = 4,NUP
-         ISTUP(k) = 1         
-      enddo
-      
-c     Mother codes.
-      MOTHUP(1,1) = 0
-      MOTHUP(2,1) = 0
-      MOTHUP(1,2) = 0
-      MOTHUP(2,2) = 0
-      MOTHUP(1,3) = 1
-      MOTHUP(2,3) = 2
-      MOTHUP(1,4) = 3
-      MOTHUP(2,4) = 3
-      MOTHUP(1,5) = 3
-      MOTHUP(2,5) = 3
-      
-      if (NUP.gt.5) then
-         do k = 6,NUP
-            MOTHUP(1,k) = 3
-            MOTHUP(2,k) = 3
-         enddo
-      endif
-      
-      RETURN
-      END
diff --git a/Generators/Horace_i/src/upinit_horace.F b/Generators/Horace_i/src/upinit_horace.F
deleted file mode 100644
index 32f4da6f070dbde4c24c8a8e90fd248e95cbc1ec..0000000000000000000000000000000000000000
--- a/Generators/Horace_i/src/upinit_horace.F
+++ /dev/null
@@ -1,109 +0,0 @@
-      SUBROUTINE INITHORACE
-c     M. Bellomo - C.M. Carloni Calame (october 2007)
-c     Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      character*60 tmpchar
-c     #include "GeneratorModules/heprup.inc"
-c     LES HOUCHES COMMON BLOCKS
-c     Les Houches accord common block hep-ph/0109068
-c     User process event commonblock.
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &     ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),
-     &     PUP(5,MAXNUP),VTIMUP(MAXNUP),SPINUP(MAXNUP)
-      SAVE /HEPEUP/
-c     User process initialization commonblock.
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &     IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &     LPRUP(MAXPUP)
-      SAVE /HEPRUP/      
-      logical opyn
-      character*100 horaceevents
-      DOUBLE PRECISION SS,SQRTS
-      COMMON  /SAVV/   SS,SQRTS
-      common/horaceinterface/alpha,iu
-
-      write(*,*)'*************************************************'
-      WRITE(*,*)'* Horace_i: ATLAS interface to HORACE generator *'
-      write(*,*)'*************************************************'
-
-      iconf = 49
-      opyn = .TRUE.
-      do while(opyn)
-         inquire(unit=iconf,OPENED=opyn)
-         iconf = iconf + 1
-      enddo
-      
-      iu   = iconf + 1
-      opyn = .TRUE.
-      do while(opyn)
-         inquire(unit=iu,OPENED=opyn)
-         iu = iu + 1
-      enddo
-      
-      write(*,*)'==============================================='
-      write(*,*)'Reading in horace.conf Horace LHA configuration'
-      write(*,*)'file units are ',iconf,' and ',iu
-      write(*,*)'==============================================='
-      open(iconf,file='horace.conf',status='old')
-      read(iconf,*)
-      read(iconf,*)
-      read(iconf,*)
-      read(iconf,*)horaceevents
-      
-c     linking unit iu to event file
-      WRITE(*,*) 'reading HORACE events from ',horaceevents
-      open(iu,file=horaceevents,status='old')
-      read(iconf,*)tmpchar
-      write(*,*)'Events for ',tmpchar
-      read(iconf,*)tmpchar
-      write(*,*)'selected pdfs are: ',tmpchar
-      read(iconf,*)
-      read(iconf,*)sqrts
-      read(iconf,*)
-      read(iconf,*)IDBMUP(1)
-      read(iconf,*)IDBMUP(2)
-      read(iconf,*)
-      read(iconf,*)
-      read(iconf,*)idwtup
-      read(iconf,*)
-      read(iconf,*)xsecup(1)
-      read(iconf,*)
-      read(iconf,*)xerrup(1)
-      read(iconf,*)
-      read(iconf,*)xmaxup(1)
-      read(iconf,*)
-      read(iconf,*)alpha
-      
-      alpha = 1.d0/alpha
-      
-      SS=SQRTS**2
-      EBMUP(1) = 0.5D0*SQRTS
-      EBMUP(2) = 0.5D0*SQRTS
-      
-c     Set up the external process.
-      NPRUP    = 1
-      LPRUP(1) = 1001
-      
-c     PDF'S FOR THE BEAMS; WILL BE EVALUATED USING THE NDNS VARIABLE
-c     READ IN EARLIER
-      PDFGUP(1) = -1
-      PDFGUP(2) = -1
-      PDFSUP(1) = -1
-      PDFSUP(2) = -1
-      
-c     PDFGUP(1) = 1
-c     PDFGUP(2) = 1
-c     PDFSUP(1) = 1
-c     PDFSUP(2) = 1
-      
-      RETURN
-      END
diff --git a/Generators/HvGen_i/CMakeLists.txt b/Generators/HvGen_i/CMakeLists.txt
deleted file mode 100644
index d1b19ccd9e9b081414c7e5a3347951507f02a6a2..0000000000000000000000000000000000000000
--- a/Generators/HvGen_i/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-################################################################################
-# Package: HvGen_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( HvGen_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PRIVATE
-                          Generators/GeneratorFortranCommon )
-
-# External dependencies:
-find_package( Pythia6 )
-
-# Component(s) in the package:
-atlas_add_library( HvGen_i
-                   src/*.F
-                   NO_PUBLIC_HEADERS
-                   INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${PYTHIA6_LIBRARIES} GeneratorFortranCommonLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-atlas_install_runtime( share/inputParHvGen.dat share/HV.lha.dat )
-
diff --git a/Generators/HvGen_i/doc/HvGen.pdf b/Generators/HvGen_i/doc/HvGen.pdf
deleted file mode 100755
index eb816af89d1bd08bab084c5acdb2ad7793e7277b..0000000000000000000000000000000000000000
Binary files a/Generators/HvGen_i/doc/HvGen.pdf and /dev/null differ
diff --git a/Generators/HvGen_i/doc/HvGen.tex b/Generators/HvGen_i/doc/HvGen.tex
deleted file mode 100755
index b2970b874c50cde25f4c0f65796d8b680afcd4a2..0000000000000000000000000000000000000000
--- a/Generators/HvGen_i/doc/HvGen.tex
+++ /dev/null
@@ -1,41 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\textwidth=6.5in
-\textheight=9.0in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}   
-\def\topfraction{1.}
-\def\textfraction{0.}           
-\begin{document}
-\title{HvGen\_i: An interface between HiddenValley Generator and Athena\\
-Version in release 13.0.0 and later}
-\author{ Stefano Giagu (Stefano.Giagu@cern.ch) }
-%\today
-
-\maketitle           
-
-This package runs HV generator from within Athena. \\See the example
-in {\bf HvGen\_i/share/jobOptions.HvGenPythia.py } which show how to
-read HV events and hadronize them using Pythia.
-
-Users must first run HV Generator in standalone mode and make a file of events. An athena job
-then takes these events hadronizes them and passes them down the
-Athena event chain. The events must be made with a version of HV generator
-that is compatible.
-Compatible versions can be found in:
-/afs/cern.ch/user/g/giagu/public/HvGen and /afs/cern.ch/atlas/offline/external/hvgen
-
-To hadronize HV generated events with Pythia, you only need to run athena with the jobOptions
-file jobOptions.HvGenPythia.py by typing in the prompt \\
-{\it athena jobOptions.HvGenPythia.py}\\
-
-More infomation about Hidden Valley Models and HV generator here: \\
-/afs/cern.ch/user/g/giagu/public/HvGen/doc \\
-/afs/cern.ch/atlas/offline/external/hvgen/doc and in: \\
-http://www.phys.washington.edu/users/strasslr/hv/hv.htm
-
-\end{document}
diff --git a/Generators/HvGen_i/doc/packagedoc.h b/Generators/HvGen_i/doc/packagedoc.h
deleted file mode 100644
index 783a12fadf4c0ed703eca273ae58375636b833cd..0000000000000000000000000000000000000000
--- a/Generators/HvGen_i/doc/packagedoc.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-
- <i> An interface between HiddenValley Generator and Athena
-
-This package runs HV generator from within Athena. \\See the example
-in HvGen_i/share/jobOptions.HvGenPythia.py  which show how to
-read HV events and hadronize them using Pythia.
-
-Users must first run HV Generator in standalone mode and make a file of events. An athena job
-then takes these events hadronizes them and passes them down the
-Athena event chain. The events must be made with a version of HV generator
-that is compatible.
-Compatible versions can be found in:
-/afs/cern.ch/user/g/giagu/public/HvGen and /afs/cern.ch/atlas/offline/external/hvgen
-
-To hadronize HV generated events with Pythia, you only need to run athena with the jobOptions
-file jobOptions.HvGenPythia.py by typing in the prompt 
- athena jobOptions.HvGenPythia.py
-
-More infomation about Hidden Valley Models and HV generator here: 
-
-/afs/cern.ch/user/g/giagu/public/HvGen/doc 
-
-/afs/cern.ch/atlas/offline/external/hvgen/doc and in: 
-
-http://www.phys.washington.edu/users/strasslr/hv/hv.htm 
-
-@author Stefano Giagu (Stefano.Giagu@cern.ch) </i>
-
-@page HvGen_i_page 
-
-
-
-*/
diff --git a/Generators/HvGen_i/share/inputParHvGen.dat b/Generators/HvGen_i/share/inputParHvGen.dat
deleted file mode 100755
index c63f24d27ec4fe4a213a37850415678865bae009..0000000000000000000000000000000000000000
--- a/Generators/HvGen_i/share/inputParHvGen.dat
+++ /dev/null
@@ -1,10 +0,0 @@
- PMAS(36,1)=  30.! mass of vpizero (as A0)
- PMAS(36,4)=  10.! lifetime of vpizero in mm (as A0)
- PMAS(36,2)=  0.000720411133! width of vpizero (as A0)
- PMAS(36,3)=  0.00720411133! B-W cutoff of vpizero (as A0)
- PMAS(35,1)=  31.0222222! mass of vpiplus (as H0)
- PMAS(35,4)=  0.1! lifetime of vpiplus in mm (as H0)
- PMAS(35,2)=  0.000677304173! width of vpiplus (as H0)
- PMAS(35,3)=  0.00677304173! B-W cutoff of vpiplus (as H0)
- MDCY(35,1)= 0! if this is zero, vpiplus (as H0) does not decay
- Input HV.lha.dat
diff --git a/Generators/HvGen_i/share/jobOptions.HvGenPythia.py b/Generators/HvGen_i/share/jobOptions.HvGenPythia.py
deleted file mode 100755
index 62282e7945becf3187697c8edbf41bab4ff824c6..0000000000000000000000000000000000000000
--- a/Generators/HvGen_i/share/jobOptions.HvGenPythia.py
+++ /dev/null
@@ -1,74 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.Logging import logging
-
-evgenLog = logging.getLogger('csc_evgen')
-
-# special setup for event generation
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" )
-
-# remember output level I set
-
-evgenMsgLevel = INFO
-
-# other includes needed by the physics file
-include( "PartPropSvc/PartPropSvc.py" )
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-svcMgr += AtRndmGenSvc()
-
-# get a handle on topalg
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-svcMgr.MessageSvc.OutputLevel = evgenMsgLevel
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-atRndmGenSvc = svcMgr.AtRndmGenSvc
-AtRndmGenSvc.Seeds = ["PYTHIA 330020611 841000366", "PYTHIA_INIT 824021 3247532"]
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-
-from TruthExamples.TruthExamplesConf import PrintMC
-topAlg += PrintMC()
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-Pythia = topAlg.Pythia
-Pythia.PythiaCommand = ["pyinit user hvgen"]
-# decay particles anyware
-Pythia.PythiaCommand += ["pydat1 parj 71 20000."]
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-#
-#include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-#theApp.Dlls   += [ "GeneratorObjectsAthenaPoolPoolCnv" ]
-#Stream1 = Algorithm( "Stream1" )
-#Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]
-#
-#Stream1.OutputFile = "HV.pool.root"
-#
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/HvGen_i/src/inithvgen.F b/Generators/HvGen_i/src/inithvgen.F
deleted file mode 100755
index e7f7d311413cf89795fb26e78df8bd13375cfaad..0000000000000000000000000000000000000000
--- a/Generators/HvGen_i/src/inithvgen.F
+++ /dev/null
@@ -1,137 +0,0 @@
-C******************************************************
-C*          HV - Pythia interface.                    *
-C*            Version 1.0, 02/06/2007                 *
-C*                                                    *
-C*  - Reads particle masses from event file           *
-C*                                                    *
-C*     Written by S.Giagu sefano.giagu@cern.ch        *
-C*                                                    *
-C******************************************************
-
-C...UPINIT
-C...Routine called by PYINIT to set up user-defined processes.
-
-      SUBROUTINE INITHVGEN
-
-      IMPLICIT NONE
-
-C--GUP common block
-#include "GeneratorFortranCommon/heprup.inc"
-
-C...EXTERNAL statement links PYDATA on most machines
-      EXTERNAL PYDATA
-
-C--PYTHIA Particles Properties common Blocks
-c     INTEGER KCHG,MDCY,MDME,KFDP
-c     DOUBLE PRECISION PMAS,PARF,VCKM,BRAT
-c     COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-c     COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-
-      CHARACTER*120 DUMMY
-      CHARACTER*120 BUFF
-      CHARACTER*120 FILENAME
-      INTEGER IGOOD, IALL, I, IDUM, IDP
-      DOUBLE PRECISION XDUM
-C     DOUBLE PRECISION XXPR
-
-C...Set Particles properties and read input event file name
-      FILENAME='HV.newlha.dat'
-      WRITE(*,*) 'INITHVGEN Opening inputParHvGen.dat File'
-      OPEN(UNIT=76,STATUS='OLD',FILE='inputParHvGen.dat')
-      DO I=1,100
-        READ(76,'(A)',ERR=300,END=301) BUFF
-        IF(BUFF(2:6).EQ.'Input') THEN
-          FILENAME = BUFF(8:80)
-          WRITE(*,*) 'INITHVGEN: Input Event File is: ',FILENAME
-        ELSE IF (BUFF(1:1).EQ.'!') THEN
-C...Do nothing so far
-          WRITE(*,*) BUFF
-        ELSE
-          CALL PYGIVE(BUFF)
-        ENDIF
-      ENDDO
- 300  CONTINUE
-      WRITE(*,*) 'INITHVGEN::ERROR: Reading inputParHvGen.dat File'
- 301  CONTINUE
-      CLOSE(76)
-
-C...Set incoming beams: LHC.
-      IDBMUP(1)=2212
-      IDBMUP(2)=2212
-      EBMUP(1)=7000D0
-      EBMUP(2)=7000D0
-
-C--   open the file
-      WRITE(*,*) 'INITHVGEN Opening LesHouches Input File'
-c     OPEN(UNIT=77,STATUS='OLD',FILE='HV.newlha.dat')
-      OPEN(UNIT=77,STATUS='OLD',FILE=FILENAME)
-
-C--   read header
-      WRITE(*,*) 'INITHVGEN Read Header'
-      DO I=1,5
-        READ(77,'(A)') DUMMY !head + <init>
-      ENDDO
-      IF (DUMMY.NE.'<init>') GOTO 201   ! error
-      READ(77,*) IDBMUP(1), IDBMUP(2),EBMUP(1),EBMUP(2),
-     &           PDFGUP(1),PDFGUP(2),
-     &           PDFSUP(1),PDFSUP(2),IDWTUP,NPRUP
-      DO I=1,NPRUP
-        READ(77,*) XSECUP(I),XERRUP(I),XMAXUP(I),LPRUP(I)
-      ENDDO
-      READ(77,'(A)') DUMMY !</init>
-      IF (DUMMY.NE.'</init>') GOTO 204   ! error
-
-C--  check number of events in file and file consistency
-
-      IGOOD = 1
-      IALL  = 0
-      DO WHILE (IGOOD .EQ. 1)
-        READ(77,'(A)',END=100) DUMMY ! '<event>
-        IF (DUMMY.EQ.'</LesHouchesEvents>') GOTO 100
-        IF (DUMMY.NE.'<event>') GOTO 101   ! error
-         READ(77,*, END=102) IDP, IDUM, XDUM, XDUM, XDUM, XDUM
-         DO I=1,IDP
-            READ(77,'(A)',END=103) DUMMY
-         ENDDO
-        READ(77,'(A)',END=104) DUMMY ! '</event>'
-        IF (DUMMY.NE.'</event>') GOTO 104   ! error
-        IALL = IALL + 1
-      ENDDO
-
-
- 201  CONTINUE
-      WRITE(*,*) 'INITHVGEN::ERROR: <init> not found as expected'
-      GOTO 100
- 204  CONTINUE
-      WRITE(*,*) 'INITHVGEN::ERROR: </init> not found as expected'
-      GOTO 100
- 101  CONTINUE
-      WRITE(*,*) 'INITHVGEN::ERROR: <event> not found as expected'
-      GOTO 100
- 102  CONTINUE
-      WRITE(*,*) 'INITHVGEN::ERROR: line 1 event not found as expected'
-      GOTO 100
- 103  CONTINUE
-      WRITE(*,*) 'INITHVGEN::ERROR: part block not found as expected'
-      GOTO 100
- 104  CONTINUE
-      WRITE(*,*) 'INITHVGEN::ERROR: </event> not found as expected'
-      GOTO 100
- 100  CONTINUE
-      WRITE(*,*) 'INITHVGEN Read Header and ',IALL,' events '
-      REWIND(77)
-      DO I=1,5
-        READ(77,'(A)') DUMMY !head + <init>
-      ENDDO
-      READ(77,*) IDUM, IDUM, XDUM, XDUM, IDUM, IDUM, IDUM,
-     &           IDUM, IDUM, IDUM
-      DO I=1,IDUM
-        READ(77,'(A)') DUMMY
-      ENDDO
-      READ(77,'(A)') DUMMY !</init>
-      IF (DUMMY.NE.'</init>') THEN
-        WRITE(*,*) 'INITHVGEN::ERROR: rewinding file'
-      ENDIF
-
-      RETURN
-      END
diff --git a/Generators/HvGen_i/src/usehvgen.F b/Generators/HvGen_i/src/usehvgen.F
deleted file mode 100755
index 460a3da676bdfb8960acc87666f14bf2b1d71c0e..0000000000000000000000000000000000000000
--- a/Generators/HvGen_i/src/usehvgen.F
+++ /dev/null
@@ -1,62 +0,0 @@
-C******************************************************
-C*          HV - Pythia interface.                    *
-C*            Version 1.0, 02/06/2007                 *
-C*                                                    *
-C*  - Reads particle masses from event file           *
-C*                                                    *
-C*     Written by S.Giagu sefano.giagu@cern.ch        *
-C*                                                    *
-C******************************************************
-
-C...Routine called by PYEVNT or PYEVNW to get user process event
-
-      SUBROUTINE USEHVGEN
-
-      IMPLICIT NONE
-
-C--GUP common block
-#include "GeneratorFortranCommon/hepeup.inc"
-
-      CHARACTER*19 DUMMY
-      INTEGER I
-
-C--  read one event
-      NUP = 0
-
-      READ(77,'(A)',END=100) DUMMY ! '<event>
-      IF (DUMMY.EQ.'</LesHouchesEvents>') GOTO 105
-      IF (DUMMY.NE.'<event>') THEN
-         GOTO 101   ! error
-      ENDIF
-      READ(77,*, END=102) NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP
-      DO I=1,NUP
-         READ(77,*,END=103) IDUP(I),ISTUP(I),MOTHUP(1,I),MOTHUP(2,I),
-     &       ICOLUP(1,I),ICOLUP(2,I),
-     &       PUP(1,I),PUP(2,I),PUP(3,I),PUP(4,I),
-     &       PUP(5,I),VTIMUP(I),SPINUP(I)
-      ENDDO
-      READ(77,'(A)',END=104) DUMMY ! '</event>'
-      IF (DUMMY.NE.'</event>') GOTO 104   ! error
-
-      GOTO 100
-
- 101  CONTINUE
-      WRITE(*,*) 'USEHVGEN::ERROR: <event> not found where expected'
-      GOTO 100
- 102  CONTINUE
-      WRITE(*,*) 'USEHVGEN::ERROR: line 1 of eve not found as expected'
-      GOTO 100
- 103  CONTINUE
-      WRITE(*,*) 'USEHVGEN::ERROR: part block not found as expected'
-      GOTO 100
- 104  CONTINUE
-      WRITE(*,*) 'USEHVGEN::ERROR: </event> not found where expected'
-      GOTO 100
- 105  CONTINUE
-      WRITE(*,*) 'USEHVGEN end of events in list'
-      RETURN
- 100  CONTINUE
-      WRITE(*,*) 'USEHVGEN new event read'
-
-      RETURN
-      END
diff --git a/Generators/MadCUP_i/CMakeLists.txt b/Generators/MadCUP_i/CMakeLists.txt
deleted file mode 100644
index 49b269adb0bd3d9acbe320e709cdfd1d793c8cb0..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-################################################################################
-# Package: MadCUP_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( MadCUP_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PRIVATE
-                          Generators/GeneratorFortranCommon )
-
-# External dependencies:
-find_package( Herwig )
-find_package( Pythia6 )
-
-# Component(s) in the package:
-atlas_add_library( MadCUP_i
-                   src/*.F
-                   PUBLIC_HEADERS MadCUP_i
-                   PRIVATE_INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS} ${HERWIG_INCLUDE_DIRS}
-                   LINK_LIBRARIES GeneratorFortranCommonLib
-                   PRIVATE_LINK_LIBRARIES ${PYTHIA6_LIBRARIES} ${HERWIG_LIBRARIES} )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-atlas_install_runtime( share/event_input.dat )
-
diff --git a/Generators/MadCUP_i/MadCUP_i/hepup.inc b/Generators/MadCUP_i/MadCUP_i/hepup.inc
deleted file mode 100755
index b17929bac508f3a505c55ca54318516a2f5f2cef..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/MadCUP_i/hepup.inc
+++ /dev/null
@@ -1,29 +0,0 @@
-c global variables
-      integer maxNumSubProc
-      parameter( maxNumSubProc = 1000 )
-
-c then the local clone of HEPEUP
-      integer LMAXNUP
-      parameter ( LMAXNUP = 20 )
-      integer LNUP, LIDPRUP, LISTUP, LIDUP, LMOTHUP, LICOLUP, LSPINUP
-      integer colorprocess, decayprocess, numEntry
-      logical isFromCP
-      common /localHEPEUP/ LNUP(maxNumSubProc), LIDPRUP(maxNumSubProc), 
-     &               LISTUP(LMAXNUP,maxNumSubProc), 
-     &               LIDUP(LMAXNUP,maxNumSubProc), 
-     &               LMOTHUP(2,LMAXNUP,maxNumSubProc),
-     &               LSPINUP(LMAXNUP,maxNumSubProc),
-     &               LICOLUP(2,LMAXNUP,maxNumSubProc),
-     &               colorprocess,decayprocess,
-     &               numEntry(maxNumSubProc), isFromCP(maxNumSubProc) 
-
-
-c and local variables which are needed to fill the run common block HEPRUP
-      double precision sigtot, sdev, totalweight
-      integer numcolor,numdecay
-      common /localHEPRUP/ sigtot, sdev, totalweight,
-     &                     numcolor, numdecay
-
-
-
-
diff --git a/Generators/MadCUP_i/MadCUP_i/iofiles.inc b/Generators/MadCUP_i/MadCUP_i/iofiles.inc
deleted file mode 100755
index 6bfec231e931807452ce403846627670d9744562..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/MadCUP_i/iofiles.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-      character*50  colorLookupTable,decayLookupTable
-      character*100  eventDataFile
-
-      parameter ( eventDataFile      = 'event_input.dat     ' )
-
-      common /lookupTables/ colorLookupTable,decayLookupTable
-      
-      integer unitnumber
-      common /unit/ unitnumber
-
diff --git a/Generators/MadCUP_i/doc/MadCUP.pdf b/Generators/MadCUP_i/doc/MadCUP.pdf
deleted file mode 100755
index 2ab86ca932e6a71a235164269cadd1e35561cbe8..0000000000000000000000000000000000000000
Binary files a/Generators/MadCUP_i/doc/MadCUP.pdf and /dev/null differ
diff --git a/Generators/MadCUP_i/doc/MadCUP.tex b/Generators/MadCUP_i/doc/MadCUP.tex
deleted file mode 100755
index 2a18ca05cf647785de301dca6dd26ba580f0a252..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/doc/MadCUP.tex
+++ /dev/null
@@ -1,53 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\textwidth=6.5in
-\textheight=9.0in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}   
-\def\topfraction{1.}
-\def\textfraction{0.}           
-\begin{document}
-\title{MadCUP\_i: An interface between MadCUP and Athena\\
-Version in release 7.0.0 and later}
-\author{  Georgios Stavropoulos (George.Stavropoulos@cern.ch) }
-
-\maketitle           
-
-This package runs MadCUP  from within Athena. \\See the example
-in {\bf MadCUP\_i/share/jobOptions.MadCupPythia.py } and {\bf
-  MadCUP\_i/share/jobOptions.MadCupHerwig.py }  which show how to
-read MadCUP events and hadronize them using Pythia or Herwig
-
-Users must first run 
-MadCUP in standalone mode and make a file of events. An athena job
-then takes these events hadronizes them and passes them down the
-Athena event chain. The events must be made with a version of MadCUP
-that is compatible, recent versions that support the Les Houches
-interface should be acceptable.
-
-
-To hadronize {\bf MadCUP} generated events with Herwig, you only need to run athena with the jobOptions
-file jobOptions.MadCupHerwig.py by typing in the prompt \\
-{\it athena jobOptions.MadCupHerwig.py}\\
-
-To hadronize {\bf MadCUP} generated events with Pythia, you only need to run athena with the jobOptions
-file jobOptions.MadCupPythia.py by typing in the prompt \\
-{\it athena jobOptions.MadCupPythia.py}\\
-
-
-More infomation about MadCUP  here
-
-http://pheno.physics.wisc.edu/Software/MadCUP/
-
-\end{document}
-
-
-
-
-
-
-
diff --git a/Generators/MadCUP_i/share/event_input.dat b/Generators/MadCUP_i/share/event_input.dat
deleted file mode 100755
index 3d9a53c6a7876e77a8bcec4ca2376ba131ea5e7d..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/share/event_input.dat
+++ /dev/null
@@ -1,1024 +0,0 @@
-pp->tt~ +X, X=0,1,or 2 jets   
-       100  ! weighted events. Smallest probability is     0.9473
-         3 !number of general comment lines to follow
-CCCCCCCCCCCCCCCCCCCC Number of comment lines includes 2 CCCCC lines CCCCCCCCCC
- Cross section =   0.2087E+05+-   4.833     fb
-CCCCCCCCCCCCCCCCCCCC Do not make changes after this line CCCCCCCCCCCCCCCCCCCCC
-    2212    2212     7000.         7000.     ! beam ID and beam energies in GeV 
-       4       4      32      32 ! PDF groups and sets for the two beams 
-       1       1 ! weight method and #processes
-     20.87        0.4833E-02     22.030697    303
-    4  303
-       1      12       6
-   1    11   11    0    0    0
-   1   -12   11    0    0    0
-   1   -11   12    0    0    0
-   1    12   12    0    0    0
-   2   -24    3    0    0    0
-   2    24    4    0    0    0
-       2      12       6
-   1    13   11    0    0    0
-   1   -14   11    0    0    0
-   1   -11   12    0    0    0
-   1    12   12    0    0    0
-   2   -24    3    0    0    0
-   2    24    4    0    0    0
-       3      12       6
-   1    11   11    0    0    0
-   1   -12   11    0    0    0
-   1   -13   12    0    0    0
-   1    14   12    0    0    0
-   2   -24    3    0    0    0
-   2    24    4    0    0    0
-       4      12       6
-   1    13   11    0    0    0
-   1   -14   11    0    0    0
-   1   -13   12    0    0    0
-   1    14   12    0    0    0
-   2   -24    3    0    0    0
-   2    24    4    0    0    0
-   12  303
-       1      12       6
-  -1     1    0    0  501    0
-  -1    -1    0    0    0  502
-   2     6    1    0  501    0
-   2    -6    2    0    0  502
-   1     5    3    0  501    0
-   1    -5    4    0    0  502
-       2      12       6
-  -1     2    0    0  501    0
-  -1    -2    0    0    0  502
-   2     6    1    0  501    0
-   2    -6    2    0    0  502
-   1     5    3    0  501    0
-   1    -5    4    0    0  502
-       3      12       6
-  -1     3    0    0  501    0
-  -1    -3    0    0    0  502
-   2     6    1    0  501    0
-   2    -6    2    0    0  502
-   1     5    3    0  501    0
-   1    -5    4    0    0  502
-       4      12       6
-  -1     4    0    0  501    0
-  -1    -4    0    0    0  502
-   2     6    1    0  501    0
-   2    -6    2    0    0  502
-   1     5    3    0  501    0
-   1    -5    4    0    0  502
-       5      12       6
-  -1     5    0    0  501    0
-  -1    -5    0    0    0  502
-   2     6    1    0  501    0
-   2    -6    2    0    0  502
-   1     5    3    0  501    0
-   1    -5    4    0    0  502
-       6      12       6
-  -1    -1    0    0    0  501
-  -1     1    0    0  502    0
-   2    -6    1    0    0  501
-   2     6    2    0  502    0
-   1    -5    3    0    0  501
-   1     5    4    0  502    0
-       7      12       6
-  -1    -2    0    0    0  501
-  -1     2    0    0  502    0
-   2    -6    1    0    0  501
-   2     6    2    0  502    0
-   1    -5    3    0    0  501
-   1     5    4    0  502    0
-       8      12       6
-  -1    -3    0    0    0  501
-  -1     3    0    0  502    0
-   2    -6    1    0    0  501
-   2     6    2    0  502    0
-   1    -5    3    0    0  501
-   1     5    4    0  502    0
-       9      12       6
-  -1    -4    0    0    0  501
-  -1     4    0    0  502    0
-   2    -6    1    0    0  501
-   2     6    2    0  502    0
-   1    -5    3    0    0  501
-   1     5    4    0  502    0
-      10      12       6
-  -1    -5    0    0    0  501
-  -1     5    0    0  502    0
-   2    -6    1    0    0  501
-   2     6    2    0  502    0
-   1    -5    3    0    0  501
-   1     5    4    0  502    0
-      11      12       6
-  -1    21    0    0  502  503
-  -1    21    0    0  501  502
-   2     6    1    0  501    0
-   2    -6    2    0    0  503
-   1     5    3    0  501    0
-   1    -5    4    0    0  503
-      12      12       6
-  -1    21    0    0  501  502
-  -1    21    0    0  502  503
-   2     6    1    0  501    0
-   2    -6    2    0    0  503
-   1     5    3    0  501    0
-   1    -5    4    0    0  503
-      1    303     12     11      1  20.870510      202.03392     0.77579519E-02 0.11800000    
-  1     27.141139             0.000      9.    21
-  2    -1535.6794             0.000      9.    21
-  5     23.195130        -24.885621        -51.387030            0.8587E-05  9.     5
-  6     40.242028        -33.971289        -398.39814            0.6211E-05  9.    -5
-  7     34.508940         61.407724        -398.15426            0.5110E-03 -1.    11
-  8    -40.221175         64.133550        -417.12766             0.000      1.   -12
-  9    -48.876006        -56.462013        -246.18359            0.5110E-03  1.   -11
- 10    -8.8489171        -10.222351         2.7124063             0.000     -1.    12
-      2    303     12     12      4  20.870510      233.38267     0.77579519E-02 0.11800000    
-  1     284.88628             0.000      9.    21
-  2    -602.88914             0.000      9.    21
-  5    -11.366318         61.460264         138.16207            0.4503E-05  9.     5
-  6    -10.652782        -120.60377        -239.84012            0.5190E-05  9.    -5
-  7     98.797679         46.698444         84.516534            0.1057     -1.    13
-  8     5.2295185         16.344060        -14.867423             0.000      1.   -14
-  9    -71.804665        -3.4138878        -287.44115            0.1057      1.   -13
- 10    -10.203433       -0.48511297         1.4672282             0.000     -1.    14
-      3    303     12     12      2  20.870510      237.64093     0.77579519E-02 0.11800000    
-  1     355.11585             0.000      9.    21
-  2    -159.69599             0.000      9.    21
-  5     142.42983       -0.46338685         87.880953            0.3811E-05  9.     5
-  6    -77.087810        -62.301372        -16.609248            0.6651E-06  9.    -5
-  7     39.065922         23.151353         42.606711            0.1057     -1.    13
-  8    -24.876073         16.846792        -16.124661             0.000      1.   -14
-  9    -22.874116         6.5478930        -11.577589            0.5110E-03  1.   -11
- 10    -56.657751         16.218721         109.24369             0.000     -1.    12
-      4    303     12     11      3  20.870510      344.91719     0.77579519E-02 0.11800000    
-  1     390.97582             0.000      9.    21
-  2    -517.35619             0.000      9.    21
-  5    -10.653852         82.247783        -164.31740            0.5831E-05  9.     5
-  6    -89.731651        -43.750270         100.38192            0.4192E-05  9.    -5
-  7     142.45529         147.25359        -175.44067            0.5110E-03 -1.    11
-  8    -1.4810111         38.087796        -14.894629             0.000      1.   -12
-  9    -12.854455        -70.889718         2.0978834            0.1057      1.   -13
- 10    -27.734323        -152.94918         125.79252             0.000     -1.    14
-      5    303     12     12      2  20.870510      232.00967     0.77579519E-02 0.11800000    
-  1     114.51865             0.000      9.    21
-  2    -572.03934             0.000      9.    21
-  5     42.300699        -40.427045         4.7930040            0.4452E-05  9.     5
-  6     16.668774         145.35818        -201.99562            0.5935E-06  9.    -5
-  7    -19.381363        -57.693489        -86.515677            0.1057     -1.    13
-  8    -66.116778        -48.787518        -2.0836323             0.000      1.   -14
-  9     21.749445         1.2706552        -179.77333            0.5110E-03  1.   -11
- 10     4.7792226        0.27921374         8.0545643             0.000     -1.    12
-      6    303     12     12      1  20.870510      235.29352     0.77579519E-02 0.11800000    
-  1     1251.9262             0.000      9.    21
-  2    -91.320673             0.000      9.    21
-  5    -62.774460        -64.051556         681.68718            0.6937E-05  9.     5
-  6     12.020716         96.793156        -1.3171505            0.2052E-05  9.    -5
-  7     30.793021        -11.368035         74.291704            0.5110E-03 -1.    11
-  8    -84.234584        -31.708306         306.65395             0.000      1.   -12
-  9     28.587919         2.8355282        -4.1062254            0.5110E-03  1.   -11
- 10     75.607387         7.4992127         103.39611             0.000     -1.    12
-      7    303     12     11      2  20.870510      176.05639     0.77579519E-02 0.11800000    
-  1     310.37636             0.000      9.    21
-  2    -128.35903             0.000      9.    21
-  5    -48.785999        -19.931519        -43.548786            0.1877E-05  9.     5
-  6     53.424092         48.690347         65.154215            0.2070E-05  9.    -5
-  7     65.612816        -2.7116547         52.560501            0.1057     -1.    13
-  8    -10.873654        -1.4383646        -21.358529             0.000      1.   -14
-  9    -14.017481        -5.8095227        -9.4229582            0.5110E-03  1.   -11
- 10    -45.359773        -18.799285         138.63290             0.000     -1.    12
-      8    303     12     12      2  20.870510      220.47698     0.77579519E-02 0.11800000    
-  1     151.35856             0.000      9.    21
-  2    -332.47311             0.000      9.    21
-  5    -67.952385        -132.90261        -75.328255            0.1567E-05  9.     5
-  6    -4.1304965         92.441174        -135.67460            0.2023E-05  9.    -5
-  7     30.633575        0.45036666E-01     5.9889430            0.1057     -1.    13
-  8     13.044951        0.40454345E-01     23.409741             0.000      1.   -14
-  9     14.162410         20.131444        -39.984391            0.5110E-03  1.   -11
- 10     14.241946         20.244502         40.474003             0.000     -1.    12
-      9    303     12      2      3  20.870510      297.24255     0.77579519E-02 0.11800000    
-  1     4338.1477             0.000      9.     2
-  2    -20.543526             0.000      9.    -2
-  5    -132.22654         150.84930         1371.3338            0.6162E-05  9.     5
-  6    -10.463698         13.905720         199.44694            0.1184E-04  9.    -5
-  7     19.803019         10.374188         517.85904            0.5110E-03 -1.    11
-  8    -57.282346         9.5762806         471.88173             0.000      1.   -12
-  9     5.8629309        -6.0105352         6.8681205            0.1057      1.   -13
- 10     174.30664        -178.69495         1750.2145             0.000     -1.    14
-     10    303     12     11      2  20.870510      187.53393     0.77579519E-02 0.11800000    
-  1     373.00753             0.000      9.    21
-  2    -95.035078             0.000      9.    21
-  5    -26.047974        -4.5524620         134.62390            0.2402E-05  9.     5
-  6     46.523884        -56.616020         87.503354            0.8461E-06  9.    -5
-  7     60.951895         44.857850         16.526916            0.1057     -1.    13
-  8    -15.688910         26.172191         8.6274138             0.000      1.   -14
-  9    -27.454628        -4.1184971        -26.564364            0.5110E-03  1.   -11
- 10    -38.284267        -5.7430625         57.255230             0.000     -1.    12
-     11    303     12     11      3  20.870510      211.49816     0.77579519E-02 0.11800000    
-  1     365.75441             0.000      9.    21
-  2    -123.56033             0.000      9.    21
-  5    -12.439164         34.034532        -29.597209            0.2241E-05  9.     5
-  6     4.5260873         49.112818         7.2884750            0.1553E-05  9.    -5
-  7     4.6240207        -7.5714727         47.980076            0.5110E-03 -1.    11
-  8    -111.43159        -15.008838         77.997053             0.000      1.   -12
-  9     29.939030        -15.806383        -5.2154056            0.1057      1.   -13
- 10     84.781614        -44.760656         143.74109             0.000     -1.    14
-     12    303     12     11      4  20.870510      208.76012     0.77579519E-02 0.11800000    
-  1     148.81785             0.000      9.    21
-  2    -357.24521             0.000      9.    21
-  5    -27.187510        -29.708475        -108.28490            0.3081E-05  9.     5
-  6     17.589198        -42.061506        -65.228107            0.1656E-05  9.    -5
-  7     11.380180         58.800636        -70.620123            0.1057     -1.    13
-  8    -59.960872         57.276093        -32.739758             0.000      1.   -14
-  9     19.645127        -14.960925        -17.694946            0.1057      1.   -13
- 10     38.533876        -29.345823         86.140464             0.000     -1.    14
-     13    303     12     12      2  20.870510      213.54134     0.77579519E-02 0.11800000    
-  1     302.71766             0.000      9.    21
-  2    -165.82200             0.000      9.    21
-  5    -106.27043         55.912914         37.928500            0.1473E-05  9.     5
-  6     120.48882        -50.078094        -5.1104563            0.1317E-05  9.    -5
-  7     33.904407       -0.65006473         20.933671            0.1057     -1.    13
-  8    -38.452165        -1.0526763         80.482969             0.000      1.   -14
-  9    -4.7574456        -2.0327675        -39.821878            0.5110E-03  1.   -11
- 10    -4.9131822        -2.0993109         42.482851             0.000     -1.    12
-     14    303     12     12      2  20.870510      228.74443     0.77579519E-02 0.11800000    
-  1     616.88039             0.000      9.    21
-  2    -85.865360             0.000      9.    21
-  5    -1.8686732         36.876043         43.385656            0.2633E-05  9.     5
-  6     11.052418         57.765964         19.325294            0.2244E-05  9.    -5
-  7     131.94036        -89.320967         206.82565            0.1057     -1.    13
-  8    -7.4680134        -30.692684         54.059289             0.000      1.   -14
-  9    -25.898422         4.9162409        0.94658125            0.5110E-03  1.   -11
- 10    -107.75767         20.455403         206.47255             0.000     -1.    12
-     15    303     12      7      3  20.870510      187.04868     0.77579519E-02 0.11800000    
-  1     461.01604             0.000      9.    -2
-  2    -81.332909             0.000      9.     2
-  5     7.8582651         8.1746806        -31.775472            0.2922E-05  9.    -5
-  6     19.306567         72.564751         214.61538            0.9119E-06  9.     5
-  7     5.2883574        -16.662134        -6.4619850            0.5110E-03 -1.    11
-  8    -18.798558        -59.149613         157.93826             0.000      1.   -12
-  9    -5.0335530        -1.8165091        -23.159082            0.1057      1.   -13
- 10    -8.6210779        -3.1111754         68.526032             0.000     -1.    14
-     16    303     12     12      2  20.870510      260.04004     0.77579519E-02 0.11800000    
-  1     810.28513             0.000      9.    21
-  2    -86.670943             0.000      9.    21
-  5     71.917176         13.154302         225.22847            0.3628E-05  9.     5
-  6    -144.02277         22.009854         135.16625            0.2476E-05  9.    -5
-  7     33.378101        -31.123169         17.124922            0.1057     -1.    13
-  8     50.525855        -95.873596         205.86798             0.000      1.   -14
-  9    -2.5176073         19.595815        -2.3780032            0.5110E-03  1.   -11
- 10    -9.2807514         72.236794         142.60458             0.000     -1.    12
-     17    303     12     11      2  20.870510      266.89551     0.77579519E-02 0.11800000    
-  1     518.78056             0.000      9.    21
-  2    -141.20026             0.000      9.    21
-  5    -9.1172287        -35.288202         106.73872            0.4677E-05  9.     5
-  6     67.300185         48.411740         141.43242            0.5643E-06  9.    -5
-  7    -5.3378986        -57.128288        -22.103575            0.1057     -1.    13
-  8    -66.494312        -92.785858         49.373770             0.000      1.   -14
-  9     4.4660314         44.757843        -15.654503            0.5110E-03  1.   -11
- 10     9.1832222         92.032765         117.79346             0.000     -1.    12
-     18    303     12     11      3  20.870510      175.00025     0.77579519E-02 0.11800000    
-  1     32.237420             0.000      9.    21
-  2    -975.07821             0.000      9.    21
-  5    -69.292561         12.311351        -210.55874            0.8596E-05  9.     5
-  6    0.74063033         59.520535        -64.748578            0.4694E-05  9.    -5
-  7     57.330382        -8.4366793        -103.19787            0.5110E-03 -1.    11
-  8    0.75808974        -14.786424        -238.45936             0.000      1.   -12
-  9     9.2558101        -42.998563        -330.06108            0.1057      1.   -13
- 10     1.2076480        -5.6102196         4.1848362             0.000     -1.    14
-     19    303     12     11      1  20.870510      242.47624     0.77579519E-02 0.11800000    
-  1     688.60014             0.000      9.    21
-  2    -195.95909             0.000      9.    21
-  5    -77.169732         22.725514        -17.662673            0.8668E-06  9.     5
-  6     82.329258        -40.986265         191.08270            0.6706E-05  9.    -5
-  7     52.783643         86.502660        -58.441901            0.5110E-03 -1.    11
-  8    -20.568000         53.232183        -9.8095116             0.000      1.   -12
-  9    -4.0190581        -13.062454         2.4724625            0.5110E-03  1.   -11
- 10    -33.356111        -108.41164         384.99997             0.000     -1.    12
-     20    303     12     12      3  20.870510      263.58864     0.77579519E-02 0.11800000    
-  1     234.69302             0.000      9.    21
-  2    -361.33277             0.000      9.    21
-  5     55.571784        -8.4349328        -10.779622            0.1732E-05  9.     5
-  6    -6.3971910         12.895137        -74.330124            0.2686E-05  9.    -5
-  7     64.316902         106.32243         49.542104            0.5110E-03 -1.    11
-  8    -20.915721         73.293200         24.597502             0.000      1.   -12
-  9    -62.589626        -124.45197        -117.81340            0.1057      1.   -13
- 10    -29.986148        -59.623862         2.1437942             0.000     -1.    14
-     21    303     12      7      4  20.870510      202.97087     0.77579519E-02 0.11800000    
-  1     19.984982             0.000      9.    -2
-  2    -2304.5997             0.000      9.     2
-  5     44.163434        -9.0790230        -275.51846            0.9712E-05  9.    -5
-  6     43.793483        -18.772833        -788.27967            0.8982E-05  9.     5
-  7    -37.476225        -54.548990        -364.64234            0.1057     -1.    13
-  8    -62.448396        -24.163636        -124.58028             0.000      1.   -14
-  9     11.303643         100.65146        -730.63421            0.1057      1.   -13
- 10    0.66406105         5.9130242       -0.95974209             0.000     -1.    14
-     22    303     12     11      3  20.870510      179.53848     0.77579519E-02 0.11800000    
-  1     531.61880             0.000      9.    21
-  2    -146.20932             0.000      9.    21
-  5    -51.187910        -17.658146        -23.475052            0.4495E-05  9.     5
-  6     25.423589        -16.018729         306.06162            0.1619E-05  9.    -5
-  7     103.34523         24.697635        -48.222650            0.5110E-03 -1.    11
-  8    -12.101447         8.7434409         5.1177689             0.000      1.   -12
-  9    -14.275269        0.51406780E-01    -8.1548432            0.1057      1.   -13
- 10    -51.204197        0.18439183         154.08263             0.000     -1.    14
-     23    303     12     11      1  20.870510      175.58824     0.77579519E-02 0.11800000    
-  1     30.177828             0.000      9.    21
-  2    -1380.8486             0.000      9.    21
-  5    -41.799491         47.243209        -531.89635            0.7225E-05  9.     5
-  6    -39.590251        -38.332773        -53.726656            0.3551E-05  9.    -5
-  7     33.358444        -13.332419        -76.092951            0.5110E-03 -1.    11
-  8    -4.7648020        -50.534373        -427.17693             0.000      1.   -12
-  9     45.382330         47.239237        -264.96689            0.5110E-03  1.   -11
- 10     7.4137698         7.7171186         3.1890257             0.000     -1.    12
-     24    303     12     11      1  20.870510      187.96918     0.77579519E-02 0.11800000    
-  1     720.79382             0.000      9.    21
-  2    -55.051626             0.000      9.    21
-  5     46.556163         80.131558         102.33631            0.3416E-05  9.     5
-  6    -13.943954        -66.649112         89.250532            0.3190E-05  9.    -5
-  7     40.049750        -33.835211         98.332810            0.5110E-03 -1.    11
-  8    -23.458523        -15.242725         3.7850131             0.000      1.   -12
-  9    -5.0540055         3.6562449        -2.9709719            0.5110E-03  1.   -11
- 10    -44.149430         31.939246         375.00850             0.000     -1.    12
-     25    303     12     12      4  20.870510      182.10822     0.77579519E-02 0.11800000    
-  1     114.15266             0.000      9.    21
-  2    -298.40578             0.000      9.    21
-  5    -73.213347         23.804301        -51.247559            0.4801E-06  9.     5
-  6    -1.1139772        -76.725941        -11.606320            0.1501E-05  9.    -5
-  7     52.159057         14.565380        -38.283741            0.1057     -1.    13
-  8   -0.15409356         9.9326891         30.942071             0.000      1.   -14
-  9     16.865950         21.475799        -125.92733            0.1057      1.   -13
- 10     5.4564111         6.9477729         11.869764             0.000     -1.    14
-     26    303     12      7      4  20.870510      208.15659     0.77579519E-02 0.11800000    
-  1     444.83520             0.000      9.    -2
-  2    -122.92496             0.000      9.     2
-  5     97.753449        -55.842348         52.785636            0.7845E-06  9.    -5
-  6    -76.718321         9.8279417         208.01394            0.2392E-05  9.     5
-  7     31.438003        -10.302590        -20.423059            0.1057     -1.    13
-  8    -45.921210        -11.409821       -0.75406441             0.000      1.   -14
-  9    -2.0414842         21.102702        -15.899549            0.1057      1.   -13
- 10    -4.5104363         46.624115         98.187336             0.000     -1.    14
-     27    303     12     11      3  20.870510      309.88574     0.77579519E-02 0.11800000    
-  1     171.98972             0.000      9.    21
-  2    -694.26285             0.000      9.    21
-  5    -185.78431        -43.130227        -365.46203            0.8972E-05  9.     5
-  6     16.609232        -35.389645         16.939177            0.2534E-05  9.    -5
-  7     12.092429        0.48435056         6.4289573            0.5110E-03 -1.    11
-  8    -79.196724         1.4629413        -93.747319             0.000      1.   -12
-  9     146.87979         47.600281        -93.886221            0.1057      1.   -13
- 10     89.399583         28.972299         7.4543025             0.000     -1.    14
-     28    303     12     11      3  20.870510      176.09597     0.77579519E-02 0.11800000    
-  1     243.79503             0.000      9.    21
-  2    -260.46049             0.000      9.    21
-  5    -15.851246         20.296239         17.745477            0.3654E-05  9.     5
-  6    -5.0359828        -59.882045         75.477007            0.1067E-05  9.    -5
-  7     55.489197        -29.265352        -167.73624            0.5110E-03 -1.    11
-  8    -25.395243        -11.681452        -38.688050             0.000      1.   -12
-  9    -2.6747557         23.396489        -12.319187            0.1057      1.   -13
- 10    -6.5319701         57.136121         108.85553             0.000     -1.    14
-     29    303     12     11      4  20.870510      203.70550     0.77579519E-02 0.11800000    
-  1     68.538735             0.000      9.    21
-  2    -764.92988             0.000      9.    21
-  5    -10.515831         66.233173        -115.08090            0.6312E-05  9.     5
-  6     44.677468         52.795195        -93.148709            0.9920E-06  9.    -5
-  7     14.287236        -5.5738270        -29.343633            0.1057     -1.    13
-  8    -105.77183        -33.988145        -394.06203             0.000      1.   -14
-  9     37.058253        -51.373588        -81.521379            0.1057      1.   -13
- 10     20.264700        -28.092808         16.765506             0.000     -1.    14
-     30    303     12      7      1  20.870510      229.57062     0.77579519E-02 0.11800000    
-  1     69.287737             0.000      9.    -2
-  2    -791.46493             0.000      9.     2
-  5    -87.691011         34.372901        -39.682723            0.2563E-05  9.    -5
-  6     132.84681        -49.194776        -307.01034            0.3364E-05  9.     5
-  7     23.798413         20.331091        -101.68139            0.5110E-03 -1.    11
-  8    -61.551421         26.450045        -134.78306             0.000      1.   -12
-  9    -5.8177849        -25.116482        -149.05907            0.5110E-03  1.   -11
- 10    -1.5850076        -6.8427788         10.039389             0.000     -1.    12
-     31    303     12     12      2  20.870510      195.72048     0.77579519E-02 0.11800000    
-  1     834.19876             0.000      9.    21
-  2    -148.95829             0.000      9.    21
-  5     15.243827        -63.774122         297.48291            0.7795E-05  9.     5
-  6     18.143992        -62.469019        0.11255582E-01        0.1742E-05  9.    -5
-  7    -74.346108         26.018210         433.90398            0.1057     -1.    13
-  8    -23.198636         3.8063421         20.079224             0.000      1.   -14
-  9     43.325247         65.111586        -68.406123            0.5110E-03  1.   -11
- 10     20.831678         31.307003         2.1692190             0.000     -1.    12
-     32    303     12     11      4  20.870510      197.18578     0.77579519E-02 0.11800000    
-  1     529.68479             0.000      9.    21
-  2    -73.406648             0.000      9.    21
-  5     54.629175        -31.939255         29.388705            0.1657E-05  9.     5
-  6     42.589315         69.193332         43.984782            0.1610E-05  9.    -5
-  7     2.1340135        -41.569036         179.15720            0.1057     -1.    13
-  8    -39.892521        -17.140051         18.994966             0.000      1.   -14
-  9    -10.511523         3.7928843        -5.4361501            0.1057      1.   -13
- 10    -48.948460         17.662126         190.18864             0.000     -1.    14
-     33    303     12     11      4  20.870510      307.85526     0.77579519E-02 0.11800000    
-  1     1550.4834             0.000      9.    21
-  2    -193.90110             0.000      9.    21
-  5    -121.78879         30.747692        -38.950129            0.1086E-04  9.     5
-  6     170.42737        -9.7225958         717.23652            0.1394E-04  9.    -5
-  7    -36.953064        -44.158092         35.769188            0.1057     -1.    13
-  8    -83.512048        -62.137040        -40.267269             0.000      1.   -14
-  9     4.2361644         5.0290310         1.3231491            0.1057      1.   -13
- 10     67.590375         80.241005         681.47088             0.000     -1.    14
-     34    303     12     12      4  20.870510      190.93865     0.77579519E-02 0.11800000    
-  1     193.18201             0.000      9.    21
-  2    -198.50690             0.000      9.    21
-  5    -63.570403         74.989859        -9.7336813            0.2041E-05  9.     5
-  6     28.759066         45.151728        -45.359256            0.2048E-05  9.    -5
-  7     37.448057        -12.450917         10.276600            0.1057     -1.    13
-  8    -35.494051        -14.784381         40.277296             0.000      1.   -14
-  9     16.491606        -46.631115        -39.866772            0.1057      1.   -13
- 10     16.365724        -46.275175         39.080924             0.000     -1.    14
-     35    303     12     12      4  20.870510      245.22372     0.77579519E-02 0.11800000    
-  1     438.39105             0.000      9.    21
-  2    -381.55674             0.000      9.    21
-  5    -97.253240        -75.061999         246.83814            0.6184E-05  9.     5
-  6    -14.690410         71.910668        -30.178474            0.1664E-05  9.    -5
-  7     23.068489        -56.174706         118.60208            0.1057     -1.    13
-  8    -7.4613796        -20.710959        -8.9169709             0.000      1.   -14
-  9     81.603492         67.796688        -268.49117            0.1057      1.   -13
- 10     14.733049         12.240308        -1.0192920             0.000     -1.    14
-     36    303     12     11      3  20.870510      185.81175     0.77579519E-02 0.11800000    
-  1     67.759131             0.000      9.    21
-  2    -528.87064             0.000      9.    21
-  5     83.901035         9.7211253        -70.881378            0.3941E-05  9.     5
-  6     19.389769        0.84372473E-01    -128.42813            0.1626E-05  9.    -5
-  7     30.672849        -4.7584072        -106.39704            0.5110E-03 -1.    11
-  8    -50.188328        -5.0882401        -110.30954             0.000      1.   -12
-  9    -51.127880        0.25113433E-01    -67.558560            0.1057      1.   -13
- 10    -32.647444        0.16036053E-01     22.463145             0.000     -1.    14
-     37    303     12     12      4  20.870510      251.64695     0.77579519E-02 0.11800000    
-  1     123.31493             0.000      9.    21
-  2    -1082.9706             0.000      9.    21
-  5    -111.67652        -41.055284        -75.539878            0.7392E-05  9.     5
-  6     90.001999        -18.988661        -638.26411            0.5927E-05  9.    -5
-  7    -2.2508531         16.238353        -16.656710            0.1057     -1.    13
-  8    -67.263197         35.572078         49.724821             0.000      1.   -14
-  9     77.924269         7.0358660        -281.91475            0.1057      1.   -13
- 10     13.264303         1.1976482         2.9949032             0.000     -1.    14
-     38    303     12     11      4  20.870510      184.39037     0.77579519E-02 0.11800000    
-  1     117.16497             0.000      9.    21
-  2    -488.52076             0.000      9.    21
-  5     42.633905         65.364969        -153.73603            0.6130E-05  9.     5
-  6     11.223282         58.544427        -9.2672473            0.1790E-05  9.    -5
-  7     42.964521        -49.714614        -196.51742            0.1057     -1.    13
-  8    -25.443383        -16.480046        -28.387268             0.000      1.   -14
-  9    -32.824792        -26.541310        -33.399392            0.1057      1.   -13
- 10    -38.553533        -31.173427         49.951564             0.000     -1.    14
-     39    303     12      8      4  20.870510      202.49200     0.77579519E-02 0.11800000    
-  1     708.47688             0.000      9.    -3
-  2    -58.500425             0.000      9.     3
-  5    -32.860870        -70.478653         118.24998            0.1472E-05  9.    -5
-  6     112.56372        -15.155571         267.51752            0.1369E-05  9.     5
-  7     17.073151         19.662667         39.272958            0.1057     -1.    13
-  8    -87.139068         45.468530         127.80969             0.000      1.   -14
-  9    -2.5268817         5.3760598        -13.412412            0.1057      1.   -13
- 10    -7.1100508         15.126968         110.53872             0.000     -1.    14
-     40    303     12     11      3  20.870510      211.85850     0.77579519E-02 0.11800000    
-  1     680.84345             0.000      9.    21
-  2    -105.63847             0.000      9.    21
-  5    -33.172930        -9.3643904         163.43162            0.4889E-05  9.     5
-  6    -15.776429         52.591334         70.127601            0.2673E-06  9.    -5
-  7     143.67266        -26.089897         271.89546            0.5110E-03 -1.    11
-  8     1.0154051        -10.019977         93.388759             0.000      1.   -12
-  9    -53.287051        -3.9612784        -53.672817            0.1057      1.   -13
- 10    -42.451651        -3.1557912         30.034357             0.000     -1.    14
-     41    303     12     12      3  20.870510      209.94312     0.77579519E-02 0.11800000    
-  1     762.32548             0.000      9.    21
-  2    -86.468356             0.000      9.    21
-  5     63.779522        -15.639592         132.16171            0.7469E-05  9.     5
-  6     16.110605         23.792098        -13.737841            0.1895E-05  9.    -5
-  7     47.087400         78.567799         374.15003            0.5110E-03 -1.    11
-  8    -32.741175         24.203829         75.908579             0.000      1.   -12
-  9    -28.962633        -34.091461        -7.3158435            0.1057      1.   -13
- 10    -65.273720        -76.832672         114.69049             0.000     -1.    14
-     42    303     12     12      4  20.870510      306.37440     0.77579519E-02 0.11800000    
-  1     537.44883             0.000      9.    21
-  2    -180.92403             0.000      9.    21
-  5     7.7566367        -25.923636         75.259181            0.5332E-05  9.     5
-  6    -1.6784649        -43.468331         27.817598            0.4361E-05  9.    -5
-  7     237.29794         50.050087         177.46729            0.1057     -1.    13
-  8     4.8817160         7.7581526        -7.5748714             0.000      1.   -14
-  9    -94.923117         4.4291189        -8.4344997            0.1057      1.   -13
- 10    -153.33471         7.1546079         91.990102             0.000     -1.    14
-     43    303     12     11      2  20.870510      177.12684     0.77579519E-02 0.11800000    
-  1     102.44818             0.000      9.    21
-  2    -608.65868             0.000      9.    21
-  5    -61.884381        -11.650843        -256.82299            0.1883E-05  9.     5
-  6    -43.805836         35.561998         16.836993            0.1330E-05  9.    -5
-  7     67.199948         34.468394        -239.68757            0.1057     -1.    13
-  8    -15.143018         7.1298592        -7.2177142             0.000      1.   -14
-  9     29.426059        -35.941928        -50.739014            0.5110E-03  1.   -11
- 10     24.207227        -29.567480         31.419801             0.000     -1.    12
-     44    303     12     11      2  20.870510      206.23268     0.77579519E-02 0.11800000    
-  1     481.39909             0.000      9.    21
-  2    -139.54311             0.000      9.    21
-  5    -64.219658        -28.448828         29.324805            0.2474E-05  9.     5
-  6    -14.888806         24.077355         143.95280            0.4689E-05  9.    -5
-  7     23.439640         33.849978         2.5166260            0.1057     -1.    13
-  8    -52.102982         53.963618        -48.962009             0.000      1.   -14
-  9     20.659773        -15.995792        0.50297100            0.5110E-03  1.   -11
- 10     87.112032        -67.446332         214.52078             0.000     -1.    12
-     45    303     12     11      1  20.870510      175.19337     0.77579519E-02 0.11800000    
-  1     147.29992             0.000      9.    21
-  2    -215.18080             0.000      9.    21
-  5     26.187722         65.315335        -43.299119            0.1363E-05  9.     5
-  6    -48.997492         15.719619         37.014858            0.7059E-06  9.    -5
-  7     12.914145        -24.283312        -33.624998            0.5110E-03 -1.    11
-  8    -52.527326        -29.543714         10.736695             0.000      1.   -12
-  9     37.516738        -16.352202        -63.161334            0.5110E-03  1.   -11
- 10     24.906213        -10.855726         24.453020             0.000     -1.    12
-     46    303     12     12      3  20.870510      179.81358     0.77579519E-02 0.11800000    
-  1     69.997403             0.000      9.    21
-  2    -474.65594             0.000      9.    21
-  5     22.996913        -34.281735        -123.91880            0.3001E-05  9.     5
-  6     5.7316640        -76.047482        -88.048903            0.1845E-05  9.    -5
-  7     38.923042         29.824563         6.3077589            0.5110E-03 -1.    11
-  8    -28.218747         33.034447        -40.102926             0.000      1.   -12
-  9    -31.293733         37.672123        -166.90582            0.1057      1.   -13
- 10    -8.1391393         9.7980851         8.0101536             0.000     -1.    14
-     47    303     12     11      3  20.870510      178.21541     0.77579519E-02 0.11800000    
-  1     28.100750             0.000      9.    21
-  2    -1154.4542             0.000      9.    21
-  5     31.591889         36.327654        -270.14908            0.5952E-05  9.     5
-  6    -65.302544         34.474759        -211.54603            0.8968E-05  9.    -5
-  7     16.293717        -47.750848        -158.58852            0.5110E-03 -1.    11
-  8    -41.584623        -25.190182        -48.815572             0.000      1.   -12
-  9     53.806343         1.9503079        -439.72702            0.1057      1.   -13
- 10     5.1952184        0.18831005         2.4727444             0.000     -1.    14
-     48    303     12      2      4  20.870510      189.78040     0.77579519E-02 0.11800000    
-  1     1738.6029             0.000      9.     2
-  2    -20.960151             0.000      9.    -2
-  5    -34.798067         46.435233         636.38197            0.1174E-04  9.     5
-  6     106.92418         6.6385018         530.12707            0.3203E-05  9.    -5
-  7     22.537433        -10.835925         45.959977            0.1057     -1.    13
-  8    -62.786220        -37.618605         271.46533             0.000      1.   -14
-  9    -4.1759400       -0.60511737        -4.6147616            0.1057      1.   -13
- 10    -27.701388        -4.0140880         238.32315             0.000     -1.    14
-     49    303     12     11      4  20.870510      223.67283     0.77579519E-02 0.11800000    
-  1     167.17173             0.000      9.    21
-  2    -362.05481             0.000      9.    21
-  5    -56.812179         36.959512       -0.23911754            0.4265E-05  9.     5
-  6     101.82521        -38.088948         1.0595997            0.1837E-05  9.    -5
-  7     9.9212582         58.430205        -183.79824            0.1057     -1.    13
-  8    -30.909791         21.212568        -23.596343             0.000      1.   -14
-  9    -11.293697        -36.908395        -34.564451            0.1057      1.   -13
- 10    -12.730806        -41.604942         46.255473             0.000     -1.    14
-     50    303     12     11      1  20.870510      198.69780     0.77579519E-02 0.11800000    
-  1     849.25231             0.000      9.    21
-  2    -51.500104             0.000      9.    21
-  5     5.9418220         43.207131         144.91753            0.6272E-05  9.     5
-  6    -12.985123        -60.601961         159.86045            0.3779E-05  9.    -5
-  7     103.94708        -40.405277         95.844495            0.5110E-03 -1.    11
-  8    -15.241280        -14.724668         17.625239             0.000      1.   -12
-  9    -8.9089439         7.9120664        0.36621319            0.5110E-03  1.   -11
- 10    -72.753559         64.612708         379.13827             0.000     -1.    12
-     51    303     12     11      1  20.870510      248.53012     0.77579519E-02 0.11800000    
-  1     751.44791             0.000      9.    21
-  2    -104.19287             0.000      9.    21
-  5     69.856202        -69.862349         130.35372            0.3653E-05  9.     5
-  6    -43.728753         105.10091         300.21355            0.6676E-05  9.    -5
-  7     92.184770        -17.426793        -17.119543            0.5110E-03 -1.    11
-  8    -12.522281        -7.7418550         13.827962             0.000      1.   -12
-  9    -17.640883        -1.6791964       -0.62400141            0.5110E-03  1.   -11
- 10    -88.149055        -8.3907121         220.60336             0.000     -1.    12
-     52    303     12     11      2  20.870510      238.90749     0.77579519E-02 0.11800000    
-  1     86.103168             0.000      9.    21
-  2    -685.49329             0.000      9.    21
-  5     18.000059        -12.323508         11.570856            0.4508E-05  9.     5
-  6    -27.792793         23.219973        -153.48318            0.2200E-05  9.    -5
-  7     44.172768        -124.32570        -367.95723            0.1057     -1.    13
-  8    -9.9131349        -18.157843        -13.367074             0.000      1.   -14
-  9    -15.901333         85.520024        -89.651296            0.5110E-03  1.   -11
- 10    -8.5655670         46.067051         13.497798             0.000     -1.    12
-     53    303     12     12      2  20.870510      343.15535     0.77579519E-02 0.11800000    
-  1     930.86909             0.000      9.    21
-  2    -180.06805             0.000      9.    21
-  5     80.502328        -34.257628         159.59339            0.1058E-04  9.     5
-  6    -5.1882743         6.2526025         50.508581            0.3653E-05  9.    -5
-  7     77.028833        -90.755708         192.61272            0.1057     -1.    13
-  8    -10.480141        -131.40643         326.15856             0.000      1.   -14
-  9    -66.843343         117.87457        -30.122770            0.5110E-03  1.   -11
- 10    -75.019404         132.29260         52.050565             0.000     -1.    12
-     54    303     12     11      4  20.870510      208.33591     0.77579519E-02 0.11800000    
-  1     117.18094             0.000      9.    21
-  2    -559.27322             0.000      9.    21
-  5    -10.214803         107.75720        -318.08142            0.2181E-05  9.     5
-  6     17.431369        -65.413435        -72.958511            0.2123E-05  9.    -5
-  7     54.941411         2.3885927        -45.353056            0.1057     -1.    13
-  8    -24.306639         2.1323777        -54.165367             0.000      1.   -14
-  9    -14.068103        -17.418087        -21.279100            0.1057      1.   -13
- 10    -23.783235        -29.446646         69.745174             0.000     -1.    14
-     55    303     12     12      4  20.870510      305.39284     0.77579519E-02 0.11800000    
-  1     146.24565             0.000      9.    21
-  2    -657.95140             0.000      9.    21
-  5    -59.691720         195.20360        -235.43527            0.4684E-05  9.     5
-  6    -42.462765        -148.74011        -121.76063            0.3263E-05  9.    -5
-  7     53.193683         35.745366        -81.240972            0.1057     -1.    13
-  8    -24.543059         17.889825        -9.6742811             0.000      1.   -14
-  9     46.511417        -63.339960        -79.790178            0.1057      1.   -13
- 10     26.992444        -36.758723         16.195587             0.000     -1.    14
-     56    303     12     12      1  20.870510      275.57452     0.77579519E-02 0.11800000    
-  1     3651.3366             0.000      9.    21
-  2    -34.091593             0.000      9.    21
-  5     104.23525        -60.025153         899.94344            0.1310E-04  9.     5
-  6    -107.17819         78.755929         213.90267            0.6205E-05  9.    -5
-  7     50.988075        -79.032538         1450.5312            0.5110E-03 -1.    11
-  8    -30.881867        -34.435910         608.82069             0.000      1.   -12
-  9    -1.5508166         8.5601874       -0.14921089            0.5110E-03  1.   -11
- 10    -15.612447         86.177484         444.19628             0.000     -1.    12
-     57    303     12     11      4  20.870510      195.87752     0.77579519E-02 0.11800000    
-  1     70.511012             0.000      9.    21
-  2    -547.83050             0.000      9.    21
-  5     8.7964300         108.61431        -109.85791            0.2923E-06  9.     5
-  6     59.291450        -36.543440        -38.750942            0.2882E-05  9.    -5
-  7     29.755621        -13.568901        -131.50719            0.1057     -1.    13
-  8    -30.539066        -6.0324592        -22.663365             0.000      1.   -14
-  9    -53.956236        -42.063459        -179.62473            0.1057      1.   -13
- 10    -13.348200        -10.406053         5.0846508             0.000     -1.    14
-     58    303     12     11      2  20.870510      220.74227     0.77579519E-02 0.11800000    
-  1     1020.4190             0.000      9.    21
-  2    -56.289859             0.000      9.    21
-  5     22.289305         20.809614        -1.1193585            0.3614E-05  9.     5
-  6    -32.002159         2.6087472         401.00626            0.7333E-05  9.    -5
-  7     68.832369        -75.512866         151.71706            0.1057     -1.    13
-  8    -19.249555        -60.105536         121.80224             0.000      1.   -14
-  9    -5.5270031         15.553815         1.0820424            0.5110E-03  1.   -11
- 10    -34.342957         96.646226         289.64094             0.000     -1.    12
-     59    303     12     11      3  20.870510      222.79971     0.77579519E-02 0.11800000    
-  1     441.73046             0.000      9.    21
-  2    -153.99714             0.000      9.    21
-  5     83.150086         72.371031        -58.677617            0.5304E-05  9.     5
-  6     19.955005        -70.389864         132.11830            0.7386E-06  9.    -5
-  7     45.574127         12.399084         9.6784084            0.5110E-03 -1.    11
-  8    -29.885089         12.646768         38.012513             0.000      1.   -12
-  9    -26.673151        -6.0684460        -2.9741042            0.1057      1.   -13
- 10    -92.120977        -20.958573         169.57583             0.000     -1.    14
-     60    303     12      7      4  20.870510      224.28096     0.77579519E-02 0.11800000    
-  1     71.993744             0.000      9.    -2
-  2    -705.64883             0.000      9.     2
-  5     19.815245         102.93901        -89.495178            0.4552E-05  9.    -5
-  6     42.936147        -14.559421        -6.0978402            0.2071E-05  9.     5
-  7     15.873116         22.498550        -175.89024            0.1057     -1.    13
-  8    -50.706813         14.904530        -90.029642             0.000      1.   -14
-  9    -23.650555        -106.55715        -270.71121            0.1057      1.   -13
- 10    -4.2671394        -19.225520        -1.4309800             0.000     -1.    14
-     61    303     12     11      4  20.870510      215.62284     0.77579519E-02 0.11800000    
-  1     53.117238             0.000      9.    21
-  2    -979.43149             0.000      9.    21
-  5    -14.707955         13.105782        -351.71640            0.1037E-04  9.     5
-  6    -19.510582        -76.041169        -247.61658            0.2094E-05  9.    -5
-  7     67.183269         51.644668        -126.95255            0.1057     -1.    13
-  8    -8.3406134         54.265701        -152.83186             0.000      1.   -14
-  9    -15.439912        -26.946344        -69.739838            0.1057      1.   -13
- 10    -9.1842064        -16.028639         22.542963             0.000     -1.    14
-     62    303     12     11      3  20.870510      176.17783     0.77579519E-02 0.11800000    
-  1     403.34621             0.000      9.    21
-  2    -78.361640             0.000      9.    21
-  5     56.982021         18.986728         21.549654            0.2010E-05  9.     5
-  6     49.372576         9.8560661         148.86327            0.2521E-05  9.    -5
-  7    -15.172429        -2.3887647         87.565656            0.5110E-03 -1.    11
-  8    -62.883770        -1.9687098         21.082357             0.000      1.   -12
-  9    -10.778750        -9.3263634        -26.153702            0.1057      1.   -13
- 10    -17.519648        -15.158957         72.077332             0.000     -1.    14
-     63    303     12     12      3  20.870510      174.60744     0.77579519E-02 0.11800000    
-  1     277.39500             0.000      9.    21
-  2    -149.29436             0.000      9.    21
-  5    -51.817764         30.425372         24.726924            0.2488E-05  9.     5
-  6    -51.570979         41.904278         2.7939003            0.5999E-06  9.    -5
-  7     65.710500        -32.019590         147.90923            0.5110E-03 -1.    11
-  8    -13.684562        -8.7606100        0.99546271             0.000      1.   -12
-  9     31.959447        -19.630996        -71.941120            0.1057      1.   -13
- 10     19.403357        -11.918455         23.616242             0.000     -1.    14
-     64    303     12      1      1  20.870510      202.85866     0.77579519E-02 0.11800000    
-  1     541.82739             0.000      9.     1
-  2    -93.224376             0.000      9.    -1
-  5     15.603356         62.626036         72.168642            0.2942E-05  9.     5
-  6    -100.86339         34.749556         182.23606            0.2193E-05  9.    -5
-  7     97.579794        -28.984383         1.0563436            0.5110E-03 -1.    11
-  8    -11.551307        -12.615182         14.392050             0.000      1.   -12
-  9   -0.13989046        -10.153505        -6.5475534            0.5110E-03  1.   -11
- 10   -0.62856674        -45.622522         185.29748             0.000     -1.    12
-     65    303     12      7      2  20.870510      329.11780     0.77579519E-02 0.11800000    
-  1     148.59036             0.000      9.    -2
-  2    -830.59729             0.000      9.     2
-  5     193.21833         3.5386396        -283.65039            0.5284E-05  9.    -5
-  6     18.536219        -7.0213421         2.4514413            0.2835E-05  9.     5
-  7     87.074025         66.456712        -203.24009            0.1057     -1.    13
-  8    -15.390930         18.125437        -25.365511             0.000      1.   -14
-  9    -198.61714        -56.829924        -159.95354            0.5110E-03  1.   -11
- 10    -84.820506        -24.269522        -12.248840             0.000     -1.    12
-     66    303     12      3      3  20.870510      250.60182     0.77579519E-02 0.11800000    
-  1     932.14624             0.000      9.     3
-  2    -75.005362             0.000      9.    -3
-  5     11.898665         76.720071         410.10581            0.2095E-05  9.     5
-  6     67.654360        -104.60849         117.80647            0.2621E-05  9.    -5
-  7     29.441765         48.202025         84.626502            0.5110E-03 -1.    11
-  8    -52.441866         54.793072         94.478514             0.000      1.   -12
-  9    -13.001359        -17.266817        -6.7354933            0.1057      1.   -13
- 10    -43.551565        -57.839866         156.85908             0.000     -1.    14
-     67    303     12     12      2  20.870510      227.40809     0.77579519E-02 0.11800000    
-  1     317.69552             0.000      9.    21
-  2    -212.40599             0.000      9.    21
-  5     7.5907784         55.453745        -9.8626194            0.4464E-05  9.     5
-  6    -25.849836        -39.222046        -75.651221            0.4216E-06  9.    -5
-  7     12.484189         13.121105         8.8598831            0.1057     -1.    13
-  8    -97.367954         55.359583         181.76273             0.000      1.   -14
-  9     51.529081        -42.321427        -34.738924            0.5110E-03  1.   -11
- 10     51.613742        -42.390960         34.919678             0.000     -1.    12
-     68    303     12     12      3  20.870510      177.20775     0.77579519E-02 0.11800000    
-  1     215.54696             0.000      9.    21
-  2    -163.94807             0.000      9.    21
-  5     47.762335         27.885391         74.632662            0.2434E-05  9.     5
-  6     35.490615        -43.102720        -4.8122169            0.1049E-05  9.    -5
-  7     35.940363        -20.615233         10.179418            0.5110E-03 -1.    11
-  8    -57.310977        -25.313807         4.3123616             0.000      1.   -12
-  9    -35.788250         35.362620        -60.783793            0.1057      1.   -13
- 10    -26.094087         25.783749         28.070461             0.000     -1.    14
-     69    303     12      1      4  20.870510      216.95396     0.77579519E-02 0.11800000    
-  1     195.26651             0.000      9.     1
-  2    -361.88661             0.000      9.    -1
-  5    -21.753466         31.434461        -132.79673            0.4997E-05  9.     5
-  6     32.330333        -8.6194417         46.213773            0.3990E-06  9.    -5
-  7     96.676470         31.205895        -38.190888            0.1057     -1.    13
-  8     19.794356         25.206971        -73.297014             0.000      1.   -14
-  9    -55.687683        -34.727253        -26.999603            0.1057      1.   -13
- 10    -71.360011        -44.500633         58.450367             0.000     -1.    14
-     70    303     12     12      2  20.870510      185.82746     0.77579519E-02 0.11800000    
-  1     1575.5061             0.000      9.    21
-  2    -56.679750             0.000      9.    21
-  5    -42.394514        -49.324794         920.67230            0.1873E-04  9.     5
-  6     10.795728        -22.426471         95.845488            0.1754E-05  9.    -5
-  7     73.121801        -11.729728         439.25218            0.1057     -1.    13
-  8    -17.426784        -1.9887152         38.600531             0.000      1.   -14
-  9    -10.595725         37.583202        -29.509028            0.5110E-03  1.   -11
- 10    -13.500506         47.886507         53.964883             0.000     -1.    12
-     71    303     12      7      3  20.870510      212.29749     0.77579519E-02 0.11800000    
-  1     30.151891             0.000      9.    -2
-  2    -1584.0705             0.000      9.     2
-  5     8.1390459         93.654477        -222.27196            0.7764E-05  9.    -5
-  6    -11.787774        -47.781828        -581.24628            0.6036E-05  9.     5
-  7    -15.380956       -0.46881526        -231.22033            0.5110E-03 -1.    11
-  8    -70.648701       -0.32670741        -131.83566             0.000      1.   -12
-  9     80.336793        -40.381546        -387.50608            0.1057      1.   -13
- 10     9.3415924        -4.6955812        0.16168232             0.000     -1.    14
-     72    303     12     11      3  20.870510      231.10045     0.77579519E-02 0.11800000    
-  1     389.38110             0.000      9.    21
-  2    -141.23921             0.000      9.    21
-  5    -61.617349        -103.91843         42.528578            0.3017E-05  9.     5
-  6     59.837675         119.16150         55.238543            0.1302E-05  9.    -5
-  7     17.711338        0.65506034         5.0276712            0.5110E-03 -1.    11
-  8    -69.126896         2.0186706         121.60436             0.000      1.   -12
-  9     23.070541        -7.7704412        -29.276409            0.1057      1.   -13
- 10     30.124691        -10.146365         53.019141             0.000     -1.    14
-     73    303     12      7      3  20.870510      183.64238     0.77579519E-02 0.11800000    
-  1     121.68504             0.000      9.    -2
-  2    -303.61449             0.000      9.     2
-  5    -9.0568168         12.420070         28.313354            0.2259E-05  9.    -5
-  6    -31.815552         33.451660        -7.4268391            0.4495E-06  9.     5
-  7    -7.0978790         2.5497502        -163.58073            0.5110E-03 -1.    11
-  8    -39.403228         1.0723503        -18.484105             0.000      1.   -12
-  9     47.578816        -26.951633        -58.245859            0.1057      1.   -13
- 10     39.794660        -22.542198         37.494732             0.000     -1.    14
-     74    303     12      2      2  20.870510      247.05183     0.77579519E-02 0.11800000    
-  1     579.47331             0.000      9.     2
-  2    -136.25579             0.000      9.    -2
-  5     50.753187        -71.680905         59.778716            0.2442E-05  9.     5
-  6    -7.8339834        -13.178196         173.67406            0.2504E-05  9.    -5
-  7     128.13601         24.650887         1.9121130            0.1057     -1.    13
-  8    -8.2465654         7.8482654        -10.579375             0.000      1.   -14
-  9    -33.403010         10.742549         4.1462653            0.5110E-03  1.   -11
- 10    -129.40564         41.617399         214.28575             0.000     -1.    12
-     75    303     12      7      2  20.870510      186.89940     0.77579519E-02 0.11800000    
-  1     14.551906             0.000      9.    -2
-  2    -3464.7934             0.000      9.     2
-  5     21.887937        -13.780529        -422.96256            0.5683E-05  9.    -5
-  6     61.964342        -16.759731        -2075.6384            0.1437E-04  9.     5
-  7    -36.580223         35.453042        -286.96104            0.1057     -1.    13
-  8    -43.982712         11.616221        -50.999557             0.000      1.   -14
-  9    -3.0870828        -15.512640        -616.22417            0.5110E-03  1.   -11
- 10   -0.20226065        -1.0163629         2.5441976             0.000     -1.    12
-     76    303     12      6      2  20.870510      683.57227     0.77579519E-02 0.11800000    
-  1     1089.7899             0.000      9.    -1
-  2    -1138.4375             0.000      9.     1
-  5     334.64188        -91.392595         458.84637            0.2065E-04  9.    -5
-  6    -132.91566         126.13602        -303.87968            0.1063E-04  9.     5
-  7     188.34403        -114.90287         216.17662            0.1057     -1.    13
-  8     71.518295        -82.590846         180.28692             0.000      1.   -14
-  9    -392.16314         138.27177        -549.71368            0.5110E-03  1.   -11
- 10    -69.425411         24.478523        -50.364145             0.000     -1.    12
-     77    303     12      6      3  20.870510      209.49898     0.77579519E-02 0.11800000    
-  1     343.29093             0.000      9.    -1
-  2    -293.44079             0.000      9.     1
-  5    -57.729683        -25.836105        -3.8071665            0.4382E-05  9.    -5
-  6     88.702252        -31.591562         220.76958            0.1823E-05  9.     5
-  7    -3.1919633         27.129922        -154.34090            0.5110E-03 -1.    11
-  8    -53.940748         16.481553        -56.084378             0.000      1.   -12
-  9     9.9109598         5.2343646        -24.434674            0.1057      1.   -13
- 10     16.249183         8.5818274         67.747682             0.000     -1.    14
-     78    303     12     12      4  20.870510      185.20971     0.77579519E-02 0.11800000    
-  1     36.077436             0.000      9.    21
-  2    -950.85148             0.000      9.    21
-  5    -39.707541         52.031865        -82.945500            0.6385E-05  9.     5
-  6     44.770781         10.065806        -238.83260            0.1715E-05  9.    -5
-  7     34.684783         1.4013729        -44.038461            0.1057     -1.    13
-  8     26.270838         5.4791206        -333.82114             0.000      1.   -14
-  9    -55.043283        -57.510605        -216.97298            0.1057      1.   -13
- 10    -10.975577        -11.467559         1.8366393             0.000     -1.    14
-     79    303     12     11      4  20.870510      184.27055     0.77579519E-02 0.11800000    
-  1     28.858913             0.000      9.    21
-  2    -1176.7023             0.000      9.    21
-  5     80.383210        -24.598105        -174.76062            0.5734E-05  9.     5
-  6    -6.2644297         36.118092        -411.78670            0.8639E-05  9.    -5
-  7     26.581474         4.9823714        -255.23310            0.1057     -1.    13
-  8    -49.433803         3.3263597        -149.31503             0.000      1.   -14
-  9    -40.856585        -15.802414        -164.76831            0.1057      1.   -13
- 10    -10.409867        -4.0263038         8.0203646             0.000     -1.    14
-     80    303     12     12      1  20.870510      175.31736     0.77579519E-02 0.11800000    
-  1     286.68731             0.000      9.    21
-  2    -155.06577             0.000      9.    21
-  5    -27.665602         17.820693         161.56879            0.3832E-05  9.     5
-  6     53.472683        -10.070628         25.758413            0.1569E-05  9.    -5
-  7     44.762455        -18.441399         34.231216            0.5110E-03 -1.    11
-  8    -29.447146        -13.632591        -7.2871505             0.000      1.   -12
-  9    -28.914774         17.103111        -97.772075            0.5110E-03  1.   -11
- 10    -12.207616         7.2208139         15.122346             0.000     -1.    12
-     81    303     12     11      2  20.870510      207.57785     0.77579519E-02 0.11800000    
-  1     152.70367             0.000      9.    21
-  2    -349.36289             0.000      9.    21
-  5    0.50606533        -4.6947713         23.182740            0.1794E-05  9.     5
-  6     122.35731        -11.376135        -4.8885491            0.1362E-05  9.    -5
-  7    -61.127590         24.373301        -203.39849            0.1057     -1.    13
-  8    -48.322448         9.2918545        -28.204654             0.000      1.   -14
-  9    -6.0308043        -7.9105932        -32.658098            0.5110E-03  1.   -11
- 10    -7.3825357        -9.6836564         49.307826             0.000     -1.    12
-     82    303     12     11      4  20.870510      181.88063     0.77579519E-02 0.11800000    
-  1     844.55320             0.000      9.    21
-  2    -52.178567             0.000      9.    21
-  5     36.866940       -0.77679156E-01     148.49639            0.2707E-05  9.     5
-  6    -32.038696         62.339927         470.10658            0.3721E-05  9.    -5
-  7     30.316549        -22.779593         24.916878            0.1057     -1.    13
-  8    -45.990616        -24.586735        -1.1046610             0.000      1.   -14
-  9     2.1795677        -2.9934722        -9.7867990            0.1057      1.   -13
- 10     8.6662549        -11.902449         159.74625             0.000     -1.    14
-     83    303     12     12      3  20.870510      199.66619     0.77579519E-02 0.11800000    
-  1     279.01167             0.000      9.    21
-  2    -244.14143             0.000      9.    21
-  5    -3.7381427        -56.589124         23.063379            0.4637E-05  9.     5
-  6    -100.48937        -20.932957        -43.231989            0.8780E-06  9.    -5
-  7     101.46329         25.354457         92.918929            0.5110E-03 -1.    11
-  8    -1.5640347         15.770629         69.909915             0.000      1.   -12
-  9     3.2309714         27.169693        -120.30742            0.1057      1.   -13
- 10     1.0972943         9.2273025         12.517427             0.000     -1.    14
-     84    303     12     11      3  20.870510      244.88912     0.77579519E-02 0.11800000    
-  1     82.356484             0.000      9.    21
-  2    -739.40203             0.000      9.    21
-  5    -51.280892        -65.808454        -211.68072            0.2861E-05  9.     5
-  6     3.0956810         55.148732        -256.63056            0.2173E-05  9.    -5
-  7     22.085711        -61.519279        -74.588541            0.5110E-03 -1.    11
-  8    -21.781273        -36.963447         8.3557977             0.000      1.   -12
-  9     34.837213         79.410136        -129.27998            0.1057      1.   -13
- 10     13.043560         29.732311         6.7784492             0.000     -1.    14
-     85    303     12     12      4  20.870510      299.34718     0.77579519E-02 0.11800000    
-  1     165.88662             0.000      9.    21
-  2    -826.87733             0.000      9.    21
-  5    -151.58287        -2.3374965        -302.70613            0.7531E-05  9.     5
-  6     123.64547         3.8509808        -62.636707            0.1907E-05  9.    -5
-  7     16.482330        -32.088852        -82.303139            0.1057     -1.    13
-  8    -82.146542        -75.263891        -237.77128             0.000      1.   -14
-  9     42.055056         47.553409        -27.907005            0.1057      1.   -13
- 10     51.546559         58.285849         52.333550             0.000     -1.    14
-     86    303     12      6      2  20.870510      287.10038     0.77579519E-02 0.11800000    
-  1     413.12457             0.000      9.    -1
-  2    -261.49358             0.000      9.     1
-  5    -15.513199        -10.963790         73.937977            0.3104E-05  9.    -5
-  6    -6.0973465        -9.2223337         33.721898            0.1898E-05  9.     5
-  7     19.968739         102.68667         72.488487            0.1057     -1.    13
-  8    -59.329674         129.71552         93.599434             0.000      1.   -14
-  9     41.257350        -143.59948        -122.98331            0.5110E-03  1.   -11
- 10     19.714131        -68.616595        0.86650328             0.000     -1.    12
-     87    303     12     11      1  20.870510      184.29221     0.77579519E-02 0.11800000    
-  1     85.446811             0.000      9.    21
-  2    -416.45534             0.000      9.    21
-  5     30.809462         52.790760        -109.64786            0.2390E-05  9.     5
-  6     45.619050         7.7911627        -5.6252175            0.6656E-06  9.    -5
-  7     14.169505         2.3658417         23.751274            0.5110E-03 -1.    11
-  8    -56.518994         3.5797166        -26.044033             0.000      1.   -12
-  9    -28.441809        -55.522775        -217.79121            0.5110E-03  1.   -11
- 10    -5.6372137        -11.004706         4.3485191             0.000     -1.    12
-     88    303     12     11      4  20.870510      176.87037     0.77579519E-02 0.11800000    
-  1     127.11239             0.000      9.    21
-  2    -670.20746             0.000      9.    21
-  5    -54.327224        -35.333642        -125.90659            0.4313E-05  9.     5
-  6    -56.747345        -6.4866410        -17.602293            0.4532E-06  9.    -5
-  7     32.804420        0.97471117        -49.993758            0.1057     -1.    13
-  8     19.576251         4.3781131        -412.77389             0.000      1.   -14
-  9     20.188813         12.543633        -18.057689            0.1057      1.   -13
- 10     38.505084         23.923826         81.239138             0.000     -1.    14
-     89    303     12     12      4  20.870510      231.75884     0.77579519E-02 0.11800000    
-  1     171.33878             0.000      9.    21
-  2    -544.64894             0.000      9.    21
-  5    -75.809567        -69.503946        -352.30687            0.2882E-05  9.     5
-  6     37.069532        -12.497743        -29.916121            0.1885E-05  9.    -5
-  7     31.755294        -30.022743        -23.786467            0.1057     -1.    13
-  8    -28.529945        -34.872708        -43.787857             0.000      1.   -14
-  9     12.665151         52.386058        -12.512049            0.1057      1.   -13
- 10     22.849535         94.511082         88.999213             0.000     -1.    14
-     90    303     12     12      4  20.870510      249.08622     0.77579519E-02 0.11800000    
-  1     148.78793             0.000      9.    21
-  2    -654.04092             0.000      9.    21
-  5     16.463270         86.881970         62.567406            0.5521E-05  9.     5
-  6    -5.4766718        -149.22546        -391.34123            0.4173E-05  9.    -5
-  7     33.539054         56.212359        -74.235350            0.1057     -1.    13
-  8    -25.776052         33.191074        0.70213178             0.000      1.   -14
-  9    -13.865214        -20.010659        -116.27082            0.1057      1.   -13
- 10    -4.8843859        -7.0492802         13.324875             0.000     -1.    14
-     91    303     12     11      2  20.870510      181.85446     0.77579519E-02 0.11800000    
-  1     213.40209             0.000      9.    21
-  2    -251.68672             0.000      9.    21
-  5    -24.425627         64.279928        -30.632361            0.1422E-05  9.     5
-  6     43.903471         17.594960         6.0789219            0.1156E-05  9.    -5
-  7     74.865881        -15.885491        -69.312989            0.1057     -1.    13
-  8    -13.728576        -11.750094        -63.350468             0.000      1.   -14
-  9    -21.330770        -14.351721        -8.3436605            0.5110E-03  1.   -11
- 10    -59.284378        -39.887582         127.27593             0.000     -1.    12
-     92    303     12      6      1  20.870510      419.34402     0.77579519E-02 0.11800000    
-  1     507.26819             0.000      9.    -1
-  2    -381.15545             0.000      9.     1
-  5    -6.6662154         111.15783         18.374210            0.4066E-05  9.    -5
-  6     11.190830        -130.93070         3.3901948            0.1865E-05  9.     5
-  7    -4.6003417         38.718976         12.952997            0.5110E-03 -1.    11
-  8    -200.93434         167.04542         165.36478             0.000      1.   -12
-  9     120.58514        -111.57558        -82.594920            0.5110E-03  1.   -11
- 10     80.424926        -74.415948         8.6254749             0.000     -1.    12
-     93    303     12     12      4  20.870510      201.93125     0.77579519E-02 0.11800000    
-  1     363.76590             0.000      9.    21
-  2    -190.02893             0.000      9.    21
-  5    -97.143146        -44.971867         159.23421            0.4501E-05  9.     5
-  6     109.82027        -11.476188        -18.144760            0.2397E-05  9.    -5
-  7     35.971882         24.508486         75.754700            0.1057     -1.    13
-  8    -40.759270         18.033564         29.205875             0.000      1.   -14
-  9    -5.4475063         9.6014710        -90.166885            0.1057      1.   -13
- 10    -2.4422269         4.3045330         17.853828             0.000     -1.    14
-     94    303     12     11      4  20.870510      188.62134     0.77579519E-02 0.11800000    
-  1     298.85261             0.000      9.    21
-  2    -120.44209             0.000      9.    21
-  5    -51.993812         60.379798         4.9682646            0.1111E-05  9.     5
-  6    -42.075076        -76.715753         99.874206            0.5606E-06  9.    -5
-  7     79.895276         7.0707350         35.275373            0.1057     -1.    13
-  8    -18.666020         4.0492860         26.411961             0.000      1.   -14
-  9     15.240310         2.4206254        -33.948170            0.1057      1.   -13
- 10     17.599321         2.7953082         45.828886             0.000     -1.    14
-     95    303     12     11      1  20.870510      221.64159     0.77579519E-02 0.11800000    
-  1     2205.1203             0.000      9.    21
-  2    -31.671068             0.000      9.    21
-  5     40.604865         2.6167093         222.19845            0.1215E-04  9.     5
-  6     13.182239        -1.2758928         9.8022199            0.3231E-05  9.    -5
-  7     28.400031        -75.958969         149.67415            0.5110E-03 -1.    11
-  8    -45.230943        -61.488389         105.77118             0.000      1.   -12
-  9   -0.90771805         3.3430491         1.7348078            0.5110E-03  1.   -11
- 10    -36.048474         132.76349         1684.2684             0.000     -1.    12
-     96    303     12     12      3  20.870510      202.61390     0.77579519E-02 0.11800000    
-  1     127.41846             0.000      9.    21
-  2    -329.91555             0.000      9.    21
-  5     39.773680         112.72445        -43.702752            0.7649E-06  9.     5
-  6    -37.568048        -109.63722        -105.14800            0.1207E-05  9.    -5
-  7     17.414136        -6.2008809        -42.062955            0.5110E-03 -1.    11
-  8    -34.375686        -5.7688729         19.518926             0.000      1.   -12
-  9     8.7452794         5.2643395        -58.506986            0.1057      1.   -13
- 10     6.0106384         3.6181853         27.404673             0.000     -1.    14
-     97    303     12     11      3  20.870510      177.98449     0.77579519E-02 0.11800000    
-  1     37.612190             0.000      9.    21
-  2    -955.03490             0.000      9.    21
-  5    -18.335838         45.856420        -197.60612            0.8082E-06  9.     5
-  6     43.528917         30.170743        -299.51884            0.5618E-05  9.    -5
-  7     70.800416        -32.696764        -78.376414            0.5110E-03 -1.    11
-  8    -16.437615        -13.372824        -12.159625             0.000      1.   -12
-  9    -70.300993        -26.472554        -331.37361            0.1057      1.   -13
- 10    -9.2548873        -3.4850219         1.6118947             0.000     -1.    14
-     98    303     12     11      4  20.870510      189.28286     0.77579519E-02 0.11800000    
-  1     606.81641             0.000      9.    21
-  2    -115.28879             0.000      9.    21
-  5    -26.460074         93.428632        -2.8706875            0.2320E-05  9.     5
-  6    -71.077140        -53.113804         230.47171            0.3912E-05  9.    -5
-  7     41.221670        -11.500678        -37.527680            0.1057     -1.    13
-  8    -3.6620683        -8.9600845         33.974655             0.000      1.   -14
-  9     7.9498293        -2.6315891        -3.6519686            0.1057      1.   -13
- 10     52.027783        -17.222476         271.13159             0.000     -1.    14
-     99    303     12      7      1  20.870510      242.04499     0.77579519E-02 0.11800000    
-  1     101.38279             0.000      9.    -2
-  2    -1990.4132             0.000      9.     2
-  5     29.987664       -0.64018530        -257.97422            0.7672E-05  9.    -5
-  6     12.542702        -22.146622         44.104142            0.9554E-06  9.     5
-  7    -64.622165         37.557163        -889.35849            0.5110E-03 -1.    11
-  8    -119.67202         29.376176        -678.26996             0.000      1.   -12
-  9     98.352439        -30.627837        -113.68656            0.5110E-03  1.   -11
- 10     43.411380        -13.518695         6.1546868             0.000     -1.    12
-    100    303     12     11      1  20.870510      201.89764     0.77579519E-02 0.11800000    
-  1     765.02688             0.000      9.    21
-  2    -53.347406             0.000      9.    21
-  5     37.692136         17.063927         14.249352            0.5432E-05  9.     5
-  6     72.732211        -35.999509         157.49158            0.1706E-05  9.    -5
-  7    -9.3987045         62.720525         294.92438            0.5110E-03 -1.    11
-  8    -40.387677         21.388145         60.922713             0.000      1.   -12
-  9    -11.697379        -12.572228        -4.5440239            0.5110E-03  1.   -11
- 10    -48.940586        -52.600860         188.63548             0.000     -1.    12
diff --git a/Generators/MadCUP_i/share/jobOptions.MadCupHerwig.py b/Generators/MadCUP_i/share/jobOptions.MadCupHerwig.py
deleted file mode 100755
index eecf6cf3f556e13ac80189a3a5845d747b7e98ed..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/share/jobOptions.MadCupHerwig.py
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-# make sure we are loading the ParticleProperty service
-from PartPropSvc.PartPropSvcConf import PartPropSvc
-ServiceMgr += PartPropSvc()
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["HERWIG 330020611 841000366", "HERWIG_INIT 824021 3247532"]
-# AtRndmGenSvc.ReadFromFile = true;
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Herwig_i.Herwig_iConf import Herwig
-job += Herwig()
-job.Herwig.HerwigCommand = ["iproc madcup"]
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/MadCUP_i/share/jobOptions.MadCupPythia.py b/Generators/MadCUP_i/share/jobOptions.MadCupPythia.py
deleted file mode 100755
index 5e683e19368448f4c045c8f9d45a9e9f30c43c5f..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/share/jobOptions.MadCupPythia.py
+++ /dev/null
@@ -1,54 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-# make sure we are loading the ParticleProperty service
-from PartPropSvc.PartPropSvcConf import PartPropSvc
-ServiceMgr += PartPropSvc()
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Pythia_i.Pythia_iConf import Pythia
-job += Pythia()
-job.Pythia.PythiaCommand = ["pyinit user madcup"]
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/MadCUP_i/src/initmadcup.F b/Generators/MadCUP_i/src/initmadcup.F
deleted file mode 100755
index d26b0f51c9e9a646d523f7a95426ba2b559744b2..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/src/initmadcup.F
+++ /dev/null
@@ -1,80 +0,0 @@
-      subroutine INITMADCUP
-      implicit none
-#include "GeneratorFortranCommon/heprup.inc"      
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "MadCUP_i/iofiles.inc"
-#include "MadCUP_i/hepup.inc"
-
-c  local variables
-      integer nevt,lineskip
-      character*50 text,title
-
-      integer i
-c     ,ievt
-c      data ievt /0/
-c      save ievt
-      logical ldebug
-      parameter (ldebug=.false.)
-
-c  variables for figuring out status of io file.
-C      character*50 howConnected
-C      integer EDF_is_open
-      logical exists
-      logical file_opened,unit_opened
-
-c  open input file if necessary
-
-      inquire(UNIT=unitnumber,OPENED=unit_opened)
-      inquire(FILE=eventDataFile,EXIST=exists,OPENED=file_opened,
-     &          NUMBER=unitnumber)
-
-      if(.not.file_opened ) then
-c       start at unitnumber=14 and check units until we find one that-s not open.
-        unitnumber=14  !need to set this again because of the 2nd inquire statement above
-        if(ldebug) then
-          write(*,*) 'looking for valid unit number for
-     & event data file.....'
-        endif
-        do while(unit_opened)
-          if(ldebug) then    
-            write(*,*) 'unit number ',unitnumber,' is already taken;
-     &  trying again...'
-          endif
-          unitnumber=unitnumber+1
-          inquire(UNIT=unitnumber,OPENED=unit_opened)   
-        enddo
-c       now we heve established that eventDataFile and unitnumber are not connected
-        if(ldebug) then
-          write(*,*) 'looks like unit number',unitnumber,
-     &              ' is ok, opening file...' 
-        endif
-        open(unitnumber,file=eventDataFile,status='old')
-      endif
-
-
-
-c  read in lookup table and HEPRUP common block
-      read(unitnumber,'(a)') title
-      read(unitnumber,'(i10,a)') nevt,text
-      read(unitnumber,'(i10,a)') lineskip,text
-      do i = 1,lineskip
-         read(unitnumber,'(a)') text
-      enddo
-      read(unitnumber,'(2i8,2g14.4,a)') IDBMUP(1),IDBMUP(2),
-     &                                EBMUP(1),EBMUP(2),text
-      read(unitnumber,'(4i8,a)') PDFGUP(1),PDFGUP(2),PDFSUP(1),
-     &                          PDFSUP(2),text
-      read(unitnumber,'(2i8,a)') IDWTUP, NPRUP,text
-      if (nprup.ne.1) then
-         print*,' You requested ',nprup,' subprocesses. '
-         print*,' Sorry. Not implemented yet. Max number is 1. '
-         stop
-      endif
-      do i = 1,NPRUP
-        read(unitnumber,'(2g14.4,g18.8,i3,a)') XSECUP(I), XERRUP(I),
-     1                                XMAXUP(I), LPRUP(I),text
-      enddo
-      call loadTable(lnup,lidprup,listup,lidup,
-     &               lmothup,licolup,numcolor,numdecay,numEntry)
-
-      end
diff --git a/Generators/MadCUP_i/src/loadTable.F b/Generators/MadCUP_i/src/loadTable.F
deleted file mode 100755
index 9e3c167bc73a0f3871e8821deee38d6a1bdff8fe..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/src/loadTable.F
+++ /dev/null
@@ -1,75 +0,0 @@
-      subroutine loadTable(lnup,lidprup,listup,lidup,
-     &                     lmothup,licolup,
-     &                     numcolor,numdecay,numEntry)
-
-c     loads the hepup-format lookup table
-
-      implicit none
-#include "MadCUP_i/iofiles.inc"
-
-      integer maxNumSubProc
-      parameter( maxNumSubProc = 1000 )
-      integer LMAXNUP
-      parameter ( LMAXNUP = 20 )
-
-      integer thisProcess
-      integer lnup(maxNumSubProc), lidprup(maxNumSubProc)
-      integer LISTUP(LMAXNUP,maxNumSubProc)
-      integer LIDUP(LMAXNUP,maxNumSubProc)
-      integer LMOTHUP(2,LMAXNUP,maxNumSubProc)
-      integer LICOLUP(2,LMAXNUP,maxNumSubProc)
-      integer numcolor,numdecay, numEntry(maxNumSubProc)
-
-c  local variables
-      integer i,j,np,procNum
-
-
-      read(unitnumber,'(7i5)') numdecay,thisProcess
-c      write(*,*) 'numdecay=',numdecay
-      do i=1,numdecay
-         read(unitnumber,'(3i8)') ProcNum,lnup(i),numEntry(i)
-         lidprup(i) = thisprocess
-c         write(*,*)'i=',i
-         if(i.ne.ProcNum) then
-            write(*,*)'error: decaylookup data not in order'
-            write(*,*)'for decayprocess = ',ProcNum
-            print*,i,numdecay,numcolor
-c            stop
-         endif
-
-         np=lnup(i)-numEntry(i)
-         do j=np+1,lnup(i)
-            read(unitnumber,'(i4,i6,4i5)') listup(j,i), lidup(j,i),
-     &           lmothup(1,j,i),lmothup(2,j,i),
-     &           licolup(1,j,i),licolup(2,j,i)
-c            print*,' l info for procnum ',i
-c            write(*,'(i4,i6,4i5)')
-c     &           listup(j,i), lidup(j,i),
-c     &           lmothup(1,j,i),lmothup(2,j,i),
-c     &           licolup(1,j,i),licolup(2,j,i)
-         enddo
-      enddo
-
-      read(unitnumber,'(7i5)') numcolor,thisProcess
-      do i=1+numdecay,numcolor+numdecay
-         read(unitnumber,'(3i8)') ProcNum,lnup(i),numEntry(i)
-         lidprup(i) = thisprocess
-c        write(*,*) "i=",i
-         if(i-numdecay.ne.ProcNum) then
-            write(*,*)'error: colorlookup data not in order.'
-            write(*,*)'for colorprocess = ',ProcNum
-            stop
-         endif
-
-         do j=1,numEntry(i)
-            read(unitnumber,'(i4,i6,4i5)') listup(j,i), lidup(j,i),
-     &           lmothup(1,j,i),lmothup(2,j,i),
-     &           licolup(1,j,i),licolup(2,j,i)
-c            write(*,'(i4,i6,4i5)')
-c     &           listup(j,i), lidup(j,i),
-c     &           lmothup(1,j,i),lmothup(2,j,i),
-c     &           licolup(1,j,i),licolup(2,j,i)
-         enddo
-      enddo
-      end
-
diff --git a/Generators/MadCUP_i/src/printHepupContents.F b/Generators/MadCUP_i/src/printHepupContents.F
deleted file mode 100755
index b7a76027625d73911854d4038209f191087f8063..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/src/printHepupContents.F
+++ /dev/null
@@ -1,25 +0,0 @@
-      subroutine printHepupContents
-      implicit none
-        
-#include "GeneratorFortranCommon/heprup.inc"      
-#include "GeneratorFortranCommon/hepeup.inc"
-
-C      integer i,j,k,l,ievt
-      integer i,ievt
-      logical firstTime
-      data firstTime /.true./, ievt /0/
-      save firstTime
-
-      firstTime=.false.
-
-      ievt=ievt+1
-      write(*,*) "info in hepeup:",ievt
-      write(*,*) NUP, IDPRUP  !, XWGTUP, SCALUP, AQEDUP, AQCDUP
-      do i=1,nup
-      write(*,*) idup(i),istup(i),mothup(1,i),mothup(2,i)
-      write(*,*) icolup(1,i),icolup(2,i), vtimup(i),spinup(i)
-      write(*,'(5g10.4)') pup(1,i),pup(2,i),pup(3,i),pup(4,i),
-     &                    pup(5,i)
-      enddo
-   
-      end
diff --git a/Generators/MadCUP_i/src/usemadcup.F b/Generators/MadCUP_i/src/usemadcup.F
deleted file mode 100755
index 011f0ff9abb0183f6bf1e784426a752a9a26ee28..0000000000000000000000000000000000000000
--- a/Generators/MadCUP_i/src/usemadcup.F
+++ /dev/null
@@ -1,138 +0,0 @@
-      subroutine usemadcup
-      implicit none
-     
-#include "GeneratorFortranCommon/heprup.inc"      
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "MadCUP_i/hepup.inc"
-#include "MadCUP_i/iofiles.inc"
-
-      integer istg
-      common /evtcon/ istg
-      
-c     local variables 
-      logical interfacedebug
-      parameter (interfacedebug=.false.)
-  
-C      integer i,ii,j,k,ios,ievt,ProcNum,np,numMother
-      integer i,j,k,ievt,ProcNum,np
-      data ievt /0/
-      save ievt
-      logical ldebug
-      parameter (ldebug=.false.)
-
-c      double precision tpup(20,5), tspinup(20)
-      integer id, tidup(20)
-
-
-c  read in an event
-      read(unitnumber,'(5i7,4g15.8)',END=100) ievt,idprup,nup,
-     &                         colorprocess,
-     &                         decayprocess,
-     &                         xwgtup,SCALUP, AQEDUP, AQCDUP
-      if (nup.eq.0) then
-         write(*,*) 'no more events in data file'
-         return
-      endif
-
-
-      if (ldebug) then
-         if(idprup.ne.lidprup(decayprocess) .or.
-     &        idprup.ne.lidprup(colorprocess+numdecay) ) then
-            write(*,*) ' process number mismatch in UPEVNT '
-            write(*,*) lidprup(decayprocess),' in decay Table '
-            write(*,*) lidprup(colorprocess+numdecay),' in color Table '
-            write(*,*) idprup,' in event data file '
-         endif
-
-         if(decayprocess.gt.numdecay) then
-            write(*,*) 'error: decayprocess out of range in event',ievt
-            write(*,*) 'decayprocess = ',decayprocess
-         endif
-         if(colorprocess.gt.numcolor) then
-            write(*,*) 'error: colorprocess out of range in event',ievt
-            write(*,*) 'colorprocess = ',colorprocess
-         endif
-      endif
-
-      ProcNum=colorprocess+numdecay
-      np=numentry(procnum)
-      do i=1,2
-        read(unitnumber,'(i3,g18.8,g18.4,f4.0,i6)')
-     &      id,(pup(j,i),j=3,3),pup(5,i),spinup(i),tidup(i)
-        pup(1,i)=0
-        pup(2,i)=0
-        pup(4,i)=sqrt(pup(5,i)**2+pup(3,i)**2)
-        istup(i)=listup(i,ProcNum)
-        mothup(1,i)=lmothup(1,i,ProcNum)
-        mothup(2,i)=lmothup(2,i,ProcNum)
-        icolup(1,i)=licolup(1,i,ProcNum)
-        icolup(2,i)=licolup(2,i,ProcNum)
-        vtimup(i)=0
-        idup(id)=lidup(id,ProcNum)
-        if( idup(id).ne.tidup(i)) then
-           write(*,*) ' mismatch of idup for event ',ievt,' id = ',id
-        endif
-      enddo
-      
-      do i=3,nup   
-         if (i.le.np) then
-            ProcNum = colorprocess+numdecay
-         else
-            ProcNum = decayprocess
-         endif
-         istup(i)=listup(i,ProcNum)
-         mothup(1,i)=lmothup(1,i,ProcNum)
-         mothup(2,i)=lmothup(2,i,ProcNum)
-         icolup(1,i)=licolup(1,i,ProcNum)
-         icolup(2,i)=licolup(2,i,ProcNum)
-         vtimup(i)=0
-         idup(i)=lidup(i,ProcNum) 
-         if(abs(istup(i)).eq.1) then
-            read(unitnumber,'(i3,3g18.8,g18.4,f4.0,i6)')
-     &          id,(pup(j,i),j=1,3),pup(5,i),spinup(i),tidup(i)
-            pup(4,i)=sqrt(pup(5,i)**2+pup(1,i)**2+
-     &                    pup(2,i)**2+pup(3,i)**2)
-            if( idup(i).ne.tidup(i)) then
-               write(*,*) 'mismatch of idup for event ',
-     &                    ievt,' id = ',id,i
-               print*,decayprocess,colorprocess
-               write(*,*) ' idup = ',idup(i)
-               write(*,*) ' tidup = ',tidup(i)
-            endif
-         else  !data for this particle was not stored; 
-               !reset momentum for treatment below
-            do j=1,5
-               pup(j,i)=0
-            enddo
-         endif
-      enddo
-
-c fill momenta of mothers corresponding to decaying particles
-      do i=3,nup
-         k = mothup(1,i)
-         if ( (k.eq.mothup(2,i) .or. mothup(2,i).eq.0)
-     &        .and. k.ge.3 .and. abs(istup(k)).ne.1) then
-            do j = 1,4
-               pup(j,k) = pup(j,k) + pup(j,i)
-            enddo
-         endif
-      enddo
-      do i=3,nup
-         if (abs(istup(i)).ne.1) then
-            pup(5,i) = sqrt(pup(4,i)**2-pup(1,i)**2-
-     &                       pup(2,i)**2-pup(3,i)**2)
-         endif
-      enddo
-
-
-      if(interfacedebug) then
-        call printHEPUPcontents
-      endif
-      
-      return
-
- 100  nup = 0
-      istg = 1
-      return
-      
-      end
diff --git a/Generators/MadGraph_i/CMakeLists.txt b/Generators/MadGraph_i/CMakeLists.txt
deleted file mode 100644
index f13ef51c3814387937882eacab8314f51705e1d3..0000000000000000000000000000000000000000
--- a/Generators/MadGraph_i/CMakeLists.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-################################################################################
-# Package: MadGraph_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( MadGraph_i )
-
-# External dependencies:
-find_package( Pythia6 COMPONENTS pythia6 pythia6_dummy )
-
-# Component(s) in the package:
-atlas_add_library( MadGraph_i
-   MadGraph_i/*.inc src/*.F
-   PUBLIC_HEADERS MadGraph_i
-   PRIVATE_INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS}
-   PRIVATE_LINK_LIBRARIES ${PYTHIA6_LIBRARIES} )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-atlas_install_runtime( share/events.lhe )
diff --git a/Generators/MadGraph_i/MadGraph_i/madsho.inc b/Generators/MadGraph_i/MadGraph_i/madsho.inc
deleted file mode 100644
index f6ffa47c71b585af024030b39cff00faee66ad9b..0000000000000000000000000000000000000000
--- a/Generators/MadGraph_i/MadGraph_i/madsho.inc
+++ /dev/null
@@ -1,53 +0,0 @@
-c process code
-      integer ihrd
-      integer itopprc
-c--event file data
-      integer Nunit,NunitOut,NunitIni
-      character*100 filename
-c total number of input events
-      common/MGio/Nunit,NunitOut,NunitIni,filename
-c inputs for the matching algorithm
-      integer iexc,npfst,nplst,nljets,njstart,njlast
-     $     ,ickkw
-      double precision etclus,rclus,etaclmax
-      common/MGopts/etclus,rclus,etaclmax,iexc,npfst
-     $     ,nplst,nljets,njstart,njlast,ickkw
-c process and particles parameters
-      double precision mc,mb,mt,mw,mz,mh
-      double precision ebeam
-      integer ndns,ih1,ih2       
-      integer nw,nz,nh,nph
-      integer ihvy,ihvy2
-c pdf set type
-      character pdftyp*25
-c total number of partons
-      integer npart
-      common/MGppara/mc,mb,mt,mw,mz,mh,
-     & ebeam,ih1,ih2,
-     & ihrd,itopprc,
-     & nw,nz,nh,nph,
-     & ihvy,ihvy2,
-     & npart,ndns,pdftyp
-c weight information
-      real *8 maxwgt,avgwgt,errwgt,totlum
-      integer unwev
-      common/MGwgts/maxwgt,avgwgt,errwgt,totlum,unwev
-c general parameters
-      integer nparam
-      parameter (nparam=200)
-      integer parlen,partyp
-      character chpar*8,chpdes*70
-      double precision parval
-      common/MGpars/parval(nparam),chpar(nparam),chpdes(nparam)
-     $     ,parlen(nparam),partyp(nparam)
-c global event cuts
-      double precision ptjmin,ptjmax,etajmax,drjmin,
-     +     ptbmin,ptbmax,etabmax,drbmin,
-     +     ptcmin,ptcmax,etacmax,drcmin,
-     +     ptphmin,etaphmax,drphjmin,drphlmin,
-     +     ptlmin,etalmax,drlmin,metmin,mllmin,mllmax
-      common/MGcuts/ptjmin,ptjmax,etajmax,drjmin,
-     +     ptbmin,ptbmax,etabmax,drbmin,
-     +        ptcmin,ptcmax,etacmax,drcmin,
-     +        ptphmin,etaphmax,drphjmin,drphlmin,
-     +        ptlmin,etalmax,drlmin,metmin,mllmin,mllmax
diff --git a/Generators/MadGraph_i/share/events.lhe b/Generators/MadGraph_i/share/events.lhe
deleted file mode 100644
index d6aec75ec2cf85d8d631ab8b17bd30514a34aa58..0000000000000000000000000000000000000000
--- a/Generators/MadGraph_i/share/events.lhe
+++ /dev/null
@@ -1,518 +0,0 @@
-<LesHouchesEvents version="1.0">
-<header>
-<!--
-#*********************************************************************
-#                                                                    *
-#                       MadGraph/MadEvent                            *
-#                                                                    *
-#                      The new web generation                        *
-#                                                                    *
-#                   http://madgraph.hep.uiuc.edu                     *
-#                   http://madgraph.phys.ucl.ac.be                   *
-#                   http://madgraph.roma2.infn.it                    *
-#                                                                    *
-#            CP3 team                      Tim Stelzer               *
-#      Universite de Louvain          University of Illinois         *
-#                                                                    *
-#....................................................................*
-#                                                                    *
-# This file contains all the information necessary to reproduce      *
-# the events generated:                                              *
-#                                                                    *
-# 1. software version                                                *
-# 2. proc_card.dat      : code generation info including model       *
-# 3. param_card.dat     : model primary parameters in the LH format  *
-# 4. run_card.dat       : running parameters (collider and cuts)     *
-# 5. pythia_card.dat    : present only in the pythia event file      *
-# 6. pgs_card.dat       : present only in the pgs event file         *
-#                                                                    *
-#                                                                    *
-#*********************************************************************
--->
-<MGVersion>
-# MG/ME version    : 4.2.6
-# madgraph version : 4.2.3
-# template version : 2.2.4
-# helas version    : 3.2
-# model version    : sm_1.1
-</MGVersion>
-<MGProcCard>
-#*********************************************************************
-#                        MadGraph/MadEvent                           *
-#                   http://madgraph.hep.uiuc.edu                     *
-#                                                                    *
-#                          proc_card.dat                             *
-#                                                                    *
-# This file is used to generate the code for a specific process.     *
-# Some notation/conventions:                                         *
-#                                                                    *
-# 0. Do not modify the TAGS and their order.                         *
-# 1. hash/pound is a comment.                                        *
-# 2. The charcter after the @ is used as an identifier for the class *
-#    of processes. It can be a single or a digit.                    *
-# 3. The number of lines for the max couplings depends on how many   *
-#    different classes of couplings are present in the model         *
-#    In the SM these are just two: QED (which include EW) and QCD    *
-# 4. Write "end_coup" after  the couplings list,                     *
-#    to tell MG that the couplings input is over.                    *
-# 5. Write "done" after the proc list to                             *
-#    to tell MG that the proc input is over.                         *
-# 6. Some model names available at present are:                      *
-#    sm     =  Standard Model                                        *
-#    sm_ckm =  Standard Model with Cabibbo matrix                    *
-#    mssm   =  Minimal Supersymmetric Standard Model                 *
-#    2hdm   =  Generic Two Higgs Doublet model                       *
-#    heft   =  Higgs EFT (+Standard Model)                           *
-#    usrmod =  User Model                                            *
-# 7. Don't leave spaces between the particles name in the            *
-#    definition of the multiparticles.                               *
-#*********************************************************************
-#*********************************************************************
-# Process(es) requested : mg2 input                                  *
-#*********************************************************************
-# Begin PROCESS # This is TAG. Do not modify this line
-pp>z>l+l-jj   #  Process 
-QCD=99   # max qcd order
-QED=99   # max qed order
-end_coup   # the coupling list is over
-done       # the process list is over
-# End PROCESS  # This is TAG. Do not modify this line
-#*********************************************************************
-# Model information                                                  *
-#*********************************************************************
-# Begin MODEL  # This is TAG. Do not modify this line
-sm 
-# End   MODEL  # This is TAG. Do not modify this line
-#*********************************************************************
-# Start multiparticle definitions                                    *
-#*********************************************************************
-# Begin MULTIPARTICLES # This is TAG. Do not modify this line
-p uu~dd~ss~cc~g 
-j uu~dd~ss~cc~g
-l+ e+mu+ 
-l- e-mu- 
-vl vevm 
-vl~ ve~vm~
-# End  MULTIPARTICLES # This is TAG. Do not modify this line
-</MGProcCard>
-<slha>
-#******************************************************************
-#                      MadGraph/MadEvent                          *
-#******************************************************************
-#   Les Houches friendly file for the SM parameters of MadGraph   *
-#        Spectrum and decay widths produced by SMCalc             *
-#******************************************************************
-#*Please note the following IMPORTANT issues:                     *
-#                                                                 *
-#0. REFRAIN from editing this file by hand! Some of the parame-   *
-#   ters are not independent                                      *
-#   (such as G_Fermi, alpha_em, sin(theta_W),MZ,MW) and serious   *
-#   problems might be encountered (such as violation of unitarity *
-#   or gauge invariance).  Always use a calculator.               *
-#                                                                 *
-#1. alpha_S(MZ) has been used in the calculation of the parameters*
-#   but, for consistency, it will be reset by madgraph to the     *
-#   value expected IF the pdfs for collisions with hadrons are    *
-#   used. This value is KEPT by madgraph when no pdf are used     *
-#   lpp(i)=0 .                                                    *
-#                                                                 *
-#2. Values of the charm and bottom kinematic (pole) masses are    *
-#   those used in the matrix elements and phase space UNLESS they *
-#   are set to ZERO from the start in the model (particles.dat)   *
-#   This happens, for example,  when using 5-flavor QCD where     *
-#   charm and bottom are treated as partons in the initial state  *
-#   and a zero mass might be hardwired in the model definition.   *
-#                                                                 *
-#******************************************************************
-Block SMINPUTS      # Standard Model inputs
-     1         1.32506980E+02   # alpha_em(MZ)(-1) SM MSbar
-     2         1.16639000E-05   # G_Fermi
-     3         1.18000000E-01   # alpha_s(MZ) SM MSbar
-     4         9.11880000E+01   # Z mass (as input parameter)
-Block MGYUKAWA     # Yukawa masses m/v=y/sqrt(2)
-#    PDG          YMASS
-     5         4.20000000E+00   # mbottom for the Yukawa  y_b
-     4         1.42000000E+00   # mcharm  for the Yukawa  y_c
-     6         1.64500000E+02   # mtop    for the Yukawa  y_t
-    15         1.77700000E+00   # mtau    for the Yukawa  y_ta
-Block MGCKM     # CKM elements for MadGraph
-     1   1     9.75000000E-01   # Vud for Cabibbo matrix
-Block MASS      #  Mass spectrum (kinematic masses)
-#       PDG       Mass
-         5     4.70000000E+00   # bottom   pole mass
-         6     1.74300000E+02   # top      pole mass
-        15     1.77700000E+00   # tau      mass
-        23     9.11880000E+01   # Z        mass
-        24     8.04190000E+01   # W        mass
-        25     1.20000000E+02   # H        mass
-#            PDG       Width
-DECAY         6     1.50833649E+00   # top width
-DECAY        23     2.44140351E+00   # Z   width
-DECAY        24     2.04759951E+00   # W   width
-DECAY        25     5.75308848E-03   # H   width
-#        BR           NDA        ID1       ID2
-     8.27451012E-02    2           4        -4   # BR( H -> c  cbar  )
-     7.17809696E-01    2           5        -5   # BR( H -> b  bbar  )
-     0.00000000E+00    2           6        -6   # BR( H -> t  tbar  )
-     4.31720144E-02    2          15       -15   # BR( H -> tau- tau+)
-     6.90597075E-03    2          23        23   # BR( H -> Z   Z^(*))
-     7.45906395E-02    2          24       -24   # BR( H -> W   W^(*))
-     3.01765558E-02    2          21        21   # BR( H -> g   g    )
-     1.42800773E-03    2          22        22   # BR( H -> A   A    )
-</slha>
-<MGRunCard>
-#*********************************************************************
-#                       MadGraph/MadEvent                            *
-#                  http://madgraph.hep.uiuc.edu                      *
-#                                                                    *
-#                        run_card.dat                                *
-#                                                                    *
-#  This file is used to set the parameters of the run.               *
-#                                                                    *
-#  Some notation/conventions:                                        *
-#                                                                    *
-#   Lines starting with a '# ' are info or comments                  *
-#                                                                    *
-#   mind the format:   value    = variable     ! comment             *
-#*********************************************************************
-#
-#*******************                                                 
-# Running parameters
-#*******************                                                 
-#                                                                    
-#*********************************************************************
-# Tag name for the run (one word)                                    *
-#*********************************************************************
-  'fermi'     = run_tag ! name of the run 
-#*********************************************************************
-# Number of events and rnd seed                                      *
-#*********************************************************************
-  10000       = nevents ! Number of unweighted events requested 
-     233 = iseed   ! rnd seed (0=assigned automatically=default))
-#*********************************************************************
-# Collider type and energy                                           *
-#*********************************************************************
-        1     = lpp1  ! beam 1 type (0=NO PDF)
-        1     = lpp2  ! beam 2 type (0=NO PDF)
-     7000     = ebeam1  ! beam 1 energy in GeV
-     7000     = ebeam2  ! beam 2 energy in GeV
-#*********************************************************************
-# Beam polarization from -100 (left-handed) to 100 (right-handed)    *
-#*********************************************************************
-        0     = polbeam1 ! beam polarization for beam 1
-        0     = polbeam2 ! beam polarization for beam 2
-#*********************************************************************
-# PDF CHOICE: this automatically fixes also alpha_s and its evol.    *
-#*********************************************************************
- 'cteq6l1'    = pdlabel     ! PDF set                                     
-#*********************************************************************
-# Renormalization and factorization scales                           *
-#*********************************************************************
- F        = fixed_ren_scale  ! if .true. use fixed ren scale
- F        = fixed_fac_scale  ! if .true. use fixed fac scale
- 91.1880  = scale            ! fixed ren scale
- 91.1880  = dsqrt_q2fact1    ! fixed fact scale for pdf1
- 91.1880  = dsqrt_q2fact2    ! fixed fact scale for pdf2
- 1        = scalefact        ! scale factor for event-by-event scales
-#*********************************************************************
-# Matching - Warning! ickkw > 0 is still beta
-#*********************************************************************
- 1        = ickkw            ! 0 no matching, 1 MLM, 2 CKKW matching
-#*********************************************************************
-#                                                                    
-#*******************                                                 
-# Standard Cuts
-#*******************                                                 
-#                                                                    
-#*********************************************************************
-# Minimum pt's                                                       *
-#*********************************************************************
- 15  = ptj ! minimum pt for the jets 
- 15  = ptb ! minimum pt for the b 
- 10  = pta ! minimum pt for the photons 
- 10  = ptl ! minimum pt for the charged leptons 
-#*********************************************************************
-# Minimum energy (in the lab frame)                                  *
-#*********************************************************************
-  0  = ej ! minimum E for the jets 
-  0  = eb ! minimum E for the b 
-  0  = ea ! minimum E for the photons 
-  0  = el ! minimum E for the charged leptons 
-#*********************************************************************
-# Maximum rapidity                                                   *
-#*********************************************************************
- 5  = etaj ! max rap for the jets 
- 5  = etab ! max rap for the b 
- 2.7  = etaa ! max rap for the photons 
- 2.7  = etal ! max rap for the charged leptons 
-#*********************************************************************
-# Minimum DeltaR distance                                            *
-#*********************************************************************
- 0.001 = drjj ! distance between jets 
- 0.001   = drbb ! distance between b's 
- 0.4 = drll ! distance between leptons 
- 0.4 = draa ! distance between gammas 
- 0.001   = drbj ! distance between b and jet 
- 0.4 = draj ! distance between gamma and jet 
- 0.4 = drjl ! distance between jet and lepton 
- 0   = drab ! distance between gamma and b 
- 0   = drbl ! distance between b and lepton 
- 0.4 = dral ! distance between gamma and lepton 
-#*********************************************************************
-# Minimum invariant mass for pairs                                   *
-#*********************************************************************
- 0  = mmjj ! min invariant mass of a jet pair 
- 0  = mmbb ! min invariant mass of a b pair 
- 0  = mmaa ! min invariant mass of gamma gamma pair
- 0  = mmll ! min invariant mass of l+l- (same flavour) lepton pair
-#*********************************************************************
-# Inclusive cuts                                                     *
-#*********************************************************************
- 0  = xptj ! minimum pt for at least one jet  
- 0  = xptb ! minimum pt for at least one b 
- 0  = xpta ! minimum pt for at least one photon 
- 0  = xptl ! minimum pt for at least one charged lepton 
-#*********************************************************************
-# WBF cuts                                                           *
-#*********************************************************************
- 0  = xetamin ! minimum rapidity for two jets in the WBF case  
- 0  = deltaeta ! minimum rapidity for two jets in the WBF case 
-#*********************************************************************
-# Jet measure cuts                                                   *
-#*********************************************************************
- 15  = xqcut   ! minimum kt jet measure between partons
-#*********************************************************************
-</MGRunCard>
-<MGGenerationInfo>
-#  Number of Events        :          20
-#  Integrated weight (pb)  :  .46615E+03
-#  Truncated wgt (pb)      :  .31665E+00
-#  Unit wgt                :  .46615E-01
-</MGGenerationInfo>
-</header>
-<init>
-  2212  2212  0.70000000000E+04  0.70000000000E+04 0 0 10042 10042 3  1
-  0.46362161027E+03  0.13386993187E+01  0.46615000000E-01 100
-</init>
-<event>
- 7 100  0.4661500E-01  0.1187258E+03  0.7546772E-02  0.1247769E+00
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00  0.38762217252E+02  0.38762217252E+02  0.00000000000E+00 0. -1.
-        2   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00 -0.51928052407E+03  0.51928052407E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.24531021043E+02 -0.87447097133E+02 -0.20164293129E+03  0.23922807903E+03  0.91221906726E+02 0.  0.
-      -11    1    3    3    0    0  0.33492950895E+02 -0.19267574710E+02 -0.50918853260E+02  0.63919846778E+02  0.00000000000E+00 0.  1.
-       11    1    3    3    0    0 -0.58023971937E+02 -0.68179522424E+02 -0.15072407803E+03  0.17530823225E+03  0.00000000000E+00 0. -1.
-        2    1    1    2  501    0  0.57106776802E+02  0.48664527043E+02 -0.24889539502E+03  0.25995833861E+03  0.00000000000E+00 0. -1.
-       21    1    1    2  503  502 -0.32575755760E+02  0.38782570091E+02 -0.29979980501E+02  0.58856323679E+02  0.00000000000E+00 0. -1.
-#  0.4964405E+02  0.4964405E+02  0.7598937E+02  0.5064847E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1366047E+03  0.7546772E-02  0.1221677E+00
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00  0.25971646002E+02  0.25971646002E+02  0.00000000000E+00 0. -1.
-        3   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00 -0.78480232540E+03  0.78480232540E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.24917716184E+02  0.10234786342E+03 -0.60534979644E+03  0.62057168254E+03  0.86976200153E+02 0.  0.
-      -11    1    3    3    0    0  0.55201927933E+01 -0.14006460255E+02 -0.44707915163E+02  0.47174687446E+02  0.00000000000E+00 0.  1.
-       11    1    3    3    0    0 -0.30437908977E+02  0.11635432367E+03 -0.56064188128E+03  0.57339699510E+03  0.00000000000E+00 0. -1.
-        3    1    1    2  501    0  0.20014114191E+02 -0.22946333774E+02 -0.26528667921E+02  0.40384021867E+02  0.00000000000E+00 0. -1.
-       21    1    1    2  503  502  0.49036019928E+01 -0.79401529645E+02 -0.12695221503E+03  0.14981826699E+03  0.00000000000E+00 0. -1.
-#  0.3077251E+02  0.3077251E+02  0.1123411E+03  0.2415599E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.9486105E+02  0.7546772E-02  0.1291907E+00
-       -4   -1    0    0    0  502  0.00000000000E+00  0.00000000000E+00  0.11318244852E+02  0.11318244852E+02  0.00000000000E+00 0. -1.
-        2   -1    0    0  502    0  0.00000000000E+00  0.00000000000E+00 -0.36755138878E+04  0.36755138878E+04  0.00000000000E+00 0.  1.
-       23    2    1    2    0    0  0.28728515605E+02  0.30111077468E+02 -0.21253495500E+03  0.23476294704E+03  0.90611972780E+02 0.  0.
-      -11    1    3    3    0    0  0.50691045405E+01  0.51231276193E+02 -0.18726255879E+03  0.19421020932E+03  0.00000000000E+00 0.  1.
-       11    1    3    3    0    0  0.23659411064E+02 -0.21120198725E+02 -0.25272396210E+02  0.40552737716E+02  0.00000000000E+00 0. -1.
-        2    1    1    2  501    0 -0.41256083766E+01 -0.27715215650E+02 -0.20340836425E+04  0.20342766328E+04  0.00000000000E+00 0.  1.
-       -4    1    1    2    0  501 -0.24602907228E+02 -0.23958618183E+01 -0.14175770454E+04  0.14177925529E+04  0.00000000000E+00 0. -1.
-#  0.9061197E+02  0.9061197E+02  0.2807295E+02  0.2471930E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.9910967E+02  0.7546772E-02  0.1283046E+00
-       21   -1    0    0  502  503  0.00000000000E+00  0.00000000000E+00  0.62492092351E+02  0.62492092351E+02  0.00000000000E+00 0. -1.
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00 -0.18455964776E+03  0.18455964776E+03  0.00000000000E+00 0.  1.
-       23    2    1    2    0    0 -0.85218521074E+01  0.36657328216E+02  0.69970966288E+01  0.99858942774E+02  0.92230512388E+02 0.  0.
-      -11    1    3    3    0    0  0.21968535521E+02  0.50844686537E+01 -0.33338286484E+02  0.40248102069E+02  0.00000000000E+00 0.  1.
-       11    1    3    3    0    0 -0.30490387629E+02  0.31572859563E+02  0.40335383113E+02  0.59610840705E+02  0.00000000000E+00 0. -1.
-        1    1    1    2  501    0 -0.19098558079E+02 -0.35420495160E+02 -0.55105568164E+02  0.68234815459E+02  0.00000000000E+00 0. -1.
-       -1    1    1    2    0  503  0.27620410186E+02 -0.12368330565E+01 -0.73959083870E+02  0.78957981875E+02  0.00000000000E+00 0.  1.
-#  0.9223051E+02  0.9223051E+02  0.3628032E+02  0.2764809E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1529027E+03  0.7546772E-02  0.1201490E+00
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00  0.34474567642E+03  0.34474567642E+03  0.00000000000E+00 0. -1.
-        3   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00 -0.29853338863E+03  0.29853338863E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0  0.64347908261E+02  0.10214109741E+03 -0.25575179622E+03  0.29738221753E+03  0.91944249155E+02 0.  0.
-      -13    1    3    3    0    0  0.21814940185E+02  0.10607893356E+03 -0.16970794510E+03  0.20131919529E+03  0.00000000000E+00 0. -1.
-       13    1    3    3    0    0  0.42532968076E+02 -0.39378361420E+01 -0.86043851121E+02  0.96063022244E+02  0.00000000000E+00 0.  1.
-        3    1    1    2  501    0 -0.89399796711E+02 -0.11062416421E+03  0.25680505439E+03  0.29356237041E+03  0.00000000000E+00 0. -1.
-       21    1    1    2  503  502  0.25051888450E+02  0.84830667999E+01  0.45159029623E+02  0.52334477104E+02  0.00000000000E+00 0.  1.
-#  0.5782750E+02  0.5782750E+02  0.1221700E+03  0.2644919E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1108656E+03  0.7546772E-02  0.1260918E+00
-        1   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00  0.53208239874E+03  0.53208239874E+03  0.00000000000E+00 0. -1.
-       21   -1    0    0  502  503  0.00000000000E+00  0.00000000000E+00 -0.14558635782E+03  0.14558635782E+03  0.00000000000E+00 0.  1.
-       23    2    1    2    0    0 -0.44246974263E+02  0.71813465650E+02  0.27109699658E+02  0.12639738124E+03  0.90146511795E+02 0.  0.
-      -13    1    3    3    0    0 -0.62753028279E+02  0.80917883599E+02  0.18544096243E+02  0.10406502751E+03  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0  0.18506054017E+02 -0.91044179492E+01  0.85656034147E+01  0.22332353734E+02  0.00000000000E+00 0. -1.
-        1    1    1    2  501    0  0.39592478030E+02 -0.49862209958E+02  0.45175322035E+03  0.45621790451E+03  0.00000000000E+00 0. -1.
-       21    1    1    2  502  501  0.46544962322E+01 -0.21951255692E+02 -0.92366879083E+02  0.95053470811E+02  0.00000000000E+00 0.  1.
-#  0.4616326E+02  0.4616326E+02  0.6453527E+02  0.2243930E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1053675E+03  0.7546772E-02  0.1270864E+00
-       -2   -1    0    0    0  501  0.00000000000E+00  0.00000000000E+00  0.17652164811E+02  0.17652164811E+02  0.00000000000E+00 0.  1.
-        2   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00 -0.61656427458E+03  0.61656427458E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.15098718437E+02  0.62818994733E+02 -0.49194597415E+03  0.50472833075E+03  0.92550791354E+02 0.  0.
-      -11    1    3    3    0    0  0.24666512572E+02 -0.11423682054E+02 -0.15827354130E+03  0.16059094379E+03  0.00000000000E+00 0.  1.
-       11    1    3    3    0    0 -0.39765231009E+02  0.74242676787E+02 -0.33367243286E+03  0.34413738696E+03  0.00000000000E+00 0. -1.
-       21    1    1    2  503  502 -0.22794495107E+01 -0.17305488373E+02 -0.57369526277E+02  0.59966143474E+02  0.00000000000E+00 0.  1.
-       21    1    1    2  502  501  0.17378167948E+02 -0.45513506360E+02 -0.49596609338E+02  0.69521965164E+02  0.00000000000E+00 0. -1.
-#  0.9255079E+02  0.9255079E+02  0.5036532E+02  0.1745497E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.2285415E+03  0.7546772E-02  0.1134635E+00
-        1   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00  0.27375786349E+03  0.27375786349E+03  0.00000000000E+00 0. -1.
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00 -0.57088441143E+03  0.57088441143E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.69063945545E+02 -0.20474554376E+03  0.14111172090E+03  0.27427357174E+03  0.92859615099E+02 0.  0.
-      -13    1    3    3    0    0 -0.32782511722E+02 -0.18359527430E+02  0.52935232902E+02  0.64914591616E+02  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0 -0.36281433823E+02 -0.18638601633E+03  0.88176487999E+02  0.20935898012E+03  0.00000000000E+00 0. -1.
-        1    1    1    2  501    0  0.18255336103E+03  0.11919503044E+03 -0.21844151441E+03  0.30862579303E+03  0.00000000000E+00 0. -1.
-       21    1    1    2  503  502 -0.11348941549E+03  0.85550513317E+02 -0.21979675442E+03  0.26174291015E+03  0.00000000000E+00 0. -1.
-#  0.4130692E+02  0.4130692E+02  0.2088260E+03  0.1421223E+03
-</event>
-<event>
- 7 100  0.4661500E-01  0.1020077E+03  0.7546772E-02  0.1277283E+00
-       21   -1    0    0  502  503  0.00000000000E+00  0.00000000000E+00  0.73038003867E+03  0.73038003867E+03  0.00000000000E+00 0. -1.
-       -1   -1    0    0    0  501  0.00000000000E+00  0.00000000000E+00 -0.77494939095E+02  0.77494939095E+02  0.00000000000E+00 0.  1.
-       23    2    1    2    0    0  0.41825966367E+02  0.19976765893E+01 -0.38615319096E+02  0.10932845446E+03  0.93317554140E+02 0.  0.
-      -13    1    3    3    0    0  0.18841625585E+02  0.88932933594E+00 -0.68819330146E+02  0.71357536133E+02  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0  0.22984340783E+02  0.11083472533E+01  0.30204011050E+02  0.37970918324E+02  0.00000000000E+00 0. -1.
-       -1    1    1    2    0  503 -0.14213653327E+02  0.24904924886E+02  0.67270378939E+02  0.73127198135E+02  0.00000000000E+00 0.  1.
-       21    1    1    2  502  501 -0.27612313041E+02 -0.26902601475E+02  0.62423003973E+03  0.62541932517E+03  0.00000000000E+00 0. -1.
-#  0.9331755E+02  0.9331755E+02  0.2867548E+02  0.4119966E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1722033E+03  0.7546772E-02  0.1180910E+00
-        2   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00  0.71257294894E+03  0.71257294894E+03  0.00000000000E+00 0. -1.
-       21   -1    0    0  502  503  0.00000000000E+00  0.00000000000E+00 -0.22595372870E+03  0.22595372870E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.36902836020E+01  0.15038470744E+03  0.60368144819E+03  0.62872426959E+03  0.90739946353E+02 0.  0.
-      -13    1    3    3    0    0  0.22432574734E+02  0.98019454022E+02  0.49677272025E+03  0.50684728406E+03  0.00000000000E+00 0. -1.
-       13    1    3    3    0    0 -0.26122858336E+02  0.52365253414E+02  0.10690872794E+03  0.12187698553E+03  0.00000000000E+00 0.  1.
-        2    1    1    2  501    0 -0.10651425835E+03 -0.59988263556E+02  0.47048532433E+01  0.12233566381E+03  0.00000000000E+00 0. -1.
-       21    1    1    2  502  501  0.11020454195E+03 -0.90396443879E+02 -0.12176708120E+03  0.18746674424E+03  0.00000000000E+00 0. -1.
-#  0.6922288E+02  0.6922288E+02  0.1222452E+03  0.1463566E+03
-</event>
-<event>
- 7 100  0.4661500E-01  0.1274246E+03  0.7546772E-02  0.1234479E+00
-        2   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00  0.11338258206E+04  0.11338258206E+04  0.00000000000E+00 0.  1.
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00 -0.17928435282E+02  0.17928435282E+02  0.00000000000E+00 0.  1.
-       23    2    1    2    0    0  0.37994168566E+02  0.62584037984E+02  0.50000739017E+03  0.51336757370E+03  0.90435373848E+02 0.  0.
-      -13    1    3    3    0    0  0.45527841436E+02 -0.55343159943E+01  0.15609829371E+03  0.16269631311E+03  0.00000000000E+00 0. -1.
-       13    1    3    3    0    0 -0.75336728705E+01  0.68118353978E+02  0.34390909646E+03  0.35067126059E+03  0.00000000000E+00 0.  1.
-        2    1    1    2  501    0 -0.69224748542E+02 -0.73947139026E+02  0.58262666468E+03  0.59136627869E+03  0.00000000000E+00 0.  1.
-       21    1    1    2  503  502  0.31230579976E+02  0.11363101042E+02  0.33263330476E+02  0.47020403500E+02  0.00000000000E+00 0. -1.
-#  0.7917186E+02  0.7917186E+02  0.8976901E+02  0.3323356E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1480183E+03  0.7546772E-02  0.1207236E+00
-       -1   -1    0    0    0  501  0.00000000000E+00  0.00000000000E+00  0.31237924968E+02  0.31237924968E+02  0.00000000000E+00 0.  1.
-        2   -1    0    0  501    0  0.00000000000E+00  0.00000000000E+00 -0.19982798441E+04  0.19982798441E+04  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.50357215209E+02  0.63806957255E+01 -0.67035617448E+02  0.12375457477E+03  0.90801202460E+02 0.  0.
-      -13    1    3    3    0    0 -0.49136406427E+02 -0.14710242292E+02  0.22292429251E+01  0.51339528522E+02  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0 -0.12208087823E+01  0.21090938017E+02 -0.69264860373E+02  0.72415046248E+02  0.00000000000E+00 0. -1.
-       -3    1    1    2    0  502 -0.40357193294E+02 -0.20234043463E+02 -0.32952352157E+03  0.33260166992E+03  0.00000000000E+00 0.  1.
-        4    1    1    2  502    0  0.90714408503E+02  0.13853347737E+02 -0.15704827801E+04  0.15731615244E+04  0.00000000000E+00 0. -1.
-#  0.5827492E+02  0.5827492E+02  0.9752459E+02  0.9752459E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1393697E+03  0.7546772E-02  0.1218039E+00
-       21   -1    0    0  502  503  0.00000000000E+00  0.00000000000E+00  0.37147042117E+03  0.37147042117E+03  0.00000000000E+00 0.  1.
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00 -0.12155234288E+03  0.12155234288E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.14545393414E+02  0.43863730614E+02  0.17206907724E+03  0.20019406064E+03  0.91292383249E+02 0.  0.
-      -11    1    3    3    0    0  0.13010869348E+02  0.38002589586E+02  0.16675487651E+03  0.17152454162E+03  0.00000000000E+00 0.  1.
-       11    1    3    3    0    0 -0.27556262762E+02  0.58611410283E+01  0.53142007301E+01  0.28669519022E+02  0.00000000000E+00 0. -1.
-        3    1    1    2  501    0  0.41253058663E+02 -0.10849195963E+03 -0.65540416229E+02  0.13329616016E+03  0.00000000000E+00 0. -1.
-       -3    1    1    2    0  503 -0.26707665249E+02  0.64628229018E+02  0.14338941728E+03  0.15953254325E+03  0.00000000000E+00 0.  1.
-#  0.5465521E+02  0.5465521E+02  0.1053072E+03  0.6992930E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.9363752E+02  0.7546772E-02  0.1294557E+00
-        1   -1    0    0  503    0  0.00000000000E+00  0.00000000000E+00  0.39416870824E+03  0.39416870824E+03  0.00000000000E+00 0. -1.
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00 -0.86037514044E+02  0.86037514044E+02  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0  0.19939736850E+02 -0.30593797270E+02  0.32468026446E+03  0.33899651778E+03  0.90375834144E+02 0.  0.
-      -13    1    3    3    0    0  0.34874658408E+01  0.32071656603E+02  0.12330728952E+03  0.12745760559E+03  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0  0.16452271009E+02 -0.62665453873E+02  0.20137297494E+03  0.21153891219E+03  0.00000000000E+00 0. -1.
-        1    1    1    2  501    0 -0.70809208165E+01  0.20330175502E+02  0.59565924799E+02  0.63336836617E+02  0.00000000000E+00 0. -1.
-       21    1    1    2  503  502 -0.12858816033E+02  0.10263621768E+02 -0.76114995059E+02  0.77872867896E+02  0.00000000000E+00 0. -1.
-#  0.9037583E+02  0.9037583E+02  0.2449884E+02  0.1645269E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1032575E+03  0.7546772E-02  0.1274863E+00
-       -1   -1    0    0    0  501  0.00000000000E+00  0.00000000000E+00  0.46173835399E+02  0.46173835399E+02  0.00000000000E+00 0.  1.
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00 -0.22596055826E+03  0.22596055826E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.13160785424E+02 -0.73631146091E+02 -0.88336341765E+02  0.14715416176E+03  0.90864107869E+02 0.  0.
-      -13    1    3    3    0    0  0.15347582078E+00 -0.75195423682E+02 -0.10284334579E+03  0.12740144846E+03  0.00000000000E+00 0. -1.
-       13    1    3    3    0    0 -0.13314261245E+02  0.15642775910E+01  0.14507004022E+02  0.19752713297E+02  0.00000000000E+00 0.  1.
-       -1    1    1    2    0  503  0.15214451262E+02  0.38919222724E+02 -0.21799458223E+02  0.47131749421E+02  0.00000000000E+00 0.  1.
-       21    1    1    2  503  502 -0.20536658380E+01  0.34711923367E+02 -0.69650922877E+02  0.77848482483E+02  0.00000000000E+00 0. -1.
-#  0.4775420E+02  0.4775420E+02  0.4904934E+02  0.3477262E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.9730305E+02  0.7546772E-02  0.1286752E+00
-       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00  0.19496671930E+03  0.19496671930E+03  0.00000000000E+00 0.  1.
-       -3   -1    0    0    0  501  0.00000000000E+00  0.00000000000E+00 -0.64065850339E+02  0.64065850339E+02  0.00000000000E+00 0.  1.
-       23    2    1    2    0    0 -0.35040901334E+02 -0.26868883767E+02  0.13015739911E+02  0.10178175269E+03  0.90776175367E+02 0.  0.
-      -13    1    3    3    0    0 -0.27029887363E+02 -0.57352681021E+02  0.24871605239E+02  0.68106839439E+02  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0 -0.80110139713E+01  0.30483797254E+02 -0.11855865328E+02  0.33674913252E+02  0.00000000000E+00 0. -1.
-       -3    1    1    2    0  503  0.14439333775E+02  0.30341491013E+02 -0.37717028364E+01  0.33813106617E+02  0.00000000000E+00 0.  1.
-       21    1    1    2  503  502  0.20601567559E+02 -0.34726072462E+01  0.12165683188E+03  0.12343771033E+03  0.00000000000E+00 0.  1.
-#  0.9077618E+02  0.9077618E+02  0.3503671E+02  0.2089219E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1009759E+03  0.7546772E-02  0.1279310E+00
-       -4   -1    0    0    0  501  0.00000000000E+00  0.00000000000E+00  0.24710763047E+03  0.24710763047E+03  0.00000000000E+00 0.  1.
-       21   -1    0    0  502  503  0.00000000000E+00  0.00000000000E+00 -0.11245616539E+03  0.11245616539E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0 -0.28781924341E+02  0.10264953629E+02 -0.82891445667E+02  0.13089257465E+03  0.96582119936E+02 0.  0.
-      -13    1    3    3    0    0  0.33877607070E+02  0.16777928150E+02 -0.24904284662E+02  0.45270459776E+02  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0 -0.62659531411E+02 -0.65129745209E+01 -0.57987161005E+02  0.85622114872E+02  0.00000000000E+00 0. -1.
-       -4    1    1    2    0  503  0.30494472573E+02  0.22349058990E+02  0.11616887132E+03  0.12216627996E+03  0.00000000000E+00 0.  1.
-       21    1    1    2  502  501 -0.17125482317E+01 -0.32614012620E+02  0.10137403943E+03  0.10650494125E+03  0.00000000000E+00 0. -1.
-#  0.9658212E+02  0.9658212E+02  0.2946227E+02  0.3265894E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1107319E+03  0.7546772E-02  0.1261153E+00
-       -1   -1    0    0    0  502  0.00000000000E+00  0.00000000000E+00  0.17022760633E+04  0.17022760633E+04  0.00000000000E+00 0.  1.
-        4   -1    0    0  502    0  0.00000000000E+00  0.00000000000E+00 -0.59956811070E+02  0.59956811070E+02  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0  0.50314537867E+02 -0.19721450993E+02 -0.14616297234E+01  0.10791001176E+03  0.93391358953E+02 0.  0.
-      -13    1    3    3    0    0 -0.20939122449E+02 -0.26449411416E+02 -0.11495761927E+02  0.35639455039E+02  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0  0.71253660317E+02  0.67279604236E+01  0.10034132204E+02  0.72270556723E+02  0.00000000000E+00 0. -1.
-       -1    1    1    2    0  501 -0.24984797602E+02  0.54230222476E+02  0.15509344701E+04  0.15520834023E+04  0.00000000000E+00 0.  1.
-        4    1    1    2  501    0 -0.25329740266E+02 -0.34508771484E+02  0.92846411884E+02  0.10223946034E+03  0.00000000000E+00 0. -1.
-#  0.9339136E+02  0.9339136E+02  0.5949460E+02  0.4280714E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.9387442E+02  0.7546772E-02  0.1294040E+00
-       -2   -1    0    0    0  502  0.00000000000E+00  0.00000000000E+00  0.35867411642E+03  0.35867411642E+03  0.00000000000E+00 0. -1.
-       -3   -1    0    0    0  501  0.00000000000E+00  0.00000000000E+00 -0.50027764918E+03  0.50027764918E+03  0.00000000000E+00 0.  1.
-       23    2    1    2    0    0 -0.22623579961E+02  0.11636470469E+02 -0.48601823484E+03  0.49502626850E+03  0.90498884474E+02 0.  0.
-      -13    1    3    3    0    0  0.90621251392E+01 -0.33483744285E+02 -0.12123648851E+03  0.12610142501E+03  0.00000000000E+00 0.  1.
-       13    1    3    3    0    0 -0.31685705100E+02  0.45120214754E+02 -0.36478174633E+03  0.36892484349E+03  0.00000000000E+00 0. -1.
-       -2    1    1    2    0  501 -0.39544967430E+01 -0.15290568289E+02  0.33518092052E+03  0.33555281105E+03  0.00000000000E+00 0. -1.
-       -3    1    1    2    0  502  0.26578076704E+02  0.36540978193E+01  0.92337815610E+01  0.28372686056E+02  0.00000000000E+00 0.  1.
-#  0.9049888E+02  0.9049888E+02  0.1579365E+02  0.2494712E+02
-</event>
-<event>
- 7 100  0.4661500E-01  0.1127370E+03  0.7546772E-02  0.1257679E+00
-        4   -1    0    0  502    0  0.00000000000E+00  0.00000000000E+00  0.35833350811E+02  0.35833350811E+02  0.00000000000E+00 0. -1.
-        1   -1    0    0  501    0  0.00000000000E+00  0.00000000000E+00 -0.57960794210E+03  0.57960794210E+03  0.00000000000E+00 0. -1.
-       23    2    1    2    0    0  0.15223573494E+02 -0.52986018833E+02 -0.31181258697E+03  0.33029885522E+03  0.93973235471E+02 0.  0.
-      -11    1    3    3    0    0 -0.27223389589E+02 -0.35877535961E+02 -0.24630332337E+03  0.25038697576E+03  0.00000000000E+00 0.  1.
-       11    1    3    3    0    0  0.42446963083E+02 -0.17108482872E+02 -0.65509263593E+02  0.79911879453E+02  0.00000000000E+00 0. -1.
-        1    1    1    2  502    0 -0.50998440831E+02  0.67811899053E+02 -0.48695493882E+02  0.97829166125E+02  0.00000000000E+00 0. -1.
-        4    1    1    2  501    0  0.35774867336E+02 -0.14825880220E+02 -0.18326651045E+03  0.18731327158E+03  0.00000000000E+00 0. -1.
-#  0.9397324E+02  0.9397324E+02  0.6227892E+02  0.3872531E+02
-</event>
-</event>
-</LesHouchesEvents>
diff --git a/Generators/MadGraph_i/share/jobOptions.MadGraphPythia.py b/Generators/MadGraph_i/share/jobOptions.MadGraphPythia.py
deleted file mode 100644
index 8f42d11fb16ba331ecbbd0f023c624ab5a95cdda..0000000000000000000000000000000000000000
--- a/Generators/MadGraph_i/share/jobOptions.MadGraphPythia.py
+++ /dev/null
@@ -1,38 +0,0 @@
-## Special setup for event generation
-include("AthenaCommon/Atlas_Gen.UnixStandardJob.py")
-## Other includes needed by the physics file
-include("PartPropSvc/PartPropSvc.py")
-
-theApp.EvtMax = 5
-
-from AthenaCommon.Logging import logging
-svcMgr.MessageSvc.OutputLevel = INFO
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-## Random seeds
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-svcMgr += AtRndmGenSvc()
-AtRndmGenSvc.Seeds = ["PYTHIA 330020611 841000366", "PYTHIA_INIT 824021 3247532"]
-
-## PYTHIA in MadGraph mode
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-topAlg.Pythia.PythiaCommand = ["pyinit user madgraph",
-                               "pypars mstp 81 21",
-                               "pystat 1 3 4 5",
-                               "pyinit dumpr 1 5"]
-
-## Print out events
-from TruthExamples.TruthExamplesConf import PrintMC
-topAlg += PrintMC()
-
-## Ntuple service output
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-from PoolSvc.PoolSvcConf import PoolSvc
-from AthenaPoolCnvSvc.AthenaPoolCnvSvcConf import AthenaPoolCnvSvc
-
-## Output data stream config
-stream1 = AthenaPoolOutputStream("StreamEVGEN")
-stream1.ItemList += ["EventInfo#*", "McEventCollection#*"]
-stream1.OutputFile = "test.pool.root"
diff --git a/Generators/MadGraph_i/share/pythia_card.dat b/Generators/MadGraph_i/share/pythia_card.dat
deleted file mode 100644
index fb23536d0361f2c768482824de888465d841d2f0..0000000000000000000000000000000000000000
--- a/Generators/MadGraph_i/share/pythia_card.dat
+++ /dev/null
@@ -1,16 +0,0 @@
-!...Fix (0) or event-based (1) PS scale
-      PSSCALE=1
-
-!... for exclusive samples =1
-      IEXCFILE=1
-
-!... shower kT option:
-!.. use only with MSTP(81)>20 and put Qcut = xqcut
-      showerkt=.true.
-
-!...QCUT for matching using the kt measure cutoff
-!   put Qcut=xqcut (in ME generation) if showerkt=.true.
-!   otherwise, use Qcut > xqcut (default value: qcut=max(xqcut*1.2,xqcut+5) )
-      QCUT = 15.
-
- 
diff --git a/Generators/MadGraph_i/src/initmadgraph.F b/Generators/MadGraph_i/src/initmadgraph.F
deleted file mode 100644
index c05e5e1039cb2b39a34772f8b84607487296c890..0000000000000000000000000000000000000000
--- a/Generators/MadGraph_i/src/initmadgraph.F
+++ /dev/null
@@ -1,1283 +0,0 @@
-c
-C  This version adapted from pythia-pgs/src/ME2pythia.f
-c  .. version pythia-pgs_V2.1.7.tar.gz
-c  in MadGraph download pages in:
-c  http://madgraph.hep.uiuc.edu/
-c
-C******************************************************
-C*          MadEvent - Pythia interface.              *
-C*           Version 4.2, 4 March 2007                *
-C*                                                    *
-C*  - Improvement of matching routines                *
-C*                                                    *
-C*  Version 4.1                                       *
-C*                                                    *
-C*  - Possibility to use several files                *
-C*                                                    *
-C*  Version 4.0                                       *
-C*                                                    *
-C*  - Routines for matching of ME and PS              *
-C*                                                    *
-C*  Version 3.8                                       *
-C*                                                    *
-C*  - Give the event number in the event file in the  *
-C*    new variable IEVNT in MGUPPRIV                  *
-C*                                                    *
-C*  Version 3.7                                       *
-C*                                                    *
-C*  - Set mass of massless outgoing particles to      *
-C*    Pythia mass (PMAS(I,1))                         *
-C*                                                    *
-C*  Version 3.6                                       *
-C*                                                    *
-C*  - Removed the 1st # from the event file header    *
-C*                                                    *
-C*  Version 3.5                                       *
-C*                                                    *
-C*  - Reads according to the new LH event file format *
-C*  - Now only LNHIN, LNHOUT and MSCAL in MGUPPRIV    *
-C*                                                    *
-C*  Version 3.4                                       *
-C*                                                    *
-C*  - Reads particle masses from event file           *
-C*                                                    *
-C*  Version 3.3                                       *
-C*                                                    *
-C*  - Added option MSCAL in common block MGUPPRIV to  *
-C*    choose between fix (0, default) or event-based  *
-C*    (1) scale for Pythia parton showering (SCALUP). *
-C*  - Fixed bug in reading the SLHA file              *
-C*                                                    *
-C*  Version 3.2                                       *
-C*                                                    *
-C*  - Reading the SLHA format param_card from the     *
-C*    banner                                          *
-C*  - Added support for lpp1/lpp2 = 2 or 3            *
-C*  - Removed again support for different MadEvent    *
-C*    processes in different files (no longer         *
-C*    necessary with new multiple processes support   *
-C*    in MadGraph/MadEvent                            *
-C*                                                    *
-C*  Version 3.1                                       *
-C*  - Added support for different MadEvent processes  *
-C*    in different files                              *
-C*  - Fixed bug in e+e- collisions                    *
-C*                                                    *
-C*     Written by J.Alwall, alwall@fyma.ucl.ac.be     *
-C*      Earlier versions by S.Mrenna, M.Kirsanov      *
-C*                                                    *
-C******************************************************
-C*                                                    *
-C* Instructions:                                      *
-C* Please use the common block MGUPPRIV:              *
-C* - The logical unit LNHIN must be an opened         *
-C*   MadEvent event file                              *
-C* - The output unit LNHOUT is by default 6 (std out) *
-C* - Set MSCAL to 1 if a dynamical scale is desired   *
-C*   for parton showers rather than the one given as  *
-C*   factorization scale by MadEvent (otherwise 0)    *
-C* - IEVNT gives the number of the event in the event *
-C*   file                                             *
-C* - ICKKW is set automatically depending on whether  *
-C*   the events generated are matched or not          *
-C*                                                    *
-C******************************************************
-
-C...  UPINIT
-C...  Routine called by PYINIT to set up user-defined processes.
-
-      SUBROUTINE INITMADGRAPH
-
-      IMPLICIT NONE
-c$$$      CHARACTER*132 CHAR_READ
-
-C...  Pythia parameters.
-      INTEGER MSTP,MSTI,MRPY
-      DOUBLE PRECISION PARP,PARI,RRPY
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYDATR/MRPY(6),RRPY(100)
-      save /pypars/,/pydatr/
-
-C...  User process initialization commonblock.
-C #include "GeneratorModules/heprup.inc"
-c..   following is already included in include above
-c     (../../../InstallArea/include/AtlasProduction/../InstallArea/include/GeneratorModules/GeneratorModules/heprup.inc)
-C...User process initialization commonblock.
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &     IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &     LPRUP(MAXPUP)
-
-
-
-C...  Extra commonblock to transfer run info.
-      INTEGER LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-      COMMON/MGUPPRIV/LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-
-C...  Inputs for the matching algorithm
-      double precision etcjet,rclmax,etaclmax,qcut,clfact
-      integer maxjets,minjets,iexcfile,ktsche,mektsc,nexcres,excres(30)
-      integer nremres, remres(30)
-      integer nqmatch,nexcproc,iexcproc(MAXPUP),iexcval(MAXPUP)
-      logical nosingrad,showerkt,jetprocs
-      common/MEMAIN/etcjet,rclmax,etaclmax,qcut,clfact,maxjets,minjets,
-     $   iexcfile,ktsche,mektsc,nexcres,excres,nremres,remres,
-     $   nqmatch,nexcproc,iexcproc,iexcval,nosingrad,showerkt,jetprocs
-
-C...  Parameter arrays (local)
-      integer maxpara
-      parameter (maxpara=1000)
-      integer npara,iseed
-      character*20 param(maxpara),value(maxpara)
-
-C...  Lines to read in assumed never longer than 200 characters.
-      INTEGER MAXLEN,IBEG,IPR,I
-      PARAMETER (MAXLEN=200)
-      CHARACTER*(MAXLEN) STRING
-
-C...  Functions
-      INTEGER iexclusive
-      EXTERNAL iexclusive
-
-C...  Set pythia input card and STDHEP output file
-      CHARACTER*80 pythia_card
-
-C...  Format for reading lines.
-      CHARACTER*6 STRFMT
-      STRFMT='(A000)'
-      WRITE(STRFMT(3:5),'(I3)') MAXLEN
-
-
-c************************************************************************
-c     Collider energy and type                                          *
-c************************************************************************
-c     lpp  = -1 (antiproton), 0 (no pdf), 1 (proton)
-c     ebeam= energy of each beam in GeV
-
-
-c$$$C...  Set incoming beams: default LHC.
-c       These values should be read directly from the input file
-c$$$c...
-c$$$      IDBMUP(1)=2212
-c$$$      IDBMUP(2)=2212
-c$$$      EBMUP(1)=3500D0
-c$$$      EBMUP(2)=3500D0
-c$$$
-c$$$C...  Decide on weighting strategy: unweighted on input.
-c$$$      IDWTUP=3
-c$$$
-c
-C--   open the file
-      OPEN(UNIT=LNHIN,STATUS='OLD',FILE='events.lhe')
-
-C     Check for new LH interface
-c...  use now only the LH interface!!!
-      READ(LNHIN,STRFMT) STRING
-      IF (STRING(1:17).EQ.'<LesHouchesEvents') THEN
-         Print *,'  ==> Version pythia-pgs_V2.1.7 <== '
-c         Print *,'LesHouchesEvents format detected: OK  !!!'
-      ELSE
-         Print *,'Error: not Les Houches format !!!'
-         stop
-      ENDIF
-
-c     ------------------------------------------------------
-C...  Extract the model parameter card and read it.
-      CALL MODELPAR(LNHIN)
-
-c...  Read the <init> block information
-
-C...  Loop until finds line beginning with "<init>" or "<init ".
- 100  READ(LNHIN,STRFMT,END=130,ERR=130) STRING
-C...  Pick out random number seed and use for PYR initialization
-      IF(INDEX(STRING,'iseed').NE.0)THEN
-         READ(STRING,*) iseed
-         IF(iseed.gt.0) THEN
-            WRITE(LNHOUT,*) 'Initializing PYR with random seed ',iseed
-            MRPY(1) = iseed
-            MRPY(2) = 0
-         ENDIF
-      ENDIF
-      IBEG=0
- 110  IBEG=IBEG+1
-C...  Allow indentation.
-      IF(STRING(IBEG:IBEG).EQ.' '.AND.IBEG.LT.MAXLEN-5) GOTO 110
-      IF(STRING(IBEG:IBEG+5).NE.'<init>'.AND.
-     &     STRING(IBEG:IBEG+5).NE.'<init ') GOTO 100
-
-C...  Read first line of initialization info.
-      READ(LNHIN,*,END=130,ERR=130) IDBMUP(1),IDBMUP(2),EBMUP(1),
-     &     EBMUP(2),PDFGUP(1),PDFGUP(2),PDFSUP(1),PDFSUP(2),IDWTUP,NPRUP
-
-C...  Read NPRUP subsequent lines with information on each process.
-      DO 120 IPR=1,NPRUP
-         READ(LNHIN,*,END=130,ERR=130) XSECUP(IPR),XERRUP(IPR),
-     &        XMAXUP(IPR),LPRUP(IPR)
- 120  CONTINUE
-
-C...  Set PDFLIB or LHAPDF pdf number for Pythia
-
-      IF(PDFSUP(1).NE.19070.AND.(PDFSUP(1).NE.0.OR.PDFSUP(2).NE.0))THEN
-c     Not CTEQ5L, which is standard in Pythia
-         CALL PYGIVE('MSTP(52)=2') ! use of PDFLIB/LHAPDF
-c     The following works for both PDFLIB and LHAPDF (where PDFGUP(1)=0)
-c     But note that the MadEvent output uses the LHAPDF numbering scheme
-         IF(PDFSUP(1).NE.0)THEN
-            MSTP(51)=1000*PDFGUP(1)+PDFSUP(1)
-         ELSE
-            MSTP(51)=1000*PDFGUP(2)+PDFSUP(2)
-         ENDIF
-      ENDIF
-
-C...Initialize widths and partial widths for resonances.
-      CALL PYINRE
-
-C...  Calculate xsec reduction due to non-decayed resonances
-C...  based on first event only!
-
-      CALL BRSUPP
-
-      REWIND(LNHIN)
-
-C...  Extract cuts and matching parameters
-      CALL read_params(LNHIN,npara,param,value,maxpara)
-
-      call get_integer(npara,param,value," ickkw ",ickkw,0)
-      if(ickkw.eq.1)then
-         call get_integer(npara,param,value," ktscheme ",mektsc,1)
-         write(*,*)'Running matching with ME ktscheme ',mektsc
-      endif
-
-
-c$$$c..   read beam energies  -->already  read from input file
-c$$$      call get_real   (npara,param,value," ebeam1 " ,EBMUP(1),7d3)
-c$$$      call get_real   (npara,param,value," ebeam2 " ,EBMUP(2),7d3)
-
-C...  Read pythia input card
-      pythia_card=' '
-cc      IF(ickkw.gt.0) then
-         pythia_card='pythia_card.dat'
-         PRINT *
-         PRINT *,'Reading pythia input card'
-         CALL RPYCARD(pythia_card)
-cc      END IF
-C
-C...  Set kt clustering scheme (if not already set)
-C
-      IF(ABS(IDBMUP(1)).EQ.11.AND.ABS(IDBMUP(2)).EQ.11.AND.
-     $     IDBMUP(1).EQ.-IDBMUP(2).AND.ktsche.EQ.0)THEN
-         ktsche=1
-      ELSE IF(ktsche.EQ.0) THEN
-c     see ktclusdble.f for explanation of ktsche (IMODE)
-         ktsche=4313
-      ENDIF
-
-C...  Enhance primordial kt
-c     CALL PYGIVE('PARP(91)=2.5')
-c     CALL PYGIVE('PARP(93)=15')
-
-      IF(ickkw.gt.0.and.(NPRUP.gt.1.or.iexclusive(LPRUP(1)).ne.-1))
-     $     CALL set_matching(LNHIN,npara,param,value)
-
-C...  For photon initial states from protons: Set proton not to break up
-      CALL PYGIVE('MSTP(98)=1')
-
-C...  Reset event numbering
-      IEVNT=0
-
-      RETURN
-
-C...  Error exit: give up if initalization does not work.
- 130  WRITE(*,*) ' Failed to read LHEF initialization information.'
-      WRITE(*,*) ' Event generation will be stopped.'
-      STOP
-
-
-      RETURN
-      END
-
-
-C************************************************
-
-      SUBROUTINE RPYCARD(pythia_card)
-
-      IMPLICIT NONE
-
-c$$$C...Commonblock to set PDF library path
-c$$$      CHARACTER*232 LHAPATH
-c$$$      COMMON/LHAPDFC/LHAPATH
-c$$$      SAVE /LHAPDFC/
-
-C...Extra commonblock to transfer run info.
-      INTEGER LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-      COMMON/MGUPPRIV/LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-
-C...Inputs for jet clustering and Pythia run
-      INTEGER NITER,NFILES,PIDCUT(2,10),PIDCUTN(2,10),NPIDCUT
-      COMMON/JETPAR/NITER,NFILES,PIDCUT,PIDCUTN,NPIDCUT
-
-c$$$C...GETJET commonblocks
-c$$$      INTEGER MNCY,MNCPHI,NCY,NCPHI
-c$$$c$$$      INTEGER NJMAX,JETNO,NJJET
-c$$$      DOUBLE PRECISION YCMIN,YCMAX,DELY,DELPHI,ET,STHCAL,CTHCAL,CPHCAL,
-c$$$     &  SPHCAL
-c$$$c$$$      DOUBLE PRECISION PJJET,ETJETJ
-c$$$      PARAMETER (MNCY=200)
-c$$$      PARAMETER (MNCPHI=200)
-c$$$      COMMON/CALOR/DELY,DELPHI,ET(MNCY,MNCPHI),
-c$$$     $CTHCAL(MNCY),STHCAL(MNCY),CPHCAL(MNCPHI),SPHCAL(MNCPHI),
-c$$$     $YCMIN,YCMAX,NCY,NCPHI
-
-C...Commonblock to transfer event-by-event matching info
-      INTEGER NLJETS,IEXC,Ifile
-      DOUBLE PRECISION PTCLUS
-      COMMON/MEMAEV/PTCLUS(20),NLJETS,IEXC,Ifile
-
-C...Inputs for the matching algorithm
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      double precision etcjet,rclmax,etaclmax,qcut,clfact
-      integer maxjets,minjets,iexcfile,ktsche,mektsc,nexcres,excres(30)
-      integer nremres, remres(30)
-      integer nqmatch,nexcproc,iexcproc(MAXPUP),iexcval(MAXPUP)
-      logical nosingrad,showerkt,jetprocs
-      common/MEMAIN/etcjet,rclmax,etaclmax,qcut,clfact,maxjets,minjets,
-     $   iexcfile,ktsche,mektsc,nexcres,excres,nremres,remres,
-     $   nqmatch,nexcproc,iexcproc,iexcval,nosingrad,showerkt,jetprocs
-
-      INTEGER ios, i
-      CHARACTER*80 pythia_card
-      CHARACTER*132 line
-
-      if (pythia_card.ne.' ') then
-        open (85, file=pythia_card, status='old',
-     .     form='formatted', ERR=999)    ! removed for Linux: readonly)
-        ios = 0
-        do while(ios.eq.0)
-          read(85,fmt='(a)',iostat=ios) line
-          if (ios.eq.0) then
-             call remove_comments(line,132)
-c$$$             if(index(line,'lhapath').ne.0.or.
-c$$$     $           index(line,'LHAPATH').ne.0) then
-c$$$                LHAPATH=line(index(line,'=')+1:)
-c$$$                write(*,*) 'Set LHAPATH to '//LHAPATH
-c$$$                cycle
-c$$$             endif
-             call downcase_line(line,132)
-             if(index(line,'psscale').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) MSCAL
-                write(*,*) 'Set scale choice to ',MSCAL
-                if(MSCAL.eq.0) write(*,*) ' (fixed scale)'
-                if(MSCAL.gt.0) write(*,*) ' (Herwig scale)'
-             else if(index(line,'iexcfile').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) IEXCFILE
-                if(IEXCFILE.eq.0)
-     $             write(*,*) ' Assuming inclusive sample ',
-     $             '(IEXCFILE=0)'
-                if(IEXCFILE.gt.0)
-     $             write(*,*) ' Assuming exclusive sample',
-     $             '(IEXCFILE=',IEXCFILE,')'
-             else if(index(line,'qcut').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) qcut
-                write(*,*) 'Read Qcut   = ',qcut
-             else if(index(line,'etcjet').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) etcjet
-                write(*,*) 'Read Etcjet   = ',etcjet
-             else if(index(line,'clfact').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) clfact
-                write(*,*) 'Read clfact = ',clfact
-c$$$             else if(index(line,'ncy').ne.0) then
-c$$$                READ(line(index(line,'=')+1:),*,err=100) ncy
-c$$$                write(*,*) 'Read NCY = ',ncy
-c$$$             else if(index(line,'ncphi').ne.0) then
-c$$$                READ(line(index(line,'=')+1:),*,err=100) ncphi
-c$$$                write(*,*) 'Read NCPHI = ',ncphi
-c$$$             else if(index(line,'niter').ne.0) then
-c$$$                READ(line(index(line,'=')+1:),*,err=100) niter
-c$$$                write(*,*) 'Read Niter = ',niter
-c$$$             else if(index(line,'nfiles').ne.0) then
-c$$$                READ(line(index(line,'=')+1:),*,err=100) nfiles
-c$$$                write(*,*) 'Read Nfiles = ',nfiles
-c$$$             else if(index(line,'ifile').ne.0) then
-c$$$                READ(line(index(line,'=')+1:),*,err=100) ifile
-c$$$                write(*,*) 'Read Ifile = ',ifile
-             else if(index(line,'ktsche').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) ktsche
-                write(*,*) 'Read Ktsche = ',ktsche
-             else if(index(line,'iscale').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) ISCALE
-                write(*,*) 'Read ISCALE = ',ISCALE
-             else if(index(line,'maxjets').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) MAXJETS
-                write(*,*) 'Read MAXJETS = ',MAXJETS
-             else if(index(line,'minjets').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) MINJETS
-                write(*,*) 'Read MINJETS = ',MINJETS
-             else if(index(line,'excres').ne.0) then
-                if(nexcres.ge.30)then
-                   write(*,*) 'Too many excluded resonances.'
-                   cycle
-                endif
-                nexcres=nexcres+1
-                READ(line(index(line,'=')+1:),*,err=100) EXCRES(nexcres)
-                write(*,*) 'Read EXCRES = ',EXCRES(nexcres)
-             else if(index(line,'remres').ne.0) then
-                if(nremres.ge.30)then
-                   write(*,*) 'Too many excluded resonances.'
-                   cycle
-                endif
-                nremres=nremres+1
-                READ(line(index(line,'=')+1:),*,err=100) REMRES(nremres)
-                write(*,*) 'Read REMRES = ',REMRES(nremres)
-             else if(index(line,'nosingrad').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) nosingrad
-                write(*,*) 'Read nosingrad = ',nosingrad
-             else if(index(line,'showerkt').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) showerkt
-                write(*,*) 'Read showerkt = ',showerkt
-             else if(index(line,'nqmatch').ne.0) then
-                READ(line(index(line,'=')+1:),*,err=100) nqmatch
-                write(*,*) 'Read nqmatch = ',nqmatch
-             else if(index(line,'iexcproc').ne.0) then
-                nexcproc=nexcproc+1
-                if(nexcproc.le.MAXPUP) then
-                   READ(line(index(line,'(')+1:),*,err=100)
-     $                  iexcproc(nexcproc)
-                   READ(line(index(line,'=')+1:),*,err=100)
-     $                  iexcval(nexcproc)
-                   write(*,*) 'Read iexcproc(',nexcproc,')=',
-     $                  iexcproc(nexcproc),' and iexcval=',
-     $                  iexcval(nexcproc)
-                else
-                   write(*,*) 'Too many iexcproc definitions.'
-                endif
-             else if(index(line,'pidcut').ne.0) then
-                npidcut=npidcut+1
-                if(npidcut.le.10) then
-                   if(index(line,'-').gt.0)then
-                      READ(line(index(line,'(')+1:index(line,'-')-1),
-     $                     *,err=100) pidcut(1,npidcut)
-                      READ(line(index(line,'-')+1:),*,err=100)
-     $                     pidcut(2,npidcut)
-                   else
-                      READ(line(index(line,'(')+1:),*,err=100)
-     $                     pidcut(1,npidcut)
-                      pidcut(2,npidcut)=pidcut(1,npidcut)
-                   endif
-                   READ(line(index(line,'=')+1:),*,err=100)
-     $                  pidcutn(1,npidcut),pidcutn(2,npidcut)
-                   write(*,*) 'Read pidcut(',npidcut,')=',
-     $                  pidcut(1,npidcut),'-',pidcut(2,npidcut),
-     $                  ' with min=',pidcutn(1,npidcut),
-     $                  ' and max=',pidcutn(2,npidcut)
-                else
-                   write(*,*) 'Too many iexcproc definitions.'
-                endif
-             else if(line.ne.' ') then
-                call pygive(line)
-             endif
-          endif
-          cycle
- 100      write(*,*) 'Failed to read line: ',line(1:len_trim(line))
-       enddo
-       close(85)
-      endif
-      RETURN
- 999  if(ickkw .gt.0) then
-         write(6,*)
-     &        " ===> No file pythia_card.dat, but ickkw > 0 ==> STOP"
-         stop
-      else
-         write(6,*) " ===> No file pythia_card.dat "
-      end if
-      RETURN
-      END
-
-C************************************************
-
-      subroutine remove_comments(line,len)
-
-      implicit none
-      character*(*) line
-      integer i,len
-
-      logical comment
-
-      comment = .false.
-      if(line(1:1).eq.'#') comment = .true.
-      do i=1,len
-        if(line(i:i).eq.'!') comment = .true.
-        if(comment) line(i:i) = ' '
-      enddo
-
-      return
-      end
-C*********************************************************************
-
-
-      subroutine case_trap2(name,n)
-c**********************************************************
-c   change the string to lowercase if the input is not
-c**********************************************************
-      implicit none
-c
-c   ARGUMENT
-c
-      character(*) name
-      integer n
-c
-c   LOCAL
-c
-      integer i,k
-
-      do i=1,n
-        k=ichar(name(i:i))
-        if(k.ge.65.and.k.le.90) then !upper case A-Z
-          k=ichar(name(i:i))+32
-          name(i:i)=char(k)
-        endif
-      enddo
-
-      return
-      end
-
-
-C*********************************************************************
-
-
-C*********************************************************************
-
-      subroutine BRSUPP
-
-      IMPLICIT NONE
-
-C...Three Pythia functions return integers, so need declaring.
-      INTEGER PYCOMP,MWID
-      DOUBLE PRECISION WIDS
-
-C...Resonance width and secondary decay treatment.
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-
-C...User process initialization commonblock.
-C #include "GeneratorModules/heprup.inc"
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &   IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &   LPRUP(MAXPUP)
-C...User process event common block.
-C #include "GeneratorModules/hepeup.inc"
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &   ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &   VTIMUP(MAXNUP),SPINUP(MAXNUP)
-
-C...Extra commonblock to transfer run info.
-      INTEGER LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-      COMMON/MGUPPRIV/LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-
-      INTEGER I,J,IBEG
-      INTEGER IPR,isup
-      DOUBLE PRECISION SUPPCS
-      LOGICAL SUPDONE(MAXPUP)
-      DATA SUPDONE/MAXPUP*.false./
-
-C...Lines to read in assumed never longer than 200 characters.
-      INTEGER MAXLEN
-      PARAMETER (MAXLEN=200)
-      CHARACTER*(MAXLEN) STRING
-
-C...Format for reading lines.
-      CHARACTER*6 STRFMT
-      STRFMT='(A000)'
-      WRITE(STRFMT(3:5),'(I3)') MAXLEN
-
-C...Loop until finds line beginning with "<event>" or "<event ".
-  100 READ(LNHIN,STRFMT,END=130,ERR=130) STRING
-      IBEG=0
-  110 IBEG=IBEG+1
-C...Allow indentation.
-      IF(STRING(IBEG:IBEG).EQ.' '.AND.IBEG.LT.MAXLEN-6) GOTO 110
-      IF(STRING(IBEG:IBEG+6).NE.'<event>'.AND.
-     &STRING(IBEG:IBEG+6).NE.'<event ') GOTO 100
-
-C...Read first line of event info.
-      READ(LNHIN,*,END=130,ERR=130) NUP,IDPRUP,XWGTUP,SCALUP,
-     &AQEDUP,AQCDUP
-
-      do IPR=1,NPRUP
-         if(IDPRUP .eq. LPRUP(IPR))then
-            isup=IPR
-            exit
-         endif
-      enddo
-
-      if(SUPDONE(isup)) GOTO 100
-
-C...Read NUP subsequent lines with information on each particle.
-      DO 120 I=1,NUP
-        READ(LNHIN,*,END=130,ERR=130) IDUP(I),ISTUP(I),
-     &  MOTHUP(1,I),MOTHUP(2,I),ICOLUP(1,I),ICOLUP(2,I),
-     &  (PUP(J,I),J=1,5),VTIMUP(I),SPINUP(I)
-  120 CONTINUE
-
-      SUPPCS=1.
-      do I=3,NUP
-        if (ISTUP(I).EQ.1.AND.(IABS(IDUP(I)).GE.23.OR.
-     $     (IABS(IDUP(I)).GE.6.AND.IABS(IDUP(I)).LE.8)))
-     $     THEN
-          WRITE(LNHOUT,*) 'Resonance ',IDUP(I), ' has BRTOT ',
-     $       wids(PYCOMP(IDUP(I)),2)
-          if(wids(PYCOMP(IDUP(I)),2).lt.0.95) then
-            SUPPCS=SUPPCS*wids(PYCOMP(IDUP(I)),2)
-          endif
-        endif
-      enddo
-      if(SUPPCS.gt.0)then
-         write(*,*)'Multiplying cross section for process ',
-     $        IDPRUP,' by ',SUPPCS
-         XSECUP(isup)=XSECUP(isup)*SUPPCS
-      else
-         write(*,*) 'Warning! Got cross section suppression 0 ',
-     $        'for process ',IDPRUP
-         write(*,*) 'No cross section reduction done'
-      endif
-
-      SUPDONE(isup)=.true.
-      do i=1,NPRUP
-         if(.not. SUPDONE(i)) GOTO 100
-      enddo
-
- 130  RETURN
-      END
-
-C*********************************************************************
-
-C...modelpar
-C...Checks if model is mssm and extracts SLHA file
-C...Reads all particle masses and SM parameters in any case
-
-      SUBROUTINE MODELPAR(iunit)
-
-      IMPLICIT NONE
-
-C...Three Pythia functions return integers, so need declaring.
-      INTEGER IMSS
-      DOUBLE PRECISION RMSS
-C...Supersymmetry parameters.
-      COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
-C...Pythia common blocks
-      INTEGER MSTU,MSTJ,KCHG
-      DOUBLE PRECISION PARU,PARJ,PMAS,PARF,VCKM
-C...Parameters.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-C...Particle properties + some flavour parameters.
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Inputs for the matching algorithm
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      double precision etcjet,rclmax,etaclmax,qcut,clfact
-      integer maxjets,minjets,iexcfile,ktsche,mektsc,nexcres,excres(30)
-      integer nremres, remres(30)
-      integer nqmatch,nexcproc,iexcproc(MAXPUP),iexcval(MAXPUP)
-      logical nosingrad,showerkt,jetprocs
-      common/MEMAIN/etcjet,rclmax,etaclmax,qcut,clfact,maxjets,minjets,
-     $   iexcfile,ktsche,mektsc,nexcres,excres,nremres,remres,
-     $   nqmatch,nexcproc,iexcproc,iexcval,nosingrad,showerkt,jetprocs
-
-C...Local variables
-      CHARACTER*132 buff,block_name
-      CHARACTER*8 model
-      INTEGER iunit,ivalue
-      DOUBLE PRECISION value
-      LOGICAL block_found
-      INTEGER i,ifail
-
-      buff=' '
-      do 100 while(buff.ne.'</slha>' .and.
-     $     buff(1:21).ne.'# End param_card.dat')
-        read(iunit,'(a132)',end=105,err=98) buff
-
-        if(buff.eq.'<slha>' .or.
-     $       buff(1:23).eq.'# Begin param_card.dat')then
-c       Write out the SLHA file to unit 24
-          open(24,status='scratch')
-          do while(.true.)
-            read(iunit,'(a132)',end=99,err=98) buff
-            if(buff.eq.'</slha>' .or.
-     $           buff(1:21).eq.'# End param_card.dat') goto 105
-            write(24,'(a80)') buff
-          end do
-        endif
-
-        call case_trap2(buff,len_trim(buff))
-c     Find and store model used
-        if(buff(1:14).eq.'# begin model')then
-c  change to avoid compiler warnings
-c          read(iunit,'(a132)',end=99,err=98) buff
-c          model=buff
-          read(iunit,'(a8)',end=99,err=98) model
-        endif
-c     Find and store QED or HIG order used
-c        if(index(buff,'qed').gt.0.or.index(buff,'hig').gt.0)then
-c          read(buff(index(buff,'=')+1:),*,err=100) ivalue
-c          nosingrad=nosingrad.or.(ivalue.ge.2)
-c          if(nosingrad) print *,'Set nosingrad to .true.'
-c        endif
- 100  continue
- 105  continue
-      REWIND(iunit)
-      REWIND(24)
-
-
-C...Read the SLHA file
-      block_found=.false.
-      do 200 while(.true.)
-        read(24,'(a132)',end=205,err=98) buff
-        call case_trap2(buff,len_trim(buff))
-c      Look for "block" to find SM and mass parameters
-         if(buff(1:1).eq.'b')then
-            block_name=buff(7:)
-            block_found=.true.
-         endif
-         if (block_found) then
-            do 10 while(.true.)
-               read(24,'(a132)',end=205,err=98) buff
-               if(buff(1:1).eq.'#') goto 10
-               if(buff(1:1).ne.' ') then
-                  block_found=.false.
-                  backspace(24)
-                  goto 200
-               endif
-               if(block_name(1:8).eq.'sminputs')then
-                  read(buff,*) ivalue,value
-                  print *,'Reading parameter ',block_name(1:8),
-     $                 ivalue,value
-                  if(ivalue.eq.1) PARU(103)=1d0/value
-                  if(ivalue.eq.2) PARU(105)=value
-                  if(ivalue.eq.4) PMAS(23,1)=value
-                  if(ivalue.eq.6) PMAS(6,1)=value
-                  if(ivalue.eq.7) PMAS(15,1)=value
-               endif
- 10         continue
-         endif
- 200  continue
- 205  continue
-      PARU(102)  = 0.5d0-sqrt(0.25d0-
-     $     PARU(1)/sqrt(2d0)*PARU(103)/PARU(105)/PMAS(23,1)**2)
-      REWIND(24)
-
-      write(*,*) 'Reading model: ',model
-
-c      open(24,FILE='SLHA.dat',ERR=91)
-c     Pick out SM parameters
-c      CALL READSMLHA(iunit)
-
-cccc      write(*,*) ' index(model) = ', index(model,'mssm')
-
-      if(index(model,'mssm').ne.0) then
-         call PYGIVE('IMSS(1) = 11')
-         CALL PYSLHA(1,0,IFAIL)
-      endif
-      call PYGIVE('IMSS(21)= 24') ! Logical unit number of SLHA spectrum file
-      if(model(1:2).ne.'sm'.and.model(1:4).ne.'mssm') then
-         call PYGIVE('IMSS(22)= 24') ! Logical unit number of SLHA decay file
-c     Let Pythia read all new particles ("qnumbers")
-         CALL PYSLHA(0,0,IFAIL)
-      endif
-c     Let Pythia read all masses and, if possible, decays
-      CALL PYSLHA(5,0,IFAIL)
-      CALL PYSLHA(2,0,IFAIL)
-c     Stop Pythia from reading particles and decays a second time
-      if(model(1:2).ne.'sm'.and.model(1:4).ne.'mssm') then
-         call PYGIVE('IMSS(21)= 0') ! Logical unit number of SLHA spectrum file
-         call PYGIVE('IMSS(22)= 0') ! Logical unit number of SLHA decay file
-      endif
-      RETURN
-
- 90   WRITE(*,*)'Could not open file SLHA.dat for writing'
-      WRITE(*,*)'Quitting...'
-      STOP
- 98   WRITE(*,*)'Unexpected error reading file'
-      WRITE(*,*)'Quitting...'
-      STOP
- 99   WRITE(*,*)'Unexpected end of file'
-      WRITE(*,*)'Quitting...'
-      STOP
-
-      END
-
-c----------------------------------------------------------------------
-c   READ_PARAMS
-c   Read the parameters from the run_card in the MadEvent event file
-c----------------------------------------------------------------------
-
-      subroutine read_params(iunit,npara,param,value,maxpara)
-      implicit none
-
-c
-c   arguments
-c
-      integer iunit
-      character*20 param(*),value(*)
-      integer npara,maxpara
-
-C...User process initialization commonblock.
-C #include "GeneratorModules/heprup.inc"
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &   IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &   LPRUP(MAXPUP)
-C...User process event common block.
-C #include "GeneratorModules/hepeup.inc"
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &   ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &   VTIMUP(MAXNUP),SPINUP(MAXNUP)
-
-c
-c   local
-c
-      logical fopened
-      character*20 ctemp
-      integer k,i,l1,l2,j,jj
-      character*132 buff
-      integer NPARTS,KNTEV,NJETS,MAXNJ,NREAD
-      parameter(MAXNJ=6)
-      double precision WTEVNT,XSTOT(MAXNJ),DUMMY,WTMAX
-c
-c----------
-c   start
-c----------
-
-      NREAD=0
-
-c
-c   read the input-card.dat
-c
-      npara=1
-      param(1)=' '
-      value(1)=' '
-      WTMAX=0D0
-c
-c   read in values
-c
-      buff=' '
-      do while(index(buff,'<MGRunCard>').eq.0 .and.
-     $     index(buff,'Begin run_card.dat').eq.0)
-        read(iunit,'(a132)',end=99,err=99) buff
-      enddo
-      do 10 while(index(buff,'</MGRunCard>').eq.0 .and.
-     $     index(buff,'End run_card.dat').eq.0 .and.
-     $     npara.le.maxpara)
-        read(iunit,'(a132)',end=99,err=99) buff
-        if(buff.eq.' ') then
-          goto 10
-        endif
-        if(index(buff,'=').ne.0) then
-          l1=index(buff,'=')
-          l2=index(buff,'!')
-          if(l2.eq.0) l2=l1+20  !maybe there is no comment...
-c
-          value(npara)=buff(1:l1-1)
-          ctemp=value(npara)
-          call case_trap2(ctemp,20)
-          value(npara)=ctemp
-c
-          param(npara)=" "//buff(l1+1:l2-1)
-          ctemp=param(npara)
-          call case_trap2(ctemp,20)
-          param(npara)=ctemp
-c
-          npara=npara+1
-        endif
- 10   continue
-
-      REWIND(iunit)
-
-      return
-
- 99   WRITE(*,*)'Unexpected error reading file'
-      WRITE(*,*)'Quitting...'
-      STOP
-      end
-
-C*********************************************************************
-C...set_matching
-C...Sets parameters for the matching, i.e. cuts and jet multiplicities
-C*********************************************************************
-
-      SUBROUTINE set_matching(iunit,npara,param,value)
-      implicit none
-c
-c   arguments
-c
-      integer iunit,npara
-      character*20 param(*),value(*)
-
-C...Pythia parameters.
-      INTEGER MSTP,MSTI
-      DOUBLE PRECISION PARP,PARI
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-
-C...User process initialization commonblock.
-C #include "GeneratorModules/heprup.inc"
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &   IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &   LPRUP(MAXPUP)
-
-C...User process event common block.
-C #include "GeneratorModules/hepeup.inc"
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &   ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &   VTIMUP(MAXNUP),SPINUP(MAXNUP)
-
-C...Extra commonblock to transfer run info.
-      INTEGER LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-      COMMON/MGUPPRIV/LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-
-C...Inputs for the matching algorithm
-      double precision etcjet,rclmax,etaclmax,qcut,clfact
-      integer maxjets,minjets,iexcfile,ktsche,mektsc,nexcres,excres(30)
-      integer nremres, remres(30)
-      integer nqmatch,nexcproc,iexcproc(MAXPUP),iexcval(MAXPUP)
-      logical nosingrad,showerkt,jetprocs
-      common/MEMAIN/etcjet,rclmax,etaclmax,qcut,clfact,maxjets,minjets,
-     $   iexcfile,ktsche,mektsc,nexcres,excres,nremres,remres,
-     $   nqmatch,nexcproc,iexcproc,iexcval,nosingrad,showerkt,jetprocs
-
-C...Commonblock to transfer event-by-event matching info
-      INTEGER NLJETS,IEXC,Ifile
-      DOUBLE PRECISION PTCLUS
-      COMMON/MEMAEV/PTCLUS(20),NLJETS,IEXC,Ifile
-
-C...Local variables
-      INTEGER I,MAXNJ,NREAD,MINJ,MAXJ
-      parameter(MAXNJ=6)
-      DOUBLE PRECISION XSTOT(MAXNJ),XSECTOT
-      DOUBLE PRECISION ptjmin,etajmax,drjmin,ptbmin,etabmax,xqcut
-
-C...Functions
-      INTEGER iexclusive
-      EXTERNAL iexclusive
-
-C...Need lower scale for final state radiation in e+e-
-      IF(IABS(IDBMUP(1)).EQ.11.AND.IABS(IDBMUP(2)).EQ.11) then
-        CALL PYGIVE('PARP(71)=1')
-      ENDIF
-
-C...CRUCIAL FOR JET-PARTON MATCHING: CALL UPVETO, ALLOW JET-PARTON MATCHING
-      call pygive('MSTP(143)=1')
-
-C
-C...Check jet multiplicities and set processes
-C
-      DO I=1,MAXNJ
-        XSTOT(I)=0D0
-      ENDDO
-      MINJ=MAXNJ
-      MAXJ=0
-      NREAD=0
-      DO WHILE(.true.)
-        CALL UPEVNT()
-        IF(NUP.eq.0) goto 20
-        IF(IEXC.EQ.-1) cycle
-        if(NLJETS.GT.MAXJ) MAXJ=NLJETS
-        if(NLJETS.LT.MINJ) MINJ=NLJETS
-c        XSTOT(NLJETS+1)=XSTOT(NLJETS+1)+XWGTUP
-        XSTOT(NLJETS+1)=XSTOT(NLJETS+1)+1
-        NREAD=NREAD+1
-      ENDDO
-
- 20   continue
-
-      REWIND(iunit)
-
-      write(LNHOUT,*) 'Minimum number of jets in file: ',MINJ
-      write(LNHOUT,*) 'Maximum number of jets in file: ',MAXJ
-
-      XSECTOT=0d0
-      DO I=1,NPRUP
-         XSECTOT=XSECTOT+XSECUP(I)
-      ENDDO
-
-      IF(NPRUP.eq.1.AND.MINJ.lt.MAXJ)THEN
-C...If different process ids not set by user, set by jet number
-         jetprocs=.true.
-         IF(IEXCFILE.eq.0.AND.iexclusive(LPRUP(1)).ne.1) THEN
-            nexcproc=1
-            IEXCPROC(1)=MAXJ-MINJ
-            IEXCVAL(1)=0
-         ENDIF
-         NPRUP=1+MAXJ-MINJ
-         DO I=MINJ,MAXJ
-            XSECUP(1+I-MINJ) = XSECTOT*XSTOT(I+1)/NREAD
-            XMAXUP(1+I-MINJ) = XMAXUP(1)
-            LPRUP(1+I-MINJ)  = I-MINJ
-         ENDDO
-      ELSE IF(IEXCFILE.EQ.0) THEN
-C...Check if any IEXCPROC set, then set IEXCFILE=1
-         DO I=1,NPRUP
-            IF(iexclusive(LPRUP(I)).EQ.0) IEXCFILE=1
-         ENDDO
-      ENDIF
-
-      WRITE(LNHOUT,*) ' Number of Events Read:: ',NREAD
-      WRITE(LNHOUT,*) ' Total cross section (pb):: ',XSECTOT
-      WRITE(LNHOUT,*) ' Process   Cross Section (pb):: '
-      DO I=1,NPRUP
-        WRITE(LNHOUT,'(I5,E23.5)') I,XSECUP(I)
-      ENDDO
-
-      IF(MINJETS.EQ.-1) MINJETS=MINJ
-      IF(MAXJETS.EQ.-1) MAXJETS=MAXJ
-      write(LNHOUT,*) 'Minimum number of jets allowed: ',MINJETS
-      write(LNHOUT,*) 'Maximum number of jets allowed: ',MAXJETS
-      write(LNHOUT,*) 'IEXCFILE = ',IEXCFILE
-      write(LNHOUT,*) 'jetprocs = ',jetprocs
-      DO I=1,NPRUP
-         write(LNHOUT,*) 'IEXCPROC(',LPRUP(I),') = ',
-     $        iexclusive(LPRUP(I))
-      ENDDO
-
-      CALL FLUSH()
-
-C...Run PYPTFS instead of PYSHOW
-c        CALL PYGIVE("MSTJ(41)=12")
-
-c***********************************************************************
-c   Read in jet cuts
-c***********************************************************************
-
-      call get_real   (npara,param,value," ptj " ,ptjmin,7d3)
-      call get_real   (npara,param,value," etaj " ,etajmax,7d3)
-      call get_real   (npara,param,value," ptb " ,ptbmin,7d3)
-      call get_real   (npara,param,value," etab " ,etabmax,7d3)
-      call get_real   (npara,param,value," drjj " ,drjmin,7d3)
-      call get_real   (npara,param,value," xqcut " ,xqcut,0d0)
-
-      if(qcut.lt.xqcut) then
-         if(showerkt) then
-            qcut=xqcut
-         else
-            qcut=max(xqcut*1.2,xqcut+5)
-         endif
-      endif
-      if(xqcut.le.0)then
-         write(*,*) 'Warning! ME generation QCUT = 0. QCUT set to 0!'
-         qcut=0
-      endif
-
-c     etajmax=min(etajmax,etabmax)
-c     ptjmin=max(ptjmin,ptbmin)
-
-c     IF(ICKKW.EQ.1) THEN
-c     WRITE(*,*) ' '
-c     WRITE(*,*) 'INPUT 0 FOR INCLUSIVE JET SAMPLE, 1 FOR EXCLUSIVE'
-c     WRITE(*,*) '(SELECT 0 FOR HIGHEST PARTON MULTIPLICITY SAMPLE)'
-c     WRITE(*,*) '(SELECT 1 OTHERWISE)'
-c     READ(*,*) IEXCFILE
-c     ENDIF
-
-C     INPUT PARAMETERS FOR CONE ALGORITHM
-
-      IF(ETCJET.LE.PTJMIN)THEN
-         ETCJET=MAX(PTJMIN+5,1.2*PTJMIN)
-      ENDIF
-
-      RCLMAX=DRJMIN
-      ETACLMAX=ETAJMAX
-      IF(qcut.le.0)THEN
-         WRITE(*,*) 'JET CONE PARAMETERS FOR MATCHING:'
-         WRITE(*,*) 'ET>',ETCJET,' R=',RCLMAX
-         WRITE(*,*) 'DR(PARTON-JET)<',1.5*RCLMAX
-         WRITE(*,*) 'ETA(JET)<',ETACLMAX
-      ELSE IF(ickkw.eq.1) THEN
-         WRITE(*,*) 'KT JET PARAMETERS FOR MATCHING:'
-         WRITE(*,*) 'QCUT=',qcut
-         WRITE(*,*) 'ETA(JET)<',ETACLMAX
-         WRITE(*,*) 'Note that in ME generation, qcut = ',xqcut
-         if(showerkt.and.MSTP(81).LT.20)THEN
-            WRITE(*,*)'WARNING: "shower kt" needs pT-ordered showers'
-            WRITE(*,*)'         Setting MSTP(81)=',20+MOD(MSTP(81),10)
-            MSTP(81)=20+MOD(MSTP(81),10)
-         endif
-      else if(ickkw.eq.2)then
-c     Turn off color coherence suppressions (leave this to ME)
-         CALL PYGIVE('MSTP(62)=2')
-         CALL PYGIVE('MSTP(67)=0')
-         if(MSTP(81).LT.20)THEN
-            WRITE(*,*)'WARNING: Must run CKKW with pt-ordered showers'
-            WRITE(*,*)'         Setting MSTP(81)=',20+MOD(MSTP(81),10)
-            MSTP(81)=20+MOD(MSTP(81),10)
-         endif
-      endif
-      return
-      end
-
-      subroutine get_real(npara,param,value,name,var,def_value)
-c----------------------------------------------------------------------------------
-c   finds the parameter named "name" in param and associate to "value" in value
-c----------------------------------------------------------------------------------
-      implicit none
-
-c
-c   arguments
-c
-      integer npara
-      character*20 param(*),value(*)
-      character*(*)  name
-      real*8 var,def_value
-c
-c   local
-c
-      logical found
-      integer i
-c
-c   start
-c
-      i=1
-      found=.false.
-      do while(.not.found.and.i.le.npara)
-        found = (index(param(i),name).ne.0)
-        if (found) read(value(i),*) var
-c     if (found) write (*,*) name,var
-        i=i+1
-      enddo
-      if (.not.found) then
-        write (*,*) "Warning: parameter ",name," not found"
-        write (*,*) "         setting it to default value ",def_value
-        var=def_value
-      else
-        write(*,*) 'Found parameter ',name,var
-      endif
-      return
-
-      end
-c
-
-      subroutine get_integer(npara,param,value,name,var,def_value)
-c----------------------------------------------------------------------------------
-c   finds the parameter named "name" in param and associate to "value" in value
-c----------------------------------------------------------------------------------
-      implicit none
-c
-c   arguments
-c
-      integer npara
-      character*20 param(*),value(*)
-      character*(*)  name
-      integer var,def_value
-c
-c   local
-c
-      logical found
-      integer i
-c
-c   start
-c
-      i=1
-      found=.false.
-      do while(.not.found.and.i.le.npara)
-        found = (index(param(i),name).ne.0)
-        if (found) read(value(i),*) var
-c     if (found) write (*,*) name,var
-        i=i+1
-      enddo
-      if (.not.found) then
-        write (*,*) "Warning: parameter ",name," not found"
-        write (*,*) "         setting it to default value ",def_value
-        var=def_value
-      else
-        write(*,*)'Found parameter ',name,var
-      endif
-      return
-
-      end
-
-C***********************************
-C Common block initialization block
-C***********************************
-
-      BLOCK DATA MEPYDAT
-
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-C...Inputs for the matching algorithm
-      double precision etcjet,rclmax,etaclmax,qcut,clfact
-      integer maxjets,minjets,iexcfile,ktsche,mektsc,nexcres,excres(30)
-      integer nremres, remres(30)
-      integer nqmatch,nexcproc,iexcproc(MAXPUP),iexcval(MAXPUP)
-      logical nosingrad,showerkt,jetprocs
-      common/MEMAIN/etcjet,rclmax,etaclmax,qcut,clfact,maxjets,minjets,
-     $   iexcfile,ktsche,mektsc,nexcres,excres,nremres,remres,
-     $   nqmatch,nexcproc,iexcproc,iexcval,nosingrad,showerkt,jetprocs
-
-c$$$C...GETJET commonblocks
-c$$$      INTEGER MNCY,MNCPHI,NCY,NCPHI,NJMAX,JETNO,NCJET
-c$$$      DOUBLE PRECISION YCMIN,YCMAX,DELY,DELPHI,ET,STHCAL,CTHCAL,CPHCAL,
-c$$$     &  SPHCAL,PCJET,ETJET
-c$$$      PARAMETER (MNCY=200)
-c$$$      PARAMETER (MNCPHI=200)
-c$$$      COMMON/CALORM/DELY,DELPHI,ET(MNCY,MNCPHI),
-c$$$     $CTHCAL(MNCY),STHCAL(MNCY),CPHCAL(MNCPHI),SPHCAL(MNCPHI),
-c$$$     $YCMIN,YCMAX,NCY,NCPHI
-
-C...Extra commonblock to transfer run info.
-      INTEGER LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-      COMMON/MGUPPRIV/LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-
-C...Initialization statements
-      DATA qcut,clfact,etcjet/0d0,0d0,0d0/
-      DATA ktsche,mektsc,maxjets,minjets,nexcres/0,1,-1,-1,0/
-      DATA nqmatch/5/
-      DATA nexcproc/0/
-      DATA iexcproc/MAXPUP*-1/
-      DATA iexcval/MAXPUP*-2/
-      DATA nosingrad,showerkt,jetprocs/.false.,.false.,.false./
-
-c$$$      DATA NCY,NCPHI/50,60/
-
-      DATA LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE/77,6,0,0,0,1/
-
-      END
-C************************************************
-
-      subroutine downcase_line(line,len)
-
-      implicit none
-      character*(*) line
-      integer i,len,k
-
-      do i=1,len
-        k=ichar(line(i:i))
-        if(k.ge.65.and.k.le.90) then !upper case A-Z
-          k=ichar(line(i:i))+32
-          line(i:i)=char(k)
-        endif
-      enddo
-
-      return
-      end
diff --git a/Generators/MadGraph_i/src/ktclusdble.F b/Generators/MadGraph_i/src/ktclusdble.F
deleted file mode 100644
index c508beb925dfb6184c3857553865c5e2a673047b..0000000000000000000000000000000000000000
--- a/Generators/MadGraph_i/src/ktclusdble.F
+++ /dev/null
@@ -1,1575 +0,0 @@
-c
-c  copied from pythia-pgs/src/
-c
-
-C-----------------------------------------------------------------------
-C-----------------------------------------------------------------------
-C-----------------------------------------------------------------------
-C     KTCLUS: written by Mike Seymour, July 1992.
-C     Last modified November 2000.
-C     Please send comments or suggestions to Mike.Seymour@rl.ac.uk
-C
-C     This is a general-purpose kt clustering package.
-C     It can handle ee, ep and pp collisions.
-C     It is loosely based on the program of Siggi Bethke.
-C
-C     The time taken (on a 10MIP machine) is (0.2microsec)*N**3
-C     where N is the number of particles.
-C     Over 90 percent of this time is used in subroutine KTPMIN, which
-C     simply finds the minimum member of a one-dimensional array.
-C     It is well worth thinking about optimization: on the SPARCstation
-C     a factor of two increase was obtained simply by increasing the
-C     optimization level from its default value.
-C
-C     The approach is to separate the different stages of analysis.
-C     KTCLUS does all the clustering and records a merging history.
-C     It returns a simple list of the y values at which each merging
-C     occured. Then the following routines can be called to give extra
-C     information on the most recently analysed event.
-C     KTCLUR is identical but includes an R parameter, see below.
-C     KTYCUT gives the number of jets at each given YCUT value.
-C     KTYSUB gives the number of sub-jets at each given YCUT value.
-C     KTBEAM gives same info as KTCLUS but only for merges with the beam
-C     KTJOIN gives same info as KTCLUS but for merges of sub-jets.
-C     KTRECO reconstructs the jet momenta at a given value of YCUT.
-C     It also gives information on which jets at scale YCUT belong to
-C     which macro-jets at scale YMAC, for studying sub-jet properties.
-C     KTINCL reconstructs the jet momenta according to the inclusive jet
-C     definition of Ellis and Soper.
-C     KTISUB, KTIJOI and KTIREC are like KTYSUB, KTJOIN and KTRECO,
-C     except that they only apply to one inclusive jet at a time,
-C     with the pt of that jet automatically used for ECUT.
-C     KTWICH gives a list of which particles ended up in which jets.
-C     KTWCHS gives the same thing, but only for subjets.
-C     Note that the numbering of jets used by these two routines is
-C     guaranteed to be the same as that used by KTRECO.
-C
-C     The collision type and analysis type are indicated by the first
-C     argument of KTCLUS. IMODE=<TYPE><ANGLE><MONO><RECOM> where
-C     TYPE:  1=>ee, 2=>ep with p in -z direction, 3=>pe, 4=>pp
-C     ANGLE: 1=>angular kt def., 2=>DeltaR, 3=>f(DeltaEta,DeltaPhi)
-C            where f()=2(cosh(eta)-cos(phi)) is the QCD emission metric
-C     MONO:  1=>derive relative pseudoparticle angles from jets
-C            2=>monotonic definitions of relative angles
-C     RECOM: 1=>E recombination scheme, 2=>pt scheme, 3=>pt**2 scheme
-C
-C     There are also abbreviated forms for the most common combinations:
-C     IMODE=1 => E scheme in e+e-                              (=1111)
-C           2 => E scheme in ep                                (=2111)
-C           3 => E scheme in pe                                (=3111)
-C           4 => E scheme in pp                                (=4111)
-C           5 => covariant E scheme in pp                      (=4211)
-C           6 => covariant pt-scheme in pp                     (=4212)
-C           7 => covariant monotonic pt**2-scheme in pp        (=4223)
-C
-C     KTRECO no longer needs to reconstruct the momenta according to the
-C     same recombination scheme in which they were clustered. Its first
-C     argument gives the scheme, taking the same values as RECOM above.
-C
-C     Note that unlike previous versions, all variables which hold y
-C     values have been named in a consistent way:
-C     Y()  is the output scale at which jets were merged,
-C     YCUT is the input scale at which jets should be counted, and
-C          jet-momenta reconstructed etc,
-C     YMAC is the input macro-jet scale, used in determining whether
-C          or not each jet is a sub-jet.
-C     The original scheme defined in our papers is equivalent to always
-C     setting YMAC=1.
-C     Whenever a YCUT or YMAC variable is used, it is rounded down
-C     infinitesimally, so that for example, setting YCUT=Y(2) refers
-C     to the scale where the event is 2-jet, even if rounding errors
-C     have shifted its value slightly.
-C
-C     An R parameter can be used in hadron-hadron collisions by
-C     calling KTCLUR instead of KTCLUS.  This is as suggested by
-C     Ellis and Soper, but implemented slightly differently,
-C     as in M.H. Seymour, LU TP 94/2 (submitted to Nucl. Phys. B.).
-C     R**2 multiplies the single Kt everywhere it is used.
-C     Calling KTCLUR with R=1 is identical to calling KTCLUS.
-C     R plays a similar role to the jet radius in a cone-type algorithm,
-C     but is scaled up by about 40% (ie R=0.7 in a cone algorithm is
-C     similar to this algorithm with R=1).
-C     Note that R.EQ.1 must be used for the e+e- and ep versions,
-C     and is strongly recommended for the hadron-hadron version.
-C     However, R values smaller than 1 have been found to be useful for
-C     certain applications, particularly the mass reconstruction of
-C     highly-boosted colour-singlets such as high-pt hadronic Ws,
-C     as in M.H. Seymour, LU TP 93/8 (to appear in Z. Phys. C.).
-C     Situations in which R<1 is useful are likely to also be those in
-C     which the inclusive reconstruction method is more useful.
-C
-C     Also included is a set of routines for doing Lorentz boosts:
-C     KTLBST finds the boost matrix to/from the cm frame of a 4-vector
-C     KTRROT finds the rotation matrix from one vector to another
-C     KTMMUL multiplies together two matrices
-C     KTVMUL multiplies a vector by a matrix
-C     KTINVT inverts a transformation matrix (nb NOT a general 4 by 4)
-C     KTFRAM boosts a list of vectors between two arbitrary frames
-C     KTBREI boosts a list of vectors between the lab and Breit frames
-C     KTHADR boosts a list of vectors between the lab and hadronic cmf
-C       The last two need the momenta in the +z direction of the lepton
-C       and hadron beams, and the 4-momentum of the outgoing lepton.
-C
-C     The main reference is:
-C       S. Catani, Yu.L. Dokshitzer, M.H. Seymour and B.R. Webber,
-C         Nucl.Phys.B406(1993)187.
-C     The ep version was proposed in:
-C       S. Catani, Yu.L. Dokshitzer and B.R. Webber,
-C         Phys.Lett.285B(1992)291.
-C     The inclusive reconstruction method was proposed in:
-C       S.D. Ellis and D.E. Soper,
-C         Phys.Rev.D48(1993)3160.
-C
-C-----------------------------------------------------------------------
-C-----------------------------------------------------------------------
-C-----------------------------------------------------------------------
-      SUBROUTINE KTCLUS(IMODE,PP,NN,ECUT,Y,*)
-      IMPLICIT NONE
-C---DO CLUSTER ANALYSIS OF PARTICLES IN PP
-C
-C   IMODE   = INPUT  : DESCRIBED ABOVE
-C   PP(I,J) = INPUT  : 4-MOMENTUM OF Jth PARTICLE: I=1,4 => PX,PY,PZ,E
-C   NN      = INPUT  : NUMBER OF PARTICLES
-C   ECUT    = INPUT  : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   Y(J)    = OUTPUT : VALUE OF Y FOR WHICH EVENT CHANGES FROM BEING
-C                        J JET TO J-1 JET
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED (MOST LIKELY DUE TO TOO MANY PARTICLES)
-C
-C   NOTE THAT THE MOMENTA ARE DECLARED DOUBLE PRECISION,
-C   AND ALL OTHER FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER IMODE,NN
-      DOUBLE PRECISION PP(4,*)
-      DOUBLE PRECISION ECUT,Y(*),ONE
-      ONE=1
-      CALL KTCLUR(IMODE,PP,NN,ONE,ECUT,Y,*999)
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTCLUR(IMODE,PP,NN,R,ECUT,Y,*)
-      IMPLICIT NONE
-C---DO CLUSTER ANALYSIS OF PARTICLES IN PP
-C
-C   IMODE   = INPUT  : DESCRIBED ABOVE
-C   PP(I,J) = INPUT  : 4-MOMENTUM OF Jth PARTICLE: I=1,4 => PX,PY,PZ,E
-C   NN      = INPUT  : NUMBER OF PARTICLES
-C   R       = INPUT  : ELLIS AND SOPER'S R PARAMETER, SEE ABOVE.
-C   ECUT    = INPUT  : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   Y(J)    = OUTPUT : VALUE OF Y FOR WHICH EVENT CHANGES FROM BEING
-C                        J JET TO J-1 JET
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED (MOST LIKELY DUE TO TOO MANY PARTICLES)
-C
-C   NOTE THAT THE MOMENTA ARE DECLARED DOUBLE PRECISION,
-C   AND ALL OTHER FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NMAX,IM,IMODE,TYPE,ANGL,MONO,RECO,N,I,J,NN,
-     &     IMIN,JMIN,KMIN,NUM,HIST,INJET,IABBR,NABBR
-      PARAMETER (NMAX=512,NABBR=7)
-      DOUBLE PRECISION PP(4,*)
-      DOUBLE PRECISION R,ECUT,Y(*),P,KT,ETOT,RSQ,KTP,KTS,KTPAIR,KTSING,
-     &     KTMIN,ETSQ,KTLAST,KTMAX,KTTMP
-      LOGICAL FIRST
-      CHARACTER TITLE(4,4)*10
-C---KT RECORDS THE KT**2 OF EACH MERGING.
-C---KTLAST RECORDS FOR EACH MERGING, THE HIGHEST ECUT**2 FOR WHICH THE
-C   RESULT IS NOT MERGED WITH THE BEAM (COULD BE LARGER THAN THE
-C   KT**2 AT WHICH IT WAS MERGED IF THE KT VALUES ARE NOT MONOTONIC).
-C   THIS MAY SOUND POINTLESS, BUT ITS USEFUL FOR DETERMINING WHETHER
-C   SUB-JETS SURVIVED TO SCALE Y=YMAC OR NOT.
-C---HIST RECORDS MERGING HISTORY:
-C   N=>DELETED TRACK N, M*NMAX+N=>MERGED TRACKS M AND N (M<N).
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      DIMENSION INJET(NMAX),IABBR(NABBR)
-      DATA FIRST,TITLE,IABBR/.TRUE.,
-     &     'e+e-      ','ep        ','pe        ','pp        ',
-     &     'angle     ','DeltaR    ','f(DeltaR) ','**********',
-     &     'no        ','yes       ','**********','**********',
-     &     'E         ','Pt        ','Pt**2     ','**********',
-     &     1111,2111,3111,4111,4211,4212,4223/
-C---CHECK INPUT
-      IM=IMODE
-      IF (IM.GE.1.AND.IM.LE.NABBR) IM=IABBR(IM)
-      TYPE=MOD(IM/1000,10)
-      ANGL=MOD(IM/100 ,10)
-      MONO=MOD(IM/10  ,10)
-      RECO=MOD(IM     ,10)
-      IF (NN.GT.NMAX.OR.NN.LT.1.OR.(NN.LT.2.AND.TYPE.EQ.1))
-     &     CALL KTWARN('KTCLUS',100,*999)
-      IF (TYPE.LT.1.OR.TYPE.GT.4.OR.ANGL.LT.1.OR.ANGL.GT.4.OR.
-     &    MONO.LT.1.OR.MONO.GT.2.OR.RECO.LT.1.OR.RECO.GT.3)
-     &     CALL KTWARN('KTCLUS',101,*999)
-      IF (FIRST) THEN
-         WRITE (6,'(/,1X,54(''*'')/A)')
-     &   ' KTCLUS: written by Mike Seymour, July 1992.'
-         WRITE (6,'(A)')
-     &   ' Last modified November 2000.'
-         WRITE (6,'(A)')
-     &   ' Please send comments or suggestions to Mike.Seymour@rl.ac.uk'
-         WRITE (6,'(/A,I2,2A)')
-     &   '       Collision type =',TYPE,' = ',TITLE(TYPE,1)
-         WRITE (6,'(A,I2,2A)')
-     &   '     Angular variable =',ANGL,' = ',TITLE(ANGL,2)
-         WRITE (6,'(A,I2,2A)')
-     &   ' Monotonic definition =',MONO,' = ',TITLE(MONO,3)
-         WRITE (6,'(A,I2,2A)')
-     &   ' Recombination scheme =',RECO,' = ',TITLE(RECO,4)
-         IF (R.NE.1) THEN
-         WRITE (6,'(A,F5.2)')
-     &   '     Radius parameter =',R
-         IF (TYPE.NE.4) WRITE (6,'(A)')
-     &   ' R.NE.1 is strongly discouraged for this collision type!'
-         ENDIF
-         WRITE (6,'(1X,54(''*'')/)')
-         FIRST=.FALSE.
-      ENDIF
-C---COPY PP TO P
-      N=NN
-      NUM=NN
-      CALL KTCOPY(PP,N,P,(RECO.NE.1))
-      ETOT=0
-      DO 100 I=1,N
-         ETOT=ETOT+P(4,I)
- 100  CONTINUE
-      IF (ETOT.EQ.0) CALL KTWARN('KTCLUS',102,*999)
-      IF (ECUT.EQ.0) THEN
-         ETSQ=1/ETOT**2
-      ELSE
-         ETSQ=1/ECUT**2
-      ENDIF
-      RSQ=R**2
-C---CALCULATE ALL PAIR KT's
-      DO 210 I=1,N-1
-         DO 200 J=I+1,N
-            KTP(J,I)=-1
-            KTP(I,J)=KTPAIR(ANGL,P(1,I),P(1,J),KTP(J,I))
- 200     CONTINUE
- 210  CONTINUE
-C---CALCULATE ALL SINGLE KT's
-      DO 230 I=1,N
-         KTS(I)=KTSING(ANGL,TYPE,P(1,I))
- 230  CONTINUE
-      KTMAX=0
-C---MAIN LOOP
- 300  CONTINUE
-C---FIND MINIMUM MEMBER OF KTP
-      CALL KTPMIN(KTP,NMAX,N,IMIN,JMIN)
-C---FIND MINIMUM MEMBER OF KTS
-      CALL KTSMIN(KTS,NMAX,N,KMIN)
-C---STORE Y VALUE OF TRANSITION FROM N TO N-1 JETS
-      KTMIN=KTP(IMIN,JMIN)
-      KTTMP=RSQ*KTS(KMIN)
-      IF ((TYPE.GE.2.AND.TYPE.LE.4).AND.
-     &     (KTTMP.LE.KTMIN.OR.N.EQ.1))
-     &     KTMIN=KTTMP
-      KT(N)=KTMIN
-      Y(N)=KT(N)*ETSQ
-C---IF MONO.GT.1, SEQUENCE IS SUPPOSED TO BE MONOTONIC, IF NOT, WARN
-      IF (KTMIN.LT.KTMAX.AND.MONO.GT.1) CALL KTWARN('KTCLUS',1,*999)
-      IF (KTMIN.GE.KTMAX) KTMAX=KTMIN
-C---IF LOWEST KT IS TO A BEAM, THROW IT AWAY AND MOVE LAST ENTRY UP
-      IF (KTMIN.EQ.KTTMP) THEN
-         CALL KTMOVE(P,KTP,KTS,NMAX,N,KMIN,1)
-C---UPDATE HISTORY AND CROSS-REFERENCES
-         HIST(N)=KMIN
-         INJET(N)=KMIN
-         DO 400 I=N,NN
-            IF (INJET(I).EQ.KMIN) THEN
-               KTLAST(I)=KTMAX
-               INJET(I)=0
-            ELSEIF (INJET(I).EQ.N) THEN
-               INJET(I)=KMIN
-            ENDIF
- 400     CONTINUE
-C---OTHERWISE MERGE JETS IMIN AND JMIN AND MOVE LAST ENTRY UP
-      ELSE
-         CALL KTMERG(P,KTP,KTS,NMAX,IMIN,JMIN,N,TYPE,ANGL,MONO,RECO)
-         CALL KTMOVE(P,KTP,KTS,NMAX,N,JMIN,1)
-C---UPDATE HISTORY AND CROSS-REFERENCES
-         HIST(N)=IMIN*NMAX+JMIN
-         INJET(N)=IMIN
-         DO 600 I=N,NN
-            IF (INJET(I).EQ.JMIN) THEN
-               INJET(I)=IMIN
-            ELSEIF (INJET(I).EQ.N) THEN
-               INJET(I)=JMIN
-            ENDIF
- 600     CONTINUE
-      ENDIF
-C---THATS ALL THERE IS TO IT
-      N=N-1
-      IF (N.GT.1 .OR. N.GT.0.AND.(TYPE.GE.2.AND.TYPE.LE.4)) GOTO 300
-      IF (N.EQ.1) THEN
-         KT(N)=1D20
-         Y(N)=KT(N)*ETSQ
-      ENDIF
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTYCUT(ECUT,NY,YCUT,NJET,*)
-      IMPLICIT NONE
-C---COUNT THE NUMBER OF JETS AT EACH VALUE OF YCUT, FOR EVENT WHICH HAS
-C   ALREADY BEEN ANALYSED BY KTCLUS.
-C
-C   ECUT    = INPUT : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   NY      = INPUT : NUMBER OF YCUT VALUES
-C   YCUT(J) = INPUT : Y VALUES AT WHICH NUMBERS OF JETS ARE COUNTED
-C   NJET(J) =OUTPUT : NUMBER OF JETS AT YCUT(J)
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NY,NJET(NY),NMAX,HIST,I,J,NUM
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION YCUT(NY),ETOT,RSQ,P,KT,KTP,KTS,ETSQ,ECUT,KTLAST,
-     &     ROUND
-      PARAMETER (ROUND=0.99999D0)
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      IF (ETOT.EQ.0) CALL KTWARN('KTYCUT',100,*999)
-      IF (ECUT.EQ.0) THEN
-         ETSQ=1/ETOT**2
-      ELSE
-         ETSQ=1/ECUT**2
-      ENDIF
-      DO 100 I=1,NY
-         NJET(I)=0
- 100  CONTINUE
-      DO 210 I=NUM,1,-1
-         DO 200 J=1,NY
-            IF (NJET(J).EQ.0.AND.KT(I)*ETSQ.GE.ROUND*YCUT(J)) NJET(J)=I
- 200     CONTINUE
- 210  CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTYSUB(ECUT,NY,YCUT,YMAC,NSUB,*)
-      IMPLICIT NONE
-C---COUNT THE NUMBER OF SUB-JETS AT EACH VALUE OF YCUT, FOR EVENT WHICH
-C   HAS ALREADY BEEN ANALYSED BY KTCLUS.
-C   REMEMBER THAT A SUB-JET IS DEFINED AS A JET AT Y=YCUT WHICH HAS NOT
-C   YET BEEN MERGED WITH THE BEAM AT Y=YMAC.
-C
-C   ECUT    = INPUT : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   NY      = INPUT : NUMBER OF YCUT VALUES
-C   YCUT(J) = INPUT : Y VALUES AT WHICH NUMBERS OF SUB-JETS ARE COUNTED
-C   YMAC    = INPUT : Y VALUE USED TO DEFINE MACRO-JETS, TO DETERMINE
-C                       WHICH JETS ARE SUB-JETS
-C   NSUB(J) =OUTPUT : NUMBER OF SUB-JETS AT YCUT(J)
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NY,NSUB(NY),NMAX,HIST,I,J,NUM
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION YCUT(NY),YMAC,ETOT,RSQ,P,KT,KTP,KTS,ETSQ,ECUT,
-     &     KTLAST,ROUND
-      PARAMETER (ROUND=0.99999D0)
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      IF (ETOT.EQ.0) CALL KTWARN('KTYSUB',100,*999)
-      IF (ECUT.EQ.0) THEN
-         ETSQ=1/ETOT**2
-      ELSE
-         ETSQ=1/ECUT**2
-      ENDIF
-      DO 100 I=1,NY
-         NSUB(I)=0
- 100  CONTINUE
-      DO 210 I=NUM,1,-1
-         DO 200 J=1,NY
-            IF (NSUB(J).EQ.0.AND.KT(I)*ETSQ.GE.ROUND*YCUT(J)) NSUB(J)=I
-            IF (NSUB(J).NE.0.AND.KTLAST(I)*ETSQ.LT.ROUND*YMAC)
-     &          NSUB(J)=NSUB(J)-1
- 200     CONTINUE
- 210  CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTBEAM(ECUT,Y,*)
-      IMPLICIT NONE
-C---GIVE SAME INFORMATION AS LAST CALL TO KTCLUS EXCEPT THAT ONLY
-C   TRANSITIONS WHERE A JET WAS MERGED WITH THE BEAM JET ARE RECORDED
-C
-C   ECUT    = INPUT : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   Y(J)    =OUTPUT : Y VALUE WHERE Jth HARDEST JET WAS MERGED WITH BEAM
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NMAX,HIST,NUM,I,J
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION ETOT,RSQ,P,KT,KTP,KTS,ECUT,ETSQ,Y(*),KTLAST
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      IF (ETOT.EQ.0) CALL KTWARN('KTBEAM',100,*999)
-      IF (ECUT.EQ.0) THEN
-         ETSQ=1/ETOT**2
-      ELSE
-         ETSQ=1/ECUT**2
-      ENDIF
-      J=1
-      DO 100 I=1,NUM
-         IF (HIST(I).LE.NMAX) THEN
-            Y(J)=ETSQ*KT(I)
-            J=J+1
-         ENDIF
- 100  CONTINUE
-      DO 200 I=J,NUM
-         Y(I)=0
- 200  CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTJOIN(ECUT,YMAC,Y,*)
-      IMPLICIT NONE
-C---GIVE SAME INFORMATION AS LAST CALL TO KTCLUS EXCEPT THAT ONLY
-C   TRANSITIONS WHERE TWO SUB-JETS WERE JOINED ARE RECORDED
-C   REMEMBER THAT A SUB-JET IS DEFINED AS A JET AT Y=YCUT WHICH HAS NOT
-C   YET BEEN MERGED WITH THE BEAM AT Y=YMAC.
-C
-C   ECUT    = INPUT : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   YMAC    = INPUT : VALUE OF Y USED TO DEFINE MACRO-JETS
-C   Y(J)    =OUTPUT : Y VALUE WHERE EVENT CHANGED FROM HAVING
-C                         N+J SUB-JETS TO HAVING N+J-1, WHERE N IS
-C                         THE NUMBER OF MACRO-JETS AT SCALE YMAC
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NMAX,HIST,NUM,I,J
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION ETOT,RSQ,P,KT,KTP,KTS,ECUT,ETSQ,Y(*),YMAC,KTLAST,
-     &     ROUND
-      PARAMETER (ROUND=0.99999D0)
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      IF (ETOT.EQ.0) CALL KTWARN('KTJOIN',100,*999)
-      IF (ECUT.EQ.0) THEN
-         ETSQ=1/ETOT**2
-      ELSE
-         ETSQ=1/ECUT**2
-      ENDIF
-      J=1
-      DO 100 I=1,NUM
-         IF (HIST(I).GT.NMAX.AND.ETSQ*KTLAST(I).GE.ROUND*YMAC) THEN
-            Y(J)=ETSQ*KT(I)
-            J=J+1
-         ENDIF
- 100  CONTINUE
-      DO 200 I=J,NUM
-         Y(I)=0
- 200  CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTRECO(RECO,PP,NN,ECUT,YCUT,YMAC,PJET,JET,NJET,NSUB,*)
-      IMPLICIT NONE
-C---RECONSTRUCT KINEMATICS OF JET SYSTEM, WHICH HAS ALREADY BEEN
-C   ANALYSED BY KTCLUS. NOTE THAT NO CONSISTENCY CHECK IS MADE: USER
-C   IS TRUSTED TO USE THE SAME PP VALUES AS FOR KTCLUS
-C
-C   RECO     = INPUT : RECOMBINATION SCHEME (NEED NOT BE SAME AS KTCLUS)
-C   PP(I,J)  = INPUT : 4-MOMENTUM OF Jth PARTICLE: I=1,4 => PX,PY,PZ,E
-C   NN       = INPUT : NUMBER OF PARTICLES
-C   ECUT     = INPUT : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   YCUT     = INPUT : Y VALUE AT WHICH TO RECONSTRUCT JET MOMENTA
-C   YMAC     = INPUT : Y VALUE USED TO DEFINE MACRO-JETS, TO DETERMINE
-C                        WHICH JETS ARE SUB-JETS
-C   PJET(I,J)=OUTPUT : 4-MOMENTUM OF Jth JET AT SCALE YCUT
-C   JET(J)   =OUTPUT : THE MACRO-JET WHICH CONTAINS THE Jth JET,
-C                        SET TO ZERO IF JET IS NOT A SUB-JET
-C   NJET     =OUTPUT : THE NUMBER OF JETS
-C   NSUB     =OUTPUT : THE NUMBER OF SUB-JETS (EQUAL TO THE NUMBER OF
-C                        NON-ZERO ENTRIES IN JET())
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT THE MOMENTA ARE DECLARED DOUBLE PRECISION,
-C   AND ALL OTHER FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NMAX,RECO,NUM,N,NN,NJET,NSUB,JET(*),HIST,IMIN,JMIN,I,J
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION PP(4,*),PJET(4,*)
-      DOUBLE PRECISION ECUT,P,KT,KTP,KTS,ETOT,RSQ,ETSQ,YCUT,YMAC,KTLAST,
-     &     ROUND
-      PARAMETER (ROUND=0.99999D0)
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-C---CHECK INPUT
-      IF (RECO.LT.1.OR.RECO.GT.3) THEN
-        PRINT *,'RECO=',RECO
-        CALL KTWARN('KTRECO',100,*999)
-      ENDIF
-C---COPY PP TO P
-      N=NN
-      IF (NUM.NE.NN) CALL KTWARN('KTRECO',101,*999)
-      CALL KTCOPY(PP,N,P,(RECO.NE.1))
-      IF (ECUT.EQ.0) THEN
-         ETSQ=1/ETOT**2
-      ELSE
-         ETSQ=1/ECUT**2
-      ENDIF
-C---KEEP MERGING UNTIL YCUT
- 100  IF (ETSQ*KT(N).LT.ROUND*YCUT) THEN
-         IF (HIST(N).LE.NMAX) THEN
-            CALL KTMOVE(P,KTP,KTS,NMAX,N,HIST(N),0)
-         ELSE
-            IMIN=HIST(N)/NMAX
-            JMIN=HIST(N)-IMIN*NMAX
-            CALL KTMERG(P,KTP,KTS,NMAX,IMIN,JMIN,N,0,0,0,RECO)
-            CALL KTMOVE(P,KTP,KTS,NMAX,N,JMIN,0)
-         ENDIF
-         N=N-1
-         IF (N.GT.0) GOTO 100
-      ENDIF
-C---IF YCUT IS TOO LARGE THERE ARE NO JETS
-      NJET=N
-      NSUB=N
-      IF (N.EQ.0) RETURN
-C---SET UP OUTPUT MOMENTA
-      DO 210 I=1,NJET
-         IF (RECO.EQ.1) THEN
-            DO 200 J=1,4
-               PJET(J,I)=P(J,I)
- 200        CONTINUE
-         ELSE
-            PJET(1,I)=P(6,I)*COS(P(8,I))
-            PJET(2,I)=P(6,I)*SIN(P(8,I))
-            PJET(3,I)=P(6,I)*SINH(P(7,I))
-            PJET(4,I)=P(6,I)*COSH(P(7,I))
-         ENDIF
-         JET(I)=I
- 210  CONTINUE
-C---KEEP MERGING UNTIL YMAC TO FIND THE FATE OF EACH JET
- 300  IF (ETSQ*KT(N).LT.ROUND*YMAC) THEN
-         IF (HIST(N).LE.NMAX) THEN
-            IMIN=0
-            JMIN=HIST(N)
-            NSUB=NSUB-1
-         ELSE
-            IMIN=HIST(N)/NMAX
-            JMIN=HIST(N)-IMIN*NMAX
-            IF (ETSQ*KTLAST(N).LT.ROUND*YMAC) NSUB=NSUB-1
-         ENDIF
-         DO 310 I=1,NJET
-            IF (JET(I).EQ.JMIN) JET(I)=IMIN
-            IF (JET(I).EQ.N) JET(I)=JMIN
- 310     CONTINUE
-         N=N-1
-         IF (N.GT.0) GOTO 300
-      ENDIF
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTINCL(RECO,PP,NN,PJET,JET,NJET,*)
-      IMPLICIT NONE
-C---RECONSTRUCT KINEMATICS OF JET SYSTEM, WHICH HAS ALREADY BEEN
-C   ANALYSED BY KTCLUS ACCORDING TO THE INCLUSIVE JET DEFINITION. NOTE
-C   THAT NO CONSISTENCY CHECK IS MADE: USER IS TRUSTED TO USE THE SAME
-C   PP VALUES AS FOR KTCLUS
-C
-C   RECO     = INPUT : RECOMBINATION SCHEME (NEED NOT BE SAME AS KTCLUS)
-C   PP(I,J)  = INPUT : 4-MOMENTUM OF Jth PARTICLE: I=1,4 => PX,PY,PZ,E
-C   NN       = INPUT : NUMBER OF PARTICLES
-C   PJET(I,J)=OUTPUT : 4-MOMENTUM OF Jth JET AT SCALE YCUT
-C   JET(J)   =OUTPUT : THE JET WHICH CONTAINS THE Jth PARTICLE
-C   NJET     =OUTPUT : THE NUMBER OF JETS
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT THE MOMENTA ARE DECLARED DOUBLE PRECISION,
-C   AND ALL OTHER FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NMAX,RECO,NUM,N,NN,NJET,JET(*),HIST,IMIN,JMIN,I,J
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION PP(4,*),PJET(4,*)
-      DOUBLE PRECISION P,KT,KTP,KTS,ETOT,RSQ,KTLAST
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-C---CHECK INPUT
-      IF (RECO.LT.1.OR.RECO.GT.3) CALL KTWARN('KTINCL',100,*999)
-C---COPY PP TO P
-      N=NN
-      IF (NUM.NE.NN) CALL KTWARN('KTINCL',101,*999)
-      CALL KTCOPY(PP,N,P,(RECO.NE.1))
-C---INITIALLY EVERY PARTICLE IS IN ITS OWN JET
-      DO 100 I=1,NN
-         JET(I)=I
- 100  CONTINUE
-C---KEEP MERGING TO THE BITTER END
-      NJET=0
- 200  IF (N.GT.0) THEN
-         IF (HIST(N).LE.NMAX) THEN
-            IMIN=0
-            JMIN=HIST(N)
-            NJET=NJET+1
-            IF (RECO.EQ.1) THEN
-               DO 300 J=1,4
-                  PJET(J,NJET)=P(J,JMIN)
- 300           CONTINUE
-            ELSE
-               PJET(1,NJET)=P(6,JMIN)*COS(P(8,JMIN))
-               PJET(2,NJET)=P(6,JMIN)*SIN(P(8,JMIN))
-               PJET(3,NJET)=P(6,JMIN)*SINH(P(7,JMIN))
-               PJET(4,NJET)=P(6,JMIN)*COSH(P(7,JMIN))
-            ENDIF
-            CALL KTMOVE(P,KTP,KTS,NMAX,N,JMIN,0)
-         ELSE
-            IMIN=HIST(N)/NMAX
-            JMIN=HIST(N)-IMIN*NMAX
-            CALL KTMERG(P,KTP,KTS,NMAX,IMIN,JMIN,N,0,0,0,RECO)
-            CALL KTMOVE(P,KTP,KTS,NMAX,N,JMIN,0)
-         ENDIF
-         DO 400 I=1,NN
-            IF (JET(I).EQ.JMIN) JET(I)=IMIN
-            IF (JET(I).EQ.N) JET(I)=JMIN
-            IF (JET(I).EQ.0) JET(I)=-NJET
- 400     CONTINUE
-         N=N-1
-         GOTO 200
-      ENDIF
-C---FINALLY EVERY PARTICLE MUST BE IN AN INCLUSIVE JET
-      DO 500 I=1,NN
-C---IF THERE ARE ANY UNASSIGNED PARTICLES SOMETHING MUST HAVE GONE WRONG
-         IF (JET(I).GE.0) CALL KTWARN('KTINCL',102,*999)
-         JET(I)=-JET(I)
- 500  CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTISUB(N,NY,YCUT,NSUB,*)
-      IMPLICIT NONE
-C---COUNT THE NUMBER OF SUB-JETS IN THE Nth INCLUSIVE JET OF AN EVENT
-C   THAT HAS ALREADY BEEN ANALYSED BY KTCLUS.
-C
-C   N       = INPUT : WHICH INCLUSIVE JET TO USE
-C   NY      = INPUT : NUMBER OF YCUT VALUES
-C   YCUT(J) = INPUT : Y VALUES AT WHICH NUMBERS OF SUB-JETS ARE COUNTED
-C   NSUB(J) =OUTPUT : NUMBER OF SUB-JETS AT YCUT(J)
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER N,NY,NSUB(NY),NMAX,HIST,I,J,NUM,NM
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION YCUT(NY),ETOT,RSQ,P,KT,KTP,KTS,KTLAST,ROUND,EPS
-      PARAMETER (ROUND=0.99999D0)
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      DATA EPS/1D-6/
-      DO 100 I=1,NY
-         NSUB(I)=0
- 100  CONTINUE
-C---FIND WHICH MERGING CORRESPONDS TO THE NTH INCLUSIVE JET
-      NM=0
-      J=0
-      DO 110 I=NUM,1,-1
-        IF (HIST(I).LE.NMAX) J=J+1
-        IF (J.EQ.N) THEN
-          NM=I
-          GOTO 120
-        ENDIF
- 110  CONTINUE
- 120  CONTINUE
-C---GIVE UP IF THERE ARE LESS THAN N INCLUSIVE JETS
-      IF (NM.EQ.0) CALL KTWARN('KTISUB',100,*999)
-      DO 210 I=NUM,1,-1
-         DO 200 J=1,NY
-            IF (NSUB(J).EQ.0.AND.RSQ*KT(I).GE.ROUND*YCUT(J)*KT(NM))
-     &          NSUB(J)=I
-            IF (NSUB(J).NE.0.AND.ABS(KTLAST(I)-KTLAST(NM)).GT.EPS)
-     &          NSUB(J)=NSUB(J)-1
- 200     CONTINUE
- 210  CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTIJOI(N,Y,*)
-      IMPLICIT NONE
-C---GIVE SAME INFORMATION AS LAST CALL TO KTCLUS EXCEPT THAT ONLY
-C   MERGES OF TWO SUB-JETS INSIDE THE Nth INCLUSIVE JET ARE RECORDED
-C
-C   N       = INPUT : WHICH INCLUSIVE JET TO USE
-C   Y(J)    =OUTPUT : Y VALUE WHERE JET CHANGED FROM HAVING
-C                         J+1 SUB-JETS TO HAVING J
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NMAX,HIST,NUM,I,J,N,NM
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION ETOT,RSQ,P,KT,KTP,KTS,Y(*),KTLAST,EPS
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      DATA EPS/1D-6/
-C---FIND WHICH MERGING CORRESPONDS TO THE NTH INCLUSIVE JET
-      NM=0
-      J=0
-      DO 100 I=NUM,1,-1
-        IF (HIST(I).LE.NMAX) J=J+1
-        IF (J.EQ.N) THEN
-          NM=I
-          GOTO 105
-        ENDIF
- 100  CONTINUE
- 105  CONTINUE
-C---GIVE UP IF THERE ARE LESS THAN N INCLUSIVE JETS
-      IF (NM.EQ.0) CALL KTWARN('KTIJOI',100,*999)
-      J=1
-      DO 110 I=1,NUM
-         IF (HIST(I).GT.NMAX.AND.ABS(KTLAST(I)-KTLAST(NM)).LT.EPS) THEN
-            Y(J)=RSQ*KT(I)/KT(NM)
-            J=J+1
-         ENDIF
- 110  CONTINUE
-      DO 200 I=J,NUM
-         Y(I)=0
- 200  CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTIREC(RECO,PP,NN,N,YCUT,PSUB,NSUB,*)
-      IMPLICIT NONE
-C---RECONSTRUCT KINEMATICS OF SUB-JET SYSTEM IN THE Nth INCLUSIVE JET
-C   OF AN EVENT THAT HAS ALREADY BEEN ANALYSED BY KTCLUS
-C
-C   RECO     = INPUT : RECOMBINATION SCHEME (NEED NOT BE SAME AS KTCLUS)
-C   PP(I,J)  = INPUT : 4-MOMENTUM OF Jth PARTICLE: I=1,4 => PX,PY,PZ,E
-C   NN       = INPUT : NUMBER OF PARTICLES
-C   N        = INPUT : WHICH INCLUSIVE JET TO USE
-C   YCUT     = INPUT : Y VALUE AT WHICH TO RECONSTRUCT JET MOMENTA
-C   PSUB(I,J)=OUTPUT : 4-MOMENTUM OF Jth SUB-JET AT SCALE YCUT
-C   NSUB     =OUTPUT : THE NUMBER OF SUB-JETS
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT THE MOMENTA ARE DECLARED DOUBLE PRECISION,
-C   AND ALL OTHER FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NMAX,RECO,NUM,NN,NJET,NSUB,JET,HIST,I,J,N,NM
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION PP(4,*),PSUB(4,*)
-      DOUBLE PRECISION ECUT,P,KT,KTP,KTS,ETOT,RSQ,YCUT,YMAC,KTLAST
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      DIMENSION JET(NMAX)
-C---FIND WHICH MERGING CORRESPONDS TO THE NTH INCLUSIVE JET
-      NM=0
-      J=0
-      DO 100 I=NUM,1,-1
-         IF (HIST(I).LE.NMAX) J=J+1
-         IF (J.EQ.N) THEN
-            NM=I
-            GOTO 110
-         ENDIF
- 100  CONTINUE
- 110  CONTINUE
-C---GIVE UP IF THERE ARE LESS THAN N INCLUSIVE JETS
-      IF (NM.EQ.0) CALL KTWARN('KTIREC',102,*999)
-C---RECONSTRUCT THE JETS AT THE APPROPRIATE SCALE
-      ECUT=SQRT(KT(NM)/RSQ)
-      YMAC=RSQ
-      CALL KTRECO(RECO,PP,NN,ECUT,YCUT,YMAC,PSUB,JET,NJET,NSUB,*999)
-C---GET RID OF THE ONES THAT DO NOT END UP IN THE JET WE WANT
-      NSUB=0
-      DO 210 I=1,NJET
-         IF (JET(I).EQ.HIST(NM)) THEN
-            NSUB=NSUB+1
-            DO 200 J=1,4
-               PSUB(J,NSUB)=PSUB(J,I)
- 200        CONTINUE
-         ENDIF
- 210  CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTWICH(ECUT,YCUT,JET,NJET,*)
-      IMPLICIT NONE
-C---GIVE A LIST OF WHICH JET EACH ORIGINAL PARTICLE ENDED UP IN AT SCALE
-C   YCUT, TOGETHER WITH THE NUMBER OF JETS AT THAT SCALE.
-C
-C   ECUT     = INPUT : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   YCUT     = INPUT : Y VALUE AT WHICH TO DEFINE JETS
-C   JET(J)   =OUTPUT : THE JET WHICH CONTAINS THE Jth PARTICLE,
-C                        SET TO ZERO IF IT WAS PUT INTO THE BEAM JETS
-C   NJET     =OUTPUT : THE NUMBER OF JETS AT SCALE YCUT (SO JET()
-C                        ENTRIES WILL BE IN THE RANGE 0 -> NJET)
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER JET(*),NJET,NTEMP
-      DOUBLE PRECISION ECUT,YCUT
-      CALL KTWCHS(ECUT,YCUT,YCUT,JET,NJET,NTEMP,*999)
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTWCHS(ECUT,YCUT,YMAC,JET,NJET,NSUB,*)
-      IMPLICIT NONE
-C---GIVE A LIST OF WHICH SUB-JET EACH ORIGINAL PARTICLE ENDED UP IN AT
-C   SCALE YCUT, WITH MACRO-JET SCALE YMAC, TOGETHER WITH THE NUMBER OF
-C   JETS AT SCALE YCUT AND THE NUMBER OF THEM WHICH ARE SUB-JETS.
-C
-C   ECUT     = INPUT : DENOMINATOR OF KT MEASURE. IF ZERO, ETOT IS USED
-C   YCUT     = INPUT : Y VALUE AT WHICH TO DEFINE JETS
-C   YMAC     = INPUT : Y VALUE AT WHICH TO DEFINE MACRO-JETS
-C   JET(J)   =OUTPUT : THE JET WHICH CONTAINS THE Jth PARTICLE,
-C                        SET TO ZERO IF IT WAS PUT INTO THE BEAM JETS
-C   NJET     =OUTPUT : THE NUMBER OF JETS AT SCALE YCUT (SO JET()
-C                        ENTRIES WILL BE IN THE RANGE 0 -> NJET)
-C   NSUB     =OUTPUT : THE NUMBER OF SUB-JETS AT SCALE YCUT, WITH
-C                        MACRO-JETS DEFINED AT SCALE YMAC (SO ONLY NSUB
-C                        OF THE JETS 1 -> NJET WILL APPEAR IN JET())
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL FLOATING POINT VARIABLES ARE DECLARED DOUBLE PRECISION
-C
-      INTEGER NMAX,JET(*),NJET,NSUB,HIST,NUM,I,J,JSUB
-      PARAMETER (NMAX=512)
-      DOUBLE PRECISION P1(4,NMAX),P2(4,NMAX)
-      DOUBLE PRECISION ECUT,YCUT,YMAC,ZERO,ETOT,RSQ,P,KTP,KTS,KT,KTLAST
-      COMMON /KTCOMM/ETOT,RSQ,P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),
-     &  KT(NMAX),KTLAST(NMAX),HIST(NMAX),NUM
-      DIMENSION JSUB(NMAX)
-C---THE MOMENTA HAVE TO BEEN GIVEN LEGAL VALUES,
-C   EVEN THOUGH THEY WILL NEVER BE USED
-      DATA ((P1(J,I),I=1,NMAX),J=1,4),ZERO
-     &  /NMAX*1,NMAX*0,NMAX*0,NMAX*1,0/
-C---FIRST GET A LIST OF WHICH PARTICLE IS IN WHICH JET AT YCUT
-      CALL KTRECO(1,P1,NUM,ECUT,ZERO,YCUT,P2,JET,NJET,NSUB,*999)
-C---THEN FIND OUT WHICH JETS ARE SUBJETS
-      CALL KTRECO(1,P1,NUM,ECUT,YCUT,YMAC,P2,JSUB,NJET,NSUB,*999)
-C---AND MODIFY JET() ACCORDINGLY
-      DO 10 I=1,NUM
-        IF (JET(I).NE.0) THEN
-          IF (JSUB(JET(I)).EQ.0) JET(I)=0
-        ENDIF
- 10   CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTFRAM(IOPT,CMF,SIGN,Z,XZ,N,P,Q,*)
-      IMPLICIT NONE
-C---BOOST PARTICLES IN P TO/FROM FRAME GIVEN BY CMF, Z, XZ.
-C---IN THIS FRAME CMZ IS STATIONARY,
-C                   Z IS ALONG THE (SIGN)Z-AXIS (SIGN=+ OR -)
-C                  XZ IS IN THE X-Z PLANE (WITH POSITIVE X COMPONENT)
-C---IF Z HAS LENGTH ZERO, OR SIGN=0, NO ROTATION IS PERFORMED
-C---IF XZ HAS ZERO COMPONENT PERPENDICULAR TO Z IN THAT FRAME,
-C   NO AZIMUTHAL ROTATION IS PERFORMED
-C
-C   IOPT    = INPUT  : 0=TO FRAME, 1=FROM FRAME
-C   CMF(I)  = INPUT  : 4-MOMENTUM WHICH IS STATIONARY IN THE FRAME
-C   SIGN    = INPUT  : DIRECTION OF Z IN THE FRAME, NOTE THAT
-C                        ONLY ITS SIGN IS USED, NOT ITS MAGNITUDE
-C   Z(I)    = INPUT  : 4-MOMENTUM WHICH LIES ON THE (SIGN)Z-AXIS
-C   XZ(I)   = INPUT  : 4-MOMENTUM WHICH LIES IN THE X-Z PLANE
-C   N       = INPUT  : NUMBER OF PARTICLES IN P
-C   P(I,J)  = INPUT  : 4-MOMENTUM OF JTH PARTICLE BEFORE
-C   Q(I,J)  = OUTPUT : 4-MOMENTUM OF JTH PARTICLE AFTER
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED
-C
-C   NOTE THAT ALL MOMENTA ARE DOUBLE PRECISION
-C
-C   NOTE THAT IT IS SAFE TO CALL WITH P=Q
-C   
-      INTEGER IOPT,I,N
-      DOUBLE PRECISION CMF(4),SIGN,Z(4),XZ(4),P(4,N),Q(4,N),
-     &  R(4,4),NEW(4),OLD(4)
-      IF (IOPT.LT.0.OR.IOPT.GT.1) CALL KTWARN('KTFRAM',200,*999)
-C---FIND BOOST TO GET THERE FROM LAB
-      CALL KTUNIT(R)
-      CALL KTLBST(0,R,CMF,*999)
-C---FIND ROTATION TO PUT BOOSTED Z ON THE (SIGN)Z AXIS
-      IF (SIGN.NE.0) THEN
-        CALL KTVMUL(R,Z,OLD)
-        IF (OLD(1).NE.0.OR.OLD(2).NE.0.OR.OLD(3).NE.0) THEN
-          NEW(1)=0
-          NEW(2)=0
-          NEW(3)=SIGN
-          NEW(4)=ABS(SIGN)
-          CALL KTRROT(R,OLD,NEW,*999)
-C---FIND ROTATION TO PUT BOOSTED AND ROTATED XZ INTO X-Z PLANE
-          CALL KTVMUL(R,XZ,OLD)
-          IF (OLD(1).NE.0.OR.OLD(2).NE.0) THEN
-            NEW(1)=1
-            NEW(2)=0
-            NEW(3)=0
-            NEW(4)=1
-            OLD(3)=0
-C---NOTE THAT A POTENTIALLY AWKWARD SPECIAL CASE IS AVERTED, BECAUSE IF
-C   OLD AND NEW ARE EXACTLY BACK-TO-BACK, THE ROTATION AXIS IS UNDEFINED
-C   BUT IN THAT CASE KTRROT WILL USE THE Z AXIS, AS REQUIRED
-            CALL KTRROT(R,OLD,NEW,*999)
-          ENDIF
-        ENDIF
-      ENDIF
-C---INVERT THE TRANSFORMATION IF NECESSARY
-      IF (IOPT.EQ.1) CALL KTINVT(R,R)
-C---APPLY THE RESULT TO ALL THE VECTORS
-      DO 30 I=1,N
-        CALL KTVMUL(R,P(1,I),Q(1,I))
- 30   CONTINUE
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTBREI(IOPT,PLEP,PHAD,POUT,N,P,Q,*)
-      IMPLICIT NONE
-C---BOOST PARTICLES IN P TO/FROM BREIT FRAME
-C
-C   IOPT    = INPUT  : 0/2=TO BREIT FRAME, 1/3=FROM BREIT FRAME
-C                      0/1=NO AZIMUTHAL ROTATION AFTERWARDS
-C                      2/3=LEPTON PLANE ROTATED INTO THE X-Z PLANE
-C   PLEP    = INPUT  : MOMENTUM OF INCOMING LEPTON IN +Z DIRECTION
-C   PHAD    = INPUT  : MOMENTUM OF INCOMING HADRON IN +Z DIRECTION
-C   POUT(I) = INPUT  : 4-MOMENTUM OF OUTGOING LEPTON
-C   N       = INPUT  : NUMBER OF PARTICLES IN P
-C   P(I,J)  = INPUT  : 4-MOMENTUM OF JTH PARTICLE BEFORE
-C   Q(I,J)  = OUTPUT : 4-MOMENTUM OF JTH PARTICLE AFTER
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF FOR ANY REASON THE EVENT
-C   COULD NOT BE PROCESSED (MOST LIKELY DUE TO PARTICLES HAVING SMALLER
-C   ENERGY THAN MOMENTUM)
-C
-C   NOTE THAT ALL MOMENTA ARE DOUBLE PRECISION
-C
-C   NOTE THAT IT IS SAFE TO CALL WITH P=Q
-C   
-      INTEGER IOPT,N
-      DOUBLE PRECISION PLEP,PHAD,POUT(4),P(4,N),Q(4,N),
-     &  CMF(4),Z(4),XZ(4),DOT,QDQ
-C---CHECK INPUT
-      IF (IOPT.LT.0.OR.IOPT.GT.3) CALL KTWARN('KTBREI',200,*999)
-C---FIND 4-MOMENTUM OF BREIT FRAME (TIMES AN ARBITRARY FACTOR)
-      DOT=ABS(PHAD)*(ABS(PLEP)-POUT(4))-PHAD*(PLEP-POUT(3))
-      QDQ=(ABS(PLEP)-POUT(4))**2-(PLEP-POUT(3))**2-POUT(2)**2-POUT(1)**2
-      CMF(1)=DOT*(         -POUT(1))
-      CMF(2)=DOT*(         -POUT(2))
-      CMF(3)=DOT*(    PLEP -POUT(3))-QDQ*    PHAD
-      CMF(4)=DOT*(ABS(PLEP)-POUT(4))-QDQ*ABS(PHAD)
-C---FIND ROTATION TO PUT INCOMING HADRON BACK ON Z-AXIS
-      Z(1)=0
-      Z(2)=0
-      Z(3)=PHAD
-      Z(4)=ABS(PHAD)
-      XZ(1)=0
-      XZ(2)=0
-      XZ(3)=0
-      XZ(4)=0
-C---DO THE BOOST
-      IF (IOPT.LE.1) THEN
-        CALL KTFRAM(IOPT,CMF,PHAD,Z,XZ,N,P,Q,*999)
-      ELSE
-        CALL KTFRAM(IOPT-2,CMF,PHAD,Z,POUT,N,P,Q,*999)
-      ENDIF
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTHADR(IOPT,PLEP,PHAD,POUT,N,P,Q,*)
-      IMPLICIT NONE
-C---BOOST PARTICLES IN P TO/FROM HADRONIC CMF
-C
-C   ARGUMENTS ARE EXACTLY AS FOR KTBREI
-C
-C   NOTE THAT ALL MOMENTA ARE DOUBLE PRECISION
-C
-C   NOTE THAT IT IS SAFE TO CALL WITH P=Q
-C   
-      INTEGER IOPT,N
-      DOUBLE PRECISION PLEP,PHAD,POUT(4),P(4,N),Q(4,N),
-     &  CMF(4),Z(4),XZ(4)
-C---CHECK INPUT
-      IF (IOPT.LT.0.OR.IOPT.GT.3) CALL KTWARN('KTHADR',200,*999)
-C---FIND 4-MOMENTUM OF HADRONIC CMF
-      CMF(1)=         -POUT(1)
-      CMF(2)=         -POUT(2)
-      CMF(3)=    PLEP -POUT(3)+    PHAD
-      CMF(4)=ABS(PLEP)-POUT(4)+ABS(PHAD)
-C---FIND ROTATION TO PUT INCOMING HADRON BACK ON Z-AXIS
-      Z(1)=0
-      Z(2)=0
-      Z(3)=PHAD
-      Z(4)=ABS(PHAD)
-      XZ(1)=0
-      XZ(2)=0
-      XZ(3)=0
-      XZ(4)=0
-C---DO THE BOOST
-      IF (IOPT.LE.1) THEN
-        CALL KTFRAM(IOPT,CMF,PHAD,Z,XZ,N,P,Q,*999)
-      ELSE
-        CALL KTFRAM(IOPT-2,CMF,PHAD,Z,POUT,N,P,Q,*999)
-      ENDIF
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      FUNCTION KTPAIR(ANGL,P,Q,ANGLE)
-      IMPLICIT NONE
-C---CALCULATE LOCAL KT OF PAIR, USING ANGULAR SCHEME:
-C   1=>ANGULAR, 2=>DeltaR, 3=>f(DeltaEta,DeltaPhi)
-C   WHERE f(eta,phi)=2(COSH(eta)-COS(phi)) IS THE QCD EMISSION METRIC
-C---IF ANGLE<0, IT IS SET TO THE ANGULAR PART OF THE LOCAL KT ON RETURN
-C   IF ANGLE>0, IT IS USED INSTEAD OF THE ANGULAR PART OF THE LOCAL KT
-      INTEGER ANGL
-      DOUBLE PRECISION P(9),Q(9),KTPAIR,R,KTMDPI,ANGLE,ETA,PHI,ESQ
-C---COMPONENTS OF MOMENTA ARE PX,PY,PZ,E,1/P,PT,ETA,PHI,PT**2
-* to avoid warnings
-      KTPAIR=-99D1
-      R=ANGLE
-      IF (ANGL.EQ.1) THEN
-         IF (R.LE.0) R=2*(1-(P(1)*Q(1)+P(2)*Q(2)+P(3)*Q(3))*(P(5)*Q(5)))
-         ESQ=MIN(P(4),Q(4))**2
-      ELSEIF (ANGL.EQ.2.OR.ANGL.EQ.3) THEN
-         IF (R.LE.0) THEN
-            ETA=P(7)-Q(7)
-            PHI=KTMDPI(P(8)-Q(8))
-            IF (ANGL.EQ.2) THEN
-               R=ETA**2+PHI**2
-            ELSE
-               R=2*(COSH(ETA)-COS(PHI))
-            ENDIF
-         ENDIF
-         ESQ=MIN(P(9),Q(9))
-      ELSEIF (ANGL.EQ.4) THEN
-        ESQ=(1d0/(P(5)*Q(5))-P(1)*Q(1)-P(2)*Q(2)-
-     &P(3)*Q(3))*2D0/(P(5)*Q(5))/(0.0001D0+1d0/P(5)+1d0/Q(5))**2        
-        R=1d0
-      ELSE
-         CALL KTWARN('KTPAIR',200,*999)
-         STOP
-      ENDIF
-      KTPAIR=ESQ*R
-      IF (ANGLE.LT.0) ANGLE=R
- 999  END
-C-----------------------------------------------------------------------
-      FUNCTION KTSING(ANGL,TYPE,P)
-      IMPLICIT NONE
-C---CALCULATE KT OF PARTICLE, USING ANGULAR SCHEME:
-C   1=>ANGULAR, 2=>DeltaR, 3=>f(DeltaEta,DeltaPhi)
-C---TYPE=1 FOR E+E-, 2 FOR EP, 3 FOR PE, 4 FOR PP
-C   FOR EP, PROTON DIRECTION IS DEFINED AS -Z
-C   FOR PE, PROTON DIRECTION IS DEFINED AS +Z
-      INTEGER ANGL,TYPE
-      DOUBLE PRECISION P(9),KTSING,COSTH,R,SMALL
-      DATA SMALL/1D-4/
-* to avoid warnings
-      KTSING=-99D1 
-      IF (ANGL.EQ.1.OR.ANGL.EQ.4) THEN
-         COSTH=P(3)*P(5)
-         IF (TYPE.EQ.2) THEN
-            COSTH=-COSTH
-         ELSEIF (TYPE.EQ.4) THEN
-            COSTH=ABS(COSTH)
-         ELSEIF (TYPE.NE.1.AND.TYPE.NE.3) THEN
-            CALL KTWARN('KTSING',200,*999)
-            STOP
-         ENDIF
-         R=2*(1-COSTH)
-C---IF CLOSE TO BEAM, USE APPROX 2*(1-COS(THETA))=SIN**2(THETA)
-         IF (R.LT.SMALL) R=(P(1)**2+P(2)**2)*P(5)**2
-         KTSING=P(4)**2*R
-      ELSEIF (ANGL.EQ.2.OR.ANGL.EQ.3) THEN
-         KTSING=P(9)
-      ELSE
-         CALL KTWARN('KTSING',201,*999)
-         STOP
-      ENDIF
- 999  END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTPMIN(A,NMAX,N,IMIN,JMIN)
-      IMPLICIT NONE
-C---FIND THE MINIMUM MEMBER OF A(NMAX,NMAX) WITH IMIN < JMIN <= N
-      INTEGER NMAX,N,IMIN,JMIN,KMIN,I,J,K
-C---REMEMBER THAT A(X+(Y-1)*NMAX)=A(X,Y)
-C   THESE LOOPING VARIABLES ARE J=Y-2, I=X+(Y-1)*NMAX
-      DOUBLE PRECISION A(*),AMIN
-      K=1+NMAX
-      KMIN=K
-      AMIN=A(KMIN)
-      DO 110 J=0,N-2
-         DO 100 I=K,K+J
-            IF (A(I).LT.AMIN) THEN
-               KMIN=I
-               AMIN=A(KMIN)
-            ENDIF
- 100     CONTINUE
-         K=K+NMAX
- 110  CONTINUE
-      JMIN=KMIN/NMAX+1
-      IMIN=KMIN-(JMIN-1)*NMAX
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTSMIN(A,NMAX,N,IMIN)
-      IMPLICIT NONE
-C---FIND THE MINIMUM MEMBER OF A
-      INTEGER N,NMAX,IMIN,I
-      DOUBLE PRECISION A(NMAX)
-      IMIN=1
-      DO 100 I=1,N
-         IF (A(I).LT.A(IMIN)) IMIN=I
- 100  CONTINUE
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTCOPY(A,N,B,ONSHLL)
-      IMPLICIT NONE
-C---COPY FROM A TO B. 5TH=1/(3-MTM), 6TH=PT, 7TH=ETA, 8TH=PHI, 9TH=PT**2
-C   IF ONSHLL IS .TRUE. PARTICLE ENTRIES ARE PUT ON-SHELL BY SETTING E=P
-      INTEGER I,N
-      DOUBLE PRECISION A(4,N)
-      LOGICAL ONSHLL
-      DOUBLE PRECISION B(9,N),ETAMAX,SINMIN,EPS
-      DATA ETAMAX,SINMIN,EPS/10,0,1D-6/
-C---SINMIN GETS CALCULATED ON FIRST CALL
-      IF (SINMIN.EQ.0) SINMIN=1/COSH(ETAMAX)
-      DO 100 I=1,N
-         B(1,I)=A(1,I)
-         B(2,I)=A(2,I)
-         B(3,I)=A(3,I)
-         B(4,I)=A(4,I)
-         B(5,I)=SQRT(A(1,I)**2+A(2,I)**2+A(3,I)**2)
-         IF (ONSHLL) B(4,I)=B(5,I)
-         IF (B(5,I).EQ.0) B(5,I)=1D-10
-         B(5,I)=1/B(5,I)
-         B(9,I)=A(1,I)**2+A(2,I)**2
-         B(6,I)=SQRT(B(9,I))
-         B(7,I)=B(6,I)*B(5,I)
-         IF (B(7,I).GT.SINMIN) THEN
-            B(7,I)=A(4,I)**2-A(3,I)**2
-            IF (B(7,I).LE.EPS*B(4,I)**2.OR.ONSHLL) B(7,I)=B(9,I)
-            B(7,I)=LOG((B(4,I)+ABS(B(3,I)))**2/B(7,I))/2
-         ELSE
-            B(7,I)=ETAMAX+2
-         ENDIF
-         B(7,I)=SIGN(B(7,I),B(3,I))
-         IF (A(1,I).EQ.0 .AND. A(2,I).EQ.0) THEN
-            B(8,I)=0
-         ELSE
-            B(8,I)=ATAN2(A(2,I),A(1,I))
-         ENDIF
- 100  CONTINUE
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTMERG(P,KTP,KTS,NMAX,I,J,N,TYPE,ANGL,MONO,RECO)
-      IMPLICIT NONE
-C---MERGE THE Jth PARTICLE IN P INTO THE Ith PARTICLE
-C   J IS ASSUMED GREATER THAN I. P CONTAINS N PARTICLES BEFORE MERGING.
-C---ALSO RECALCULATING THE CORRESPONDING KTP AND KTS VALUES IF MONO.GT.0
-C   FROM THE RECOMBINED ANGULAR MEASURES IF MONO.GT.1
-C---NOTE THAT IF MONO.LE.0, TYPE AND ANGL ARE NOT USED
-      INTEGER ANGL,RECO,TYPE,I,J,K,N,NMAX,MONO
-      DOUBLE PRECISION P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX),PT,PTT,
-     &     KTMDPI,KTUP,PI,PJ,ANG,KTPAIR,KTSING,ETAMAX,EPS
-      KTUP(I,J)=KTP(MAX(I,J),MIN(I,J))
-      DATA ETAMAX,EPS/10,1D-6/
-      IF (J.LE.I) CALL KTWARN('KTMERG',200,*999)
-C---COMBINE ANGULAR MEASURES IF NECESSARY
-      IF (MONO.GT.1) THEN
-         DO 100 K=1,N
-            IF (K.NE.I.AND.K.NE.J) THEN
-               IF (RECO.EQ.1) THEN
-                  PI=P(4,I)
-                  PJ=P(4,J)
-               ELSEIF (RECO.EQ.2) THEN
-                  PI=P(6,I)
-                  PJ=P(6,J)
-               ELSEIF (RECO.EQ.3) THEN
-                  PI=P(9,I)
-                  PJ=P(9,J)
-               ELSE
-                  CALL KTWARN('KTMERG',201,*999)
-                  STOP
-               ENDIF
-               IF (PI.EQ.0.AND.PJ.EQ.0) THEN
-                  PI=1
-                  PJ=1
-               ENDIF
-               KTP(MAX(I,K),MIN(I,K))=
-     &              (PI*KTUP(I,K)+PJ*KTUP(J,K))/(PI+PJ)
-            ENDIF
- 100     CONTINUE
-      ENDIF
-      IF (RECO.EQ.1) THEN
-C---VECTOR ADDITION
-         P(1,I)=P(1,I)+P(1,J)
-         P(2,I)=P(2,I)+P(2,J)
-         P(3,I)=P(3,I)+P(3,J)
-c         P(4,I)=P(4,I)+P(4,J) ! JA
-         P(5,I)=SQRT(P(1,I)**2+P(2,I)**2+P(3,I)**2)
-         P(4,I)=P(5,I) ! JA (Massless scheme)
-         IF (P(5,I).EQ.0) THEN
-            P(5,I)=1
-         ELSE
-            P(5,I)=1/P(5,I)
-         ENDIF
-      ELSEIF (RECO.EQ.2) THEN
-C---PT WEIGHTED ETA-PHI ADDITION
-         PT=P(6,I)+P(6,J)
-         IF (PT.EQ.0) THEN
-            PTT=1
-         ELSE
-            PTT=1/PT
-         ENDIF
-         P(7,I)=(P(6,I)*P(7,I)+P(6,J)*P(7,J))*PTT
-         P(8,I)=KTMDPI(P(8,I)+P(6,J)*PTT*KTMDPI(P(8,J)-P(8,I)))
-         P(6,I)=PT
-         P(9,I)=PT**2
-      ELSEIF (RECO.EQ.3) THEN
-C---PT**2 WEIGHTED ETA-PHI ADDITION
-         PT=P(9,I)+P(9,J)
-         IF (PT.EQ.0) THEN
-            PTT=1
-         ELSE
-            PTT=1/PT
-         ENDIF
-         P(7,I)=(P(9,I)*P(7,I)+P(9,J)*P(7,J))*PTT
-         P(8,I)=KTMDPI(P(8,I)+P(9,J)*PTT*KTMDPI(P(8,J)-P(8,I)))
-         P(6,I)=P(6,I)+P(6,J)
-         P(9,I)=P(6,I)**2
-      ELSE
-         CALL KTWARN('KTMERG',202,*999)
-         STOP
-      ENDIF
-C---IF MONO.GT.0 CALCULATE NEW KT MEASURES. IF MONO.GT.1 USE ANGULAR ONES.
-      IF (MONO.LE.0) RETURN
-C---CONVERTING BETWEEN 4-MTM AND PT,ETA,PHI IF NECESSARY
-      IF (ANGL.NE.1.AND.RECO.EQ.1) THEN
-         P(9,I)=P(1,I)**2+P(2,I)**2
-         P(7,I)=P(4,I)**2-P(3,I)**2
-         IF (P(7,I).LE.EPS*P(4,I)**2) P(7,I)=P(9,I)
-         IF (P(7,I).GT.0) THEN
-            P(7,I)=LOG((P(4,I)+ABS(P(3,I)))**2/P(7,I))/2
-            IF (P(7,I).GT.ETAMAX) P(7,I)=ETAMAX+2
-         ELSE
-            P(7,I)=ETAMAX+2
-         ENDIF
-         P(7,I)=SIGN(P(7,I),P(3,I))
-         IF (P(1,I).NE.0.AND.P(2,I).NE.0) THEN
-            P(8,I)=ATAN2(P(2,I),P(1,I))
-         ELSE
-            P(8,I)=0
-         ENDIF
-      ELSEIF (ANGL.EQ.1.AND.RECO.NE.1) THEN
-         P(1,I)=P(6,I)*COS(P(8,I))
-         P(2,I)=P(6,I)*SIN(P(8,I))
-         P(3,I)=P(6,I)*SINH(P(7,I))
-         P(4,I)=P(6,I)*COSH(P(7,I))
-         IF (P(4,I).NE.0) THEN
-            P(5,I)=1/P(4,I)
-         ELSE
-            P(5,I)=1
-         ENDIF
-      ENDIF
-      ANG=0
-      DO 200 K=1,N
-         IF (K.NE.I.AND.K.NE.J) THEN
-            IF (MONO.GT.1) ANG=KTUP(I,K)
-            KTP(MIN(I,K),MAX(I,K))=
-     &           KTPAIR(ANGL,P(1,I),P(1,K),ANG)
-         ENDIF
- 200  CONTINUE
-      KTS(I)=KTSING(ANGL,TYPE,P(1,I))
- 999  END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTMOVE(P,KTP,KTS,NMAX,N,J,IOPT)
-      IMPLICIT NONE
-C---MOVE THE Nth PARTICLE IN P TO THE Jth POSITION
-C---ALSO MOVING KTP AND KTS IF IOPT.GT.0
-      INTEGER I,J,N,NMAX,IOPT
-      DOUBLE PRECISION P(9,NMAX),KTP(NMAX,NMAX),KTS(NMAX)
-      DO 100 I=1,9
-         P(I,J)=P(I,N)
- 100  CONTINUE
-      IF (IOPT.LE.0) RETURN
-      DO 110 I=1,J-1
-         KTP(I,J)=KTP(I,N)
-         KTP(J,I)=KTP(N,I)
- 110  CONTINUE
-      DO 120 I=J+1,N-1
-         KTP(J,I)=KTP(I,N)
-         KTP(I,J)=KTP(N,I)
- 120  CONTINUE
-      KTS(J)=KTS(N)
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTUNIT(R)
-      IMPLICIT NONE
-C   SET R EQUAL TO THE 4 BY 4 IDENTITY MATRIX
-      DOUBLE PRECISION R(4,4)
-      INTEGER I,J
-      DO 20 I=1,4
-        DO 10 J=1,4
-          R(I,J)=0
-          IF (I.EQ.J) R(I,J)=1
- 10     CONTINUE
- 20   CONTINUE
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTLBST(IOPT,R,A,*)
-      IMPLICIT NONE
-C   PREMULTIPLY R BY THE 4 BY 4 MATRIX TO
-C   LORENTZ BOOST TO/FROM THE CM FRAME OF A
-C   IOPT=0 => TO
-C   IOPT=1 => FROM
-C
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF A IS NOT TIME-LIKE
-C
-      INTEGER IOPT,I,J
-      DOUBLE PRECISION R(4,4),A(4),B(4),C(4,4),M
-      DO 10 I=1,4
-        B(I)=A(I)
- 10   CONTINUE
-      M=B(4)**2-B(1)**2-B(2)**2-B(3)**2
-      IF (M.LE.0) CALL KTWARN('KTLBST',100,*999)
-      M=SQRT(M)
-      B(4)=B(4)+M
-      M=1/(M*B(4))
-      IF (IOPT.EQ.0) THEN
-        B(4)=-B(4)
-      ELSEIF (IOPT.NE.1) THEN
-        CALL KTWARN('KTLBST',200,*999)
-        STOP
-      ENDIF
-      DO 30 I=1,4
-        DO 20 J=1,4
-          C(I,J)=B(I)*B(J)*M
-          IF (I.EQ.J) C(I,J)=C(I,J)+1
- 20     CONTINUE
- 30   CONTINUE
-      C(4,4)=C(4,4)-2
-      CALL KTMMUL(C,R,R)
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTRROT(R,A,B,*)
-      IMPLICIT NONE
-C   PREMULTIPLY R BY THE 4 BY 4 MATRIX TO
-C   ROTATE FROM VECTOR A TO VECTOR B BY THE SHORTEST ROUTE
-C   IF THEY ARE EXACTLY BACK-TO-BACK, THE ROTATION AXIS IS THE VECTOR
-C   WHICH IS PERPENDICULAR TO THEM AND THE X AXIS, UNLESS THEY ARE
-C   PERPENDICULAR TO THE Y AXIS, WHEN IT IS THE VECTOR WHICH IS
-C   PERPENDICULAR TO THEM AND THE Y AXIS.
-C   NOTE THAT THESE CONDITIONS GUARANTEE THAT IF BOTH ARE PERPENDICULAR
-C   TO THE Z AXIS, IT WILL BE USED AS THE ROTATION AXIS.
-C
-C   LAST ARGUMENT IS LABEL TO JUMP TO IF EITHER HAS LENGTH ZERO
-C
-      DOUBLE PRECISION R(4,4),M(4,4),A(4),B(4),C(4),D(4),AL,BL,CL,DL,EPS
-C---SQRT(2*EPS) IS THE ANGLE IN RADIANS OF THE SMALLEST ALLOWED ROTATION
-C   NOTE THAT IF YOU CONVERT THIS PROGRAM TO SINGLE PRECISION, YOU WILL
-C   NEED TO INCREASE EPS TO AROUND 0.5E-4
-      PARAMETER (EPS=0.5D-6)
-      AL=A(1)**2+A(2)**2+A(3)**2
-      BL=B(1)**2+B(2)**2+B(3)**2
-      IF (AL.LE.0.OR.BL.LE.0) CALL KTWARN('KTRROT',100,*999)
-      AL=1/SQRT(AL)
-      BL=1/SQRT(BL)
-      CL=(A(1)*B(1)+A(2)*B(2)+A(3)*B(3))*AL*BL
-C---IF THEY ARE COLLINEAR, DON'T NEED TO DO ANYTHING
-      IF (CL.GE.1-EPS) THEN
-        RETURN
-C---IF THEY ARE BACK-TO-BACK, USE THE AXIS PERP TO THEM AND X AXIS
-      ELSEIF (CL.LE.-1+EPS) THEN
-        IF (ABS(B(2)).GT.EPS) THEN
-          C(1)= 0
-          C(2)=-B(3)
-          C(3)= B(2)
-C---UNLESS THEY ARE PERPENDICULAR TO THE Y AXIS,
-        ELSE
-          C(1)= B(3)
-          C(2)= 0
-          C(3)=-B(1)
-        ENDIF
-C---OTHERWISE FIND ROTATION AXIS
-      ELSE
-        C(1)=A(2)*B(3)-A(3)*B(2)
-        C(2)=A(3)*B(1)-A(1)*B(3)
-        C(3)=A(1)*B(2)-A(2)*B(1)
-      ENDIF
-      CL=C(1)**2+C(2)**2+C(3)**2
-      IF (CL.LE.0) CALL KTWARN('KTRROT',101,*999)
-      CL=1/SQRT(CL)
-C---FIND ROTATION TO INTERMEDIATE AXES FROM A
-      D(1)=A(2)*C(3)-A(3)*C(2)
-      D(2)=A(3)*C(1)-A(1)*C(3)
-      D(3)=A(1)*C(2)-A(2)*C(1)
-      DL=AL*CL
-      M(1,1)=A(1)*AL
-      M(1,2)=A(2)*AL
-      M(1,3)=A(3)*AL
-      M(1,4)=0
-      M(2,1)=C(1)*CL
-      M(2,2)=C(2)*CL
-      M(2,3)=C(3)*CL
-      M(2,4)=0
-      M(3,1)=D(1)*DL
-      M(3,2)=D(2)*DL
-      M(3,3)=D(3)*DL
-      M(3,4)=0
-      M(4,1)=0
-      M(4,2)=0
-      M(4,3)=0
-      M(4,4)=1
-      CALL KTMMUL(M,R,R)
-C---AND ROTATION FROM INTERMEDIATE AXES TO B
-      D(1)=B(2)*C(3)-B(3)*C(2)
-      D(2)=B(3)*C(1)-B(1)*C(3)
-      D(3)=B(1)*C(2)-B(2)*C(1)
-      DL=BL*CL
-      M(1,1)=B(1)*BL
-      M(2,1)=B(2)*BL
-      M(3,1)=B(3)*BL
-      M(1,2)=C(1)*CL
-      M(2,2)=C(2)*CL
-      M(3,2)=C(3)*CL
-      M(1,3)=D(1)*DL
-      M(2,3)=D(2)*DL
-      M(3,3)=D(3)*DL
-      CALL KTMMUL(M,R,R)
-      RETURN
- 999  RETURN 1
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTVMUL(M,A,B)
-      IMPLICIT NONE
-C   4 BY 4 MATRIX TIMES 4 VECTOR: B=M*A.
-C   ALL ARE DOUBLE PRECISION
-C   IT IS SAFE TO CALL WITH B=A
-C   FIRST SUBSCRIPT=ROWS, SECOND=COLUMNS
-      DOUBLE PRECISION M(4,4),A(4),B(4),C(4)
-      INTEGER I,J
-      DO 20 I=1,4
-        C(I)=0
-        DO 10 J=1,4
-          C(I)=C(I)+M(I,J)*A(J)
- 10     CONTINUE
- 20   CONTINUE
-      DO 30 I=1,4
-        B(I)=C(I)
- 30   CONTINUE
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTMMUL(A,B,C)
-      IMPLICIT NONE
-C   4 BY 4 MATRIX MULTIPLICATION: C=A*B.
-C   ALL ARE DOUBLE PRECISION
-C   IT IS SAFE TO CALL WITH C=A OR B.
-C   FIRST SUBSCRIPT=ROWS, SECOND=COLUMNS
-      DOUBLE PRECISION A(4,4),B(4,4),C(4,4),D(4,4)
-      INTEGER I,J,K
-      DO 30 I=1,4
-        DO 20 J=1,4
-          D(I,J)=0
-          DO 10 K=1,4
-            D(I,J)=D(I,J)+A(I,K)*B(K,J)
- 10       CONTINUE
- 20     CONTINUE
- 30   CONTINUE
-      DO 50 I=1,4
-        DO 40 J=1,4
-          C(I,J)=D(I,J)
- 40     CONTINUE
- 50   CONTINUE
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTINVT(A,B)
-      IMPLICIT NONE
-C---INVERT TRANSFORMATION MATRIX A
-C
-C   A = INPUT  : 4 BY 4 TRANSFORMATION MATRIX
-C   B = OUTPUT : INVERTED TRANSFORMATION MATRIX
-C
-C   IF A IS NOT A TRANSFORMATION MATRIX YOU WILL GET STRANGE RESULTS
-C
-C   NOTE THAT IT IS SAFE TO CALL WITH A=B
-C
-      DOUBLE PRECISION A(4,4),B(4,4),C(4,4)
-      INTEGER I,J
-C---TRANSPOSE
-      DO 20 I=1,4
-        DO 10 J=1,4
-          C(I,J)=A(J,I)
- 10     CONTINUE
- 20   CONTINUE
-C---NEGATE ENERGY-MOMENTUM MIXING TERMS
-      DO 30 I=1,3
-        C(4,I)=-C(4,I)
-        C(I,4)=-C(I,4)
- 30   CONTINUE
-C---OUTPUT
-      DO 50 I=1,4
-        DO 40 J=1,4
-          B(I,J)=C(I,J)
- 40     CONTINUE
- 50   CONTINUE
-      END
-C-----------------------------------------------------------------------
-      FUNCTION KTMDPI(PHI)
-      IMPLICIT NONE
-C---RETURNS PHI, MOVED ONTO THE RANGE [-PI,PI)
-      DOUBLE PRECISION KTMDPI,PHI,PI,TWOPI,THRPI,EPS
-      PARAMETER (PI=3.14159265358979324D0,TWOPI=6.28318530717958648D0,
-     &     THRPI=9.42477796076937972D0)
-      PARAMETER (EPS=1D-15)
-      KTMDPI=PHI
-      IF (KTMDPI.LE.PI) THEN
-        IF (KTMDPI.GT.-PI) THEN
-          GOTO 100
-        ELSEIF (KTMDPI.GT.-THRPI) THEN
-          KTMDPI=KTMDPI+TWOPI
-        ELSE
-          KTMDPI=-MOD(PI-KTMDPI,TWOPI)+PI
-        ENDIF
-      ELSEIF (KTMDPI.LE.THRPI) THEN
-        KTMDPI=KTMDPI-TWOPI
-      ELSE
-        KTMDPI=MOD(PI+KTMDPI,TWOPI)-PI
-      ENDIF
- 100  IF (ABS(KTMDPI).LT.EPS) KTMDPI=0
-      END
-C-----------------------------------------------------------------------
-      SUBROUTINE KTWARN(SUBRTN,ICODE,*)
-C     DEALS WITH ERRORS DURING EXECUTION
-C     SUBRTN = NAME OF CALLING SUBROUTINE
-C     ICODE  = ERROR CODE:    - 99 PRINT WARNING & CONTINUE
-C                          100-199 PRINT WARNING & JUMP
-C                          200-    PRINT WARNING & STOP DEAD
-C-----------------------------------------------------------------------
-      INTEGER ICODE
-      CHARACTER*6 SUBRTN
-      WRITE (6,10) SUBRTN,ICODE
-   10 FORMAT(/' KTWARN CALLED FROM SUBPROGRAM ',A6,': CODE =',I4/)
-      IF (ICODE.LT.100) RETURN
-      IF (ICODE.LT.200) RETURN 1
-      STOP
-      END
-C-----------------------------------------------------------------------
-C-----------------------------------------------------------------------
-C-----------------------------------------------------------------------
diff --git a/Generators/MadGraph_i/src/usemadgraph.F b/Generators/MadGraph_i/src/usemadgraph.F
deleted file mode 100644
index e146561607e509cfc6df3d80be08c829fe24949b..0000000000000000000000000000000000000000
--- a/Generators/MadGraph_i/src/usemadgraph.F
+++ /dev/null
@@ -1,1396 +0,0 @@
-      
-C...UPEVNT
-C...Routine called by PYEVNT or PYEVNW to get user process event
-      
-      SUBROUTINE USEMADGRAPH
-
-      IMPLICIT NONE
-
-C...Pythia parameters.
-      INTEGER MSTP,MSTI
-      DOUBLE PRECISION PARP,PARI
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      SAVE /PYPARS/
-C...User process initialization commonblock.
-C #include "GeneratorModules/heprup.inc"
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &   IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &   LPRUP(MAXPUP)
-C...User process event common block.
-C #include "GeneratorModules/hepeup.inc"
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &   ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &   VTIMUP(MAXNUP),SPINUP(MAXNUP)
-C...Pythia common blocks
-      INTEGER PYCOMP,KCHG,MINT,NPART,NPARTD,IPART,MAXNUR
-      DOUBLE PRECISION PMAS,PARF,VCKM,VINT,PTPART
-C...Particle properties + some flavour parameters.
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      PARAMETER (MAXNUR=1000)
-      COMMON/PYPART/NPART,NPARTD,IPART(MAXNUR),PTPART(MAXNUR)
-      save /pypart/
-C...Extra commonblock to transfer run info.
-      INTEGER LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-      COMMON/MGUPPRIV/LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-
-C...Inputs for the matching algorithm
-      double precision etcjet,rclmax,etaclmax,qcut,clfact
-      integer maxjets,minjets,iexcfile,ktsche,mektsc,nexcres,excres(30)
-      integer nremres, remres(30)
-      integer nqmatch,nexcproc,iexcproc(MAXPUP),iexcval(MAXPUP)
-      logical nosingrad,showerkt,jetprocs
-      common/MEMAIN/etcjet,rclmax,etaclmax,qcut,clfact,maxjets,minjets,
-     $   iexcfile,ktsche,mektsc,nexcres,excres,nremres,remres,
-     $   nqmatch,nexcproc,iexcproc,iexcval,nosingrad,showerkt,jetprocs
-
-C...Commonblock to transfer event-by-event matching info
-      INTEGER NLJETS,IEXC,Ifile
-      DOUBLE PRECISION PTCLUS
-      COMMON/MEMAEV/PTCLUS(20),NLJETS,IEXC,Ifile
-
-C...Local variables
-      INTEGER I,J,IBEG,NEX,KP(MAXNUP),MOTH,NUPREAD,II,iexcl
-      INTEGER irem(5),nrem
-      DOUBLE PRECISION PSUM,ESUM,PM1,PM2,A1,A2,A3,A4,A5
-      DOUBLE PRECISION SCALLOW(MAXNUP),PNONJ(4),PMNONJ!,PT2JETS
-c$$$C...Local variables
-c$$$      INTEGER I,J,IBEG,NEX,KP(MAXNUP),MOTH,NUPREAD,II,iexcl
-c$$$      DOUBLE PRECISION PSUM,ESUM
-C...Lines to read in assumed never longer than 200 characters. 
-      INTEGER MAXLEN
-      PARAMETER (MAXLEN=200)
-      CHARACTER*(MAXLEN) STRING
-
-C...Functions
-      INTEGER iexclusive
-      EXTERNAL iexclusive
-
-C...Format for reading lines.
-      CHARACTER*6 STRFMT
-      CHARACTER*1 CDUM
-
-      STRFMT='(A000)'
-      WRITE(STRFMT(3:5),'(I3)') MAXLEN
-
-C...Loop until finds line beginning with "<event>" or "<event ". 
-  100 READ(LNHIN,STRFMT,END=900,ERR=900) STRING
-      IBEG=0
-  110 IBEG=IBEG+1
-C...Allow indentation.
-      IF(STRING(IBEG:IBEG).EQ.' '.AND.IBEG.LT.MAXLEN-6) GOTO 110 
-      IF(STRING(IBEG:IBEG+6).NE.'<event>'.AND.
-     &STRING(IBEG:IBEG+6).NE.'<event ') GOTO 100
-
-C...Read first line of event info.
-      READ(LNHIN,*,END=900,ERR=900) NUPREAD,IDPRUP,XWGTUP,SCALUP,
-     &AQEDUP,AQCDUP
-
-C...Read NUP subsequent lines with information on each particle.
-      ESUM=0d0
-      PSUM=0d0
-      NEX=2
-      NUP=1
-      NREM=0
-      DO 120 I=1,NUPREAD
-         READ(LNHIN,*,END=900,ERR=900) IDUP(NUP),ISTUP(NUP),
-     &        MOTHUP(1,NUP),MOTHUP(2,NUP),ICOLUP(1,NUP),ICOLUP(2,NUP),
-     &        (PUP(J,NUP),J=1,5),VTIMUP(NUP),SPINUP(NUP)
-C...  Reset resonance momentum to prepare for mass shifts
-         DO J=1,nremres
-            IF(ISTUP(NUP).EQ.2 .AND. IDUP(NUP).EQ.remres(J)) THEN
-               NREM=NREM+1
-               IF(NREM.GT.5)THEN
-                  WRITE(*,*)'TOO MANY REMOVED RESONANCES IN ONE EVENT'
-                  NREM=NREM-1
-                  EXIT
-               ENDIF
-               IREM(NREM)=I
-               GOTO 120
-            ENDIF
-         ENDDO
-         IF(ISTUP(NUP).EQ.2) PUP(3,NUP)=0
-         IF(ISTUP(NUP).EQ.1)THEN
-            NEX=NEX+1
-            IF(PUP(5,NUP).EQ.0D0.AND.IABS(IDUP(NUP)).GT.3
-     $           .AND.IDUP(NUP).NE.21) THEN
-C...  Set massless particle masses to Pythia default. Adjust z-momentum. 
-               PUP(5,NUP)=PMAS(IABS(PYCOMP(IDUP(NUP))),1)
-               PUP(3,NUP)=SIGN(SQRT(MAX(0d0,PUP(4,NUP)**2-PUP(5,NUP)**2-
-     $              PUP(1,NUP)**2-PUP(2,NUP)**2)),PUP(3,NUP))
-            ENDIF
-            PSUM=PSUM+PUP(3,NUP)
-C...  Set mother resonance momenta
-            MOTH=MOTHUP(1,NUP)
-            DO J=1,NREM
-               IF (MOTH .eq. IREM(J)) THEN
-                  MOTHUP(1,NUP)=1
-                  MOTHUP(2,NUP)=2
-                  MOTH=1
-               ENDIF
-            ENDDO
-            DO J=NREM,1,-1
-               IF(MOTH.GT.IREM(J)) THEN
-                  MOTH=MOTH-1
-                  MOTHUP(1,NUP)=MOTHUP(1,NUP)-1
-                  MOTHUP(2,NUP)=MOTHUP(2,NUP)-1
-               ENDIF
-            ENDDO 
-            DO WHILE (MOTH.GT.2)
-               PUP(3,MOTH)=PUP(3,MOTH)+PUP(3,NUP)
-               MOTH=MOTHUP(1,MOTH)
-            ENDDO
-         ENDIF
-         NUP=NUP+1
- 120  CONTINUE
-      NUP=NUP-1
-
-C...  Increment event number
-      IEVNT=IEVNT+1
-
-C..   Adjust mass of resonances
-      DO I=1,NUP
-         IF(ISTUP(I).EQ.2)THEN
-            PUP(5,I)=SQRT(PUP(4,I)**2-PUP(1,I)**2-PUP(2,I)**2-
-     $           PUP(3,I)**2)
-         ENDIF
-      ENDDO
-      
-C...  Adjust energy and momentum of incoming particles
-C...  In massive case need to solve quadratic equation
-c     PM1=PUP(5,1)**2
-c     PM2=PUP(5,2)**2
-c     A1=4d0*(ESUM**2-PSUM**2)
-c     A2=ESUM**2-PSUM**2+PM2-PM1
-c     A3=2d0*PSUM*A2
-c     A4=A3/A1
-c     A5=(A2**2-4d0*ESUM**2*PM2)/A1
-c     
-c     PUP(3,2)=A4+SIGN(SQRT(A4**2+A5),PUP(3,2))
-c      PUP(3,1)=PSUM-PUP(3,2)
-c     PUP(4,1)=SQRT(PUP(3,1)**2+PM1)
-c     PUP(4,2)=SQRT(PUP(3,2)**2+PM2)
-      
-      ESUM=PUP(4,1)+PUP(4,2)
-      
-C...  Assuming massless incoming particles - otherwise Pythia adjusts
-C...  the momenta to make them massless
-c     IF(IDBMUP(1).GT.100.AND.IDBMUP(2).GT.100)THEN
-c     DO I=1,2
-c     PUP(3,I)=0.5d0*(PSUM+SIGN(ESUM,PUP(3,I)))
-c     PUP(5,I)=0d0
-c     ENDDO
-c     PUP(4,1)=ABS(PUP(3,1))
-c     PUP(4,2)=ESUM-PUP(4,1)
-c     ENDIF
-      
-C...  If you want to use some other scale for parton showering then the 
-C...  factorisation scale given by MadEvent, please implement the function PYMASC
-C...  (example function included below) 
-      
-      IF(ickkw.eq.0.AND.MSCAL.GT.0) CALL PYMASC(SCALUP)
-c      IF(MINT(35).eq.3.AND.ickkw.EQ.1) SCALUP=SQRT(PARP(67))*SCALUP
-      
-C...  Read FSR scale for all FS particles (as comment in event file)
-      IF(ickkw.eq.1)THEN
-         READ(LNHIN,*,END=900,ERR=130) CDUM,(PTPART(I),I=1,NEX)
- 130     CONTINUE
-      ENDIF
-      
-      IF(ickkw.gt.0) THEN
-c     
-c     Set up number of jets
-c     
-         NLJETS=0
-         NPART=0
-         do i=3,NUP
-            if(ISTUP(i).ne.1) cycle
-            NPART=NPART+1
-            IPART(NPART)=i
-            if(iabs(IDUP(i)).gt.nqmatch.and.IDUP(i).ne.21) cycle
-            if(MOTHUP(1,i).gt.2) cycle
-C     Remove final-state partons that combine to color singlets
-            IF((ABS(IDBMUP(1)).NE.11.OR.IDBMUP(1).NE.-IDBMUP(2)).AND.
-     $           nosingrad) THEN
-               DO II=3,NUP
-                  IF(II.NE.i.AND.ISTUP(II).EQ.1)THEN
-                     IF((IDUP(II).EQ.-IDUP(i).OR.
-     $                    IDUP(i).EQ.21.AND.IDUP(II).EQ.21).AND.
-     $                    ICOLUP(1,II).EQ.ICOLUP(2,i).AND.
-     $                    ICOLUP(2,II).EQ.ICOLUP(1,i))then
-c     print *,'Found color singlet'
-                        CALL PYLIST(7)
-                        GOTO 140
-                     endif
-                  ENDIF
-               ENDDO
-            ENDIF
-            NLJETS=NLJETS+1
-            PTCLUS(NLJETS)=PTPART(NPART)
- 140        continue
-         enddo
-         CALL ALPSOR(PTCLUS,nljets,KP,1)
-         
-         if(jetprocs) IDPRUP=LPRUP(NLJETS-MINJETS+1)
-         
-         IF(ickkw.eq.1) THEN
-c     ... and decide whether exclusive or inclusive
-            iexcl=iexclusive(IDPRUP)
-            if((IEXCFILE.EQ.0.and.NLJETS.eq.MAXJETS.or.
-     $           iexcl.eq.0).and.
-     $           iexcl.ne.1)then
-               IEXC=0
-            else if(iexcl.eq.-1)then
-               IEXC=-1
-            else
-               IEXC=1
-            endif
-         ENDIF
-      ENDIF
-      
-      RETURN
-      
-C...  Error exit, typically when no more events.
- 900  WRITE(*,*) ' Failed to read LHEF event information,'
-      WRITE(*,*) ' assume end of file has been reached.'
-      NUP=0
-      MINT(51)=2
-      RETURN
-      END
-
-C*********************************************************************
-C...UPVETO
-C...Subroutine to implement the MLM jet matching criterion
-C*********************************************************************
-      SUBROUTINE VETOMADGRAPH(IPVETO)
-
-      IMPLICIT NONE
-
-C...Pythia common blocks
-      INTEGER MINT
-      DOUBLE PRECISION VINT
-      COMMON/PYINT1/MINT(400),VINT(400)
-      INTEGER MSTP,MSTI
-      DOUBLE PRECISION PARP,PARI
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-
-C...GUP Event common block
-C #include "GeneratorModules/hepeup.inc"
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,
-     &              IDUP(MAXNUP),ISTUP(MAXNUP),MOTHUP(2,MAXNUP),
-     &              ICOLUP(2,MAXNUP),PUP(5,MAXNUP),VTIMUP(MAXNUP),
-     &              SPINUP(MAXNUP)
-C...User process initialization commonblock.
-C #include "GeneratorModules/heprup.inc"
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &   IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &   LPRUP(MAXPUP)
-C...HEPEVT commonblock.
-      INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      SAVE /HEPEVT/
-      INTEGER IPVETO
-c$$$C...GETJET commonblocks
-      INTEGER NCJET
-c$$$      INTEGER MNCY,MNCPHI,NCY,NCPHI,NJMAX,JETNO,NCJET
-c$$$      DOUBLE PRECISION YCMIN,YCMAX,DELY,DELPHI,ET,STHCAL,CTHCAL,CPHCAL,
-c$$$     &  SPHCAL,PCJET,ETJET
-c$$$      PARAMETER (MNCY=200)
-c$$$      PARAMETER (MNCPHI=200)
-c$$$      COMMON/CALORM/DELY,DELPHI,ET(MNCY,MNCPHI),
-c$$$     $CTHCAL(MNCY),STHCAL(MNCY),CPHCAL(MNCPHI),SPHCAL(MNCPHI),
-c$$$     $YCMIN,YCMAX,NCY,NCPHI
-c$$$      PARAMETER (NJMAX=500)
-c$$$      COMMON/GETCOMM/PCJET(4,NJMAX),ETJET(NJMAX),JETNO(MNCY,MNCPHI),
-c$$$     $NCJET
-      DOUBLE PRECISION PI
-      PARAMETER (PI=3.141593D0)
-c$$$C     
-      DOUBLE PRECISION PSERAP
-c$$$      INTEGER K(NJMAX),KP(NJMAX),kpj(njmax)
-
-C...Variables for the kT-clustering
-      INTEGER NMAX,NN,NSUB,JET,NJETM,IHARD,IP1,IP2
-      DOUBLE PRECISION PP,PJET
-      DOUBLE PRECISION ECUT,Y,YCUT,RAD
-      PARAMETER (NMAX=512)
-      DIMENSION JET(NMAX),Y(NMAX),PP(4,NMAX),PJET(4,NMAX),
-     $   PJETM(4,NMAX)
-      INTEGER NNM
-      DOUBLE PRECISION YM(NMAX),PPM(4,NMAX),PJETM
-
-C...kt clustering common block
-      INTEGER NMAXKT,NUM,HIST
-      PARAMETER (NMAXKT=512)
-      DOUBLE PRECISION PPP,KT,ETOT,RSQ,KTP,KTS,KTLAST
-      COMMON /KTCOMM/ETOT,RSQ,PPP(9,NMAXKT),KTP(NMAXKT,NMAXKT),
-     $   KTS(NMAXKT),KT(NMAXKT),KTLAST(NMAXKT),HIST(NMAXKT),NUM
-
-C...Extra commonblock to transfer run info.
-      INTEGER LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-      COMMON/MGUPPRIV/LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-
-C...Inputs for the matching algorithm
-C   clfact determines how jet-to parton matching is done
-C   kt-jets: default=1
-C    clfact >= 0: Max mult. if within clfact*max(qcut,Q(partNmax)) from jet, others within clfact*qcut
-C    clfact < 0: Max mult. if within |clfact|*Q(jetNmax) from jet, other within |clfact|*qcut
-C   cone-jets: default=1.5
-C    Matching if within clfact*RCLMAX 
-
-      double precision etcjet,rclmax,etaclmax,qcut,clfact
-      integer maxjets,minjets,iexcfile,ktsche,mektsc,nexcres,excres(30)
-      integer nremres, remres(30)
-      integer nqmatch,nexcproc,iexcproc(MAXPUP),iexcval(MAXPUP)
-      logical nosingrad,showerkt,jetprocs
-      common/MEMAIN/etcjet,rclmax,etaclmax,qcut,clfact,maxjets,minjets,
-     $   iexcfile,ktsche,mektsc,nexcres,excres,nremres,remres,
-     $   nqmatch,nexcproc,iexcproc,iexcval,nosingrad,showerkt,jetprocs
-
-C...Commonblock to transfer event-by-event matching info
-      INTEGER NLJETS,IEXC,Ifile
-      DOUBLE PRECISION PTCLUS
-      COMMON/MEMAEV/PTCLUS(20),NLJETS,IEXC,Ifile
-
-      INTEGER nvarev,nvar2
-      PARAMETER (nvarev=57,nvar2=6)
-
-      REAL*4 varev(nvarev)
-      COMMON/HISTDAT/varev
-
-
-C   local variables
-      double precision tiny
-      parameter (tiny=1d-3)
-      integer icount
-      data icount/0/
-      integer idbg
-      data idbg/0/
-
-      integer i,j,ihep,nmatch,jrmin,KPT(MAXNUP),nres,ii
-      double precision etajet,phijet,delr,dphi,delrmin,ptjet
-      double precision p(4,10),pt(10),eta(10),phi(10)
-      INTEGER ISTOLD(NMXHEP),IST,IMO
-      logical norad(20)
-      REAL*4 var2(nvar2)
-
-c      if(NLJETS.GT.0)then
-c        idbg=1
-c      else
-c        idbg=0
-c      endif
-
-      IPVETO=0
-c     Return if not MLM matching (or non-matched subprocess)
-
-cccc      WRITE(LNHOUT,*) '*** Entering UPVETO *** '
- 
-      IF(ICKKW.LE.0.OR.IEXC.eq.-1) RETURN
-
-      IF(NLJETS.LT.MINJETS.OR.NLJETS.GT.MAXJETS)THEN
-        if(idbg.eq.1)
-     $     WRITE(LNHOUT,*) 'Failed due to NLJETS ',NLJETS,' < ',MINJETS,
-     $        ' or > ',MAXJETS
-         GOTO 999
-      ENDIF
-
-C   Throw event if it contains an excluded resonance
-      NRES=0
-      DO I=1,NUP
-        IF(ISTUP(I).EQ.2)THEN
-           DO J=1,nexcres
-              IF(IDUP(I).EQ.EXCRES(J)) NRES=NRES+1
-           ENDDO
-        ENDIF
-      ENDDO
-      IF(NRES.GT.0)THEN
-         if(idbg.eq.1)
-     $        PRINT *,'Event',IEVNT,' thrown because of ',NRES,
-     $        ' excluded resonance(s)'
-c     CALL PYLIST(7)
-         GOTO 999
-      ENDIF
-
-C   Set up vetoed mothers
-c      DO I=1,MAXNUP
-c        INORAD(I)=0
-c      ENDDO
-c      DO IHEP=1,NUP-2      
-c        if(ISTHEP(ihep).gt.1.and.iabs(IDHEP(ihep)).gt.8) then
-c        if(iabs(IDHEP(ihep)).gt.5.and.IDHEP(ihep).ne.21) then
-c          INORAD(ihep)=1
-c        endif
-c      ENDDO
-
-C
-c     reconstruct parton-level event
-c     Set norad for daughters of decayed particles, to not include
-c     radiation from these in matched jets
-c
-      if(idbg.eq.1) then
-        write(LNHOUT,*) ' '
-        write(LNHOUT,*) 'new event '
-c        CALL PYLIST(1)
-        CALL PYLIST(7)
-        CALL PYLIST(5)
-        write(LNHOUT,*) 'PARTONS'
-      endif
-      i=0
-      do ihep=3,nup
-         NORAD(ihep)=.false.
-        if((ABS(IDBMUP(1)).NE.11.OR.IDBMUP(1).NE.-IDBMUP(2)).AND.
-     $        MOTHUP(1,ihep).gt.2) goto 100
-        if(ISTUP(ihep).ne.1.or.
-     $     (iabs(IDUP(ihep)).gt.nqmatch.and.IDUP(ihep).ne.21)) cycle
-c     If quark or gluon making singlet system with other final-state parton
-c     remove (since unseen singlet resonance) unless e+e- collision
-        IF((ABS(IDBMUP(1)).NE.11.OR.IDBMUP(1).NE.-IDBMUP(2)).AND.
-     $       nosingrad)THEN
-           DO II=3,NUP
-              IF(II.NE.ihep.AND.ISTUP(II).EQ.1)THEN
-                 IF((IDUP(II).EQ.-IDUP(ihep).OR.
-     $                IDUP(ihep).EQ.21.AND.IDUP(II).EQ.21).AND.
-     $                ICOLUP(1,II).EQ.ICOLUP(2,ihep).AND.
-     $                ICOLUP(2,II).EQ.ICOLUP(1,ihep))
-     $                GOTO 100
-              ENDIF
-           ENDDO
-        ENDIF
-        i=i+1
-        do j=1,4
-          p(j,i)=pup(j,ihep)
-        enddo
-        pt(i)=sqrt(p(1,i)**2+p(2,i)**2)
-        if(i.LE.4) varev(50+i)=pt(i)
-        eta(i)=-log(tan(0.5d0*atan2(pt(i)+tiny,p(3,i))))
-        phi(i)=atan2(p(2,i),p(1,i))
-        if(idbg.eq.1) then
-          write(LNHOUT,*) pt(i),eta(i),phi(i)
-        endif
-        cycle
- 100    norad(ihep)=.true.
-      enddo
-      if(i.ne.NLJETS)then
-        print *,'Error in UPVETO: Wrong number of jets found ',i,NLJETS
-        CALL PYLIST(7)
-        CALL PYLIST(2)
-        stop
-      endif
-
-C Bubble-sort PTs in descending order
-      DO I=1,3
-         DO J=4,I+1,-1
-            IF(varev(50+J).GT.varev(50+I))THEN
-               PTJET=varev(50+J)
-               varev(50+J)=varev(50+I)
-               varev(50+I)=PTJET
-            ENDIF
-         ENDDO
-      ENDDO
-
-C     Set status for non-clustering partons to 2
-      DO ihep=1,NHEP
-c         ISTORG(ihep)=ISTHEP(ihep)
-         IF(ISTHEP(ihep).EQ.1.AND.iabs(IDHEP(ihep)).GT.5.AND.
-     $        IDHEP(ihep).NE.21) THEN
-            ISTHEP(ihep)=2
-         ELSEIF(ISTHEP(ihep).EQ.1.AND.JMOHEP(1,ihep).GT.0) then
-            IMO=JMOHEP(1,ihep)
-            DO WHILE(IMO.GT.0)
-c           Trace mothers, if non-radiating => daughter is decay - remove
-              IF(IMO.le.NUP-2.and.norad(IMO+2)) GOTO 105
-              IMO=JMOHEP(1,IMO)
-            ENDDO
-            cycle
- 105        ISTHEP(ihep)=2
-         ENDIF
-      ENDDO
-
-C     Prepare histogram filling
-        DO I=1,4
-          var2(1+I)=-1
-          varev(46+I)=-1
-          varev(50+I)=-1
-        ENDDO
-
-      I=0
-      if(idbg.eq.1) then
-        do i=1,nhep
-          write(LNHOUT,1000)i,isthep(i),idhep(i),jmohep(1,i),jmohep(2,i)
-     $         ,phep(1,i),phep(2,i),phep(3,i)
-        enddo
- 1000   format(5(i4,1x),3(f12.5,1x))
-      endif
-
-      IF(ICKKW.EQ.2) GOTO 150
-
-      IF(MSTP(61).eq.0..and.MSTP(71).eq.0)then
-c     No showering - just print out event
-      ELSE IF(qcut.le.0d0)then
-           PRINT *,' ERROR: qcut < 0, --> STOP'
-           STOP
-c$$$         
-c$$$         IF(clfact.EQ.0d0) clfact=1.5d0
-c$$$         
-c$$$c     CALL PYLIST(7)
-c$$$c     CALL PYLIST(2)
-c$$$c     CALL PYLIST(5)
-c$$$c     Start from the partonic system
-c$$$         IF(NLJETS.GT.0) CALL ALPSOR(pt,nljets,KP,2)  
-c$$$c     reconstruct showered jets
-c$$$c     
-c$$$         YCMAX=ETACLMAX+RCLMAX
-c$$$         YCMIN=-YCMAX
-c$$$         CALL CALINIM
-c$$$         CALL CALDELM(1,1)
-c$$$         CALL GETJETM(RCLMAX,ETCJET,ETACLMAX)
-c$$$c     analyse only events with at least nljets-reconstructed jets
-c$$$         IF(NCJET.GT.0) CALL ALPSOR(ETJET,NCJET,K,2)              
-c$$$         if(idbg.eq.1) then
-c$$$            write(LNHOUT,*) 'JETS'
-c$$$            do i=1,ncjet
-c$$$               j=k(ncjet+1-i)
-c$$$               ETAJET=PSERAP(PCJET(1,j))
-c$$$               PHIJET=ATAN2(PCJET(2,j),PCJET(1,j))
-c$$$               write(LNHOUT,*) etjet(j),etajet,phijet
-c$$$            enddo
-c$$$         endif
-c$$$         IF(NCJET.LT.NLJETS) THEN
-c$$$            if(idbg.eq.1)
-c$$$     $           WRITE(LNHOUT,*) 'Failed due to NCJET ',NCJET,' < ',NLJETS
-c$$$            GOTO 999
-c$$$         endif
-c$$$c     associate partons and jets, using min(delr) as criterion
-c$$$         NMATCH=0
-c$$$         DO I=1,NCJET
-c$$$            KPJ(I)=0
-c$$$         ENDDO
-c$$$         DO I=1,NLJETS
-c$$$            DELRMIN=1D5
-c$$$            DO 110 J=1,NCJET
-c$$$               IF(KPJ(J).NE.0) GO TO 110
-c$$$               ETAJET=PSERAP(PCJET(1,J))
-c$$$               PHIJET=ATAN2(PCJET(2,J),PCJET(1,J))
-c$$$               DPHI=ABS(PHI(KP(NLJETS-I+1))-PHIJET)
-c$$$               IF(DPHI.GT.PI) DPHI=2.*PI-DPHI
-c$$$               DELR=SQRT((ETA(KP(NLJETS-I+1))-ETAJET)**2+(DPHI)**2)
-c$$$               IF(DELR.LT.DELRMIN) THEN
-c$$$                  DELRMIN=DELR
-c$$$                  JRMIN=J
-c$$$               ENDIF
-c$$$ 110        CONTINUE
-c$$$            IF(DELRMIN.LT.clfact*RCLMAX) THEN
-c$$$               NMATCH=NMATCH+1
-c$$$               KPJ(JRMIN)=I
-c$$$            ENDIF
-c$$$C     WRITE(*,*) 'PARTON-JET',I,' best match:',k(ncjet+1-jrmin)
-c$$$c     $           ,delrmin
-c$$$         ENDDO
-c$$$         IF(NMATCH.LT.NLJETS)  THEN
-c$$$            if(idbg.eq.1)
-c$$$     $           WRITE(LNHOUT,*) 'Failed due to NMATCH ',NMATCH,' < ',NLJETS
-c$$$            GOTO 999
-c$$$         endif
-c$$$C     REJECT EVENTS WITH LARGER JET MULTIPLICITY FROM EXCLUSIVE SAMPLE
-c$$$         IF(NCJET.GT.NLJETS.AND.IEXC.EQ.1)  THEN
-c$$$            if(idbg.eq.1)
-c$$$     $           WRITE(LNHOUT,*) 'Failed due to NCJET ',NCJET,' > ',NLJETS
-c$$$            GOTO 999
-c$$$         endif
-c$$$C     VETO EVENTS WHERE MATCHED JETS ARE SOFTER THAN NON-MATCHED ONES
-c$$$         IF(IEXC.NE.1) THEN
-c$$$            J=NCJET
-c$$$            DO I=1,NLJETS
-c$$$               IF(KPJ(K(J)).EQ.0) GOTO 999
-c$$$               J=J-1
-c$$$            ENDDO
-c$$$         ENDIF
-
-      else                      ! qcut.gt.0
-
-      if(showerkt) then
-C     Use "shower emission pt method"
-C     Veto events where first shower emission has kt > YCUT
-
-        IF(NLJETS.EQ.0)THEN
-           VINT(358)=0
-        ENDIF
-
-        IF(idbg.eq.1) THEN
-           PRINT *,'Using shower emission pt method'
-           PRINT *,'qcut, ptclus(1), vint(357),vint(358),vint(360): ',
-     $          qcut,ptclus(1),vint(357),vint(358),vint(360)
-        ENDIF
-        YCUT=qcut**2
-
-        IF(NLJETS.GT.0.AND.PTCLUS(1)**2.LT.YCUT) THEN
-          if(idbg.eq.1)
-     $       WRITE(LNHOUT,*) 'Failed due to KT ',
-     $       PTCLUS(1),' < ',SQRT(YCUT)
-          GOTO 999
-        ENDIF
-
-c        PRINT *,'Y,VINT:',SQRT(Y(NLJETS+1)),SQRT(VINT(390))
-
-        IF(IEXC.EQ.1.AND.
-     $       ((mektsc.eq.1.and.MAX(VINT(357),VINT(358)).GT.SQRT(YCUT))
-     $       .OR.
-     $       (mektsc.eq.2.and.MAX(VINT(360),VINT(358)).GT.SQRT(YCUT))))
-     $       THEN
-          if(idbg.eq.1)
-     $       WRITE(LNHOUT,*)
-     $       'Failed due to ',max(VINT(357),VINT(358)),' > ',SQRT(YCUT)
-          GOTO 999
-        ENDIF
-c        PRINT *,NLJETS,IEXC,SQRT(VINT(390)),PTCLUS(1),SQRT(YCUT)
-c     Highest multiplicity case
-        IF(IEXC.EQ.0.AND.NLJETS.GT.0.AND.
-     $       ((mektsc.eq.1.and.MAX(VINT(357),VINT(358)).GT.PTCLUS(1))
-     $       .OR.
-     $       (mektsc.eq.2.and.MAX(VINT(360),VINT(358)).GT.PTCLUS(1))))
-     $       THEN
-c     $     VINT(390).GT.PTCLUS(1)**2)THEN
-          if(idbg.eq.1)
-     $       WRITE(LNHOUT,*)
-     $       'Failed due to ',max(VINT(357),VINT(358)),' > ',PTCLUS(1)
-          GOTO 999
-        ENDIF
-c     
-      else                      ! not shower kt method
-
-        IF(clfact.EQ.0d0) clfact=1d0
-
-C---FIND FINAL STATE COLOURED PARTICLES
-        NN=0
-        DO IHEP=1,NHEP
-          IF (ISTHEP(IHEP).EQ.1
-     $       .AND.(ABS(IDHEP(IHEP)).LE.5.OR.IDHEP(IHEP).EQ.21)) THEN
-            PTJET=sqrt(PHEP(1,IHEP)**2+PHEP(2,IHEP)**2)
-            ETAJET=ABS(LOG(MIN((SQRT(PTJET**2+PHEP(3,IHEP)**2)+
-     $       ABS(PHEP(3,IHEP)))/PTJET,1d5)))
-            IF(ETAJET.GT.etaclmax) cycle
-            NN=NN+1
-            IF (NN.GT.NMAX) then
-              CALL PYLIST(2)
-              PRINT *, 'Too many particles: ', NN
-              NN=NN-1
-              GOTO 120
-            endif
-            DO I=1,4
-              PP(I,NN)=PHEP(I,IHEP)
-            ENDDO
-          ELSE if(idbg.eq.1)THEN
-            PRINT *,'Skipping particle ',IHEP,ISTHEP(IHEP),IDHEP(IHEP)
-          ENDIF
-        ENDDO
-
-C...Cluster event to find values of Y including jet matching but not veto of too many jets
-C...Only used to fill the beforeveto Root tree
- 120    ECUT=1
-        IF (NN.GT.1) then
-          CALL KTCLUS(KTSCHE,PP,NN,ECUT,Y,*999)
-          if(idbg.eq.1)
-     $       WRITE(LNHOUT,*) 'Clustering values:',
-     $       (SQRT(Y(i)),i=1,MIN(NN,3))
-
-C       Print out values in the case where all jets are matched at the
-C       value of the NLJETS:th clustering
-        var2(1)=NLJETS
-        var2(6)= Ifile
-
-        if(NLJETS.GT.MINJETS)then
-          YCUT=Y(NLJETS)
-          CALL KTRECO(MOD(KTSCHE,10),PP,NN,ECUT,YCUT,YCUT,PJET,JET,
-     $       NCJET,NSUB,*999)        
-
-C     Cluster jets with first hard parton
-          DO I=1,NLJETS
-            DO J=1,4
-              PPM(J,I)=PJET(J,I)
-            ENDDO
-          ENDDO
-          
-          NJETM=NLJETS
-          DO IHARD=1,NLJETS
-            NNM=NJETM+1
-            DO J=1,4
-              PPM(J,NNM)=p(J,IHARD)
-            ENDDO
-            CALL KTCLUS(KTSCHE,PPM,NNM,ECUT,YM,*999)
-            IF(YM(NNM).GT.YCUT) THEN
-C       Parton not clustered
-              GOTO 130
-            ENDIF
-            
-C       Find jet clustered with parton
-
-            IP1=HIST(NNM)/NMAXKT
-            IP2=MOD(HIST(NNM),NMAXKT)
-            IF(IP2.NE.NNM.OR.IP1.LE.0)THEN
-              GOTO 130
-            ENDIF
-            DO I=IP1,NJETM-1
-              DO J=1,4
-                PPM(J,I)=PPM(J,I+1)
-              ENDDO
-            ENDDO
-            NJETM=NJETM-1
-          ENDDO                 ! IHARD=1,NLJETS
-        endif                   ! NLJETS.GT.MINJETS
-
-        DO I=1,MIN(NN,4)
-          var2(1+I)=SQRT(Y(I))
-        ENDDO
-        WRITE(15,4001) (var2(I),I=1,nvar2)
-
- 130    CONTINUE
-
-C   Now perform jet clustering at the value chosen in qcut
-
-        CALL KTCLUS(KTSCHE,PP,NN,ECUT,Y,*999)
-
-        YCUT=qcut**2
-        NCJET=0
-          
-C     Reconstruct jet momenta
-          CALL KTRECO(MOD(KTSCHE,10),PP,NN,ECUT,YCUT,YCUT,PJET,JET,
-     $       NCJET,NSUB,*999)        
-
-        ELSE IF (NN.EQ.1) THEN
-
-          Y(1)=PP(1,1)**2+PP(2,1)**2
-          IF(Y(1).GT.YCUT)THEN
-            NCJET=1
-            DO I=1,4
-              PJET(I,1)=PP(I,1)
-            ENDDO
-          ENDIF
-        endif
-
-        if(idbg.eq.1) then
-          write(LNHOUT,*) 'JETS'
-          do i=1,ncjet
-            PTJET =SQRT(PJET(1,i)**2+PJET(2,i)**2)
-            ETAJET=PSERAP(PJET(1,i))
-            PHIJET=ATAN2(PJET(2,i),PJET(1,i))
-            write(LNHOUT,*) ptjet,etajet,phijet
-          enddo
-        endif
-
-        IF(NCJET.LT.NLJETS) THEN
-          if(idbg.eq.1)
-     $       WRITE(LNHOUT,*) 'Failed due to NCJET ',NCJET,' < ',NLJETS
-          GOTO 999
-        endif
-
-C...Right number of jets - but the right jets?        
-C     For max. multiplicity case, count jets only to the NHARD:th jet
-        IF(IEXC.EQ.0)THEN
-           IF(NLJETS.GT.0)THEN
-              YCUT=Y(NLJETS)
-              CALL KTRECO(MOD(KTSCHE,10),PP,NN,ECUT,YCUT,YCUT,PJET,JET,
-     $             NCJET,NSUB,*999)
-              IF(clfact.GE.0d0) THEN
-                 CALL ALPSOR(PTCLUS,nljets,KPT,2)
-                 YCUT=MAX(qcut,PTCLUS(KPT(1)))**2
-              ENDIF
-           ENDIF
-        ELSE IF(NCJET.GT.NLJETS) THEN
-           if(idbg.eq.1)
-     $       WRITE(LNHOUT,*) 'Failed due to NCJET ',NCJET,' > ',NLJETS
-           GOTO 999
-        ENDIF
-
-C     Cluster jets with hard partons, one at a time
-        DO I=1,NLJETS
-          DO J=1,4
-            PPM(J,I)=PJET(J,I)
-          ENDDO
-        ENDDO
-
-        NJETM=NLJETS
-        IF(clfact.NE.0) YCUT=clfact**2*YCUT
-c        YCUT=qcut**2
-c        YCUT=(1.5*qcut)**2
-
-        DO 140 IHARD=1,NLJETS
-          NN=NJETM+1
-          DO J=1,4
-            PPM(J,NN)=p(J,IHARD)
-          ENDDO
-          CALL KTCLUS(KTSCHE,PPM,NN,ECUT,Y,*999)
-
-          IF(Y(NN).GT.YCUT) THEN
-C       Parton not clustered
-          if(idbg.eq.1)
-     $       WRITE(LNHOUT,*) 'Failed due to parton ',IHARD,
-     $         ' not clustered: ',Y(NN)
-            GOTO 999
-          ENDIF
-          
-C       Find jet clustered with parton
-
-          IP1=HIST(NN)/NMAXKT
-          IP2=MOD(HIST(NN),NMAXKT)
-          IF(IP2.NE.NN.OR.IP1.LE.0)THEN
-          if(idbg.eq.1)
-     $       WRITE(LNHOUT,*) 'Failed due to parton ',IHARD,
-     $         ' not clustered: ',IP1,IP2,NN,HIST(NN)
-            GOTO 999
-          ENDIF
-C     Remove jet clustered with parton
-          DO I=IP1,NJETM-1
-            DO J=1,4
-              PPM(J,I)=PPM(J,I+1)
-            ENDDO
-          ENDDO
-          NJETM=NJETM-1
- 140    CONTINUE
-
-      endif                     ! pt-ordered showers
-      endif                     ! qcut.gt.0
-
-C...Cluster particles with |eta| < etaclmax for histograms
- 150  NN=0
-      DO IHEP=1,NHEP
-         IF (ISTHEP(IHEP).EQ.1
-     $        .AND.(ABS(IDHEP(IHEP)).LE.5.OR.IDHEP(IHEP).EQ.21)) THEN
-            PTJET=sqrt(PHEP(1,IHEP)**2+PHEP(2,IHEP)**2)
-            ETAJET=ABS(LOG(MIN((SQRT(PTJET**2+PHEP(3,IHEP)**2)+
-     $           ABS(PHEP(3,IHEP)))/PTJET,1d5)))
-            IF(ETAJET.GT.etaclmax) cycle
-            NN=NN+1
-            IF (NN.GT.NMAX) then
-               CALL PYLIST(2)
-               PRINT *, 'Too many particles: ', NN
-               NN=NN-1
-               GOTO 160
-            ENDIF
-            DO I=1,4
-               PP(I,NN)=PHEP(I,IHEP)
-            ENDDO
-         ELSE if(idbg.eq.1)THEN
-            PRINT *,'Skipping particle ',IHEP,ISTHEP(IHEP),IDHEP(IHEP)
-         ENDIF
-      ENDDO
-      
- 160  ECUT=1
-      IF (NN.GT.1) THEN
-         CALL KTCLUS(KTSCHE,PP,NN,ECUT,Y,*999)
-      ELSE IF(NN.EQ.1) THEN
-         Y(1)=SQRT(PP(1,NN)**2+PP(2,NN)**2)
-      ENDIF
-
-      DO I=1,MIN(NN,4)
-         varev(46+I)=SQRT(Y(I))
-      ENDDO
-
-
-      RETURN
- 4001 FORMAT(50E15.6)
-c HERWIG/PYTHIA TERMINATION:
- 999  IPVETO=1
-      END
-      
-C*********************************************************************
-C   PYMASC
-C   Implementation of scale used in Pythia parton showers
-C*********************************************************************
-      SUBROUTINE PYMASC(scale)
-      IMPLICIT NONE
-
-C...Arguments
-      REAL*8 scale
-
-C...Functions
-      REAL*8 SMDOT5
-
-C...User process initialization commonblock.
-C #include "GeneratorModules/heprup.inc"
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
-      DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
-      COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
-     &   IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
-     &   LPRUP(MAXPUP)
-C...User process event common block.
-C #include "GeneratorModules/hepeup.inc"
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &   ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &   VTIMUP(MAXNUP),SPINUP(MAXNUP)
-
-C...Extra commonblock to transfer run info.
-      INTEGER LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-      COMMON/MGUPPRIV/LNHIN,LNHOUT,MSCAL,IEVNT,ICKKW,ISCALE
-
-C...Local variables
-      INTEGER ICC1,ICC2,IJ,IDC1,IDC2,IC,IC1,IC2
-      REAL*8 QMIN,QTMP
-
-C   Just use the scale read off the event record
-      scale=SCALUP
-
-C   Alternatively:
-
-C...  Guesses for the correct scale
-C     Assumptions:
-C     (1) if the initial state is a color singlet, then
-C     use s-hat for the scale
-C     
-C     (2) if color flow to the final state, use the minimum
-C     of the dot products of color connected pairs
-C     (times two for consistency with above)
-
-        QMIN=SMDOT5(PUP(1,1),PUP(1,2))
-        ICC1=1
-        ICC2=2
-C     
-C     For now, there is no generic way to guarantee the "right"
-C     scale choice.  Here, we take the HERWIG pt. of view and
-C     choose the dot product of the colored connected "primary"
-C     pairs.
-C     
-
-        DO 101 IJ=1,NUP
-          IF(MOTHUP(2,IJ).GT.2) GOTO 101
-          IDC1=ICOLUP(1,IJ)
-          IDC2=ICOLUP(2,IJ)
-          IF(IDC1.EQ.0) IDC1=-1
-          IF(IDC2.EQ.0) IDC2=-2
-          
-          DO 201 IC=IJ+1,NUP
-            IF(MOTHUP(2,IC).GT.2) GOTO 201
-            IC1=ICOLUP(1,IC)
-            IC2=ICOLUP(2,IC)
-            IF(ISTUP(IC)*ISTUP(IJ).GE.1) THEN
-              IF(IDC1.EQ.IC2.OR.IDC2.EQ.IC1) THEN
-                QTMP=SMDOT5(PUP(1,IJ),PUP(1,IC))
-                IF(QTMP.LT.QMIN) THEN
-                  QMIN=QTMP
-                  ICC1=IJ
-                  ICC2=IC
-                ENDIF
-              ENDIF
-            ELSEIF(ISTUP(IC)*ISTUP(IJ).LE.-1) THEN
-              IF(IDC1.EQ.IC1.OR.IDC2.EQ.IC2) THEN
-                QTMP=SMDOT5(PUP(1,IJ),PUP(1,IC))          
-                IF(QTMP.LT.QMIN) THEN
-                  QMIN=QTMP
-                  ICC1=IJ
-                  ICC2=IC
-                ENDIF
-              ENDIF
-            ENDIF
- 201      CONTINUE
- 101    CONTINUE
-
-        scale=QMIN
-
-      RETURN
-      END
-
-C...SMDOT5
-C   Helper function
-
-      FUNCTION SMDOT5(V1,V2)
-      IMPLICIT NONE
-      REAL*8 SMDOT5,TEMP
-      REAL*8 V1(5),V2(5)
-      INTEGER I
-
-      SMDOT5=0D0
-      TEMP=V1(4)*V2(4)
-      DO I=1,3
-        TEMP=TEMP-V1(I)*V2(I)
-      ENDDO
-
-      SMDOT5=SQRT(ABS(TEMP))
-
-      RETURN
-      END
-
-C-----------------------------------------------------------------------
-      SUBROUTINE ALPSOR(A,N,K,IOPT)
-C-----------------------------------------------------------------------
-C     Sort A(N) into ascending order
-C     IOPT = 1 : return sorted A and index array K
-C     IOPT = 2 : return index array K only
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION A(N),B(5000)
-      INTEGER N,I,J,IOPT,K(N),IL(5000),IR(5000)
-      IF (N.GT.5000) then
-        write(*,*) 'Too many entries to sort in alpsrt, stop'
-        stop
-      endif
-      if(n.le.0) return
-      IL(1)=0
-      IR(1)=0
-      DO 10 I=2,N
-      IL(I)=0
-      IR(I)=0
-      J=1
-   2  IF(A(I).GT.A(J)) GOTO 5
-   3  IF(IL(J).EQ.0) GOTO 4
-      J=IL(J)
-      GOTO 2
-   4  IR(I)=-J
-      IL(J)=I
-      GOTO 10
-   5  IF(IR(J).LE.0) GOTO 6
-      J=IR(J)
-      GOTO 2
-   6  IR(I)=IR(J)
-      IR(J)=I
-  10  CONTINUE
-      I=1
-      J=1
-      GOTO 8
-  20  J=IL(J)
-   8  IF(IL(J).GT.0) GOTO 20
-   9  K(I)=J
-      B(I)=A(J)
-      I=I+1
-      IF(IR(J)) 12,30,13
-  13  J=IR(J)
-      GOTO 8
-  12  J=-IR(J)
-      GOTO 9
-  30  IF(IOPT.EQ.2) RETURN
-      DO 31 I=1,N
-  31  A(I)=B(I)
-c 999  END
-      END
-
-c$$$C-----------------------------------------------------------------------
-c$$$C----Calorimeter simulation obtained from Frank Paige 23 March 1988-----
-c$$$C
-c$$$C          USE
-c$$$C
-c$$$C     CALL CALINIM
-c$$$C     CALL CALSIMM
-c$$$C
-c$$$C          THEN TO FIND JETS WITH A SIMPLIFIED VERSION OF THE UA1 JET
-c$$$C          ALGORITHM WITH JET RADIUS RJET AND MINIMUM SCALAR TRANSVERSE
-c$$$C          ENERGY EJCUT
-c$$$C            (RJET=1., EJCUT=5. FOR UA1)
-c$$$C          USE
-c$$$C
-c$$$C     CALL GETJETM(RJET,EJCUT)
-c$$$C
-c$$$C
-c$$$C-----------------------------------------------------------------------
-c$$$C 
-c$$$C          ADDED BY MIKE SEYMOUR: PARTON-LEVEL CALORIMETER. ALL PARTONS
-c$$$C          ARE CONSIDERED TO BE HADRONS, SO IN FACT RESEM IS IGNORED
-c$$$C
-c$$$C     CALL CALPARM
-c$$$C
-c$$$C          HARD PARTICLE CALORIMETER. ONLY USES THOSE PARTICLES WHICH
-c$$$C          CAME FROM THE HARD PROCESS, AND NOT THE UNDERLYING EVENT
-c$$$C
-c$$$C     CALL CALHARM
-c$$$C
-c$$$C-----------------------------------------------------------------------
-c$$$      SUBROUTINE CALINIM
-c$$$C                
-c$$$C          INITIALIZE CALORIMETER FOR CALSIMM AND GETJETM.  NOTE THAT
-c$$$C          BECAUSE THE INITIALIZATION IS SEPARATE, CALSIMM CAN BE
-c$$$C          CALLED MORE THAN ONCE TO SIMULATE PILEUP OF SEVERAL EVENTS.
-c$$$C
-c$$$      IMPLICIT NONE
-c$$$C...GETJET commonblocks
-c$$$      INTEGER MNCY,MNCPHI,NCY,NCPHI,NJMAX,JETNO,NCJET
-c$$$      DOUBLE PRECISION YCMIN,YCMAX,DELY,DELPHI,ET,STHCAL,CTHCAL,CPHCAL,
-c$$$     &  SPHCAL,PCJET,ETJET
-c$$$      PARAMETER (MNCY=200)
-c$$$      PARAMETER (MNCPHI=200)
-c$$$      COMMON/CALORM/DELY,DELPHI,ET(MNCY,MNCPHI),
-c$$$     $CTHCAL(MNCY),STHCAL(MNCY),CPHCAL(MNCPHI),SPHCAL(MNCPHI),
-c$$$     $YCMIN,YCMAX,NCY,NCPHI
-c$$$      PARAMETER (NJMAX=500)
-c$$$      COMMON/GETCOMM/PCJET(4,NJMAX),ETJET(NJMAX),JETNO(MNCY,MNCPHI),
-c$$$     $     NCJET
-c$$$
-c$$$      INTEGER IPHI,IY
-c$$$      DOUBLE PRECISION PI,PHIX,YX,THX
-c$$$      PARAMETER (PI=3.141593D0)
-c$$$      LOGICAL FSTCAL
-c$$$      DATA FSTCAL/.TRUE./
-c$$$C
-c$$$C          INITIALIZE ET ARRAY.
-c$$$      DO 100 IPHI=1,NCPHI
-c$$$      DO 100 IY=1,NCY
-c$$$100   ET(IY,IPHI)=0.
-c$$$C
-c$$$      IF (FSTCAL) THEN
-c$$$C          CALCULATE TRIG. FUNCTIONS.
-c$$$        DELPHI=2.*PI/FLOAT(NCPHI)
-c$$$        DO 200 IPHI=1,NCPHI
-c$$$        PHIX=DELPHI*(IPHI-.5)
-c$$$        CPHCAL(IPHI)=COS(PHIX)
-c$$$        SPHCAL(IPHI)=SIN(PHIX)
-c$$$200     CONTINUE
-c$$$        DELY=(YCMAX-YCMIN)/FLOAT(NCY)
-c$$$        DO 300 IY=1,NCY
-c$$$        YX=DELY*(IY-.5)+YCMIN
-c$$$        THX=2.*ATAN(EXP(-YX))
-c$$$        CTHCAL(IY)=COS(THX)
-c$$$        STHCAL(IY)=SIN(THX)
-c$$$300     CONTINUE
-c$$$        FSTCAL=.FALSE.
-c$$$      ENDIF
-c$$$      END
-c$$$C
-c$$$      SUBROUTINE CALSIMM
-c$$$C                
-c$$$C          SIMPLE CALORIMETER SIMULATION.  ASSUME UNIFORM Y AND PHI
-c$$$C          BINS
-c$$$C...HEPEVT commonblock.
-c$$$      INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-c$$$      PARAMETER (NMXHEP=10000)
-c$$$      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-c$$$     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-c$$$      DOUBLE PRECISION PHEP,VHEP
-c$$$      SAVE /HEPEVT/
-c$$$
-c$$$C...GETJET commonblocks
-c$$$      INTEGER MNCY,MNCPHI,NCY,NCPHI,NJMAX,JETNO,NCJET
-c$$$      DOUBLE PRECISION YCMIN,YCMAX,DELY,DELPHI,ET,STHCAL,CTHCAL,CPHCAL,
-c$$$     &  SPHCAL,PCJET,ETJET
-c$$$      PARAMETER (MNCY=200)
-c$$$      PARAMETER (MNCPHI=200)
-c$$$      COMMON/CALORM/DELY,DELPHI,ET(MNCY,MNCPHI),
-c$$$     $CTHCAL(MNCY),STHCAL(MNCY),CPHCAL(MNCPHI),SPHCAL(MNCPHI),
-c$$$     $YCMIN,YCMAX,NCY,NCPHI
-c$$$      PARAMETER (NJMAX=500)
-c$$$      COMMON/GETCOMM/PCJET(4,NJMAX),ETJET(NJMAX),JETNO(MNCY,MNCPHI),
-c$$$     $     NCJET
-c$$$
-c$$$      INTEGER IHEP,ID,IY,IPHI
-c$$$      DOUBLE PRECISION PI,YIP,PSERAP,PHIIP,EIP
-c$$$      PARAMETER (PI=3.141593D0)
-c$$$C
-c$$$C          FILL CALORIMETER
-c$$$C
-c$$$      DO 200 IHEP=1,NHEP
-c$$$      IF (ISTHEP(IHEP).EQ.1) THEN
-c$$$        YIP=PSERAP(PHEP(1,IHEP))
-c$$$        IF(YIP.LT.YCMIN.OR.YIP.GT.YCMAX) GOTO 200
-c$$$        ID=ABS(IDHEP(IHEP))
-c$$$C---EXCLUDE TOP QUARK, LEPTONS, PROMPT PHOTONS
-c$$$        IF ((ID.GE.11.AND.ID.LE.16).OR.ID.EQ.6.OR.ID.EQ.22) GOTO 200
-c$$$C
-c$$$        PHIIP=ATAN2(PHEP(2,IHEP),PHEP(1,IHEP))
-c$$$        IF(PHIIP.LT.0.) PHIIP=PHIIP+2.*PI
-c$$$        IY=INT((YIP-YCMIN)/DELY)+1
-c$$$        IPHI=INT(PHIIP/DELPHI)+1
-c$$$        EIP=PHEP(4,IHEP)
-c$$$C            WEIGHT BY SIN(THETA)
-c$$$        ET(IY,IPHI)=ET(IY,IPHI)+EIP*STHCAL(IY)
-c$$$      ENDIF
-c$$$  200 CONTINUE
-c$$$  999 END
-c$$$      SUBROUTINE GETJETM(RJET,EJCUT,ETAJCUT)
-c$$$C                
-c$$$C          SIMPLE JET-FINDING ALGORITHM (SIMILAR TO UA1).
-c$$$C
-c$$$C     FIND HIGHEST REMAINING CELL > ETSTOP AND SUM SURROUNDING
-c$$$C          CELLS WITH--
-c$$$C            DELTA(Y)**2+DELTA(PHI)**2<RJET**2
-c$$$C            ET>ECCUT.
-c$$$C          KEEP JETS WITH ET>EJCUT AND ABS(ETA)<ETAJCUT
-c$$$C          THE UA1 PARAMETERS ARE RJET=1.0 AND EJCUT=5.0
-c$$$C                  
-c$$$      IMPLICIT NONE
-c$$$C...GETJET commonblocks
-c$$$      INTEGER MNCY,MNCPHI,NCY,NCPHI,NJMAX,JETNO,NCJET
-c$$$      DOUBLE PRECISION YCMIN,YCMAX,DELY,DELPHI,ET,STHCAL,CTHCAL,CPHCAL,
-c$$$     &  SPHCAL,PCJET,ETJET
-c$$$      PARAMETER (MNCY=200)
-c$$$      PARAMETER (MNCPHI=200)
-c$$$      COMMON/CALORM/DELY,DELPHI,ET(MNCY,MNCPHI),
-c$$$     $CTHCAL(MNCY),STHCAL(MNCY),CPHCAL(MNCPHI),SPHCAL(MNCPHI),
-c$$$     $YCMIN,YCMAX,NCY,NCPHI
-c$$$      PARAMETER (NJMAX=500)
-c$$$      COMMON/GETCOMM/PCJET(4,NJMAX),ETJET(NJMAX),JETNO(MNCY,MNCPHI),
-c$$$     $     NCJET
-c$$$
-c$$$      INTEGER IPHI,IY,J,K,NPHI1,NPHI2,NY1,
-c$$$     &  NY2,IPASS,IYMX,IPHIMX,ITLIS,IPHI1,IPHIX,IY1,IYX
-c$$$      DOUBLE PRECISION PI,RJET,
-c$$$     &  ETMAX,ETSTOP,RR,ECCUT,PX,EJCUT
-c$$$      PARAMETER (PI=3.141593D0)
-c$$$      DOUBLE PRECISION ETAJCUT,PSERAP
-c$$$C
-c$$$C          PARAMETERS
-c$$$      DATA ECCUT/0.1D0/
-c$$$      DATA ETSTOP/1.5D0/
-c$$$      DATA ITLIS/6/
-c$$$C
-c$$$C          INITIALIZE
-c$$$C
-c$$$      DO 100 IPHI=1,NCPHI
-c$$$      DO 100 IY=1,NCY
-c$$$100   JETNO(IY,IPHI)=0
-c$$$      DO 110 J=1,NJMAX
-c$$$      ETJET(J)=0.
-c$$$      DO 110 K=1,4
-c$$$110   PCJET(K,J)=0.
-c$$$      NCJET=0
-c$$$      NPHI1=RJET/DELPHI
-c$$$      NPHI2=2*NPHI1+1
-c$$$      NY1=RJET/DELY
-c$$$      NY2=2*NY1+1
-c$$$      IPASS=0
-c$$$C
-c$$$C          FIND HIGHEST CELL REMAINING
-c$$$C
-c$$$1     ETMAX=0.
-c$$$      DO 200 IPHI=1,NCPHI
-c$$$      DO 210 IY=1,NCY
-c$$$      IF(ET(IY,IPHI).LT.ETMAX) GOTO 210
-c$$$      IF(JETNO(IY,IPHI).NE.0) GOTO 210
-c$$$      ETMAX=ET(IY,IPHI)
-c$$$      IYMX=IY
-c$$$      IPHIMX=IPHI
-c$$$210   CONTINUE
-c$$$200   CONTINUE
-c$$$      IF(ETMAX.LT.ETSTOP) RETURN
-c$$$C
-c$$$C          SUM CELLS
-c$$$C
-c$$$      IPASS=IPASS+1
-c$$$      IF(IPASS.GT.NCY*NCPHI) THEN
-c$$$        WRITE(ITLIS,8888) IPASS
-c$$$8888    FORMAT(//' ERROR IN GETJETM...IPASS > ',I6)
-c$$$        RETURN
-c$$$      ENDIF
-c$$$      NCJET=NCJET+1
-c$$$      IF(NCJET.GT.NJMAX) THEN
-c$$$        WRITE(ITLIS,9999) NCJET
-c$$$9999    FORMAT(//' ERROR IN GETJETM...NCJET > ',I5)
-c$$$        RETURN
-c$$$      ENDIF
-c$$$      DO 300 IPHI1=1,NPHI2
-c$$$      IPHIX=IPHIMX-NPHI1-1+IPHI1
-c$$$      IF(IPHIX.LE.0) IPHIX=IPHIX+NCPHI
-c$$$      IF(IPHIX.GT.NCPHI) IPHIX=IPHIX-NCPHI
-c$$$      DO 310 IY1=1,NY2
-c$$$      IYX=IYMX-NY1-1+IY1
-c$$$      IF(IYX.LE.0) GOTO 310
-c$$$      IF(IYX.GT.NCY) GOTO 310
-c$$$      IF(JETNO(IYX,IPHIX).NE.0) GOTO 310
-c$$$      RR=(DELY*(IY1-NY1-1))**2+(DELPHI*(IPHI1-NPHI1-1))**2
-c$$$      IF(RR.GT.RJET**2) GOTO 310
-c$$$      IF(ET(IYX,IPHIX).LT.ECCUT) GOTO 310
-c$$$      PX=ET(IYX,IPHIX)/STHCAL(IYX)
-c$$$C          ADD CELL TO JET
-c$$$      PCJET(1,NCJET)=PCJET(1,NCJET)+PX*STHCAL(IYX)*CPHCAL(IPHIX)
-c$$$      PCJET(2,NCJET)=PCJET(2,NCJET)+PX*STHCAL(IYX)*SPHCAL(IPHIX)
-c$$$      PCJET(3,NCJET)=PCJET(3,NCJET)+PX*CTHCAL(IYX)
-c$$$      PCJET(4,NCJET)=PCJET(4,NCJET)+PX
-c$$$      ETJET(NCJET)=ETJET(NCJET)+ET(IYX,IPHIX)
-c$$$      JETNO(IYX,IPHIX)=NCJET
-c$$$310   CONTINUE
-c$$$300   CONTINUE
-c$$$C
-c$$$C          DISCARD JET IF ET < EJCUT.
-c$$$C
-c$$$      IF(ETJET(NCJET).GT.EJCUT.AND.ABS(PSERAP(PCJET(1,NCJET))).LT
-c$$$     $     .ETAJCUT) GOTO 1
-c$$$      ETJET(NCJET)=0.
-c$$$      DO 400 K=1,4
-c$$$400   PCJET(K,NCJET)=0.
-c$$$      NCJET=NCJET-1
-c$$$      GOTO 1
-c$$$      END
-c$$$C-----------------------------------------------------------------------
-c$$$      SUBROUTINE CALDELM(ISTLO,ISTHI)
-c$$$C     LABEL ALL PARTICLES WITH STATUS BETWEEN ISTLO AND ISTHI (UNTIL A
-c$$$C     PARTICLE WITH STATUS ISTOP IS FOUND) AS FINAL-STATE, CALL CALSIMM
-c$$$C     AND THEN PUT LABELS BACK TO NORMAL
-c$$$C-----------------------------------------------------------------------
-c$$$      IMPLICIT NONE
-c$$$      INTEGER MAXNUP
-c$$$      PARAMETER(MAXNUP=500)
-c$$$C...HEPEVT commonblock.
-c$$$      INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-c$$$      PARAMETER (NMXHEP=10000)
-c$$$      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-c$$$     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-c$$$      DOUBLE PRECISION PHEP,VHEP
-c$$$      SAVE /HEPEVT/
-c$$$      INTEGER ISTLO,ISTHI
-c$$$
-c$$$
-c$$$      CALL CALSIMM
-c$$$      END
-
-C****************************************************
-C iexclusive returns whether exclusive process or not
-C****************************************************
-
-      integer function iexclusive(iproc)
-      implicit none
-      
-      integer iproc, i
-
-C...Inputs for the matching algorithm
-      INTEGER MAXPUP
-      PARAMETER (MAXPUP=100)
-      double precision etcjet,rclmax,etaclmax,qcut,clfact
-      integer maxjets,minjets,iexcfile,ktsche,mektsc,nexcres,excres(30)
-      integer nremres, remres(30)
-      integer nqmatch,nexcproc,iexcproc(MAXPUP),iexcval(MAXPUP)
-      logical nosingrad,showerkt,jetprocs
-      common/MEMAIN/etcjet,rclmax,etaclmax,qcut,clfact,maxjets,minjets,
-     $   iexcfile,ktsche,mektsc,nexcres,excres,nremres,remres,
-     $   nqmatch,nexcproc,iexcproc,iexcval,nosingrad,showerkt,jetprocs
-      
-      iexclusive=-2
-      do i=1,nexcproc
-         if(iproc.eq.iexcproc(i)) then
-            iexclusive=iexcval(i)
-            return
-         endif
-      enddo
-
-      return
-      end
-C-----------------------------------------------------------------------
-      FUNCTION PSERAP(P)
-C     PSEUDO-RAPIDITY (-LOG TAN THETA/2)
-C-----------------------------------------------------------------------
-      DOUBLE PRECISION PSERAP,P(3),PT,PL,TINY,THETA
-      PARAMETER (TINY=1D-3)
-      PT=SQRT(P(1)**2+P(2)**2)+TINY
-      PL=P(3)
-      THETA=ATAN2(PT,PL)
-      PSERAP=-LOG(TAN(0.5*THETA))
-      END 
-C----------------------------------------------------------------------- 
-                                                                              
diff --git a/Generators/Matchig_i/CMakeLists.txt b/Generators/Matchig_i/CMakeLists.txt
deleted file mode 100644
index 5d1144f83edd8a33cbd07c92d2852d62ac7453fb..0000000000000000000000000000000000000000
--- a/Generators/Matchig_i/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Package: Matchig_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( Matchig_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PRIVATE
-                          Generators/GeneratorFortranCommon )
-
-# External dependencies:
-find_package( Pythia6 )
-
-# Component(s) in the package:
-atlas_add_library( Matchig_i
-                   src/*.F
-                   NO_PUBLIC_HEADERS
-                   INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${PYTHIA6_LIBRARIES} GeneratorFortranCommonLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-
diff --git a/Generators/Matchig_i/share/jobOptions.MatchigPythia.py b/Generators/Matchig_i/share/jobOptions.MatchigPythia.py
deleted file mode 100755
index 93c66e6397994f73b041235140a25ba46f627447..0000000000000000000000000000000000000000
--- a/Generators/Matchig_i/share/jobOptions.MatchigPythia.py
+++ /dev/null
@@ -1,169 +0,0 @@
-###############################################################
-#
-# Job options file
-# Generate events with Matchig
-# Example: gg/gb -> t[b]H+, t->bqq, H+->taunu with mH+=300 GeV
-#
-# Martin Flechl, 29/1/2009
-# mflechl@cern.ch
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-# make sure we are loading the ParticleProperty service
-from PartPropSvc.PartPropSvcConf import PartPropSvc
-ServiceMgr += PartPropSvc()
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed
-theApp.EvtMax = 10
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Pythia_i.Pythia_iConf import Pythia
-job += Pythia()
-job.Pythia.SetAtlasDefaults = False
-job.Pythia.PythiaCommand = ["pyinit user matchig", "pyinit pylistf 1","pyinit dumpr 1 1",
-                        "pysubs msel 0", "pysubs msub 161 1", "pysubs msub 401 1",
-                        "pysubs msub 402 1", "pypars mstp 129 1000", "pypars mstp 81 0"]
-
-job.Pythia.PythiaCommand += ["pydat1 paru 141 30.",                 #tan beta
-                             "pydat2 pmas 37 1 300."]               #H+ mass
-
-#uncomment when using TAUOLA/PHOTOS
-#job.Pythia.PythiaCommand += ["pydat1 parj 90 20000",   # Turn off lepton radiation
-#                             "pydat3 mdcy 15 1 0"]     # Turn off tau decays
-
-#top decay
-job.Pythia.PythiaCommand += ["pydat3 mdme 41 1 0",
-                             "pydat3 mdme 42 1 0",
-                             "pydat3 mdme 43 1 0",
-                             "pydat3 mdme 44 1 0",
-                             "pydat3 mdme 45 1 0",
-                             "pydat3 mdme 46 1 1", # t->Wb
-#                             "pydat3 mdme 46 1 4", # t->Wb    #for light H+
-                             "pydat3 mdme 48 1 0",
-                             "pydat3 mdme 49 1 0", # t->H+b
-#                             "pydat3 mdme 49 1 5", # t->H+b   #for light H+
-                             "pydat3 mdme 50 1 0",
-                             "pydat3 mdme 51 1 0",
-                             "pydat3 mdme 52 1 0",
-                             "pydat3 mdme 53 1 0",
-                             "pydat3 mdme 54 1 0",
-                             "pydat3 mdme 55 1 0"]
-
-#W decay
-job.Pythia.PythiaCommand += ["pydat3 mdme 190 1 1", # to q q'
-                             "pydat3 mdme 191 1 1", # to q q'
-                             "pydat3 mdme 192 1 0",
-                             "pydat3 mdme 194 1 1", # to q q'
-                             "pydat3 mdme 195 1 1", # to q q'
-                             "pydat3 mdme 196 1 0",
-                             "pydat3 mdme 198 1 0",
-                             "pydat3 mdme 199 1 1", # to q q'
-                             "pydat3 mdme 200 1 0",
-                             "pydat3 mdme 206 1 0", #enu
-                             "pydat3 mdme 207 1 0", #munu
-                             "pydat3 mdme 208 1 0"] #taunu
-
-#H+ decay
-job.Pythia.PythiaCommand += ["pydat3 mdme 503 1 0",
-                             "pydat3 mdme 504 1 0",
-                             "pydat3 mdme 505 1 0",
-                             "pydat3 mdme 507 1 0",
-                             "pydat3 mdme 508 1 0",
-                             "pydat3 mdme 509 1 1", #H+ -> tau nu
-                             "pydat3 mdme 511 1 0",
-                             "pydat3 mdme 512 1 0",
-                             "pydat3 mdme 513 1 0",
-                             "pydat3 mdme 514 1 0",
-                             "pydat3 mdme 515 1 0",
-                             "pydat3 mdme 516 1 0",
-                             "pydat3 mdme 517 1 0",
-                             "pydat3 mdme 518 1 0",
-                             "pydat3 mdme 519 1 0",
-                             "pydat3 mdme 520 1 0",
-                             "pydat3 mdme 521 1 0",
-                             "pydat3 mdme 522 1 0",
-                             "pydat3 mdme 523 1 0",
-                             "pydat3 mdme 524 1 0",
-                             "pydat3 mdme 525 1 0",
-                             "pydat3 mdme 526 1 0",
-                             "pydat3 mdme 527 1 0",
-                             "pydat3 mdme 528 1 0",
-                             "pydat3 mdme 529 1 0"]
-
-#tau decay
-job.Pythia.PythiaCommand += ["pydat3 mdme 89 1 0", #enu
-                             "pydat3 mdme 90 1 0"] #munu
-
-from TruthExamples.TruthExamplesConf import PrintMC
-job += PrintMC()
-job.PrintMC.FirstEvent = 1
-job.PrintMC.LastEvent = 3
-
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.OutputFile = "matchig.pool.root"
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-
-#include( 'CBNT_Athena/CBNT_AthenaAware_jobOptions.py' )
-#include( 'CBNT_Athena/CBNT_EventInfo_jobOptions.py' )                     
-#include( 'RecExCommon/CBNT_Truth_jobOptions.py' )
- 
-#theApp.CreateSvc += ['AthenaSealSvc']
-#ServiceMgr += CfgMgr.AthenaSealSvc()
-
-#---------------------------------------------------------------
-# AANT persistency
-#---------------------------------------------------------------
-#if not 'AANT_OUTPUT' in dir():
-#   AANT_OUTPUT = "matchig.aan.root"
-#   pass
-#if not hasattr(ServiceMgr, 'THistSvc'):
-#   from GaudiSvc.GaudiSvcConf import THistSvc
-#   ServiceMgr += THistSvc()
-#ServiceMgr.THistSvc.Output += ["AANT DATAFILE='%s' OPT='RECREATE'" % AANT_OUTPUT]
-
-#from AnalysisTools.AthAnalysisToolsConf import AANTupleStream
-#topSequence += AANTupleStream(
-#   ExistDataHeader = False,
-#   WriteInputDataHeader = False,
-#   OutputName = AANT_OUTPUT,
-#   OutputLevel = WARNING
-#)
-
-#---------------------------------------------------------------
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Matchig_i/src/initmatchig.F b/Generators/Matchig_i/src/initmatchig.F
deleted file mode 100755
index f8d0e8101c31078141c5f2cf7124e1769200a6c7..0000000000000000000000000000000000000000
--- a/Generators/Matchig_i/src/initmatchig.F
+++ /dev/null
@@ -1,63 +0,0 @@
-*****************************
-      SUBROUTINE INITMATCHIG
-*****************************
-C...DOUBLE PRECISION AND INTEGER DECLARATIONS.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-C...EXTERNAL statement links PYDATA on most machines.
-      EXTERNAL PYDATA
-
-C...USER PROCESS INITIALIZATION COMMONBLOCK.
-#include "GeneratorFortranCommon/heprup.inc"
-
-      DOUBLE PRECISION MATCHIG
-
-      DIMENSION DCPARM(10)
-      DATA DCPARM/10*0.5d0/
-
-      WRITE(6,*) 'MATCHIG_I: Initialising MATCHIG 2.02 for ATLAS'
-
-      IF(EBMUP(1).EQ.0) WRITE(6,*) 'Setting ECM to default'
-      IF(EBMUP(1).EQ.0) EBMUP(1)=0.5d4
-      IF(EBMUP(2).EQ.0) EBMUP(2)=0.5d4
-
-      WRITE(6,*) 'MATCHIG_I: ECM= ',EBMUP(1)+EBMUP(2)
-
-
-C...Initialize widths and partial widths for resonances.
-      CALL PYINRE
-
-C...Don't use total energy as PS scale for the 2->3 process
-      CALL PYGIVE('MSTP(68)=0')
-C...Set the fact scale of the 2->2 process equal to the parton shower scale
-      CALL PYGIVE('MSTP(32)=13')
-
-C   Set the factor for the ISR scale of the 2->2 process to 1
-c      CALL PYGIVE('PARP(67)=1d0')
-
-C...CM Energy (LHC)
-c      ECM=1.4d4    ! now obtained from Pythia
-
-C...Set incoming beams to protons
-      IDBMUP(1)=2212
-      IDBMUP(2)=2212
-C...Set beam energies
-c      EBMUP(1)=0.5*ECM   ! now obtained from Pythia
-c      EBMUP(2)=0.5*ECM   ! now obtained from Pythia
-
-C...INTERPRETATION AF EVENT WEIGHTS: STANDARD, ALLOWING NEGATIVE WEIGHTS
-      IDWTUP=-1
-
-C...NUMBER OF DIFFERENT PROCESSES
-      NPRUP=1
-
-C...IDENTIFIER OF EXTERNAL PROCESS
-      LPRUP(1)=10000
-
-C...MAXIMUM EVENT WEIGHT FOR PROCESS (IN PB) - TRY MIDDLE VALUE OF ALL:
-      XMAXUP(1)=MATCHIG(DCPARM,1d0)
-
-      RETURN
-      END
-
diff --git a/Generators/Matchig_i/src/matchig.F b/Generators/Matchig_i/src/matchig.F
deleted file mode 100755
index ff5d515812ed69d082a8fa9e4e547ae4b64a825f..0000000000000000000000000000000000000000
--- a/Generators/Matchig_i/src/matchig.F
+++ /dev/null
@@ -1,392 +0,0 @@
-***********************************
-      FUNCTION MATCHIG(DCPARM, WGT)
-***********************************
-C...All real arithmetic in double precision.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C...Three Pythia functions return integers, so need declaring.
-C...mf: Not needed anymore... commenting out
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...EXTERNAL statement links PYDATA on most machines.
-      EXTERNAL PYDATA
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYINT9/VXPVMD(-6:6),VXPANL(-6:6),VXPANH(-6:6),VXPDGM(-6:6)
-      COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
-C...HEPEVT commonblock.
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &   JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-C...User process initialization commonblock.
-#include "GeneratorFortranCommon/heprup.inc"
-C...User process event common block.
-#include "GeneratorFortranCommon/hepeup.inc"
-
-      DOUBLE PRECISION MATCHIG
-      DIMENSION DCPARM(*)
-
-C   PARTON LISTS
-      DIMENSION XPQ(-25:25,2),X(2)
-      DIMENSION WDTP(0:400),WDTE(0:400,0:5)
-      DIMENSION PHI(2), BETA(3)
-
-C      WRITE(6,*) 'MATCHIG_I: In matchig.F'
-
-C   ASSUME CENTER OF MASS-SYSTEM FOR COLLIDING PARTICLES
-      S=(2*EBMUP(1))**2
-
-C...Make BW shape for top with width from PMAS(6,2)
-      PMTOP=PMAS(6,1)
-      GTOP=PMAS(6,2)
-      PMTOPMIN=0d0
-      ALOW=ATAN((PMTOPMIN**2-PMTOP**2)/(PMTOP*GTOP))
-      PMTOPMAX=SQRT(S)
-      AHIGH=ATAN((PMTOPMAX**2-PMTOP**2)/(PMTOP*GTOP))
-      SQM3=PMTOP**2+PMTOP*GTOP*TAN((AHIGH-ALOW)*DCPARM(9)+ALOW)
-      PQM3=SQRT(SQM3)
-C...Make BW shape for Higgs with width from PMAS(37,2)
-      PMH=PMAS(37,1)
-      GH=PMAS(37,2)
-c   Cut BW wings at M_H +- Gamma_H+_MAX
-      GHMX=GH*PARP(48)
-      PMHMIN=MAX(0d0,PMH-GHMX)
-      ALOW=ATAN((PMHMIN**2-PMH**2)/(PMH*GH))
-      PMHMAX=MIN(PMH+GHMX,SQRT(S)-PQM3)
-      IF(PMHMAX.LT.PMHMIN) THEN
-c     TAUmin > 1
-        MATCHIG=0
-        RETURN
-      ENDIF
-      AHIGH=ATAN((PMHMAX**2-PMH**2)/(PMH*GH))
-      SQM4=PMH**2+PMH*GH*TAN((AHIGH-ALOW)*DCPARM(10)+ALOW)
-      PQM4=SQRT(SQM4)
-
-      VINT(80)=1.
-
-      XMSUM = PQM3+PQM4
-      XMSUM2 = XMSUM**2
-      TAUMIN = XMSUM2/S
-      IF(TAUMIN.GT.1d0) THEN
-c     This should never happen
-        WRITE(*,*) 'WARNING! TAUMIN = ',TAUMIN
-        MATCHIG=0
-        RETURN
-      ENDIF
-
-C   TAU FROM 1/TAU**(NTAU+1)
-      NTAU=1
-      TAU=TAUMIN/(1+DCPARM(1)*(TAUMIN**NTAU-1))**(1./NTAU)
-      SH = TAU*S
-
-      COMFAC = PARU(1)*PARU(5)/SH
-      COMFAC = COMFAC/NTAU*(1/TAUMIN**NTAU-1)*TAU**NTAU
-      YSTMIN = 0.5D0*LOG(TAU)
-      YSTMAX = -YSTMIN
-
-C   YST FROM YST-YSTMIN OR YSTMAX-YST
-      IF(DCPARM(2).LE.0.5) THEN
-        YST=YSTMIN*(1-SQRT(2*DCPARM(2)))
-        COMFAC = COMFAC*YSTMIN**2/(YST-YSTMIN)
-      ELSE
-        YST=YSTMAX*(1-SQRT(2*(1-DCPARM(2))))
-        COMFAC = COMFAC*YSTMIN**2/(YSTMAX-YST)
-      END IF
-
-      X(1) = SQRT(TAU)*EXP(YST)
-      X(2) = SQRT(TAU)*EXP(-YST)
-      IF(X(1).LT.TAU.OR.X(2).LT.TAU.OR.X(1).GT.1D0.OR.X(2).GT.1D0)
-     &   WRITE(*,*) 'WARNING! ERROR IN X1,X2 GENERATION'
-
-C...Set alpha_em and alpha_s as for 2->3 process
-      Q2=SQM4
-      IF(MSTP(39).EQ.8) Q2=PARP(194)
-      AQEDUP=PYALEM(Q2)
-      AQCDUP=PYALPS(PARP(34)*Q2)
-
-      AEM = AQEDUP
-      AS = AQCDUP
-      XW = PARU(102)
-
-      Q2RM=SQM4
-      IF(MSTP(32).EQ.12) Q2RM=PARP(194)
-      SQML=PYMRUN(5,Q2RM)**2
-      SQMQ=PYMRUN(6,Q2RM)**2
-      SQMW=PMAS(24,1)**2
-      SQMHC=PMAS(37,1)**2
-
-C   Set maximum parton shower scale as for 2->2 process
-C   Only for Pythia versions up to (and including) 6.320
-c      IF(MSTP(32).EQ.4) THEN
-c        Q2PS=SH
-c      ELSEIF(MSTP(32).EQ.11) THEN
-c        Q2PS=0.25*(SQM3+SQM4+2*PQM3*PQM4)
-c      ELSEIF(MSTP(32).EQ.12) THEN
-c        Q2PS=PARP(193)
-c      ELSE
-c        WRITE(*,*) 'PS SCALE ',MSTP(32), ' NOT SUPPORTED'
-c        WRITE(*,*) 'PLEASE USE MSTP(32)= 4, 11 or 12'
-c        WRITE(*,*) 'EXECUTION STOPPED'
-c        STOP
-c      ENDIF
-c      Q2PS=Q2PS*PARP(67)
-
-
-      FHCQ=AS*AEM/XW/24D0
-C...Mass-dependent H+ width given by PYWIDT
-      GMMHC=PMAS(37,1)*PMAS(37,2)
-      HBW4=GMMHC/((SQM4-SQMHC)**2+GMMHC**2)
-      CALL PYWIDT(37,SQM4,WDTP,WDTE)
-      GMMHCC=PQM4*WDTP(0)
-      HBW4C=GMMHCC/((SQM4-SQMHC)**2+GMMHCC**2)
-      FHCQ=FHCQ*HBW4C/HBW4
-C...Similarly for top
-      GMMT=PMAS(6,1)*PMAS(6,2)
-      HBW3=GMMT/((SQM3-SQMT)**2+GMMT**2)
-      CALL PYWIDT(6,SQM3,WDTP,WDTE)
-      GMMTC=SQRT(SQM3)*WDTP(0)
-      HBW3C=GMMTC/((SQM3-SQMT)**2+GMMTC**2)
-      FHCQ=FHCQ*HBW3C/HBW3
-
-      RM3=SQM3/SH
-      RM4=SQM4/SH
-      BE34=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
-
-C   COS(THETA-HAT) FROM 1/(X0+COS(THETA-HAT))
-      X0=1.1
-      CTH=(X0-1)*((X0+1)/(X0-1))**DCPARM(3)-X0
-      COMFAC=COMFAC*LOG((X0+1)/(X0-1))*(CTH+X0)*0.5D0*BE34
-
-      UH=(-0.5D0)*SH*((1D0-RM3-RM4)+
-     &   BE34*CTH)
-c      UH=-0.5D0*SH*((1D0-RM3-RM4)+
-c     &   BE34*CTH)
-
-      KCHHC=ISIGN(1,IDUP(4))
-
-C   THE 2->2 MATRIX ELEMENT ITSELF
-      FACHCQ=FHCQ*(SQML*PARU(141)**2+SQMQ/PARU(141)**2)/SQMW*
-     &   (SH/(SQMQ-UH)+2D0*SQMQ*(SQMHC-UH)/(SQMQ-UH)**2+(SQMQ-UH)/SH-
-     &   2D0*SQMQ/(SQMQ-UH)+2D0*(SQMHC-UH)/(SQMQ-UH)*
-     &   (SQMHC-SQMQ-SH)/SH)
-      SIGHDC=COMFAC*FACHCQ
-C   Suppression from closed decay channels
-      IF(WIDS(37,(5-KCHHC)/2)*WIDS(6,(5+KCHHC)/2).GT.0d0)
-     &   SIGHDC=SIGHDC*WIDS(37,(5-KCHHC)/2)*WIDS(6,(5+KCHHC)/2)
-      XQSUM=0
-      I=2
-      IF(DCPARM(6).LE.0.5) I=1
-
-      SMB=PMAS(5,1)**2
-
-C   SQPTH is the maximum pt for the IS radiation of the 2->2 process
-      SQPTH=0.25D0*SH*BE34**2*(1D0-CTH**2)
-      if(MINT(35).LT.3)
-     $   SQPTH=SQPTH*PARP(67)
-
-C   Z FROM Z
-      ZMIN=X(I)
-      Q2OPT=MIN(SQRT(SH*SMB),SQPTH)
-c      Q2OPT=MIN(SQRT(SH*SMB),Q2PS)
-      ZMAX=SH*Q2OPT/((Q2OPT+SMB)*(SH+Q2OPT))
-      IF(ZMIN.GE.ZMAX) THEN
-        MATCHIG=0
-        RETURN
-      END IF
-      Z=SQRT(ZMIN**2+DCPARM(4)*(ZMAX**2-ZMIN**2))
-      BTILDE=0.5*(ZMAX**2-ZMIN**2)/Z
-      Y=X(I)/Z
-
-      IF(MINT(35).lt.3)THEN
-C     Old, Q2-ordered, showers
-C   Q2 FROM 1/(Q2+SMB)
-        Q2MIN=0.5*(SH*(1/Z-1)-SMB)-
-     &     0.5*SQRT((SH*(1/Z-1)-SMB)**2-4*SH*SMB)
-        Q2MAX=0.5*(SH*(1/Z-1)-SMB)+
-     &     0.5*SQRT((SH*(1/Z-1)-SMB)**2-4*SH*SMB)
-c      Q2MAX=MIN(Q2PS,Q2MAX)     ! For version < 6.321
-        ZSMB=SMB
-      ELSE
-C     New, pT-ordered, showers, ordered in (1-z)*(Q2+SMB)
-C   Q2 FROM 1/pT2=1/((1-z)(Q2+SMB))
-        Q2MIN=(1-Z)*(0.5*(SH*(1/Z-1)-SMB)-
-     &     0.5*SQRT((SH*(1/Z-1)-SMB)**2-4*SH*SMB))
-        Q2MAX=(1-Z)*(0.5*(SH*(1/Z-1)-SMB)+
-     &     0.5*SQRT((SH*(1/Z-1)-SMB)**2-4*SH*SMB))
-        ZSMB=(1-Z)*SMB
-      ENDIF
-      Q2MAX=MIN(SQPTH,Q2MAX)
-      Q2VAL=(Q2MIN+ZSMB)*((Q2MAX+ZSMB)/(Q2MIN+ZSMB))**DCPARM(5)-ZSMB
-      BTILDE=BTILDE*LOG((Q2MAX+ZSMB)/(Q2MIN+ZSMB))*(Q2VAL+ZSMB)
-
-      ASRAD=AS
-      Q2RAD=Q2SF
-
-      PGB=0.5D0*(Z**2+(1-Z)**2)
-
-C...CALCULATE MOMENTA OF IN- AND OUTGOING PARTONS
-C   PX,PY,PZ,E,M OF INGOING GLUONS
-      TAUP=X(3-I)*Y
-      SHP=TAUP*S
-      TAUPR=SQRT(TAUP)
-
-      PUP(1,1)=0D0
-      PUP(2,1)=0D0
-      PUP(3,1)=TAUPR*EBMUP(1)
-      PUP(4,1)=TAUPR*EBMUP(1)
-      PUP(5,1)=0D0
-      PUP(1,2)=0D0
-      PUP(2,2)=0D0
-c      PUP(3,2)=-TAUPR*EBMUP(1)
-      PUP(3,2)=(-TAUPR)*EBMUP(1)
-      PUP(4,2)=TAUPR*EBMUP(1)
-      PUP(5,2)=0D0
-
-C   OUTGOING B QUARK
-      P2VAL=SMB
-
-      IF(MINT(35).lt.3)THEN
-        Q2=Q2VAL
-      ELSE
-        Q2=Q2VAL/(1-Z)
-      ENDIF
-      SPTB=Q2-Z*(Q2+P2VAL)*(SH+Q2)/SH
-      SMTB=SPTB+P2VAL
-      PHI(1)=PARU(2)*DCPARM(7)
-      PUP(1,4)=SQRT(SPTB)*COS(PHI(1))
-      PUP(2,4)=SQRT(SPTB)*SIN(PHI(1))
-      PUP(4,4)=(1-Z)*PUP(4,1)+P2VAL/(4*PUP(4,1))
-      PUP(3,4)=(2d0*PUP(4,4)*PUP(4,I)-Q2-P2VAL)/(2d0*PUP(3,I))
-      PUP(5,4)=PMAS(5,1)
-
-C   TOP AND HIGGS: NEED BOOSTS AND ROTATIONS; USE P VECTOR
-C   101 IS GLUON, 102 IS INCOMING B QUARK
-      DO 100 J=1,5
-        P(101,J)=PUP(J,3-I)
- 100  CONTINUE
-      P(102,1)=-PUP(1,4)
-      P(102,2)=-PUP(2,4)
-      P(102,3)=PUP(3,I)-PUP(3,4)
-      P(102,4)=PUP(4,I)-PUP(4,4)
-      P(102,5)=0
-      DO 110 J=1,3
-c        BETA(J)=-(P(101,J)+P(102,J))/(P(101,4)+P(102,4))
-        BETA(J)=(-(P(101,J)+P(102,J)))/(P(101,4)+P(102,4))
-
- 110  CONTINUE
-
-      IF(ABS(P(102,4)**2-SPTB-P(102,3)**2+Q2)
-     &   .GT.1d-6)
-     &   WRITE(*,*)'WARNING! ',
-     &   -(P(102,4)**2-SPTB-P(102,3)**2),' !=',Q2
-
-      K(101,1)=1
-      K(102,1)=1
-C   BOOST TO REST SYSTEM OF GLUON-B QUARK
-      CALL PYROBO(101,102,0D0,0D0,BETA(1),BETA(2),BETA(3))
-
-      ECM=P(101,4)+P(102,4)
-      P(103,5)=PQM3
-      P(104,5)=PQM4
-      IF(ECM.LT.P(103,5)+P(104,5)) THEN
-        WRITE(*,*)'NOT ENOUGH CM ENERGY TO MAKE H+ AND T'
-        MINT(51)=1
-        MATCHIG=0
-        RETURN
-      END IF
-      P(103,4)=0.5*(ECM+(P(103,5)**2-P(104,5)**2)/ECM)
-      P(103,3)=P(101,3)/ABS(P(101,3))*SQRT(P(103,4)**2-P(103,5)**2)
-      P(104,4)=ECM-P(103,4)
-      P(104,3)=-P(103,3)
-      P(103,1)=0
-      P(103,2)=0
-      P(104,1)=0
-      P(104,2)=0
-
-      PHI(2)=PARU(2)*DCPARM(8)
-
-      K(103,1)=1
-      K(104,1)=1
-
-C   ROTATE T-H+ SYSTEM BY THETA,PHI
-      CALL PYROBO(103,104,ACOS(-CTH),PHI(2),0D0,0D0,0D0)
-
-C   BOOST BACK TO GLUONIC CM SYSTEM
-      CALL PYROBO(101,104,0D0,0D0,-BETA(1),-BETA(2),-BETA(3))
-
-      DO 120 J=1,5
-        PUP(J,3)=P(103,J)
-        PUP(J,5)=P(104,J)
- 120  CONTINUE
-
-      K(105,1)=1
-
-      DO 130 J1=1,5
-        DO 140 J2=1,5
-          P(100+J1,J2)=PUP(J2,J1)
- 140    CONTINUE
- 130  CONTINUE
-
-C...Set factorization scale as for 2->3 process
-      IF(MSTP(39).EQ.2) THEN
-        SPTT=P(103,1)**2+P(103,2)**2
-        Q2SF=MAX(SQM3+SPTT,SMTB)
-      ELSE IF(MSTP(39).EQ.3) THEN
-        Q2SF=SQM4
-      ELSE IF(MSTP(39).EQ.5) THEN
-        Q2SF=PMAS(37,1)**2
-      ELSE IF(MSTP(39).EQ.6) THEN
-        Q2SF=0.25*(PQM3+PQM4)**2
-      ELSE IF(MSTP(39).EQ.8) THEN
-        Q2SF=PARP(193)
-      ELSE
-        WRITE(*,*) 'FACTORIZATION SCALE ',MSTP(39), ' NOT SUPPORTED'
-        WRITE(*,*) 'PLEASE USE MSTP(39)=2, 3, 5, 6 or 8'
-        WRITE(*,*) 'EXECUTION STOPPED'
-        STOP
-      END IF
-      SCALUP=SQRT(Q2SF)
-      Q2SF=PARP(34)*Q2SF
-
-C   PDFS (CTEQ5L DEFAULT) 2212=PROTON
-      CALL PYPDFU(IDBMUP(3-I),X(3-I),Q2SF,XPQ(-25,3-I))
-      CALL PYPDFU(IDBMUP(I),Y,Q2RAD,XPQ(-25,I))
-      BTILDE=BTILDE*ASRAD/PARU(2)/(Q2VAL+ZSMB)*
-     &   PGB*XPQ(0,I)
-
-C   SUM QUARK CONTRIBUTIONS
-      XQSUM=XQSUM+XPQ(0,3-I)*BTILDE
-      XQSUM=2*XQSUM
-
-C...XSEC IN PB
-      MATCHIG = 2*SIGHDC*XQSUM*1D9
-
-C   BOOST TO PROTON-PROTON SYSTEM
-      X(I)=Y
-      BETA(3)=(X(1)-X(2))/(X(1)+X(2))
-      CALL PYROBO(101,105,0D0,0D0,0D0,0D0,BETA(3))
-
-      K(101,1)=0
-      K(102,1)=0
-      K(103,1)=0
-      K(104,1)=0
-      K(105,1)=0
-
-      DO 150 J1=1,5
-        DO 160 J2=1,5
-          PUP(J2,J1)=P(100+J1,J2)
- 160    CONTINUE
- 150  CONTINUE
-
-      RETURN
-
-      END
diff --git a/Generators/Matchig_i/src/usematchig.F b/Generators/Matchig_i/src/usematchig.F
deleted file mode 100755
index 8dafa8cddd3ffb347a8eea405b5355303cea99bb..0000000000000000000000000000000000000000
--- a/Generators/Matchig_i/src/usematchig.F
+++ /dev/null
@@ -1,70 +0,0 @@
-*****************************
-      SUBROUTINE USEMATCHIG
-*****************************
-C...DOUBLE PRECISION AND INTEGER DECLARATIONS.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-C...USER PROCESS EVENT COMMON BLOCK.
-#include "GeneratorFortranCommon/hepeup.inc"
-
-      DOUBLE PRECISION MATCHIG
-
-      DIMENSION DCPARM(10)
-
-C      WRITE(6,*) 'MATCHIG_I: In usematchig.F'
-
-C...N:O PARTONS IN THE EVENT
-      NUP=5
-
-C...PARTICLES
-C   WHICH IS QUARK (IQ), WHICH IS ANTIQUARK (7-IQ)
-      IQ=3
-      IF(PYR(0).LT.0.5D0) IQ=4
-
-      IDUP(1)=21
-      IDUP(2)=21
-      IDUP(3)=6
-      IDUP(4)=5
-      IDUP(7-IQ)=-IDUP(7-IQ)
-
-C      IDUP(5)=-ISIGN(1,IDUP(3))*37
-      IDUP(5)=(-ISIGN(1,IDUP(3)))*37
-
-      ISTUP(1)=-1
-      ISTUP(2)=-1
-      ISTUP(3)=1
-      ISTUP(4)=1
-      ISTUP(5)=1
-
-C...PARTICLE MOTHERS
-      DO 10 I=1,5
-        MOTHUP(1,I)=0
-        MOTHUP(2,I)=0
-        SPINUP(I)=9D0
- 10   CONTINUE
-
-C...COLOR FLOW
-      ICOLUP(1,1)=101
-      ICOLUP(2,1)=102
-      ICOLUP(1,2)=102
-      ICOLUP(2,2)=103
-      ICOLUP(1,IQ)=101
-      ICOLUP(2,IQ)=0
-      ICOLUP(1,7-IQ)=0
-      ICOLUP(2,7-IQ)=103
-      ICOLUP(1,5)=0
-      ICOLUP(2,5)=0
-
-      DO 90 J=1,10
-        DCPARM(J)=PYR(0)
- 90   CONTINUE
-
-C...NEGATIVE WEIGHT FOR DOUBLE-COUNTING EVENTS
-      XWGTUP=-MATCHIG(DCPARM,1d0)
-
-C      WRITE(*,*) 'MATCHIG_I: WEIGHT = ',XWGTUP
-
-      RETURN
-      END
-
diff --git a/Generators/McAtNlo_i/CMakeLists.txt b/Generators/McAtNlo_i/CMakeLists.txt
deleted file mode 100644
index c9210a0ff70b6ad41f5e6d570a82d5d2ae42a82c..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/CMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-################################################################################
-# Package: McAtNlo_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( McAtNlo_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs(
-   PRIVATE
-   Generators/GeneratorFortranCommon )
-
-# External dependencies:
-find_package( Herwig )
-find_package( Pythia6 )
-find_package( Tauola )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( McAtNlo_i
-   src/*.F
-   NO_PUBLIC_HEADERS
-   PRIVATE_INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS} ${HERWIG_INCLUDE_DIRS}
-   ${TAUOLA_INCLUDE_DIRS}
-   PRIVATE_LINK_LIBRARIES ${PYTHIA6_LIBRARIES} ${HERWIG_LIBRARIES}
-   ${TAUOLA_LIBRARIES} GeneratorFortranCommonLib )
-
-# Install files from the package:
-atlas_install_python_modules( python/*.py )
-atlas_install_joboptions( share/*.py )
-atlas_install_runtime( share/inparmMcAtNlo.dat share/tt.events )
diff --git a/Generators/McAtNlo_i/doc/McAtNlo.pdf b/Generators/McAtNlo_i/doc/McAtNlo.pdf
deleted file mode 100644
index 0cd4a11a8e569afbab4e2424c05b2dcb83443a3f..0000000000000000000000000000000000000000
Binary files a/Generators/McAtNlo_i/doc/McAtNlo.pdf and /dev/null differ
diff --git a/Generators/McAtNlo_i/doc/McAtNlo.tex b/Generators/McAtNlo_i/doc/McAtNlo.tex
deleted file mode 100644
index f136619f4beaa17fcb4cb4dae36721378bbf9154..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/doc/McAtNlo.tex
+++ /dev/null
@@ -1,57 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\textwidth=6.5in
-\textheight=9.0in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}   
-\def\topfraction{1.}
-\def\textfraction{0.}           
-\begin{document}
-\title{McAtNlo\_i: An interface between MC@NLO and Athena}
-\author{  Ian Hinchliffe (I\_Hinchliffe@lbl.gov), Borut Kerevan (borut.kersevan@cern.ch) and Georgios Stavropoulos (George.Stavropoulos@cern.ch) }
-%\today
-
-\maketitle           
-
-This package runs MC@NLO  from within Athena. \\See the example
-in {\bf McAtNlo\_i/share/jobOptions.McAtNloHerwig.py } which show how to
-read MC@NLO events and hadronize them using Herwig.
-
-Users must first run 
-MC@NLO in standalone mode and make a file of events. An athena job
-then takes these events hadronizes them and passes them down the
-Athena event chain. The events must be made with a version of MC@NLO
-that is compatible, recent versions that support the Les Houches
-interface should be acceptable. The current implementation is compatible
-with the version 3.1 format.
-
-To hadronize {\bf MC@NLO} generated events with Herwig, you only need to run athena with the jobOptions
-file jobOptions.McAtNloHerwig.py by typing in the prompt \\
-{\it athena.py jobOptions.McAtNloHerwig.py}\\
-
-More infomation about MC@NLO here
-
-http://www.hep.phy.cam.ac.uk/theory/webber/MCatNLO/\\
-
-{\large \bf Note on LHApdf stucture functions (release 11.0.0)}
-
-In the case you want to run MC@NLO with the LHAPDF structure functions you need to
-set the autpdf variable to HWLHAPDF and the modpdf one to the LHAPDF set/member index
-(see the documentation of the Generators/Lhapdf\_i package for the LHAPDF set/member
-index settings). Up to v 3.1, MC@NLO is using the PDFLIB and not the LHAPDF one. In this
-case you need to edit the inparmMcAtNlo.dat and the event files and replace the PDFLIB
-structure functions set/member with the LHAPDF one. You can have a look at the
-McAtNlo\_i/share/inparmMcAtNlo.dat and McAtNlo\_i/share/tt.events files, as an example
-of what needs to be changed.\\
-
-{\large \bf Note on the new interface for version 3.3.1}
- 
-There present interface works for MC@NLO up to version 3.3.1 (at least) but \emph{should} be 
-backwards compatible down to version 3.1. All failues \emph{must} be reported (if you want to get
-it fixed, of course).
-
-\end{document}
diff --git a/Generators/McAtNlo_i/python/McAtNlo_iUtils.py b/Generators/McAtNlo_i/python/McAtNlo_iUtils.py
deleted file mode 100644
index 20388b20ed5144f60d4e8c8bb008bc9433dfeeac..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/python/McAtNlo_iUtils.py
+++ /dev/null
@@ -1,297 +0,0 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
-
-# This utility is designed to be plugged in production 
-# of MC@NLO evgen samples. It helps to skip standalone  
-# preparation of MC@NLO input samples rather they are generated 
-# on the fly using the methods of the utility
-# 
-# @author Gia Khoriauli <gia@mail.cern.ch>, October 2012
-
-import os
-import string
-
-from AthenaCommon import Logging
-
-herwigversion=''
-mcatnloversion=''
-
-
-def fixparrecord ( proc = 105200 , evprefix='ttbar' ) :
-   """
-   Performes all process depended fixes of records in a .dat file.
-   Production responsibles of samples should provide corresponding fixes if needed. 
-   """
-   log = Logging.logging.getLogger('McAtNlo_i.McAtNlo_iUtils.fixparrecord')
-   
-   if proc==105200 :
-      log.debug('Nothing to do with the .dat file for DIS 105200')
-
-
-
-def fixeventrecord ( proc = 105200 , evprefix='ttbar' ) :
-   """
-   Performes all process depended fixes of records in a .events file.
-   Production responsibles of samples should provide corresponding fixes if needed. 
-   """
-   log = Logging.logging.getLogger('McAtNlo_i.McAtNlo_iUtils.fixeventrecord')
-   
-   if proc==105200 :
-      if os.path.isfile(evprefix+'.events') :
-         log.debug(evprefix+'.events exist and is going to be modified')  
-         os.system('sed  -e \'s/0.8040\([DEe]\)+02\ /8.0399\\1+01\ /1\' -i '+evprefix+'.events')
-      else :
-         log.warning(evprefix+'.events DOES NOT exist')  
-
-
-
-def configmcatnlo ( pardict={}, outfilename='MCatNLO_template.inputs', infilename='MCatNLO.inputs' ) :
-   """
-   Initializes a sub-set of MC@NLO parameters from the provided list of parameters:values. Remining parameters will keep the default values.
-   """
-   log = Logging.logging.getLogger('McAtNlo_i.McAtNlo_iUtils.configmcatnlo')
-   
-   if not os.path.isfile(infilename) :
-      log.warning('Configuration file '+ infilename +' is not found')  
-      return False
-   
-   log.info('The following parameters of MC@NLO will be set to the provided values: '+ str(pardict))  
- 
-   #create a new mc@nlo script with modifed parameter values out of the original script 
-   fiout = open(outfilename, 'w')
-   fi = open(infilename, 'r')
-   
-   line=fi.readline()
-   while not line=='' : 
-      log.debug(line)  
-      
-      changepar=False;
-      for par in pardict.keys() :
-         indx=line.find(par)
-         if indx == 0 :
-            changepar=True 
-            lineparts=line.split("=")
-            linenew=lineparts[0]+'='+str(pardict[par])+'\n'
-            log.debug(' ---------->  '+ linenew)  
-            fiout.write(linenew)
-            break;
-
-      if not changepar :
-         fiout.write(line)
-      
-      line=fi.readline()
-
-   fi.close()
-   fiout.close()
-   return True
-
-
-
-def generateinput (processid=105200, numofevents=13000, indxofoutfile=1, pardict={}) :
-   """
-   This method generates mc@nlo input of events for further processing of these events
-   under the Athena framework.
-   """ 
-   log = Logging.logging.getLogger('McAtNlo_i.McAtNlo_iUtils.generateinput')
-   log.info('Start MC@NLO event generation of the sample with DIS='+str(processid)+'. Number of generated events='+str(numofevents))
-
-   env=os.environ
-   envkeys=env.keys()
-
- 
-   # ----- CMT ENV ---->
-   CMTCONFIG=''
-   if 'CMTCONFIG' in envkeys :
-      CMTCONFIG=env['CMTCONFIG']
-      log.debug('CMTCONFIG: '+CMTCONFIG)  
-   else:
-      log.fatal('CMTCONFIG is not determined. Try to setup Athena first and run again. Now, retreat.')  
-      quit()
-   
-   CMTPROJECTPATH=''
-   if 'CMTPROJECTPATH' in envkeys :
-      CMTPROJECTPATH=env['CMTPROJECTPATH']
-      CMTPROJECTPATH=string.split(CMTPROJECTPATH,':')
-      CMTPROJECTPATH=CMTPROJECTPATH[0]
-      log.debug('CMTPROJECTPATH: '+CMTCONFIG)  
-   else:
-      log.fatal('CMTPROJECTPATH is not determined. Try to setup Athena first and run again. Now, retreat.')  
-      quit()
-   # <---- CMT ENV -----
-   
-   
-   # ----- PDF ---->
-   LHAPATH=''
-   if 'LHAPATH' in envkeys :
-      LHAPATH=env['LHAPATH']
-      log.debug('LHAPATH: '+LHAPATH)  
-   else:
-      log.fatal('LHAPATH is not determined. Try to setup Athena first and run again. Now, retreat.')  
-      quit()
-   
-   LHAPDFSET=LHAPATH
-   LHAPATH=LHAPATH.replace('/share/PDFsets','')
-   LHAVERSION=string.split(LHAPATH,"/")
-   LHAVERSION=LHAVERSION[-1]
-   log.debug('LHAVERSION: '+LHAVERSION)  
-   
-   LHAPATH=LHAPATH+'/'+CMTCONFIG
-   if not os.path.isdir(LHAPATH) or not os.path.isdir(LHAPDFSET) :
-      log.fatal('LHAPATH (or LHAPDFSET) points to a wrong location ('+LHAPATH+'). Fix this and run again. Now, retreat.')  
-      quit()
-   #/cvmfs/atlas.cern.ch/repo/sw/software/i686-slc5-gcc43-opt/17.2.2/sw/lcg/external/MCGenerators_hepmc2.06.05/lhapdf/5.8.5/i686-slc5-gcc43-opt/lib/
-   # <---- PDF -----
-   
-   
-   # ----- GENERATORS ---->
-   HepMCVERS='' #'2.06.05'
-   if 'HepMCVERS' in envkeys :
-      HepMCVERS=env['HepMCVERS'].rstrip()
-      log.debug('HepMCVERS: '+HepMCVERS)  
-   else :
-      log.fatal('HepMCVERS is not determined. Try to setup Athena first and run again. Now, retreat.')
-      quit()
- 
-   herwig=CMTPROJECTPATH + '/sw/lcg/external/MCGenerators_hepmc'+HepMCVERS+'/herwig/' + herwigversion + '/' + CMTCONFIG  
-   if not os.path.isdir(herwig) :
-      log.fatal('herwig path (' + herwig + ') points to a wrong location. Fix this and run again. Now, retreat.')  
-      quit()
-   else :
-      log.debug('herwig: '+herwig)
-
-   #/afs/cern.ch/sw/lcg/external/MCGenerators_hepmc2.06.05/mcatnlo/3.42/i686-slc5-gcc43-opt
-   #In order to run on the GRID the mc@nlo path has to be this:
-   #	/cvmfs/atlas.cern.ch/repo/sw/software/../../sw/lcg/external/MCGenerators_hepmc2.06.05/..
-   mcatnlo='/afs/cern.ch/sw/lcg/external/MCGenerators_hepmc'+HepMCVERS+'/mcatnlo/'+ mcatnloversion
-
-   if not os.path.isdir(mcatnlo) :
-      log.fatal('mcatnlo path (' + mcatnlo + ') points to a wrong location. Fix this and run again. Now, retreat.')  
-      quit()
-   else :
-      log.debug('mcatnlo: '+mcatnlo)
-   
-   mcatnlolib=mcatnlo + '/' + CMTCONFIG
-   if not os.path.isdir(mcatnlolib) :
-      #lib can be installed directly in the head directory
-      mcatnlolib=mcatnlo
-
-   if not os.path.isdir(mcatnlolib+'/lib/archive') :
-      log.fatal('mcatnlo library archive (' + mcatnlolib + ') doesn\'t exist. Fix this and run again. Now, retreat.')  
-      quit()
-   else :
-      log.debug('mcatnlolib: '+mcatnlolib)
-   
-   mcatnloworkdir=''
-   if not os.path.isdir(mcatnlo+'/share/examples') :
-      if not os.path.isdir(mcatnlo+'/examples') :
-         log.fatal('Neither mcatnlo/share/examples nor mcatnlo/examples directory exist. Try to fix this or use other mc@nlo version and run again. Now, retreat.')  
-         quit()
-      else :
-         mcatnloworkdir=mcatnlo+'/examples'
-   else :
-      mcatnloworkdir=mcatnlo+'/share/examples'
-   # <---- GENERATORS -----
-   
-   
-   # ----- CONFIGURE MC@NLO ---->
-   os.system('cp -r '+mcatnloworkdir+' .')
-   os.chdir('./examples')
-   if os.path.isdir('./Linux') :
-      os.system('rm -rf ./Linux')
-   os.system('pwd')
-   os.system('ls -l')
-
-   #mc@nlo fails if the Athena setup is 32 bit but the host machine has the 64 bit architecture. to avoid this the mc@nlo config file has to be modified.
-   #mc@nlo Makefile has to be modified as well in order to include FFLAGS but this has to be done after the configuration script is executed. 
-   #  this fix should be provided by the mc@nlo side. for now, do this myself.
-   archtype = CMTCONFIG.split("-")[0].rstrip()
-   if archtype.find('i686')>-1 :
-      print 'archtype  =  ', archtype
-      log.info('Run is with the 32-bit setup of Athena. Configure mc@nlo with the -m32 option for a Fortran compiler')
-      #os.system('sed  -e \'s/FFLAGS_OPT="-O2"/FFLAGS_OPT="-O2 -m32"/1\' -i configure') 
-      os.system(r"sed  -e 's/FFLAGS_OPT=\"-O2\"/FFLAGS_OPT=\"-O2 -m32\"/1' -i configure") 
-
-   os.system( './configure --lcgplatform='+CMTCONFIG+'  --with-herwigversion='+herwigversion+'  --with-herwig='+herwig+' --with-mcatnlo='+mcatnlolib+'  --with-lhapdfversion='+LHAVERSION+'  --with-lhapdf='+LHAPATH+'  --with-lhapdfsets='+LHAPDFSET )
-   #os.system( './configure --lcgplatform='+CMTCONFIG+'  --with-herwigversion='+herwigversion+'  --with-herwig='+herwig+' --with-mcatnloversion='+mcatnloversion+'  --with-lhapdfversion='+LHAVERSION+'  --with-lhapdf='+LHAPATH+'  --with-lhapdfsets='+LHAPDFSET )
-
-   if archtype.find('i686')>-1 :
-      #  these fixes should be provided by the mc@nlo side. for now, do this myself.
-      #os.system('sed  -e \'s/$(FC)\ tmpmain.f\ -o/$(FC)\ tmpmain.f\ $(FFLAGS)\ -o/g\' -i Makefile') 
-      os.system(r"sed  -e 's/$(FC) tmpmain.f -o/$(FC) tmpmain.f $(FFLAGS) -o/g' -i Makefile") 
-
-   # set run configuration of mc@nlo parameters
-   if not configmcatnlo(pardict, 'MCatNLO_template.inputs', 'MCatNLO.inputs') :
-      log.fatal('Was not able to setup MC@NLO parameters. Retreat.')
-      quit()
-   
-   #build a random number seed if the corresponding MC@NLO parameter is initialized with a string value 
-   if 'RNDEVSEED' in pardict.keys() :
-      tmprndseed = pardict['RNDEVSEED']
-      if type( tmprndseed ) == str :
-         rndseed = processid + numofevents * (indxofoutfile-1)
-         log.debug('RNDEVSEED = ' + str(rndseed))
-         os.system('sed  -e s/RNDEVSEED='+tmprndseed+'/RNDEVSEED='+str(rndseed)+'/1   ./MCatNLO_template.inputs   >  ./MCatNLO_'+str(processid)+'.inputs')
-      else :
-         os.system('cp ./MCatNLO_template.inputs   ./MCatNLO_'+str(processid)+'.inputs')
-      os.system( 'chmod +x ./MCatNLO_'+str(processid)+'.inputs' )
-      os.system( 'rm -f ./MCatNLO_template.inputs' )
-   else :
-      log.warning('Warning: initial random seed for event generation is not updated! This will lead to duplicated events.')
-      log.warning('Include \'RNDEVSEED\':\'somestring\' or \'RNDEVSEED\':N in parameter dictionary, where N is an intager number.')
-   # <---- CONFIGURE MC@NLO -----
-   
-   
-   # ----- RUN MC@NLO  &  PREPARE ITS OUTPUT FOR FURTHER PROCESSING  ---->
-   # generate events
-   os.system( 'source ./MCatNLO_'+str(processid)+'.inputs' )
-
-   #safety checks 
-   fi=open('./MCatNLO_'+str(processid)+'.inputs')
-   if not fi :
-      log.fatal('Can\'t open ./MCatNLO_'+str(processid)+'.inputs. Retreat.')
-      quit()
-    
-   parlist=['EVPREFIX', 'EXEPREFIX']
-   evprefix=''
-   exeprefix=''
-   parcount=0
-   line=fi.readline()
-   while not line=='' : 
-      for par in parlist :
-         indx=line.find(par)
-         if indx == 0 :
-            if par=='EVPREFIX' :
-               evprefix=line.split("=")[1].rstrip()
-               parcount+=1
-            elif par=='EXEPREFIX' :
-               exeprefix=line.split("=")[1].rstrip()
-               parcount+=1
-      if parcount==len(parlist) :
-         break 
-      line=fi.readline()
- 
-   if not os.path.isdir('./Linux') :
-      log.fatal('Linux directory was not created. Retreat.')  
-      quit()
-   os.chdir('./Linux')
-   if not os.path.isfile(evprefix+'.events') :
-      log.fatal(evprefix+'.events file was not created. Retreat.')  
-      quit()
-   if not os.path.isfile(exeprefix+'MCinput') :
-      log.fatal(exeprefix+'MCinput file was not created. Retreat.')  
-      quit()
-   
-   #apply the process dependent correction to the .events and .dat files if any
-   fixeventrecord( processid, evprefix )
-   fixparrecord(   processid, evprefix )
-   
-   #prepare setup for Athena run
-   os.chdir('../../')
-   os.system('pwd')
-   os.system( 'ln -sf ./examples/Linux/'+exeprefix+'MCinput '+evprefix+'._00001.dat' )
-   os.system( 'ln -sf ./examples/Linux/'+evprefix+'.events ' +evprefix+'._00001.events' )
-   #os.system( 'sed  -e \'s/'+evprefix+'.events'+'/events.lhe/1\' -i '+evprefix+'._00001.dat')
-   os.system( r"sed  -e 's/"+evprefix+".events"+"/events.lhe/1' -i "+evprefix+"._00001.dat")
-   # <---- RUN MC@NLO  &  PREPARE ITS OUTPUT FOR FURTHER PROCESSING -----
-
-
diff --git a/Generators/McAtNlo_i/python/__init__.py b/Generators/McAtNlo_i/python/__init__.py
deleted file mode 100644
index 74583d364ec2ca794156596c7254d9b234a940c6..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/python/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
diff --git a/Generators/McAtNlo_i/share/McAtNlo_jobOptions.py b/Generators/McAtNlo_i/share/McAtNlo_jobOptions.py
deleted file mode 100644
index 63e5b97823cf8621308cae3299a34ca42ff36bfb..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/share/McAtNlo_jobOptions.py
+++ /dev/null
@@ -1,54 +0,0 @@
-###############################################################
-# Job options fragment which runs only with Generate_trf.py
-#==============================================================
-
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-runnumber=-1
-maxevents=-1
-randomseed=-1
-if hasattr(runArgs, 'runNumber'):
-   runnumber=runArgs.runNumber
-if hasattr(runArgs, 'maxEvents'):
-   maxevents=runArgs.maxEvents
-if hasattr(runArgs, "randomSeed"):
-   randomseed=runArgs.randomSeed
-
-#for every sample the corresponding production jobOptions defines the string, which has to be included in the name of input files.
-#the input file names are checked by evgenConfig.inputfilecheck for the existence of the mandatory string
-prefix='ttbar'  # user depended setting 
-#rough efficiency of the Athena event filters corresponding to the sample being generated has to be specified
-#0.5 is approximate filter efficiency in production of the 105200 sample
-evgeneff=0.5  # user depended setting
-
-if maxevents > -1 :
-   maxevents=int(maxevents/evgeneff)
-elif 'EvtMax' in locals()  and EvtMax>-1 :
-   #e.g., Generate_trf.py -c "EvtMax=500" ...
-   maxevents=int(EvtMax/evgeneff)
-else:
-   print 'Number of events to be generated was not determined. Retreat.'
-   quit()
-
-# debug
-#print 'runnumber=',runnumber, 'maxevents=',maxevents, 'randomseed=',randomseed
-
-#dictionary of MC@NLO parameters, which have to be changed to the provided values for generation of events
-pardict={ 'ECM':'8000', 'HVQMASS':'172.5', 'TWIDTH':'1.32', 'WMASS':'80.399', 'WWIDTH':'2.085', 'ZMASS':'91.1876', 'ZWIDTH':'2.4952', 'BRTOPTOLEP':'0.108', 'BRTOPTOHAD':'0.338', 'BRWTOLEP':'0.108', 'BRWTOHAD':'0.338', 'IPROC':'-1706', 'IL1CODE':'0', 'IL2CODE':'0', 'TOPDECAY':'ALL', 'PDFSET':'10800', 'HERPDF':'EXTPDF', 'FPREFIX':prefix, 'EVPREFIX':prefix, 'EXEPREFIX':prefix, 'NEVENTS':'1000', 'RNDEVSEED':randomseed }  # user depended settings
-
-import McAtNlo_i.McAtNlo_iUtils
-McAtNlo_i.McAtNlo_iUtils.mcatnloversion='3.42'
-McAtNlo_i.McAtNlo_iUtils.herwigversion='6.520.2'
-McAtNlo_i.McAtNlo_iUtils.generateinput(runnumber, maxevents, 1, pardict)
-
-#initialize the inputGeneratorFile option in order to link the on-the-fly generated input files to the default input files.
-runArgs.inputGeneratorFile=prefix+'._00001'
-
-#run example.
-#remark: the empty argument inputGeneratorFile=NONE has to be included in the command string. do not omit it.
-#
-# Generate_trf.py  -t --omitvalidation=testEventMinMax preInclude=McAtNlo_jobOptions.py randomSeed=1 runNumber=105200 maxEvents=100 /
-#                 jobConfig=MC12.105200.McAtNloJimmy_CT10_ttbar_LeptonFilter.py firstEvent=1 ecmEnergy=8000 outputEVNTFile=test.pool.root inputGeneratorFile=NONE
-
-
diff --git a/Generators/McAtNlo_i/share/create_inparmMcAtNlo.py b/Generators/McAtNlo_i/share/create_inparmMcAtNlo.py
deleted file mode 100644
index 95dc4a6a476c6ffbffc686155f91cbc624879a65..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/share/create_inparmMcAtNlo.py
+++ /dev/null
@@ -1,187 +0,0 @@
-#
-# collect parameter from McAtNlo parameter file 
-# and set the values for the inout file of the interface
-# C. Ay  ... originally conversion script from A.Bocci (package Baur_i)
-#
-
-import os,string,sys,time,glob,linecache
-def usage():
-    print "Usage: %s <eventfile>" % (sys.argv[0])
-
-def checkProcess(string1):
-    foundProcess=False
-
-    if not string1.split()[0].isdigit():
-        return foundProcess
-
-    string2=string1.replace("/"," ")
-    string3=string2.replace("="," ")
-    string4=string3.rpartition("-->")
-    for i in string4[2].split():
-        if string4[0].find(i)>=0 and not foundProcess:
-            foundProcess=True
-            break
-    return foundProcess
-
-if len(sys.argv)==1:
-    usage()
-    sys.exit()
-
-if os.path.exists(sys.argv[1]):
-    eventfile = sys.argv[1]
-
-#------------------------------------------------------------------------------
-
-outputfile = 'inparmMcAtNlo.dat'
-
-#------------------------------------------------------------------------------
-
-inf = open(eventfile,"r")
-
-#-------------------------------------------------------------------------
-# Collect the Parameter from McAtNlo calculation
-firstLine=False
-
-for line in inf:
-
-    if firstLine:
-        break
-
-    pos_excla=line.find("-->")
-
-    if pos_excla<0:
-        firstLine=True
-        evtnumber=line.split()[0]
-
-    if checkProcess(line):
-        process=line.split()[0]
-        process_label=line.rpartition("-->")
-        
-    if line.find("CM energy",pos_excla)>=0:
-        energy=line.split()
-
-    if line.find("colliding",pos_excla)>=0 and line.find("particles",pos_excla)>=0:
-        particles=line.split()
-
-    if line.find("Lambda_5",pos_excla)>=0 and line.find("scheme",pos_excla)>=0:
-        lambda5_scheme=line.split()
-
-    if line.find("PDF group",pos_excla)>=0 and line.find("id number",pos_excla)>=0:
-        pdfgroup_id=line.split()
-
-    if line.find("M_top",pos_excla)>=0 and line.find("Gamma_top",pos_excla)>=0:
-        Top_mass_width=line.split()
-
-    if line.find("M_W",pos_excla)>=0 and line.find("Gamma_W",pos_excla)>=0:
-        W_mass_width=line.split()
-
-    if line.find("M_Z",pos_excla)>=0 and line.find("Gamma_Z",pos_excla)>=0:
-        Z_mass_width=line.split()
-
-    if line.find("M_V",pos_excla)>=0 and line.find("Ga_V",pos_excla)>=0 and line.find("GammaX(V)",pos_excla)>=0:
-        V_mass_width=line.split()
-
-    if line.find("M_H",pos_excla)>=0 and line.find("Ga_H",pos_excla)>=0 and line.find("GammaX(H)",pos_excla)>=0:
-        H_mass_width=line.split()
-
-    if line.find("IL1",pos_excla)>=0 and line.find("IL2",pos_excla)>=0:
-        decay=line.split()
-
-    if line.find("IV",pos_excla)>=0 and line.find("IL",pos_excla)>=0:
-        decay=line.split()
-
-    if line.find("quark",pos_excla)>=0 and line.find("gluon",pos_excla)>=0 and line.find("masses",pos_excla)>=0:
-        massqg=line.split()
-
-    if line.find("Format of v3.1 and higher",pos_excla)>=0:
-        format=line.split()[0]
-
-inf.close()
-
-# check if Z mass and width is set
-try:
-    Z_mass_width
-except NameError:
-    print "\nZ mass and width not set in eventfile! ... use default!"
-    displayZmass=False
-else:
-    displayZmass=True
-
-# check if W mass and width is set
-try:
-    W_mass_width
-except NameError:
-    print "W mass and width not set in eventfile! ... use default!"
-    displayWmass=False
-else:
-    displayWmass=True
-
-# check if H mass and width is set
-try:
-    H_mass_width
-except NameError:
-    print "Higgs mass and width not set in eventfile! ... use default!"
-    displayHmass=False
-else:
-    displayHmass=True
-
-# check if Top mass and width is set
-displayTopmass=True
-try:
-    Top_mass_width
-except NameError:
-    print "Top mass and width not set in eventfile! ... use default!"
-    Top_mass_width = list()
-    Top_mass_width.append("0.1725E+03")
-    Top_mass_width.append("0.1700E+01")
-    displayTopmass=False
-
-outf = open(outputfile,"w")
-outf.write(" "+"\'"+eventfile+"\'"+"        ! event file\n")
-outf.write(" "+evtnumber+"        ! number of events\n")
-outf.write(" 1                        ! 0->Herwig PDFs, 1 otherwise\n")
-outf.write(" "+"\'"+particles[0]+"\'"+" "+"\'"+particles[1]+"\'"+"        ! hadron types\n")
-outf.write(" "+str(float(energy[0])/float(2))+" "+str(float(energy[0])/float(2))+"        ! beam momenta\n")
-outf.write(" -"+process+"        ! "+process_label[2])
-outf.write(" "+"\'"+pdfgroup_id[0]+"\'"+"        ! PDF group (1)\n")
-outf.write(" "+pdfgroup_id[1]+"        ! PDF id number (1)\n")
-outf.write(" "+"\'"+pdfgroup_id[0]+"\'"+"        ! PDF group (2)\n")
-outf.write(" "+pdfgroup_id[1]+"        ! PDF id number (2)\n")
-if float(lambda5_scheme[0]) == 0.2260E+00:
-    lambda5_scheme[0] = "-1"
-outf.write(" "+lambda5_scheme[0]+"        ! Lambda_5, < 0 for default\n")
-outf.write(" "+Top_mass_width[0]+"        ! M_Q\n")
-outf.write(" "+massqg[0]+" "+massqg[1]+" "+massqg[2]+" "+massqg[3]+" "+massqg[4]+" "+massqg[5]+"        ! quark and gluon masses\n")
-outf.close()
-
-
-print
-print "Some Parameters also need to be set in the jobOption file:"
-print "..."
-if displayTopmass:
-    print "Herwig.HerwigCommand += [ \"rmass 6 "+Top_mass_width[0]+"\"]"
-if displayWmass:
-    print "Herwig.HerwigCommand += [ \"rmass 198 "+W_mass_width[0]+"\"]"
-    print "Herwig.HerwigCommand += [ \"rmass 199 "+W_mass_width[0]+"\"]"
-    print "Herwig.HerwigCommand += [ \"gamw "+W_mass_width[1]+"\"]"
-if displayZmass:
-    print "Herwig.HerwigCommand += [ \"rmass 200 "+Z_mass_width[0]+"\"]"
-    print "Herwig.HerwigCommand += [ \"gamz "+Z_mass_width[1]+"\"]"
-if displayHmass:
-    print "Herwig.HerwigCommand += [ \"rmass 201 "+H_mass_width[0]+"\"]"
-    print "Herwig.HerwigCommand += [ \"gamh "+H_mass_width[1]+"\"]"
-print "Herwig.HerwigCommand += [ \"modpdf "+pdfgroup_id[1]+"\"]"
-print "Herwig.HerwigCommand += [ \"autpdf "+pdfgroup_id[0]+"\"]"
-print "..."
-
-    
-
-
-
-
-
-
-    
-
-
-
diff --git a/Generators/McAtNlo_i/share/inparmMcAtNlo-3.3.dat b/Generators/McAtNlo_i/share/inparmMcAtNlo-3.3.dat
deleted file mode 100644
index f0cdbf63dc1f3332558935a4ed20365d6d151732..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/share/inparmMcAtNlo-3.3.dat
+++ /dev/null
@@ -1,13 +0,0 @@
- 'tt-3.3.events'        ! event file
-  500                        ! number of events
-  1                        ! 0->Herwig PDFs, 1 otherwise
- 'P'  'P'               ! hadron types
-  7000.00 7000.00               ! beam momenta
-  -1706                          ! -1705/1706=bb/tt
-  'LHAPDF'                      ! PDF group (1)
-  29003                       ! PDF id number (1).
-  'LHAPDF'                      ! PDF group (2).
-  29003                       ! PDF id number (2).
-  -1                     ! Lambda_5, < 0 for default
-  174.5 80.42                 ! M_t, M_W
-  0.32 0.32 0.5 1.55 4.95 0.75 ! quark and gluon masses
diff --git a/Generators/McAtNlo_i/share/inparmMcAtNlo.dat b/Generators/McAtNlo_i/share/inparmMcAtNlo.dat
deleted file mode 100644
index 2a6297bcdd7683100b69c1b5e217ea6f1194f3da..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/share/inparmMcAtNlo.dat
+++ /dev/null
@@ -1,13 +0,0 @@
- 'tt.events'        ! event file
-  500                        ! number of events
-  1                        ! 0->Herwig PDFs, 1 otherwise
- 'P'  'PBAR'               ! hadron types
-  7000.00 7000.00               ! beam momenta
-  -1706                          ! -1705/1706=bb/tt
- 'HWLHAPDF'                      ! PDF group (1). It was MRS in the original ttMCinput file
-  29003                       ! PDF id number (1). It was 105 in the original ttMCinput file
- 'HWLHAPDF'                      ! PDF group (2). It was MRS in the original ttMCinput file
-  29003                       ! PDF id number (2). It was 105 in the original ttMCinput file
-  -1                     ! Lambda_5, < 0 for default
-  173                        ! M_Q
-  0.32 0.32 0.5 1.5 5.0 0.75 ! quark and gluon masses
diff --git a/Generators/McAtNlo_i/share/jobOptions.McAtNloHerwig.py b/Generators/McAtNlo_i/share/jobOptions.McAtNloHerwig.py
deleted file mode 100644
index 1f8b830d0845555c05c496a139c781355b3b5493..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/share/jobOptions.McAtNloHerwig.py
+++ /dev/null
@@ -1,78 +0,0 @@
-###############################################################
-#
-# Job options file
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.Logging import logging
-
-evgenLog = logging.getLogger('csc_evgen')
-
-# special setup for event generation
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" )
-
-# remember output level I set
-
-evgenMsgLevel = INFO
-
-# other includes needed by the physics file
-include( "PartPropSvc/PartPropSvc.py" )
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-svcMgr += AtRndmGenSvc()
-
-# get a handle on topalg
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-svcMgr.MessageSvc.OutputLevel = evgenMsgLevel
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-atRndmGenSvc = svcMgr.AtRndmGenSvc
-AtRndmGenSvc.Seeds = ["HERWIG 330020611 841000366", "HERWIG_INIT 824021 3247532"]
-
-from Herwig_i.Herwig_iConf import Herwig
-topAlg += Herwig()
-# ... Main generator : Herwig
-Herwig = topAlg.Herwig
-Herwig.HerwigCommand = [ "iproc mcatnlo",
-                       "modpdf 10550","autpdf HWLHAPDF",
-                       "jmueo 1",
-                        "msflag 1",
-                       "jmbug 0",
-                       "ispac 2",
-                       "qspac 2.5", 
-                       "ptrms 1.2", 
-                       "ptjim 3.13",
-                       "jmrad 73 1.82",
-                       "prsof 0",
-                       "clpow 1.20",
-                       "pltcut 0.0000000000333",
-                       "ptmin 10.",
-                       "mixing 1",        
-                       "maxpr 5"  ]
-
-from TruthExamples.TruthExamplesConf import PrintMC
-topAlg += PrintMC()
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-
-#---------------------------------------------------------------
-# Ntuple service output
-#---------------------------------------------------------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/McAtNlo_i/src/checkformat.F b/Generators/McAtNlo_i/src/checkformat.F
deleted file mode 100644
index dd7966cfde58405b7a678dbd9e0e723afba7b4af..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/src/checkformat.F
+++ /dev/null
@@ -1,128 +0,0 @@
-      FUNCTION CHECKFORMAT(IUNIT, JP)
-      IMPLICIT NONE
-C     Returns true if MC@NLO 4.0 format with x1,x2,qscale is detected,
-C        false otherwise.
-C     Checks records with momenta for MC@NLO <4.0 
-      INTEGER CHECKFORMAT
-      INTEGER CF
-      INTEGER IUNIT 
-      INTEGER JP
-      LOGICAL WZ,WW
-
-      INTEGER ITMP,IOS,I,J,CNT,NP
-      DOUBLE PRECISION DTMP
-      CHARACTER * 200 BUFFER
-
-      INTEGER MAXNP                    
-      PARAMETER(MAXNP=9)                   
-      DOUBLE PRECISION MPUP(4,MAXNP)
-      
-      IF(JP.EQ.2870.OR.JP.EQ.2880)THEN
-         WZ=.TRUE.
-         WW=.FALSE.
-C         print *, "WZ mode"
-      ELSEIF (JP.EQ.2850)THEN
-         WW=.TRUE.
-         WZ=.FALSE.
-      ELSE
-         WZ=.FALSE.
-         WW=.FALSE.
-C         print *, "not WZ mode"
-      ENDIF
-      
-      CNT=0
-
-      CHECKFORMAT = 0 
-
-      CNT=CNT+1
-      READ(IUNIT,921) ITMP,ITMP,NP
-      CNT=CNT+1
-      READ(IUNIT,922) (ITMP,I=1,NP)
-      CNT=CNT+1
-      READ(IUNIT,923) DTMP,DTMP
-      CNT=CNT+1
-      READ(IUNIT,924) ((MPUP(J,I),J=1,4),I=1,NP)
-
-      
-C     -  EOF for 1 event record ( MC@NLO ver <4.0  )
-      CNT=CNT+1
-      READ(UNIT=IUNIT,END=913, IOSTAT=IOS, FMT=926) BUFFER
-
-
-C     -  EOF for 1 event record ( MC@NLO ver >=4.0  )
-      CNT=CNT+1
-      READ(UNIT=IUNIT,END=911, IOSTAT=IOS, FMT=926) BUFFER
-
-
-      CNT=CNT+1
-      CF=-1
-      IF(WZ.OR. WW) THEN
-         CF=0
-         READ(UNIT=IUNIT,END=910, IOSTAT=IOS, FMT=921)  ITMP,ITMP,NP
-         CF=-1 
- 910    CONTINUE      
-      ELSE
-         READ(UNIT=IUNIT, IOSTAT=IOS, FMT=926) BUFFER
-         NP=2
-      ENDIF
-
-C     - MPUP(J,I) set to 0. -- to be on save side        
-      
-      DO J=3,4      
-         DO I=1,MAXNP      
-            MPUP(J,I)=0.D0            
-         ENDDO
-      ENDDO   
- 
-      IF(WZ) THEN
-         CHECKFORMAT = 2 
-      ELSEIF (WW) THEN
-         CHECKFORMAT = 3
-      ELSE
-         CHECKFORMAT = 1 
-      ENDIF
-
-     
-C     -  For MC@NLO ver <4.0 it is a line with momenta
-      CNT=CNT+1;
-      READ(UNIT=IUNIT,ERR=913,IOSTAT=IOS,FMT=924)
-     &     ((MPUP(J,I),J=1,4),I=1,MAXNP) 
-      
-
- 911  CONTINUE
-
-C     -  Checks if there are more than two non-zero variables 
-      IF(CF.LT.0) THEN
-         IF(IOS.GT.-1) THEN
-            DTMP=1.0D-30
-            DO J=1,4      
-               DO I=1,MAXNP      
-                  IF(NP*(I-1)+J>NP.AND.DABS(MPUP(J,I)).GT.DTMP) THEN
-                     CHECKFORMAT = 0 
-                  ENDIF
-               ENDDO
-            ENDDO   
-         ENDIF
-      ELSE 
-         CHECKFORMAT=0
-      ENDIF
-C     -   Going back with reading
-
-
- 913  DO I=1,CNT
-         BACKSPACE(IUNIT)
-      ENDDO
-      
-C  -  Formats
- 920  FORMAT(1X,I8)
-
- 921  FORMAT(1X,I3,2(1X,I2))
- 922  FORMAT(9(1X,I3))
- 923  FORMAT(2(1X,D14.8))
- 924  FORMAT(36(1X,D14.8))
- 925  FORMAT(3(1X,D14.8))
-
- 926  FORMAT(1X,A)
-
-      RETURN
-      END
diff --git a/Generators/McAtNlo_i/src/filever.F b/Generators/McAtNlo_i/src/filever.F
deleted file mode 100644
index 673d09c3432c49fb1caae03f1dacb9eff87dfa5a..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/src/filever.F
+++ /dev/null
@@ -1,180 +0,0 @@
-      FUNCTION FILEVER(IUNIT, JP)
-
-      IMPLICIT NONE
-      INTEGER FILEVER
-
-      INTEGER IVERSION
-
-      INTEGER IUNIT
-      INTEGER JP, IVER, I, J, CNT, IOS 
-
-      INTEGER NP, IERR1, IERR2
-      LOGICAL WZ,WW
-
-      INTEGER MAXNP
-      PARAMETER(MAXNP=9)
-      DOUBLE PRECISION MPUP(4,MAXNP)
-      
-      DOUBLE PRECISION DTMP
-
-      DOUBLE PRECISION DX1, DX2, DQSCALE
-      INTEGER IDX1, IDX2, IDQSCALE
-      
-      DOUBLE PRECISION PID1, PID2, PID3 
-      INTEGER IPID1, IPID2, IPID3 
-      
-      INTEGER ITMP, ITMP1, ITMP2
-
-      ierr1 = 3
-      ierr2 = 3
-      
-      IF(JP.EQ.2870.OR.JP.EQ.2880)THEN
-         WZ=.TRUE.
-         WW=.FALSE.
-         print *, "WZ mode"
-      ELSEIF (JP.EQ.2850)THEN
-         WW=.TRUE.
-         WZ=.FALSE.
-      ELSE
-         WZ=.FALSE.
-         WW=.FALSE.
-         print *, "not WZ mode"
-      ENDIF
-      
-      FILEVER = 0 
-
-      CNT=0
-      
-      CNT=CNT+1
-      READ(IUNIT,921) ITMP1, ITMP2, NP
-      
-      CNT=CNT+1
-      READ(IUNIT,922) (ITMP,I=1,NP)
-     
-c cross-section?       
-      CNT=CNT+1
-      READ(IUNIT,923) DTMP
-
-c 4-vectors?      
-      CNT=CNT+1
-      READ(IUNIT,924) ((MPUP(J,I),J=1,4),I=1,NP)
-
-c we assume integers first
-      CNT=CNT+1
-      READ(UNIT=IUNIT,END=910, IOSTAT=IOS, FMT=927) IDX1, IDX2, IDQSCALE
-
-      ierr1 = 0
-
-      if (idx1.eq.0.and.idx2.eq.0.and.idqscale.eq.0) then
-        ierr1 = 3
-      endif  
-       
- 910  if (ierr1.eq.3) then
-        write(*,*) "FileVer: float instead of integer detected! (A)"
-
-        BACKSPACE(IUNIT)
-  
-        READ(UNIT=IUNIT,FMT=925) DX1, DX2, DQSCALE
-        
-        idx1 = int(dx1)
-        idx2 = int(dx2)
-        idqscale = int(dqscale)
-      endif
- 
-
-      CNT=CNT+1
-      READ(UNIT=IUNIT,END=911, IOSTAT=IOS, FMT=927) ipid1, ipid2, ipid3
-      ierr2 = 0
-  
- 911  if (ierr2.eq.3) then
-        write(*,*) "FileVer: float instead of integer detected! (B)"
-
-        BACKSPACE(IUNIT)
-  
-        READ(UNIT=IUNIT, FMT=925) PID1, PID2, PID3 
-        
-        ipid1 = int(pid1)
-        ipid2 = int(pid2)
-        ipid3 = int(pid3)
-      endif
-      
-      IVER = IVERSION(IDX1, IDX2, IDQSCALE, IPID1, IPID2, IPID3)
-
-      if (IVER.EQ.3) FILEVER = 0
-      
-      if ((IVER.EQ.0).AND.(WZ)) FILEVER = 2
-      
-      if ((IVER.EQ.0).AND.(WW)) FILEVER = 3
-      
-      if (IVER.EQ.4) FILEVER = 1 
-      write(*,*) "McAtNlo file version: ", FILEVER
-
- 913  DO I=1,CNT
-        BACKSPACE(IUNIT)
-      ENDDO
-
- 920  FORMAT(1X,I8)
-
- 921  FORMAT(1X,I3,2(1X,I2))
- 922  FORMAT(9(1X,I3))
- 923  FORMAT(2(1X,D14.8))
- 924  FORMAT(36(1X,D14.8))
- 925  FORMAT(3(1X,D14.8))
-
- 927  FORMAT(3(1X,i3))
-
-      RETURN
-      END
-
-c
-c
-c 
-      FUNCTION IVERSION(IDX1, IDX2, IDQSCALE, IPID1, IPID2, IPID3)
-      
-      IMPLICIT NONE
-      integer IVERSION 
-      
-      INTEGER IDX1, IDX2, IDQSCALE
-      INTEGER IPID1, IPID2, IPID3
-      INTEGER IPIDSUM 
-
-      IVERSION = 0 
-      
-      IPIDSUM = IPID1 + IPID2
-
-C check if version <= 4.0      
-      if (IDX1.GT.400.AND.IDX1.LT.410) then 
-        if ((IDX1.EQ.401.OR.IDX1.EQ.403).AND.
-     &     (IPIDSUM.GT.-4.AND.IPIDSUM.LT.4)) then
-          IVERSION = 3
-c          return
-        
-        elseif ((IDX1.EQ.402.OR.IDX1.EQ.405).AND.
-     &          (IPIDSUM.GT.21.AND.IPIDSUM.LT.25)) then
-          IVERSION = 3
-           
-        elseif ((IDX1.EQ.404.OR.IDX1.EQ.406).AND.
-     &          (IPIDSUM.LT.21.AND.IPIDSUM.GT.16)) then
-          IVERSION = 3
-        
-        elseif (((IDX1.EQ.407).AND.IPIDSUM.EQ.42).OR. 
-     &         ((IDX1.EQ.408).AND.(IPIDSUM.GT.1.AND.IPIDSUM.LT.9)).OR.
-     &         ((IDX1.EQ.409).AND.(IPIDSUM.GT.-9.AND.IPIDSUM.LT.-1))) then
-          IVERSION = 3
-
-        endif 
-      endif   
-
-c format 4.0 or higher without weights
-      if ((IPID1.GT.400.AND.IPID1.LT.410).AND.
-c     &    (IPID2.EQ.0).AND.
-     &    (IPID3.GT.0.AND.IPID3.LT.10)) then   
-
-        IVERSION = 4    
-      endif
-
-      write(*,*) "Iversion: ", IVERSION
-
-      RETURN 
-      END
-
diff --git a/Generators/McAtNlo_i/src/initmcatnlo.F b/Generators/McAtNlo_i/src/initmcatnlo.F
deleted file mode 100644
index 387bbcf4fc5e13921991274d4303550829b348f4..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/src/initmcatnlo.F
+++ /dev/null
@@ -1,333 +0,0 @@
-      SUBROUTINE INITMCATNLO
-C----------------------------------------------------------------------
-C  Reads MC@NLO input headers and fills Les Houches run common HEPRUP
-C----------------------------------------------------------------------
-#include "HERWIG65.INC"
-C--Les Houches Common Blocks
-#include "GeneratorFortranCommon/heprup.inc"
-#include "GeneratorFortranCommon/hepeup.inc"
-
-      DOUBLE PRECISION XCKECM,XTMP1,XTMP2,XTMP3,XTMP4,XMT,XMW,XMZ,
-     & XMH,XMV,XM1,XM2,XM3,XM4,XM5,XM21,XLAM,GAH,GAT,GAW,TINY
-      DOUBLE PRECISION XMV1,GAV1,GAMAX1,XMV2,GAV2,GAMAX2
-      INTEGER IVVCODE,IFAIL,MQQ,NQQ,IHW,I,NDNS,JPR,JPR0,IH,
-     & IVHVEC,IVHLEP,IVLEP1,IVLEP2
-      CHARACTER*60 TMPSTR
-      CHARACTER*4 STRP1,STRP2
-      CHARACTER*8 STRGRP
-      CHARACTER*2 STRSCH
-      CHARACTER*3 STRFMT
-      CHARACTER*140 QQIN
-      LOGICAL FK88STRNOEQ
-      DATA TINY/1.D-3/
-      COMMON/NQQCOM/MQQ,NQQ
-      COMMON/VVJIN/QQIN
-      COMMON/VHLIN/IVHVEC,IVHLEP
-      COMMON/VVLIN/IVLEP1,IVLEP2
-C
-      CHARACTER*60 TMPSTR2
-      LOGICAL OLDFORM
-      DATA OLDFORM/.FALSE./
-
-      REAL*8 RGAMMAX
-
-C-- If FORMAT 4.0 with x1, x2, qscale is used                                                                                
-      INTEGER READXXQ
-      COMMON/IFXXQ/ READXXQ
-c      INTEGER CHECKFORMAT
-      INTEGER FILEVER
-      LOGICAL WZ,WW
-
-      CALL INPUTINI
-C
-      IF (IERROR.NE.0) RETURN
-C--SET UP INPUT FILES
-      OPEN(UNIT=61,FILE=QQIN,STATUS='UNKNOWN')
-C--READ HEADERS OF EVENT FILE
-      READ(61,801)XCKECM,XTMP1,XTMP2,XTMP3,XTMP4,TMPSTR
-      READ(61,802)IVVCODE,TMPSTR
-      IVVCODE=MOD(IVVCODE,10000)
-C---CHECK PROCESS CODE
-      JPR0=MOD(ABS(IPROC),10000)
-      print *,'JP = ',JPR0
-      IF(JPR0.EQ.2870.OR.JPR0.EQ.2880)THEN
-         WZ=.TRUE.
-         WW=.FALSE.
-      ELSEIF (JPR0.eq.2850) THEN
-         WW=.TRUE.
-         WZ=.FALSE.
-      ELSE   
-         WZ=.FALSE.
-         WW=.FALSE.
-      ENDIF
-      JPR=JPR0/100
-      IF (JPR.NE.IVVCODE/100) THEN
-         CALL HWWARN('UPINIT',500)
-         GOTO 999
-      ENDIF
-      IF ((JPR.EQ.17.OR.JPR.EQ.28.OR.JPR.EQ.36).AND.
-     & IVVCODE.NE.MOD(ABS(IPROC),10000)) THEN
-         CALL HWWARN('UPINIT',501)
-         GOTO 999
-      ENDIF
-      IF (JPR.EQ.13.OR.JPR.EQ.14) THEN
-         IF(JPR0.EQ.1396.OR.JPR0.EQ.1371.OR.
-     #      JPR0.EQ.1372.OR.JPR0.EQ.1373)THEN
-           READ(61,808)EMMIN,EMMAX,TMPSTR
-         ELSE
-           READ(61,809)XMV,GAH,RGAMMAX,TMPSTR
-           IF(RGAMMAX.GE.0.D0) GAMMAX=RGAMMAX
-         ENDIF
-C-- CHECK VECTOR BOSON MASS
-         IF( (IVVCODE.EQ.1397.AND.ABS(XMV-RMASS(200)).GT.TINY) .OR.
-     #       (IVVCODE.EQ.1497.AND.ABS(XMV-RMASS(198)).GT.TINY) .OR.
-     #       (IVVCODE.EQ.1498.AND.ABS(XMV-RMASS(199)).GT.TINY) ) THEN
-            IF(WZ) THEN
-               CALL HWWARN('UPINIT',1502)
-            ELSE
-               CALL HWWARN('UPINIT',502)
-            ENDIF
-           GOTO 999
-         ENDIF
-      ELSEIF (JPR.EQ.26.OR.JPR.EQ.27) THEN
-         READ(61,810)IVHVEC,IVHLEP,TMPSTR
-         READ(61,809)XMV,GAH,RGAMMAX,TMPSTR
-         READ(61,809)XMH,GAH,RGAMMAX,TMPSTR
-         IF( (JPR.EQ.26.AND.ABS(XMV-RMASS(199)).GT.TINY) .OR.
-     #       (JPR.EQ.27.AND.ABS(XMV-RMASS(200)).GT.TINY) ) THEN
-            CALL HWWARN('UPINIT',508)
-            GOTO 999
-         ENDIF
-         IF(RGAMMAX.GE.0.D0) GAMMAX=RGAMMAX
-         IF(ABS(XMH-RMASS(201)).GT.TINY) THEN
-            CALL HWWARN('UPINIT',509)
-            GOTO 999
-         ENDIF
-      ELSEIF (JPR.EQ.28) THEN
-         READ(61,808)XMW,XMZ,TMPSTR
-C-- CHECK VECTOR BOSON MASSES
-         IF(ABS(XMW-RMASS(198)).GT.TINY .OR.
-     #      ABS(XMZ-RMASS(200)).GT.TINY) THEN
-            IF(WZ) THEN
-               CALL HWWARN('UPINIT',2502)
-            ELSE
-               CALL HWWARN('UPINIT',502)
-            ENDIF
-            GOTO 999
-         ENDIF
-         READ(61,810)IVLEP1,IVLEP2,TMPSTR
-         READ(61,809)XMV1,GAV1,GAMAX1,TMPSTR
-         READ(61,809)XMV2,GAV2,GAMAX2,TMPSTR
-      ELSEIF (JPR.EQ.16.OR.JPR.EQ.36) THEN
-         READ(61,809)XMH,GAH,XMT,TMPSTR
-C-- CHECK HIGGS AND TOP MASSES
-         IH=201
-         IF (JPR.EQ.36) IH=IVVCODE/10-158
-         IF(ABS(XMH-RMASS(IH)).GT.TINY) THEN
-            CALL HWWARN('UPINIT',503)
-            GOTO 999
-         ENDIF
-         IF(ABS(XMT-RMASS(6)) .GT.TINY) THEN
-            CALL HWWARN('UPINIT',504)
-            GOTO 999
-         ENDIF
-      ELSEIF (JPR.EQ.17) THEN
-         IF (MOD(JPR0,10).EQ.6) THEN
-CBPK->
-            READ(61,'(A)') TMPSTR2
-            IF (TMPSTR2(17:19).EQ.'M_Q') THEN
-               OLDFORM=.TRUE.
-               READ(TMPSTR2,803) XMT,TMPSTR
-c               PRINT *,'OLDFORM IN INITMC',XMT,TMPSTR2(17:19)
-            ELSE
-               READ(TMPSTR2,808)XMT,GAT,TMPSTR         
-c               PRINT *,'NEWFORM IN INITMC',XMT,GAT
-            ENDIF
-CBPK-<
-         ELSE
-            READ(61,803)XMT,TMPSTR
-         ENDIF
-C-- CHECK HEAVY QUARK MASS
-         IF( (IVVCODE.EQ.1706.AND.ABS(XMT-RMASS(6)).GT.TINY) .OR.
-     #       (IVVCODE.EQ.1705.AND.ABS(XMT-RMASS(5)).GT.TINY) .OR.
-     #       (IVVCODE.EQ.1704.AND.ABS(XMT-RMASS(4)).GT.TINY) ) THEN
-            CALL HWWARN('UPINIT',505)
-            GOTO 999
-         ENDIF
-         IF (MOD(JPR0,10).EQ.6.AND.(.NOT.OLDFORM)) THEN
-            READ(61,808)XMW,GAW,TMPSTR
-            READ(61,810)IVLEP1,IVLEP2,TMPSTR
-C-- CHECK W BOSON MASS WHEN TOPS DECAY
-            IF( IVLEP1.NE.7.AND.IVLEP2.NE.7 .AND.
-     #          ABS(XMW-RMASS(198)).GT.TINY ) THEN
-               IF(WZ) THEN
-                  CALL HWWARN('UPINIT',3502)
-               ELSE
-                  CALL HWWARN('UPINIT',502)
-               ENDIF
-               GOTO 999
-            ENDIF
-CBPK->
-c            PRINT *,'NEWFORM IN INITMC',XMW,GAW,IVLEP1,IVLEP2
-         ELSEIF (MOD(JPR0,10).EQ.6.AND.OLDFORM) THEN
-            XMW=0.D0
-            GAW=0.D0
-            IVLEP1=7
-            IVLEP2=7
-c            PRINT *,'OLDFORM IN INITMC',XMW,GAW,IVLEP1,IVLEP2
-CBPK-<
-         ENDIF
-      ELSEIF (JPR.EQ.20) THEN
-CBPK->
-         READ(61,'(A)') TMPSTR2
-         IF (TMPSTR2(17:21).EQ.'M_top') THEN
-            OLDFORM=.TRUE.
-            READ(TMPSTR2,803) XMT,TMPSTR
-c            PRINT *,'OLDFORM IN INITMC',XMT,TMPSTR2(17:19)
-         ELSE
-            READ(TMPSTR2,808)XMT,GAT,TMPSTR         
-c            PRINT *,'NEWFORM IN INITMC',XMT,GAT
-         ENDIF
-CBPK->
-C-- CHECK TOP QUARK MASS
-         IF(ABS(XMT-RMASS(6)).GT.TINY) THEN
-            CALL HWWARN('UPINIT',511)
-            GOTO 999
-         ENDIF
-CBPK->
-         IF(.NOT.OLDFORM) THEN
-            READ(61,808)XMW,GAW,TMPSTR
-            IF(JPR0.LT.2030)THEN
-               READ(61,812)IVLEP1,TMPSTR
-C-- CHECK W BOSON MASS WHEN TOPS DECAY
-               IF( IVLEP1.NE.7 .AND.
-     #           ABS(XMW-RMASS(198)).GT.TINY ) THEN
-                  IF(WZ) THEN
-                     CALL HWWARN('UPINIT',4502)
-                  ELSE
-                     CALL HWWARN('UPINIT',502)
-                  ENDIF
-                  GOTO 999
-               ENDIF
-            ELSE
-               READ(61,810)IVLEP1,IVLEP2,TMPSTR
-C--   CHECK W BOSON MASS
-               IF(ABS(XMW-RMASS(198)).GT.TINY) THEN
-                  IF(WZ) THEN
-                     CALL HWWARN('UPINIT',5502)
-                  ELSE
-                     CALL HWWARN('UPINIT',502)
-                  ENDIF
-                  GOTO 999
-               ENDIF
-            ENDIF
-         ENDIF
-CBPK->
-      ELSEIF (JPR.NE.1) THEN
-         CALL HWWARN('UPINIT',506)
-         GOTO 999
-      ENDIF
-      READ(61,804)XM1,XM2,XM3,XM4,XM5,XM21,TMPSTR
-      IF (JPR.NE.1) THEN
-         READ(61,805)STRP1,STRP2,TMPSTR
-         READ(61,806)STRGRP,NDNS,TMPSTR
-      ENDIF
-      READ(61,807)XLAM,STRSCH,TMPSTR
-C--CHECK THAT EVENT FILE HAS BEEN GENERATED CONSISTENTLY WITH 
-C--HERWIG PARAMETERS ADOPTED HERE
-      IFAIL=0
-C-- CM ENERGY
-C-- QUARK AND GLUON MASSES
-      IF( ABS(XCKECM-PBEAM1-PBEAM2).GT.TINY .OR.
-     #     ABS(XM1-RMASS(1)).GT.TINY .OR.
-     #     ABS(XM2-RMASS(2)).GT.TINY .OR.
-     #     ABS(XM3-RMASS(3)).GT.TINY .OR.
-     #     ABS(XM4-RMASS(4)).GT.TINY .OR.
-     #     ABS(XM5-RMASS(5)).GT.TINY .OR.
-     #     ABS(XM21-RMASS(13)).GT.TINY)  THEN
-         IFAIL=1
-      ENDIF
-C-- LAMBDA_QCD: NOW REMOVED TO ALLOW MORE FLEXIBILITY (NNLO EFFECT ANYHOW)
-C     #     ABS(XLAM-QCDLAM).GT.TINY .OR.
-C-- REPLACE THE FOLLOWING WITH A CONDITION ON STRSCH, IF CONSISTENT 
-C-- INFORMATION ON PDF SCHEME WILL BE AVAILABLE FROM PDF LIBRARIES AND HERWIG
-C-- COLLIDING PARTICLE TYPE
-      IF (JPR.NE.1.AND.IFAIL.EQ.0) THEN
-         IF(
-     #        FK88STRNOEQ(STRP1,PART1) .OR.
-     #        FK88STRNOEQ(STRP2,PART2) )IFAIL=1
-C--IF PDF LIBRARY IS USED, CHECK PDF CONSISTENCY
-         IF( IFAIL.EQ.0 .AND. MODPDF(1).NE.-1)THEN
-            IF( 
-     #           FK88STRNOEQ(STRGRP,AUTPDF(1)) .OR.
-     #           FK88STRNOEQ(STRGRP,AUTPDF(2)) .OR.
-     #           ABS(NDNS-MODPDF(1)).GT.TINY .OR.
-     #           ABS(NDNS-MODPDF(2)).GT.TINY ) THEN
-               IFAIL=1
-            ENDIF
-C--WHEN LHAPDF IS LINKED, AUTPDF() IS A MC@NLO-DEFINED STRING
-            IF(AUTPDF(1).EQ.'LHAPDF'.OR.AUTPDF(1).EQ.'LHAEXT')THEN
-               AUTPDF(1)='HWLHAPDF'
-               AUTPDF(2)='HWLHAPDF'
-            ENDIF
-         ENDIF
-      ENDIF
-      IF(IFAIL.EQ.1) THEN
-         CALL HWWARN('UPINIT',507)
-         GOTO 999
-      ENDIF
-      CALL HWUIDT(3,IDBMUP(1),IHW,PART1)
-      CALL HWUIDT(3,IDBMUP(2),IHW,PART2)
-      DO I=1,2
-         EBMUP(I)=HALF*XCKECM
-         PDFGUP(I)=-1
-         PDFSUP(I)=-1
-      ENDDO
-      IDWTUP=-4
-      NPRUP=1
-      LPRUP(1)=IVVCODE
-C-- TEST FOR NEW FORMAT INPUT MOMENTA: (PX,PY,PZ,M)
-      READ(61,811) STRFMT,TMPSTR
-      IF (STRFMT.NE.'P,M') THEN
-         CALL HWWARN('UPINIT',510)
-         GOTO 999
-      ENDIF
-      READ(61,900) MQQ
-      NQQ=0
-C-- LARGEST EXPECTED NUMBER OF LEGS
-      NUP=10
-      AQEDUP=ZERO
-      AQCDUP=ZERO
-      DO I=1,NUP
-         VTIMUP(I)=ZERO
-         SPINUP(I)=9.
-      ENDDO
-C-- DETECT FORMAT 4.0
-c      READXXQ=CHECKFORMAT(61,JPR0)
-      READXXQ=FILEVER(61,JPR0)
-      IF(READXXQ.EQ.1) THEN
-         PRINT *, "EVENT FILE made by MC@NLO >=4.0"
-      ELSE IF(READXXQ.EQ.2) THEN
-         PRINT *, "EVENT FILE made by MC@NLO >=4.0 and WZ"
-      ELSE IF(READXXQ.EQ.3) THEN
-         PRINT *, "EVENT FILE made by MC@NLO >=4.0 and WW"
-      ELSE IF(READXXQ.EQ.0) THEN
-         PRINT *, "EVENT FILE made by MC@NLO <4.0"
-      ELSE 
-         PRINT *, "UNKNOWN MC@NLO FORMAT"
-      ENDIF
-      
- 801  FORMAT(5(1X,D10.4),1X,A)
- 802  FORMAT(1X,I6,1X,A)
- 803  FORMAT(1X,D10.4,1X,A)
- 804  FORMAT(6(1X,D10.4),1X,A)
- 805  FORMAT(2(1X,A4),1X,A)
- 806  FORMAT(1X,A8,1X,I6,1X,A)
- 807  FORMAT(1X,D10.4,1X,A2,1X,A)
- 808  FORMAT(2(1X,D10.4),1X,A)
- 809  FORMAT(3(1X,D10.4),1X,A)
- 810  FORMAT(2(1X,I2),1X,A)
- 811  FORMAT(1X,A3,1X,A)
- 812  FORMAT(1X,I2,1X,A)
- 900  FORMAT(I9)
- 999  END
diff --git a/Generators/McAtNlo_i/src/inputini.F b/Generators/McAtNlo_i/src/inputini.F
deleted file mode 100644
index 374d40d058c74b1a5e65b736f7a521df61c022dd..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/src/inputini.F
+++ /dev/null
@@ -1,250 +0,0 @@
-      SUBROUTINE INPUTINI
-#include "HERWIG65.INC"
-      
-      INTEGER I,JPR0,JPR
-C QQIN IS THE EVENT FILE 
-C String length increased from 50 to 140 chars (CG -- 25.11.09)
-      CHARACTER*140 QQIN
-      COMMON/VVJIN/QQIN
-      REAL*8 TMPLAM,GAMW0,GAMZ0,VGAMMAX,V2GAMMAX
-      REAL*8 RGAMMAX
-      INTEGER IPDF
-
-      CHARACTER*60 TMPSTR2
-      LOGICAL OLDFORM
-      DATA OLDFORM/.FALSE./
-
-c
-C Open the file with the input parameters
-      OPEN (21,FILE='inparmMcAtNlo.dat',STATUS='OLD',ERR=100)
-C       WRITE(*,*)'Enter filename for events'
-      READ(21,*)QQIN
-C       WRITE(*,*)'Enter maximum number of events to generate'
-C       WRITE(*,*)'MUST coincide with the number of events on tape'
-      READ(21,*)MAXEV
-C       WRITE(*,*)'Enter 0 to use Herwig default PDFs'
-C       WRITE(*,*)'      1 to use PDFs from library'
-      READ(21,*)IPDF
-C OUTPUT THE RESULTS AFTER ANY NSTEP EVENTS
-C      NSTEP=20000
-C---BEAM paRTICLES
-C       WRITE(*,*)'Enter colliding particles (PART1, PART2)'
-      READ(21,*)PART1,PART2
-C---BEAM MOMENTA
-C       WRITE(*,*)'Enter beam momenta (PBEAM1, PBEAM2)'
-      READ(21,*)PBEAM1,PBEAM2
-C---PROCESS
-C       WRITE(*,*)'Enter process number (IPROC) (IPROC<0 for Les Houches)'
-      READ(21,*)IPROC
-C---INITIALISE OTHER COMMON BLOCKS
-C      CALL HWIGIN
-C---USER CAN RESET PARAMETERS AT
-C   THIS POINT, OTHERWISE DEFAULT
-C   VALUES IN HWIGIN WILL BE USED.
-C
-C LHSOFT=.FALSE. SWITCHES UNDERLYING EVENT OFF
-C       LHSOFT=IPROC.GT.-10000
-C C       IF(IPROC.LT.-10000) IPROC = IPROC + 10000
-C       WRITE(*,*)
-C       IF (LHSOFT) THEN
-C         WRITE(*,*)'Underlying event WILL be generated'
-C       ELSE
-C          WRITE(*,*)'Underlying event WILL NOT be generated'
-C       ENDIF
-C       WRITE(*,*)
-C
-C Select W/Z boson decay modes
-C      MODBOS(1)=5
-C      MODBOS(2)=5
-C
-      IF(IPDF.EQ.1)THEN
-         DO I=1,2
-C            WRITE(*,*)'   Incoming particle # ',I
-C            WRITE(*,*)'Enter PDF group name (AUTPDF)'
-            READ(21,*)AUTPDF(I)
-C            WRITE(*,*)'Enter PDF set number (MODPDF)'
-            READ(21,*)MODPDF(I)
-         ENDDO
-      ENDIF
-C      WRITE(*,*)'Enter Lambda_QCD, <0 for Herwig default'
-      READ(21,*)TMPLAM
-      IF(TMPLAM.GE.0.D0)QCDLAM=TMPLAM
-C---CHECK PROCESS CODE
-      JPR0=MOD(ABS(IPROC),10000)
-      JPR=JPR0/100
-      IF (JPR.EQ.13.OR.JPR.EQ.14) THEN
-         IF(JPR0.EQ.1396)THEN
-C           WRITE(*,*)'Enter M_GAMMA*(INF), M_GAMMA*(SUP)'
-           READ(21,*)EMMIN,EMMAX
-         ELSEIF(JPR0.EQ.1397)THEN
-C           WRITE(*,*)'Enter Z0 mass, width, and GammaX'
-           READ(21,*)RMASS(200),GAMZ0,RGAMMAX
-           IF(GAMZ0.LT.0.D0)GAMZ=GAMZ0
-           IF(RGAMMAX.GE.0.D0) GAMMAX=RGAMMAX
-         ELSEIF(JPR0.EQ.1497.OR.JPR0.EQ.1498)THEN
-C           WRITE(*,*)'Enter W mass, width, and GammaX'
-           READ(21,*)RMASS(198),GAMW0,RGAMMAX
-           RMASS(199)=RMASS(198)
-           IF(GAMW0.NE.0.D0)GAMW=GAMW0
-           IF(RGAMMAX.GE.0.D0) GAMMAX=RGAMMAX
-         ELSEIF( (JPR0.GE.1350.AND.JPR0.LE.1356) .OR.
-     #           (JPR0.GE.1361.AND.JPR0.LE.1366) )THEN
-C           WRITE(*,*)'Enter Z0 mass, width'
-           READ(21,*)RMASS(200),GAMZ
-C           WRITE(*,*)'Enter GAMMAX, M_Z*(INF), M_Z*(SUP)'
-           READ(21,*)RGAMMAX,EMMIN,EMMAX
-           IF(RGAMMAX.GE.0.D0) GAMMAX=RGAMMAX
-           IF(IPROC.GT.0)THEN
-             EMMIN=RMASS(200)-GAMZ*GAMMAX
-             EMMAX=RMASS(200)+GAMZ*GAMMAX
-           ENDIF
-         ELSEIF(JPR0.GE.1371.AND.JPR0.LE.1373)THEN
-C           WRITE(*,*)'Enter M_LL(INF), M_LL(SUP)'
-           READ(21,*)EMMIN,EMMAX
-         ELSEIF( (JPR0.GE.1450.AND.JPR0.LE.1453) .OR.
-     #           (JPR0.GE.1461.AND.JPR0.LE.1463) .OR.
-     #           (JPR0.GE.1471.AND.JPR0.LE.1473) )THEN
-C           WRITE(*,*)'Enter W mass, width'
-           READ(21,*)RMASS(198),GAMW
-           RMASS(199)=RMASS(198)
-C           WRITE(*,*)'Enter GAMMAX, M_W*(INF), M_W*(SUP)'
-           READ(21,*)RGAMMAX,EMMIN,EMMAX
-           IF(RGAMMAX.GE.0.D0) GAMMAX=RGAMMAX
-         ENDIF
-      ELSEIF (JPR.EQ.28) THEN
-C         WRITE(*,*)'Enter W mass, width'
-         READ(21,*)RMASS(198),GAMW0
-         RMASS(199)=RMASS(198)
-C         WRITE(*,*)'Enter Z mass, width'
-         READ(21,*)RMASS(200),GAMZ0
-C         WRITE(*,*)'Enter VGAMMAX, V2GAMMAX'
-         READ(21,*)VGAMMAX,V2GAMMAX
-         IF(GAMW0.NE.0.D0)GAMW=GAMW0
-         IF(GAMZ0.NE.0.D0)GAMZ=GAMZ0
-         RGAMMAX=MAX(VGAMMAX,V2GAMMAX)
-         IF(RGAMMAX.GE.0.D0) GAMMAX=RGAMMAX
-      ELSEIF (JPR.EQ.16) THEN
-C         WRITE(*,*)'Enter Higgs boson and top masses'
-         READ(21,*)RMASS(201),RMASS(6)
-      ELSEIF (JPR.EQ.17) THEN
-         IF(ABS(IPROC).EQ.1705.OR.ABS(IPROC).EQ.11705)THEN
-C           WRITE(*,*)'Enter bottom mass'
-           READ(21,*)RMASS(5)
-         ELSEIF(ABS(IPROC).EQ.1706.OR.ABS(IPROC).EQ.11706)THEN
-C           WRITE(*,*)'Enter top mass, W mass'
-CBPK-> 
-            READ(21,'(A)') TMPSTR2
-            READ(TMPSTR2,*,ERR=616)RMASS(6),RMASS(198)
-c            PRINT *,'NEWFORM IN INPUT',RMASS(6),RMASS(198)
-            RMASS(199)=RMASS(198)
-            GOTO 617
- 616        OLDFORM=.TRUE.
-            READ(TMPSTR2,*) RMASS(8)
-c            PRINT *,'OLDFORM IN INPUT',RMASS(6),TMPSTR2(8:8)
- 617        CONTINUE
-CBPK-<
-         ENDIF
-      ELSEIF (JPR.EQ.26) THEN
-C         WRITE(*,*)'Enter W mass, width'
-         READ(21,*)RMASS(198),GAMW0
-         RMASS(199)=RMASS(198)
-C         WRITE(*,*)'Enter Higgs boson mass'
-         READ(21,*)RMASS(201)
-         IF(GAMW0.NE.0.D0)GAMW=GAMW0
-      ELSEIF (JPR.EQ.27) THEN
-C         WRITE(*,*)'Enter Z mass, width'
-         READ(21,*)RMASS(200),GAMZ0
-C         WRITE(*,*)'Enter Higgs boson mass'
-         READ(21,*)RMASS(201)
-         IF(GAMZ0.NE.0.D0)GAMZ=GAMZ0
-      ELSEIF (JPR.EQ.20) THEN
-c         WRITE(*,*)'Enter top mass, W mass'
-         READ(21,*)RMASS(6),RMASS(198)
-         RMASS(199)=RMASS(198)
-      ELSE
-         WRITE(*,*)'   Bad process code IPROC =',IPROC
-         CALL HWWARN('HWIGPR',502)
-         GOTO 999
-      ENDIF
-C      WRITE(*,*)'Enter quark (d,u,s,c,b) and gluon masses'
-      READ(21,*)RMASS(1),RMASS(2),RMASS(3),
-     #         RMASS(4),RMASS(5),RMASS(13)
-      DO I=1,5
-         RMASS(I+6)=RMASS(I)
-      ENDDO
-C NO SOFT ME CORRECTIONS (ALREADY INCLUDED IN MC@NLO)
-      IF(IPROC.LT.0)THEN
-        SOFTME=.FALSE.
-      ELSE
-        SOFTME=.TRUE.
-      ENDIF
-C HERWIG RUNS IN WEIGHTED MODE EXCEPT IN THE CASE OF SINGLE TOP IN
-C ORDER TO AVOID TOO MANY EVENTS KILLED BY SHOWER
-      NOWGT=.FALSE.
-      IF(JPR.EQ.20.AND.IPROC.GT.0)NOWGT=.TRUE.
-C NEGATIVE WEIGHTS ALLOWED
-      NEGWTS=.TRUE.
-C      MAXPR=2
-C      MAXER=MAXEV/100
-      LRSUD=0
-      LWSUD=77
-C IN THE CASE HERWIG PDFS ARE USED, ADOPT MRST
-      NSTRU=8
-      PRVTX=.FALSE.
-      PTMIN=0.5
-      NRN(1)=1973774260
-      NRN(2)=1099242306
-C THE FOLLOWING SHOULD BE USED ONLY IN WEIGHTED MODE
-      IF(.NOT.NOWGT)THEN
-        WGTMAX=1.000001D0
-        AVABW=1.000001D0
-      ENDIF
-C FOR TOP PRODUCTION (HARMLESS ELSEWHERE)
-CJK remove  RLTIM settings as they don't have any effect according to S.Frixion
-CJK      RLTIM(6)=1.D-23
-CJK      RLTIM(12)=1.D-23
-C---B FRAGMENTATION PARAMETERS (FOR B PRODUCTION ONLY)
-      IF(ABS(IPROC).EQ.1705.OR.ABS(IPROC).EQ.11705)THEN
-        PSPLT(2)=0.5
-      ENDIF
-C---USE THE FOLLOWING FOR SINGLE TOP -- AVOIDS TROUBLES WITH ISR
-C         IF(JPR.EQ.20)THEN
-C           CALL HWUSTA('B+      ')
-C           CALL HWUSTA('B-      ')
-C           CALL HWUSTA('B_D0    ')
-C           CALL HWUSTA('B_DBAR0 ')
-C           CALL HWUSTA('B_S0    ')
-C           CALL HWUSTA('B_SBAR0 ')
-C           CALL HWUSTA('SIGMA_B+')
-C           CALL HWUSTA('LMBDA_B0')
-C           CALL HWUSTA('SIGMA_B-')
-C           CALL HWUSTA('XI_B0   ')
-C           CALL HWUSTA('XI_B-   ')
-C           CALL HWUSTA('OMEGA_B-')
-C           CALL HWUSTA('B_C-    ')
-C           CALL HWUSTA('UPSLON1S')
-C           CALL HWUSTA('SGM_BBR-')
-C           CALL HWUSTA('LMD_BBR0')
-C           CALL HWUSTA('SGM_BBR+')
-C           CALL HWUSTA('XI_BBAR0')
-C           CALL HWUSTA('XI_B+   ')
-C           CALL HWUSTA('OMG_BBR+')
-C           CALL HWUSTA('B_C+    ')
-C           IF(IPROC.LT.0)THEN
-C             CALL HWMODK(6,ONE,100,12,-11,5,0,0)
-C             CALL HWMODK(-6,ONE,100,-12,11,-5,0,0)
-C           ELSE
-C             CALL HWMODK(6,ONE,-1,12,-11,5,0,0)
-C             CALL HWMODK(-6,ONE,-1,-12,11,-5,0,0)
-C           ENDIF
-C         ENDIF
-
-      RETURN
-
- 100  WRITE (*,*)
-     >   'INITMCATNLO: inparmMcAtNlo.dat file could not be opened!'
-      WRITE (*,*)'Please link an *.inparm file to inparmMcAtNlo.dat!'
- 999  STOP
-
-      END
-      
diff --git a/Generators/McAtNlo_i/src/mcatnlo_str.F b/Generators/McAtNlo_i/src/mcatnlo_str.F
deleted file mode 100644
index b8565211761fe68c57616eaee17db162bb0c3f77..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/src/mcatnlo_str.F
+++ /dev/null
@@ -1,122 +0,0 @@
-c Utilities working on strings
-c
-      function fk88strnoeq(str1,str2)
-c Returns true if str1#str2, false otherwise. The comparison
-c is case INSENSITIVE
-      logical fk88strnoeq,flag
-      character * (*) str1,str2
-      character * 70 strin,tmp1,tmp2
-c
-      strin=str1
-      call fk88low_to_upp(strin,tmp1)
-      strin=str2
-      call fk88low_to_upp(strin,tmp2)
-      if(tmp1.eq.tmp2)then
-        flag=.false.
-      else
-        flag=.true.
-      endif
-      fk88strnoeq=flag
-      return
-      end
-
-
-      subroutine fk88low_to_upp(strin,strout)
-c Converts lowercase to uppercase
-      implicit real*8(a-h,o-z)
-      character*70 strin,strout,tmp
-      character*1 ch,ch1
-c
-      len=ifk88istrl(strin)
-      if(len.eq.0)then
-        return
-      elseif(len.eq.1)then
-        ch=strin
-        call fk88xgetchar1(ch,ch1)
-        strout=ch1
-      else
-        do i=1,len
-          ch=strin(i:i+1)
-          call fk88xgetchar1(ch,ch1)
-          if(i.eq.1)then
-            strout=ch1
-          else
-            call fk88strcat(strout,ch1,tmp)
-            strout=tmp
-          endif
-        enddo
-      endif
-      return
-      end
-
-
-      subroutine fk88xgetchar1(ch,ch1)
-c Converts lowercase to uppercase (1 character only)
-      character*1 ch,ch1
-c ia=ascii value of a
-      parameter (ia=97)
-c iz=ascii value of z
-      parameter (iz=122)
-c ishift=difference between the ascii value of a and A
-      parameter (ishift=32)
-c
-      ic=ichar(ch)
-      if(ic.ge.ia.and.ic.le.iz)then
-        ch1=char(ic-ishift)
-      else
-        ch1=ch
-      endif
-      return
-      end
-
-
-      subroutine fk88strnum(string,num)
-c- writes the number num on the string string starting at the blank
-c- following the last non-blank character
-      character * (*) string
-      character * 20 tmp
-      l = len(string)
-      write(tmp,'(i15)')num
-      j=1
-      dowhile(tmp(j:j).eq.' ')
-        j=j+1
-      enddo
-      ipos = ifk88istrl(string)
-      ito = ipos+1+(15-j)
-      if(ito.gt.l) then
-         write(*,*)'error, string too short'
-         write(*,*) string
-         stop
-      endif
-      string(ipos+1:ito)=tmp(j:)
-      end
-
-
-      function ifk88istrl(string)
-c returns the position of the last non-blank character in string
-      character * (*) string
-      i = len(string)
-      dowhile(i.gt.0.and.string(i:i).eq.' ')
-         i=i-1
-      enddo
-      ifk88istrl = i
-      end
-
-
-      subroutine fk88strcat(str1,str2,str)
-c concatenates str1 and str2 into str. Ignores trailing blanks of str1,str2
-      character *(*) str1,str2,str
-      l1=ifk88istrl(str1)
-      l2=ifk88istrl(str2)
-      l =len(str)
-      if(l.lt.l1+l2) then
-          write(*,*) 'error: l1+l2>l in fk88strcat'
-          write(*,*) 'l1=',l1,' str1=',str1
-          write(*,*) 'l2=',l2,' str2=',str2
-          write(*,*) 'l=',l
-          stop
-      endif
-      if(l1.ne.0) str(1:l1)=str1(1:l1)
-      if(l2.ne.0) str(l1+1:l1+l2)=str2(1:l2)
-      if(l1+l2+1.le.l) str(l1+l2+1:l)= ' '
-      end
diff --git a/Generators/McAtNlo_i/src/usemcatnlo.F b/Generators/McAtNlo_i/src/usemcatnlo.F
deleted file mode 100644
index 4ecd09d73d8de92b89c3f1724dc534081a7c06eb..0000000000000000000000000000000000000000
--- a/Generators/McAtNlo_i/src/usemcatnlo.F
+++ /dev/null
@@ -1,1296 +0,0 @@
-C----------------------------------------------------------------------
-      SUBROUTINE USEMCATNLO
-C----------------------------------------------------------------------
-C  Reads MC@NLO input files and fills Les Houches event common HEPEUP
-C----------------------------------------------------------------------
-#include "HERWIG65.INC"
-
-C...=======================================================
-C...Common function (05.16.2011, Soshi.Tsuno@cern.ch)
-C...random number
-      integer imode,itau1,itau2,itau3
-      double precision polz0
-      double precision pyr
-      external pyr
-
-      double precision plzapx
-      external plzapx
-C...=======================================================
-
-C--Les Houches Common Blocks
-#include "GeneratorFortranCommon/hepeup.inc"
-
-CC COMMUNICATE HERWIG STATUS
-      INTEGER ISTG
-      COMMON /EVTCON/ ISTG
-
-CC If FORMAT 4.0 with x1, x2, qscale is used 
-      INTEGER READXXQ
-      COMMON/IFXXQ/ READXXQ  
-
-CC << OJ 
-      INTEGER NENTRIES
-      INTEGER NBACK
-CC >> OJ 
-C AOH anomalous coupling reweighting
-c      DOUBLE PRECISION WGTACP(10)
-      DOUBLE PRECISION WGTACP(28)
-      INTEGER USERWGTS
-      COMMON/CWGTACP/ WGTACP, USERWGTS
-
-      DOUBLE PRECISION XMP2,XMA2,XMB2,BETA,VA,VB,SIGMA,DELTA,S2,
-     & XKA,XKB,PTF,E,PL,XSCALE,
-C gkh
-     & X1, X2, QSCALE
-      DOUBLE PRECISION PCM(5),PTR,XMTR,HWVDOT,HWULDO,PDB(5)
-      INTEGER I,J,IC,JPR,MQQ,NQQ,IUNIT,ISCALE,I1HPRO,IBOS,NP,IG,IP,
-     & ILEP,ID,IA,IB,ICOL4(4,4),ICOL5(5,18),ICOST(4,20),JJPROC,IVHVEC,
-     & IVHLEP,MUP
-      PARAMETER (IUNIT=61)
-      LOGICAL BOPRO,NODEC,REMIT
-      COMMON/NQQCOM/MQQ,NQQ
-      COMMON/VHLIN/IVHVEC,IVHLEP
-C---Colour flows for heavy quark pair production
-      DATA ICOL4/
-     & 10,02,10,02,01,20,20,01,12,23,10,03,12,31,30,02/
-      DATA ICOL5/
-     & 10,02,13,30,02, 10,02,32,10,03,
-     & 10,21,30,20,03, 10,23,20,10,03,
-     & 01,20,23,30,01, 01,20,31,20,03,
-     & 01,23,03,20,01, 01,12,03,30,02,
-     & 12,20,30,10,03, 12,30,10,30,02,
-     & 12,03,02,10,03, 12,01,03,30,02,
-     & 12,23,14,40,03, 12,34,32,10,04,
-     & 12,23,43,10,04, 12,31,34,40,02,
-     & 12,34,14,30,02, 12,31,42,30,04/
-C---Colour flows for single top production
-      DATA ICOST/
-     & 20,12,00,10, 12,20,00,10, 10,02,02,10, 02,10,02,10,
-     & 20,10,20,10, 20,02,01,10, 10,20,20,10, 02,20,01,10,
-     & 20,02,01,10, 10,02,02,10, 02,20,01,10, 02,10,02,10,
-     & 20,10,20,10, 10,20,20,10, 12,23,03,10, 23,12,03,10,
-     & 30,12,32,10, 30,23,21,10, 12,30,32,10, 23,30,21,10/
-      IF (IERROR.NE.0) RETURN
-C---READ AN EVENT
-C      IF(NQQ.GE.MQQ)CALL HWWARN('UPEVNT',201,*999)
-      IF(NQQ.GE.MQQ) THEN
-         ISTG=1
-         RETURN
-      ELSE
-         ISTG=0
-      ENDIF
-      READ(IUNIT,901) I1HPRO,IC,NP
-c      write(*,*)'i1hpro ',I1HPRO,IC,NP 
-      READ(IUNIT,902) (IDUP(I),I=1,NP)
-      READ(IUNIT,903) XWGTUP,XSCALE
-C---Les Houches expects mean weight to be the cross section in pb
-      XWGTUP= XWGTUP*MQQ
-      READ(IUNIT,904) ((PUP(J,I),J=1,4),I=1,NP)
-      NQQ=NQQ+1
-C---Input format is now (px,py,pz,m)
-      DO I=1,NP
-         E=SQRT(HWVDOT(4,PUP(1,I),PUP(1,I)))
-         PUP(5,I)=PUP(4,I)
-         PUP(4,I)=E
-      ENDDO
-C-- gkh
-      IF(READXXQ.GT.0) THEN
-         READ(IUNIT,905) X1, X2, QSCALE
-c         write(*,*) x1,x2,qscale
-      ENDIF
-c      write(*,*) 'readxxq',readxxq
-      IF(READXXQ.EQ.2) THEN
-         READ(IUNIT,906) (WGTACP(I),I=1,10)      
-         USERWGTS=10
-      ELSEIF (READXXQ.EQ.3) THEN
-c         READ(IUNIT,906) (WGTACP(I),I=1,28)      
-         READ(IUNIT,907) (WGTACP(I),I=1,28)     
-         USERWGTS=28
-      ELSE
-         USERWGTS=0
-      ENDIF 
-c      if (userwgts .ne. 0 ) then 
-c         do i=1,28
-c            write(*,*) 'McAtNlo, wgtacp:', wgtacp(i)
-c         enddo 
-c      endif 
-      CALL HWVSUM(4,PUP(1,1),PUP(1,2),PCM)
-      CALL HWUMAS(PCM)
-C---REMIT MEANS A REAL PARTON EMISSION OCCURRED
-      REMIT=PUP(4,3).NE.ZERO
-C---NODEC MEANS DECAYS NOT YET DONE
-      NODEC=NP.EQ.5
-      NUP=NP
-C---CHECK PROCESS CODE
-      JJPROC=MOD(ABS(IPROC),10000)
-      JPR=JJPROC/100
-      BOPRO=JPR.EQ.13.OR.JPR.EQ.14.OR.JPR.EQ.16.OR.JPR.EQ.36
-      IF (BOPRO) THEN
-C----------------------------------------------------------------------
-C   SINGLE GAUGE OR HIGGS BOSON PRODUCTION
-C   B = Z/gamma, W or H (SM or any MSSM neutral Higgs)
-C-----------------------------------------------------------------------
-C I1HPRO IDENTIFIES THE PARTONIC SUBPROCESS, WITH THE FOLLOWING CONVENTIONS:
-C   I1HPRO         PROCESS
-C    401        q qbar -> CLHEP::g B
-C    402        q CLHEP::g    -> q B
-C    403        qbar q -> CLHEP::g B
-C    404        qbar CLHEP::g -> qbar B
-C    405        CLHEP::g q    -> q B
-C    406        CLHEP::g qbar -> qbar B
-C    407        CLHEP::g CLHEP::g    -> CLHEP::g B
-C-----------------------------------------------------------------------
-C---NODEC=.TRUE. FOR HIGGS AND UNDECAYED EW BOSON
-         NODEC=NP.EQ.4
-         IHPRO=I1HPRO-400
-         ISCALE=0
-         IF(JPR.EQ.16)ISCALE=2
-      ELSEIF (JPR.EQ.17.OR.JPR.EQ.20) THEN
-C----------------------------------------------------------------------
-C   HEAVY Q and/or QBAR PRODUCTION
-C   IPROC=-1705,-1706 for Q=b,t
-C   IPROC=-2000,-2030/1/4 for single top, Wt+Wtb/Wtb/Wt
-C-----------------------------------------------------------------------
-C I1HPRO IDENTIFIES THE PARTONIC SUBPROCESS, WITH THE FOLLOWING CONVENTIONS:
-C   I1HPRO         PROCESS
-C    401        q qbar -> CLHEP::g Q Qbar
-C    402        q CLHEP::g    -> q Q Qbar
-C    403        qbar q -> CLHEP::g Q Qbar
-C    404        qbar CLHEP::g -> qbar Q Qbar
-C    405        CLHEP::g q    -> q Q Qbar
-C    406        CLHEP::g qbar -> qbar Q Qbar
-C    407        CLHEP::g CLHEP::g    -> CLHEP::g Q Qbar
-C    408        q q    -> CLHEP::g t q
-C    409        qbar qbar -> CLHEP::g tbar qbar
-C-----------------------------------------------------------------------
-C IC SPECIFIES THE COLOUR CONNECTION (NOW IN INPUT FILE)
-C-----------------------------------------------------------------------
-C---SET IHPRO AS FOR DIRECT PHOTON (IPROC=1800)
-         IHPRO=I1HPRO-360
-         ISCALE=0
-         IF(ABS(IPROC).EQ.1705.OR.ABS(IPROC).EQ.11705)ISCALE=5
-      ELSEIF (JPR.EQ.28) THEN
-C----------------------------------------------------------------------
-C   GAUGE BOSON PAIR PRODUCTION
-C   VV=WW,ZZ,ZW+,ZW- FOR IPROC=-2850,-2860,-2870,-2880
-C-----------------------------------------------------------------------
-C I1HPRO IDENTIFIES THE PARTONIC SUBPROCESS, WITH THE FOLLOWING CONVENTIONS:
-C   I1HPRO         PROCESS
-C    401        q qbar -> CLHEP::g V V
-C    402        q CLHEP::g    -> q V V
-C    403        qbar q -> CLHEP::g V V
-C    404        qbar CLHEP::g -> qbar V V
-C    405        CLHEP::g q    -> q V V
-C    406        CLHEP::g qbar -> qbar V V
-C-----------------------------------------------------------------------
-         IHPRO=I1HPRO-400
-         ISCALE=0
-      ELSEIF (JPR.EQ.26.OR.JPR.EQ.27) THEN
-C----------------------------------------------------------------------
-C   GAUGE BOSON PLUS HIGGS PRODUCTION
-C   VH=WH,ZH FOR IPROC=-2600-ID,-2700-ID
-C   WHERE ID CONTROLS HIGGS DECAY AS IN STANDARD HERWIG
-C-----------------------------------------------------------------------
-         IHPRO=I1HPRO-400
-         ISCALE=0
-      ELSEIF (JPR.EQ.1) THEN
-C----------------------------------------------------------------------
-C   E+E- ANNIHILATION
-C----------------------------------------------------------------------
-         ISCALE=1
-      ELSE
-         CALL HWWARN('UPEVNT',202)
-         GOTO 999
-      ENDIF
-C---HARD SCALE
-      SCALUP=PCM(5)
-      IF (XSCALE.GT.0D0.AND.XSCALE.LT.PCM(5)) SCALUP=XSCALE
-      IF (REMIT) THEN
-         IF (ISCALE.EQ.0) THEN
-            PTR=SQRT(PUP(1,3)**2+PUP(2,3)**2)
-            SCALUP=PCM(5)-2.*PTR
-         ELSEIF(ISCALE.EQ.1)THEN
-            SCALUP=PCM(5)
-         ELSEIF (ISCALE.EQ.2) THEN
-            SCALUP=SQRT(PUP(1,3)**2+PUP(2,3)**2)
-         ELSEIF (ISCALE.EQ.3.OR.ISCALE.EQ.4.OR.ISCALE.EQ.5) THEN
-            PTR=SQRT(PUP(1,3)**2+PUP(2,3)**2)
-            IA=4
-            IB=5
-            XMP2=PUP(5,3)**2
-            XMA2=PUP(5,IA)**2
-            XMB2=PUP(5,IB)**2
-            S2=XMA2+XMB2+2*HWULDO(PUP(1,IA),PUP(1,IB))
-            SIGMA=XMA2+XMB2
-            DELTA=XMA2-XMB2
-            BETA=SQRT(1-2*SIGMA/S2+(DELTA/S2)**2)
-            VA=BETA/(1+DELTA/S2)
-            VB=BETA/(1-DELTA/S2)
-            XKA=HWULDO(PUP(1,3),PUP(1,IA))
-            XKB=HWULDO(PUP(1,3),PUP(1,IB))
-            E=(XKA+XKB)/SQRT(S2)
-            PL=-(2.0/((VA+VB)*BETA*SQRT(S2))*(VA*XKA-VB*XKB))
-            PTF=E**2-PL**2-XMP2
-            IF (PTF.LE.ZERO) THEN
-               CALL HWWARN('UPEVNT',103)
-               GOTO 999
-            ENDIF
-            PTF=SQRT(PTF)
-            IF(ISCALE.EQ.3)THEN
-              SCALUP=PCM(5)-2.*MIN(PTR,PTF)
-            ELSEIF(ISCALE.EQ.4)THEN
-              SCALUP=MIN(PTR,PTF)
-            ELSE
-              SCALUP=(MIN(PTR,PTF))**2+(XMA2+XMB2)/2.D0
-              SCALUP=SQRT(SCALUP)
-            ENDIF
-            IF (SCALUP.LE.ZERO) THEN
-               CALL HWWARN('UPEVNT',100)
-               GOTO 999
-            ENDIF            
-         ELSEIF (ISCALE.EQ.6) THEN
-            XMTR=SQRT(PUP(5,4)**2+PUP(1,4)**2+PUP(2,4)**2)
-            PTR=SQRT(PUP(1,3)**2+PUP(2,3)**2)
-            SCALUP=PCM(5)-PTR-XMTR
-            IF (SCALUP.LE.ZERO) THEN
-               CALL HWWARN('UPEVNT',100)
-               GOTO 999
-            ENDIF
-         ELSEIF (ISCALE.EQ.7) THEN
-            SCALUP=SQRT(PUP(5,4)**2+PUP(1,4)**2+PUP(2,4)**2)
-         ELSE
-            CALL HWWARN('UPEVNT',501)
-            GOTO 999
-         ENDIF
-      ELSE
-         NUP=NUP-1
-      ENDIF
-C---INITIAL STATE
-      DO I=1,2
-         ISTUP(I)=-1
-         MOTHUP(1,I)=0
-         MOTHUP(2,I)=0
-      ENDDO
-C---FINAL STATE
-      DO I=3,NUP
-         ISTUP(I)=1
-         MOTHUP(1,I)=1
-         MOTHUP(2,I)=2
-      ENDDO
-      IF (BOPRO.AND.NODEC) THEN
-C---SINGLE BOSON (UNDECAYED)
-         IF (REMIT) THEN
-C---SET COLOUR CONNECTIONS
-            DO I=1,3
-               ICOLUP(1,I)=501
-               ICOLUP(2,I)=502
-            ENDDO
-            IF (IHPRO.EQ.1) THEN
-               ICOLUP(2,1)=0
-               ICOLUP(1,2)=0
-            ELSEIF (IHPRO.EQ.2) THEN
-               ICOLUP(1,1)=502
-               ICOLUP(2,1)=0
-               ICOLUP(2,3)=0
-            ELSEIF (IHPRO.EQ.3) THEN
-               ICOLUP(1,1)=0
-               ICOLUP(2,2)=0
-            ELSEIF (IHPRO.EQ.4) THEN
-               ICOLUP(1,1)=0
-               ICOLUP(2,1)=501
-               ICOLUP(1,3)=0
-            ELSEIF (IHPRO.EQ.5) THEN
-               ICOLUP(1,2)=502
-               ICOLUP(2,2)=0
-               ICOLUP(2,3)=0
-            ELSEIF (IHPRO.EQ.6) THEN
-               ICOLUP(1,2)=0
-               ICOLUP(2,2)=501
-               ICOLUP(1,3)=0
-            ELSEIF (IHPRO.EQ.7) THEN
-               ICOLUP(1,2)=502
-               ICOLUP(2,2)=503
-               ICOLUP(2,3)=503
-            ELSE
-               CALL HWWARN('UPEVNT',101)
-               GOTO 999
-            ENDIF
-         ELSE
-            CALL HWVEQU(5,PUP(1,4),PUP(1,3))
-C---SET COLOUR CONNECTIONS
-            DO I=1,2
-               ICOLUP(1,I)=0
-               ICOLUP(2,I)=0
-            ENDDO
-            IF (IDUP(1).GT.0) THEN
-               ICOLUP(1,1)=501
-               ICOLUP(2,2)=501
-               IF (IDUP(1).GT.0) THEN
-C---GG FUSION
-                  ICOLUP(2,1)=502
-                  ICOLUP(1,2)=502
-               ENDIF
-            ELSE
-C---QBAR Q
-               ICOLUP(2,1)=501
-               ICOLUP(1,2)=501
-            ENDIF
-         ENDIF
-         ICOLUP(1,NUP)=0
-         ICOLUP(2,NUP)=0
-C---LOAD BOSON ID
-         IF (JPR.EQ.13) THEN
-            IDUP(NUP)=23
-         ELSEIF (JPR.EQ.16) THEN
-            IDUP(NUP)=25
-         ELSEIF (JPR.EQ.36) THEN
-            IBOS=MOD(JJPROC,100)
-            IF (IBOS.EQ.10) THEN
-               IDUP(NUP)=26
-            ELSEIF (IBOS.EQ.20) THEN
-               IDUP(NUP)=35
-            ELSEIF (IBOS.EQ.30) THEN
-               IDUP(NUP)=36 
-            ELSE
-               CALL HWWARN('UPEVNT',502)
-               GOTO 999
-            ENDIF
-         ELSEIF (JPR.EQ.14) THEN
-            IBOS=0
-            DO I=1,NUP-1
-               ID=IDUP(I)
-               IF (ID.EQ.21) THEN
-                  IC=0
-               ELSEIF (ID.GT.0) THEN
-                  IC=ICHRG(ID)
-               ELSE
-                  IC=ICHRG(6-ID)
-               ENDIF
-               IBOS=IBOS+IC
-            ENDDO
-            IF (REMIT) IBOS=IBOS-2*IC
-            IF (ABS(IBOS).NE.3) THEN
-               CALL  HWWARN('UPEVNT',503)
-               GOTO 999
-            ENDIF
-            IDUP(NUP)=8*IBOS
-         ENDIF
-      ELSEIF (JPR.EQ.17) THEN
-C---HEAVY QUARKS
-         IF (REMIT) THEN
-C---3-BODY FINAL STATE
-C---SET COLOUR CONNECTIONS
-            IF (IC.LE.18) THEN
-               DO I=1,5
-                  CALL UPCODE(ICOL5(I,IC),ICOLUP(1,I))
-               ENDDO
-            ELSE
-               CALL HWWARN('UPEVNT',105)
-               GOTO 999
-            ENDIF
-         ELSE
-C---2-BODY FINAL STATE
-            DO IP=3,NUP
-               IDUP(IP)=IDUP(IP+1)
-               CALL HWVEQU(5,PUP(1,IP+1),PUP(1,IP))
-            ENDDO
-C---SET COLOUR CONNECTIONS
-            IF (IC.LE.4) THEN
-               DO I=1,4
-                  CALL UPCODE(ICOL4(I,IC),ICOLUP(1,I))
-               ENDDO
-            ELSE
-               CALL HWWARN('UPEVNT',104)
-               GOTO 999
-            ENDIF
-         ENDIF
-         IF (.NOT.NODEC) THEN
-C---T-TBAR WITH DECAYS
-C   LES HOUCHES COMMON IS FILLED AS FOLLOWS:
-C
-C  1 INCOMING PARTON
-C  2 INCOMING PARTON
-C  3 OUTGOING LIGHT PARTON (IF ANY, OTHERWISE 4-13 BECOME 3-12)
-C  4 TOP
-C  5 ANTITOP
-C  6 QUARK FROM TOP
-C  7 W+ FROM TOP
-C  8 ANTIQUARK FROM ANTITOP
-C  9 W- FROM ANTITOP
-C 10 DECAY PRODUCT FROM W+ FROM TOP
-C 11 DECAY PRODUCT FROM W+ FROM TOP
-C 12 DECAY PRODUCT FROM W- FROM ANTITOP
-C 13 DECAY PRODUCT FROM W- FROM ANTITOP
-C
-C---RECONSTRUCT TOP DECAYS
-            IF (MOD(JJPROC,10).NE.6) THEN
-               CALL HWWARN('UPEVNT',210)
-               GOTO 999
-            ENDIF
-            NP=NUP
-C--W DECAYS
-            IDUP(NP+1)=IDUP(NP-5)
-            IDUP(NP+2)=IDUP(NP-4)
-            IDUP(NP+3)=IDUP(NP-2)
-            IDUP(NP+4)=IDUP(NP-1)
-            IDUP(NP-1)=IDUP(NP)
-            CALL HWVEQU(5,PUP(1,NP-5),PUP(1,NP+1))
-            CALL HWVEQU(5,PUP(1,NP-4),PUP(1,NP+2))
-            CALL HWVEQU(5,PUP(1,NP-2),PUP(1,NP+3))
-            CALL HWVEQU(5,PUP(1,NP-1),PUP(1,NP+4))
-            CALL HWVEQU(5,PUP(1,NP  ),PUP(1,NP-1))
-            CALL HWVSUM(4,PUP(1,NP+1),PUP(1,NP+2),PUP(1,NP-2))
-            CALL HWVSUM(4,PUP(1,NP+3),PUP(1,NP+4),PUP(1,NP))
-            CALL HWUMAS(PUP(1,NP-2))
-            CALL HWUMAS(PUP(1,NP))
-            IDUP(NP-2)=-(24*(MOD(IDUP(NP+1),2)+MOD(IDUP(NP+2),2)))
-            IDUP(NP)=-IDUP(NP-2)
-            DO IP=NP-3,NP+4
-               ISTUP(IP)=1
-            ENDDO
-            ISTUP(NP-2)=2
-            ISTUP(NP)=2
-C--TOP DECAYS
-            CALL HWVSUM(4,PUP(1,NP-3),PUP(1,NP-2),PUP(1,NP-5))
-            CALL HWVSUM(4,PUP(1,NP-1),PUP(1,NP  ),PUP(1,NP-4))
-            CALL HWUMAS(PUP(1,NP-5))
-            CALL HWUMAS(PUP(1,NP-4))
-            IDUP(NP-5)=IDUP(NP-2)/4
-            IDUP(NP-4)=-IDUP(NP-5)
-            ISTUP(NP-5)=2
-            ISTUP(NP-4)=2
-            MOTHUP(1,NP-5)=1
-            MOTHUP(2,NP-5)=2
-            MOTHUP(1,NP-4)=1
-            MOTHUP(2,NP-4)=2
-            MOTHUP(1,NP-3)=NP-5
-            MOTHUP(1,NP-2)=NP-5
-            MOTHUP(1,NP-1)=NP-4
-            MOTHUP(1,NP  )=NP-4
-            MOTHUP(1,NP+1)=NP-2
-            MOTHUP(1,NP+2)=NP-2
-            MOTHUP(1,NP+3)=NP
-            MOTHUP(1,NP+4)=NP
-            DO IP=NP-3,NP+4
-               MOTHUP(2,IP)=MOTHUP(1,IP)
-               ICOLUP(1,IP)=0
-               ICOLUP(2,IP)=0
-            ENDDO
-            ICOLUP(1,NP-3)=ICOLUP(1,NP-5)
-            ICOLUP(2,NP-3)=ICOLUP(2,NP-5)
-            ICOLUP(1,NP-1)=ICOLUP(1,NP-4)
-            ICOLUP(2,NP-1)=ICOLUP(2,NP-4)
-            IF (IDUP(NP+1).GT.0) THEN
-               ICOLUP(1,NP+1)=505
-               ICOLUP(2,NP+2)=505
-            ELSE
-               ICOLUP(2,NP+1)=505
-               ICOLUP(1,NP+2)=505
-            ENDIF
-            IF (IDUP(NP+3).GT.0) THEN
-               ICOLUP(1,NP+3)=506
-               ICOLUP(2,NP+4)=506
-            ELSE
-               ICOLUP(2,NP+3)=506
-               ICOLUP(1,NP+4)=506
-            ENDIF
-            NUP=NP+4
-         ENDIF
-C-- gkh      ELSEIF (JPR.EQ.20) THEN
-      ELSEIF (JPR.EQ.20 .AND. JJPROC.NE.2040.AND.JJPROC.NE.2041
-     &        .AND.JJPROC.NE.2044) THEN
-         IF (JJPROC.GE.2030) THEN
-C---TOP+W FINAL STATE
-C---SET COLOUR CONNECTIONS
-            IF (IC.GT.20) THEN
-               CALL HWWARN('UPEVNT',111)
-               GOTO 999
-            ENDIF
-            DO I=1,4
-               CALL UPCODE(ICOST(I,IC),ICOLUP(1,I))
-            ENDDO
-            ICOLUP(1,5)=0
-            ICOLUP(2,5)=0
-            IF (.NOT.REMIT) THEN
-C---2-BODY FINAL STATE
-               DO IP=3,NUP
-                  IDUP(IP)=IDUP(IP+1)
-                  ICOLUP(1,IP)=ICOLUP(1,IP+1)
-                  ICOLUP(2,IP)=ICOLUP(2,IP+1)
-                  CALL HWVEQU(5,PUP(1,IP+1),PUP(1,IP))
-               ENDDO
-            ENDIF
-            IF (NODEC) THEN
-               IP=NUP-1
-            ELSE
-               IP=NUP-2
-C---T W (OR TBAR W) WITH DECAYS
-C   LES HOUCHES COMMON IS FILLED AS FOLLOWS:
-C
-C  1 INCOMING PARTON
-C  2 INCOMING PARTON
-C  3 OUTGOING LIGHT PARTON (IF ANY, OTHERWISE 4-11 BECOME 3-10)
-C  4 TOP
-C  5 W FROM TOP
-C  6 QUARK FROM TOP
-C  7 DECAY PRODUCT FROM W FROM TOP
-C  8 DECAY PRODUCT FROM W FROM TOP
-C  9 W NOT FROM TOP
-C 10 DECAY PRODUCT FROM W NOT FROM TOP
-C 11 DECAY PRODUCT FROM W NOT FROM TOP
-C
-C---RECONSTRUCT W DECAY
-               NP=NUP
-               IDUP(NP+1)=-(24*(MOD(IDUP(NP-1),2)+MOD(IDUP(NP),2)))
-               IDUP(NP+2)=IDUP(NP-1)
-               IDUP(NP+3)=IDUP(NP)
-               CALL HWVEQU(5,PUP(1,NP-1),PUP(1,NP+2))
-               CALL HWVEQU(5,PUP(1,NP),PUP(1,NP+3))
-               CALL HWVSUM(4,PUP(1,NP-1),PUP(1,NP),PUP(1,NP+1))
-               CALL HWUMAS(PUP(1,NP+1))
-               ISTUP(NP+1)=2
-               ISTUP(NP+2)=1
-               ISTUP(NP+3)=1
-               MOTHUP(1,NP+1)=1
-               MOTHUP(2,NP+1)=2
-               MOTHUP(1,NP+2)=NP+1
-               MOTHUP(2,NP+2)=NP+1
-               MOTHUP(1,NP+3)=NP+1
-               MOTHUP(2,NP+3)=NP+1
-               ICOLUP(1,NP+1)=0
-               ICOLUP(2,NP+1)=0
-               ICOLUP(1,NP+2)=505
-               ICOLUP(2,NP+2)=0
-               ICOLUP(1,NP+3)=0
-               ICOLUP(2,NP+3)=505
-               NUP=NP+3
-            ENDIF                  
-            IF (IDUP(IP).LT.0) THEN
-C---CHARGE CONJUGATE PROCESS
-               DO I=1,NUP
-                  IA=ICOLUP(1,I)
-                  ICOLUP(1,I)=ICOLUP(2,I)
-                  ICOLUP(2,I)=IA
-               ENDDO
-            ENDIF
-         ELSE
-C---SINGLE TOP: IA,IB ARE THE QUARKS THAT ARE COLOUR CONNECTED
-C   I.E. (FOR H EVENTS) THOSE THAT ARE NOT CONNECTED TO GLUON
-            IA=IC/10
-            IB=IC-10*IA
-            IF (IA.LT.1.OR.IA.GT.5) THEN
-               CALL HWWARN('UPEVNT',108)
-            ELSEIF (IB.LT.1.OR.IB.GT.5) THEN
-               CALL HWWARN('UPEVNT',109)
-            ELSEIF (IA.EQ.IB) THEN
-               CALL HWWARN('UPEVNT',110)
-            ENDIF
-            IF (IERROR.NE.0) GOTO 999
-            IF (.NOT.NODEC) IDUP(5)=IDUP(5)+IDUP(6)
-            DO I=1,5
-               IF (I.EQ.IA.OR.I.EQ.IB) THEN
-                  IF (IDUP(I).GT.0) THEN
-                     ICOLUP(1,I)=501
-                     ICOLUP(2,I)=0
-                  ELSE
-                     ICOLUP(1,I)=0
-                     ICOLUP(2,I)=501
-                  ENDIF
-               ELSEIF (IDUP(I).EQ.21) THEN
-                  IG=I
-                  ICOLUP(1,I)=502
-                  ICOLUP(2,I)=503
-               ELSEIF (IDUP(I).GT.0) THEN
-                  ICOLUP(1,I)=502
-                  ICOLUP(2,I)=0
-               ELSE
-                  ICOLUP(1,I)=0
-                  ICOLUP(2,I)=502
-               ENDIF
-            ENDDO
-            IF (.NOT.NODEC) IDUP(5)=IDUP(5)-IDUP(6)
-            IF (REMIT) THEN
-C---3-BODY FINAL STATE
-C---COMPLETE GLUON COLOUR CONNECTIONS
-               IF (.NOT.NODEC) IDUP(5)=IDUP(5)+IDUP(6)
-               DO I=1,5
-                  IF (I.NE.IA.AND.I.NE.IB.AND.I.NE.IG) THEN
-                     IF (IDUP(I).GT.0) THEN
-                        IF((I.LT.3.AND.IG.LT.3)
-     &                       .OR.(I.GT.2.AND.IG.GT.2)) ICOLUP(1,I)=503
-                     ELSE
-                        IF((I.LT.3.AND.IG.GT.2)
-     &                       .OR.(I.GT.2.AND.IG.LT.3)) ICOLUP(2,I)=503
-                     ENDIF
-                  ENDIF
-               ENDDO
-               IF (.NOT.NODEC) IDUP(5)=IDUP(5)-IDUP(6)
-            ELSE
-C---2-BODY FINAL STATE
-               DO IP=3,NUP
-                  IDUP(IP)=IDUP(IP+1)
-                  CALL HWVEQU(5,PUP(1,IP+1),PUP(1,IP))
-               ENDDO
-C---SET COLOUR CONNECTIONS
-               ICOLUP(1,3)=ICOLUP(1,4)
-               ICOLUP(2,3)=ICOLUP(2,4)
-               ICOLUP(1,4)=ICOLUP(1,5)
-               ICOLUP(2,4)=ICOLUP(2,5)
-            ENDIF
-         ENDIF
-         IF (.NOT.NODEC) THEN
-            IF (JJPROC.GE.2030) THEN
-               NP=NUP-5
-            ELSE
-               NP=NUP
-C---SINGLE TOP WITH DECAYS
-C   LES HOUCHES COMMON IS FILLED AS FOLLOWS:
-C
-C  1 INCOMING PARTON
-C  2 INCOMING PARTON
-C  3 OUTGOING LIGHT PARTON (IF ANY, OTHERWISE 4-9 BECOME 3-8)
-C  4 OUTGOING BBAR-TYPE QUARK
-C  5 TOP
-C  6 W FROM TOP
-C  7 QUARK FROM TOP
-C  8 DECAY PRODUCT FROM W FROM TOP
-C  9 DECAY PRODUCT FROM W FROM TOP
-C
-C---RECONSTRUCT TOP DECAY
-            ENDIF
-            IDUP(NP+1)=IDUP(NP-2)
-            IDUP(NP+2)=IDUP(NP-1)
-            IDUP(NP-1)=-(24*(MOD(IDUP(NP+1),2)+MOD(IDUP(NP+2),2)))
-            IDUP(NP-2)=IDUP(NP-1)/4
-            CALL HWVEQU(5,PUP(1,NP-2),PUP(1,NP+1))
-            CALL HWVEQU(5,PUP(1,NP-1),PUP(1,NP+2))
-            CALL HWVSUM(4,PUP(1,NP+1),PUP(1,NP+2),PUP(1,NP-1))
-            CALL HWVSUM(4,PUP(1,NP-1),PUP(1,NP  ),PUP(1,NP-2))
-            CALL HWUMAS(PUP(1,NP-1))
-            CALL HWUMAS(PUP(1,NP-2))
-            DO IP=NP-3,NP+2
-               ISTUP(IP)=1
-            ENDDO
-            ISTUP(2)=-1
-            ISTUP(NP-1)=2
-            ISTUP(NP-2)=2
-            MOTHUP(1,NP-3)=1
-            MOTHUP(2,NP-3)=2
-            MOTHUP(1,NP-2)=1
-            MOTHUP(2,NP-2)=2
-            MOTHUP(1,NP-1)=NP-2
-            MOTHUP(1,NP  )=NP-2
-            MOTHUP(1,NP+1)=NP-1
-            MOTHUP(1,NP+2)=NP-1
-            DO IP=NP-1,NP+2
-               MOTHUP(2,IP)=MOTHUP(1,IP)
-               ICOLUP(1,IP)=0
-               ICOLUP(2,IP)=0
-            ENDDO
-            ICOLUP(1,NP)=ICOLUP(1,NP-2)
-            ICOLUP(2,NP)=ICOLUP(2,NP-2)
-            IF (IDUP(NP+1).GT.0) THEN
-               ICOLUP(1,NP+1)=504
-               ICOLUP(2,NP+2)=504
-            ELSE
-               ICOLUP(2,NP+1)=504
-               ICOLUP(1,NP+2)=504
-            ENDIF
-            IF (JJPROC.LT.2030) NUP=NP+2
-         ENDIF
-       ELSEIF (JPR.EQ.1) THEN
-C---E+E- ANNIHILATION
-         DO I=1,NUP
-            ICOLUP(1,I)=0
-            ICOLUP(2,I)=0
-         ENDDO
-C---RESCALE 3-MOMENTA TO PUT PARTONS ON-SHELL
-         PUP(5,1)=RMASS(121)
-         PUP(5,2)=PUP(5,1)
-         CALL HWURSC(2,PUP)
-         PUP(5,3)=RMASS(13)
-         PUP(5,4)=RMASS(ABS(IDUP(4)))
-         PUP(5,5)=PUP(5,4)
-         IF (REMIT) THEN
-            CALL HWURSC(3,PUP(1,3))
-            ICOLUP(1,3)=501
-            ICOLUP(2,3)=502
-            IF (IDUP(4).GT.0) THEN
-               ICOLUP(1,4)=502
-               ICOLUP(2,5)=501
-            ELSE
-               ICOLUP(2,4)=501
-               ICOLUP(1,5)=502
-            ENDIF
-         ELSE
-            CALL HWURSC(2,PUP(1,4))
-            DO I=3,4
-               CALL HWVEQU(5,PUP(1,I+1),PUP(1,I))
-               IDUP(I)=IDUP(I+1)
-               ISTUP(I)=1
-            ENDDO
-            IF (IDUP(3).GT.0) THEN
-               ICOLUP(1,3)=501
-               ICOLUP(2,4)=501
-            ELSE
-               ICOLUP(2,3)=501
-               ICOLUP(1,4)=501
-            ENDIF
-         ENDIF
-      ELSE
-C---BOSON PAIR OR LEPTON PAIR
-         IF (BOPRO.OR.NODEC) THEN
-            NUP=6
-            DO I=6,5,-1
-               CALL HWVEQU(5,PUP(1,I-1),PUP(1,I))
-               IDUP(I)=IDUP(I-1)
-               ISTUP(I)=1
-            ENDDO
-         ELSE
-C---BOSON PAIR: ONE OR BOTH DECAYED
-C---ADD BOSON(S) TO EVENT RECORD
-            IF (ABS(IDUP(6)).LT.20) THEN
-               NUP=8
-               I=2
-               IF (ABS(IDUP(4)).LT.20) THEN
-                  NUP=10
-                  I=3
-               ENDIF
-               MUP=NUP-1
-               CALL HWVEQU(5,PUP(1,MUP-I),PUP(1,MUP))
-               CALL HWVEQU(5,PUP(1,NUP-I),PUP(1,NUP))
-               CALL HWVSUM(4,PUP(1,MUP),PUP(1,NUP),PUP(1,6))
-               CALL HWUMAS(PUP(1,6))
-               IDUP(MUP)=IDUP(MUP-I)
-               IDUP(NUP)=IDUP(NUP-I)
-               ISTUP(MUP)=1
-               ISTUP(NUP)=1
-               MOTHUP(1,MUP)=6
-               MOTHUP(2,MUP)=6
-               MOTHUP(1,NUP)=6
-               MOTHUP(2,NUP)=6
-               ISTUP(6)=2
-               ID=MOD(IDUP(MUP),2)+MOD(IDUP(NUP),2)
-               IF (ID.EQ.0) THEN
-                  IDUP(6)=23
-               ELSEIF (ABS(ID).EQ.1) THEN
-                  IDUP(6)=-(24*ID)
-               ELSE
-                  CALL HWWARN('UPEVNT',106)            
-                  GOTO 999            
-               ENDIF
-            ENDIF
-            IF (ABS(IDUP(4)).LT.20) THEN
-               CALL HWVZRO(4,PDB)
-               DO I=8,7,-1
-                  CALL HWVEQU(5,PUP(1,I-3),PUP(1,I))
-                  CALL HWVSUM(4,PUP(1,I),PDB,PDB)
-                  IDUP(I)=IDUP(I-3)
-                  ISTUP(I)=1
-                  MOTHUP(1,I)=5
-                  MOTHUP(2,I)=5
-               ENDDO
-               CALL HWUMAS(PDB)
-               CALL HWVEQU(5,PDB,PUP(1,5))
-               ISTUP(5)=2
-               ID=MOD(IDUP(7),2)+MOD(IDUP(8),2)
-               IF (ID.EQ.0) THEN
-                  IDUP(5)=23
-               ELSEIF (ABS(ID).EQ.1) THEN
-                  IDUP(5)=-(24*ID)
-               ELSE
-                  CALL HWWARN('UPEVNT',107)            
-                  GOTO 999
-               ENDIF
-            ELSE
-               CALL HWVEQU(5,PUP(1,4),PUP(1,5))
-               IDUP(5)=IDUP(4)
-               ISTUP(5)=1
-               MOTHUP(1,5)=4
-               MOTHUP(2,5)=4
-            ENDIF
-         ENDIF
-C---ADD DIBOSON OR DILEPTON TO EVENT RECORD (TO FIX ITS MASS)
-         CALL HWVZRO(4,PDB)
-CC << OJ
-         NENTRIES = 4
-         NBACK = 2
-         IF (((JPR.EQ.13).OR.(JPR.EQ.14)).AND.(REMIT.EQV..FALSE.)) THEN
-            NENTRIES = 3
-            NBACK = 1 
-         ENDIF
-
-         DO I=6,5,-1
-            CALL HWVSUM(4,PUP(1,I),PDB,PDB)
-c            MOTHUP(1,I)=4
-c            MOTHUP(2,I)=4
-CC << OJ
-            MOTHUP(1,I)=NENTRIES
-            MOTHUP(2,I)=NENTRIES
-CC >> OJ
-         ENDDO
-         CALL HWUMAS(PDB)
-c         CALL HWVEQU(5,PDB,PUP(1,4))
-c         ISTUP(4)=2
-c         IDUP(4)=0
-CC << OJ
-         CALL HWVEQU(5,PDB,PUP(1,NENTRIES))
-         ISTUP(NENTRIES)=2
-         IDUP(NENTRIES)=0
-CC >> OJ
-         IF (REMIT) THEN
-C---SET COLOUR CONNECTIONS
-            DO I=1,3
-               ICOLUP(1,I)=501
-               ICOLUP(2,I)=502
-            ENDDO
-            IF (IHPRO.EQ.1) THEN
-               ICOLUP(2,1)=0
-               ICOLUP(1,2)=0
-            ELSEIF (IHPRO.EQ.2) THEN
-               ICOLUP(1,1)=502
-               ICOLUP(2,1)=0
-               ICOLUP(2,3)=0
-            ELSEIF (IHPRO.EQ.3) THEN
-               ICOLUP(1,1)=0
-               ICOLUP(2,2)=0
-            ELSEIF (IHPRO.EQ.4) THEN
-               ICOLUP(1,1)=0
-               ICOLUP(2,1)=501
-               ICOLUP(1,3)=0
-            ELSEIF (IHPRO.EQ.5) THEN
-               ICOLUP(1,2)=502
-               ICOLUP(2,2)=0
-               ICOLUP(2,3)=0
-            ELSEIF (IHPRO.EQ.6) THEN
-               ICOLUP(1,2)=0
-               ICOLUP(2,2)=501
-               ICOLUP(1,3)=0
-            ELSE
-               CALL HWWARN('UPEVNT',102)
-               GOTO 999
-            ENDIF
-            DO I=4,NUP
-               ICOLUP(1,I)=0
-               ICOLUP(2,I)=0
-            ENDDO
-         ELSE
-            DO I=5,NUP
-c               CALL HWVEQU(5,PUP(1,I),PUP(1,I-2))
-c               IDUP(I-2)=IDUP(I)
-c               ISTUP(I-2)=ISTUP(I)
-c               MOTHUP(1,I-2)=MOTHUP(1,I)-2
-c               MOTHUP(2,I-2)=MOTHUP(1,I)-2
-CC << OJ
-               CALL HWVEQU(5,PUP(1,I),PUP(1,I-NBACK))
-               IDUP(I-NBACK)=IDUP(I)
-               ISTUP(I-NBACK)=ISTUP(I)
-               IF (NBACK.EQ.1) THEN
-                  MOTHUP(1,I-1)=3
-                  MOTHUP(2,I-1)=3
-               ELSE
-                  MOTHUP(1,I-2)=MOTHUP(1,I)-NBACK
-                  MOTHUP(2,I-2)=MOTHUP(1,I)-NBACK
-               ENDIF
-CC >> OJ 
-            ENDDO
-            IF (NBACK.EQ.2) THEN
-               MOTHUP(1,3)=1
-               MOTHUP(1,4)=1
-            ENDIF
-c            NUP=NUP-2
-CC << OJ
-            NUP=NUP-NBACK
-
-CC >> OJ
-C---SET COLOUR CONNECTIONS
-            DO I=1,NUP
-               ICOLUP(1,I)=0
-               ICOLUP(2,I)=0
-            ENDDO
-            IF (IDUP(1).GT.0) THEN
-               ICOLUP(1,1)=501
-               ICOLUP(2,2)=501
-            ELSE
-               ICOLUP(2,1)=501
-               ICOLUP(1,2)=501
-            ENDIF
-         ENDIF
-
-         IF (BOPRO) THEN
-C---DILEPTON PRODUCTION
-            IBOS=MOD(JJPROC,100)
-            ILEP=MOD(JJPROC,10)
-            IBOS=IBOS-ILEP
-C---LOAD LEPTON AND BOSON ID
-            I=NUP-1
-            J=NUP
-            IF ( IBOS.EQ.50 .OR.
-     #          (IBOS.EQ.60.AND.JPR.EQ.13) .OR.
-     #          (IBOS.EQ.70.AND.JPR.EQ.13) ) THEN
-               IDUP(I)=-ILEP-10
-               IDUP(J)=-IDUP(I)
-c               IF (REMIT) IDUP(4)=23
-CC << OJ
-               IDUP(NENTRIES)=23
-CC >> OJ
-            ELSEIF (IBOS.EQ.60.AND.JPR.EQ.14) THEN
-               IDUP(I)=-9-2*ILEP
-               IDUP(J)=1-IDUP(I)
-c               IF (REMIT) IDUP(4)=24
-CC << OJ
-               IDUP(NENTRIES)=24
-CC >> OJ
-            ELSEIF (IBOS.EQ.70.AND.JPR.EQ.14) THEN
-               IDUP(I)=-10-2*ILEP
-               IDUP(J)=-1-IDUP(I)
-c               IF (REMIT) IDUP(4)=-24
-CC << OJ
-               IDUP(NENTRIES)=-24
-CC >> OJ
-            ELSE
-               CALL HWWARN('UPEVNT',504)
-               GOTO 999
-            ENDIF
-         ENDIF
-
-      ENDIF
-
-cc << OJJ
-cc         write(*,*) ' AFTER I  IDUP ISTUP MOTH1 MOTH2'
-cc         Do I=1,NUP
-cc            write(*,*) I,' ',IDUP(I),' ',ISTUP(I),' ',MOTHUP(1,I),
-cc     $           ' ',MOTHUP(2,I),' ',PUP(1,I),' ',PUP(2,I),' ',
-cc     $           PUP(3,I),' ',PUP(4,I)
-cc         ENDDO
-
-C...=======================================================
-C...Fill spin information for tauola.
-C...Specify the decal mode.
-C...imode: 1:W, 2:WW, 4:Z, 5:WZ, 8:ZZ, 16:H, 17:WH, 20:ZH.
-      imode = 0
-      itau1 = 0
-      itau2 = 0
-      itau3 = 0
-      do i=1,nup
-        if (iabs(idup(i)).eq.24) then
-          imode = imode + 1
-        else if (iabs(idup(i)).eq.23) then
-          imode = imode + 4
-        else if (iabs(idup(i)).eq.25) then
-          imode = imode + 16
-        endif
-      enddo
-      do i=1,nup
-         if(mothup(1,i).gt.0) then
-            if (imode.eq.1) then ! single W production
-               if (iabs(idup(i)).eq.15.and.iabs(idup(mothup(1,i)))
-     &              .eq.24) then
-                  itau1 = i
-               endif
-            else if (imode.eq.2) then ! WW production
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.24) then
-                  itau1 = i
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.-24) then
-                  itau2 = i
-               endif
-            else if (imode.eq.4) then ! single Z production
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.23) then
-                  itau1 = i
-                  itau3 = mothup(1,i)
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.23) then
-                  itau2 = i
-               endif
-            else if (imode.eq.5) then ! WZ production (so far, only assign for W decay.)
-               if (iabs(idup(i)).eq.15.and.iabs(idup(mothup(1,i)))
-     &              .eq.24) then
-                  itau1 = i
-               endif
-            else if (imode.eq.8) then ! ZZ production (so far do nothing.)
-            else if (imode.eq.16) then ! single H production
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.25) then
-                  itau1 = i
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.25) then
-                  itau2 = i
-               endif
-            else if (imode.eq.17) then ! WH production
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.25) then
-                  itau1 = i
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.25) then
-                  itau2 = i
-               endif
-               if (iabs(idup(i)).eq.15.and.iabs(idup(mothup(1,i)))
-     &              .eq.24) then
-                  itau3 = i
-               endif
-            else if (imode.eq.20) then ! ZH production (so far nothing for Z side.)
-               if (idup(i).eq.-15.and.idup(mothup(1,i)).eq.25) then
-                  itau1 = i
-               endif
-               if (idup(i).eq.15.and.idup(mothup(1,i)).eq.25) then
-                  itau2 = i
-               endif
-            endif
-        endif
-      enddo
-
-      if (itau1.ne.0) then
-        spinup(itau1) = 0
-      endif
-      if (itau2.ne.0) then
-        spinup(itau2) = 0
-      endif
-      if (itau3.ne.0) then
-        spinup(itau3) = 0
-      endif
-
-C...Assign spin information.
-      if (imode.eq.1) then         ! single W production
-        if (itau1.ne.0) then
-          spinup(itau1) = -1.0d0
-        endif
-      else if (imode.eq.2) then    ! WW production
-        if (itau1.ne.0) then
-          spinup(itau1) = -1.0d0
-        endif
-        if (itau2.ne.0) then
-          spinup(itau2) = -1.0d0
-        endif
-c JK
-c      else if (imode.eq.4) then    ! single Z production
-      else if (imode.eq.4
-     &       .and. itau1.ne.0.and.itau2.ne.0.and.itau3.ne.0) then ! single Z production
-
-
-C...Special case. Temporaly create the HEPEVT block. Later delete it.
-        nhep = 9
-        isthep(4) = 121
-        isthep(5) = 122
-        isthep(6) = 120
-        isthep(7) = 124
-        isthep(8) = 1
-        isthep(9) = 1
-        idhep(4) = idup(1)
-        idhep(5) = idup(2)
-        idhep(6) = 0
-        idhep(7) = idup(itau3)
-        idhep(8) = idup(itau1)
-        idhep(9) = idup(itau2)
-        jmohep(1,4) = 6
-        jmohep(2,4) = 5
-        jmohep(1,5) = 6
-        jmohep(2,5) = 4
-        jmohep(1,6) = 4
-        jmohep(2,6) = 5
-        jmohep(1,7) = 6
-        jmohep(2,7) = 7
-        jmohep(1,8) = 7
-        jmohep(2,8) = 8
-        jmohep(1,9) = 7
-        jmohep(2,9) = 9
-        jdahep(1,4) = 5
-        jdahep(2,4) = 5
-        jdahep(2,5) = 4
-        jdahep(2,5) = 4
-        jdahep(2,6) = 7
-        jdahep(2,6) = 7
-        jdahep(2,7) = 8
-        jdahep(2,7) = 9
-        jdahep(2,8) = 0
-        jdahep(2,8) = 0
-        jdahep(2,9) = 0
-        jdahep(2,9) = 0
-        do i=1,5
-          phep(i,4) = pup(i,1)
-          phep(i,5) = pup(i,2)
-          phep(i,6) = pup(i,1)+pup(i,2)
-          phep(i,7) = pup(i,itau3)
-          phep(i,8) = pup(i,itau1)
-          phep(i,9) = pup(i,itau2)
-        enddo
-        phep(5,6) = sqrt((pup(4,1)+pup(4,2))**2
-     $                  -(pup(1,1)+pup(1,2))**2
-     $                  -(pup(2,1)+pup(2,2))**2
-     $                  -(pup(3,1)+pup(3,2))**2)
-        do i=1,4
-          vhep(i,4) = 0.0d0
-          vhep(i,5) = 0.0d0
-          vhep(i,6) = 0.0d0
-          vhep(i,7) = 0.0d0
-          vhep(i,8) = 0.0d0
-          vhep(i,9) = 0.0d0
-        enddo
-
-        polz0 = plzapx(1,7,8,9)
-        if (pyr(0).LT.polz0) THEN
-          spinup(itau1) = 1.0d0
-          spinup(itau2) = 1.0d0
-        else
-          spinup(itau1) = -1.0d0
-          spinup(itau2) = -1.0d0
-        endif
-C...Delete temporal HEPEVT.
-        nhep = 3
-        do i=4,9
-          isthep(i) = 0
-          idhep(i)  = 0
-          jmohep(1,i) = 0
-          jmohep(2,i) = 0
-          jdahep(1,i) = 0
-          jdahep(2,i) = 0
-          phep(1,i) = 0.0d0
-          phep(2,i) = 0.0d0
-          phep(3,i) = 0.0d0
-          phep(4,i) = 0.0d0
-          phep(5,i) = 0.0d0
-          vhep(1,i) = 0.0d0
-          vhep(2,i) = 0.0d0
-          vhep(3,i) = 0.0d0
-          vhep(4,i) = 0.0d0
-        enddo
-      else if (imode.eq.5) then    ! WZ production (so far, only assign for W decay.)
-        if (itau1.ne.0) then
-          spinup(itau1) = -1.0d0
-        endif
-      else if (imode.eq.8) then    ! ZZ production (so far do nothing.)
-      else if (imode.eq.16) then   ! single H production
-        if (itau1.ne.0.and.itau2.ne.0) then
-          if (pyr(0).lt.0.5d0) then
-            spinup(itau1) =  1.0d0
-            spinup(itau2) = -1.0d0
-          else
-            spinup(itau1) = -1.0d0
-            spinup(itau2) =  1.0d0
-          endif
-        endif
-      else if (imode.eq.17) then   ! WH production
-        if (itau1.ne.0.and.itau2.ne.0) then
-          if (pyr(0).lt.0.5d0) then
-            spinup(itau1) =  1.0d0
-            spinup(itau2) = -1.0d0
-          else
-            spinup(itau1) = -1.0d0
-            spinup(itau2) =  1.0d0
-          endif
-        endif
-        if (itau3.ne.0) then
-          spinup(itau3) = -1.0d0
-        endif
-      else if (imode.eq.20) then   ! ZH production (so far nothing for Z side.)
-        if (itau1.ne.0.and.itau2.ne.0) then
-          if (pyr(0).lt.0.5d0) then
-            spinup(itau1) =  1.0d0
-            spinup(itau2) = -1.0d0
-          else
-            spinup(itau1) = -1.0d0
-            spinup(itau2) =  1.0d0
-          endif
-        endif
-      endif
-
-C...Debug.
-C      write(*,*) "ST...McAtNlo",imode,itau1,itau2,itau3
-C      if (itau1.ne.0) then
-C        write(*,*) "ST...McAtNlo after fill 1",idup(itau1),spinup(itau1)
-C      endif
-C      if (itau2.ne.0) then
-C        write(*,*) "ST...McAtNlo after fill 2",idup(itau2),spinup(itau2)
-C      endif
-C      if (itau3.ne.0) then
-C        write(*,*) "ST...McAtNlo after fill 3",idup(itau3),spinup(itau3)
-C      endif
-C...=======================================================
-
-
-
- 999  CONTINUE
-      IF(IERROR.LT.100) RETURN 
-c     PRINT *
-c      DO I=1,NUP
-c         PRINT '(4I4,3F8.2)',IDUP(I),ISTUP(I),(MOTHUP(J,I),J=1,2),
-c     &        (PUP(J,I),J=1,3)
-c      ENDDO
-      
-c       IPR, IC, NP
- 901  FORMAT(1X,I3,2(1X,I2))
-c      (ID(I),I=1,NP)
- 902  FORMAT(9(1X,I3))
-c       XEVWGT,EMSCA
- 903  FORMAT(2(1X,D14.8))
-c      ((P(J,I),J=1,4),I=1,NP)
- 904  FORMAT(36(1X,D14.8))
-C gkh
- 905  FORMAT(3(1X,D14.8))
- 906  FORMAT(10(1x,d14.8))
- 907  FORMAT(28(1x,d14.8))
-
-c 901  FORMAT(1X,I3,4(1X,I2))
-c 902  FORMAT(1X,D14.8)
-c 903  FORMAT(16(1X,D14.8))
-      END
-C----------------------------------------------------------------------
-      SUBROUTINE UPCODE(ICODE,ICOL)
-C--DECODES COLOUR CONNECTIONS
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-      INTEGER ICODE,ICOL(2)
-      ICOL(1)=ICODE/10
-      IF (ICOL(1).NE.0) ICOL(1)=ICOL(1)+500
-      ICOL(2)=MOD(ICODE,10)
-      IF (ICOL(2).NE.0) ICOL(2)=ICOL(2)+500
-      END
-
-      SUBROUTINE HWURSC(NP,PP)
-C  RESCALES A SET OF NP (<21) 3-MOMENTA PP(1-3,*) IN
-C  THEIR CMF TO PUT PP ON MASS-SHELL AT MASSES PP(5,*) 
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-      INTEGER NP,IP,IT,NT
-      DOUBLE PRECISION PP(5,*),P(5,20),P2(20),M2(20),SP(5),
-     & TINY,FAC,ECM,DCM,EP,STEP,FRT,HWUSQR
-      DATA TINY,NT/1D-9,20/
-      IF (NP.GT.20) CALL HWWARN('HWURSC',300+NP)
-C--COMPUTE CM MOMENTUM
-      CALL HWVZRO(4,SP)
-      DO IP=1,NP
-         CALL HWVSUM(4,PP(1,IP),SP,SP)
-      ENDDO
-      CALL HWUMAS(SP)
-C--BOOST TO CMF
-      DO IP=1,NP
-         CALL HWULOF(SP,PP(1,IP),P(1,IP))
-         P2(IP)=P(1,IP)**2+P(2,IP)**2+P(3,IP)**2
-         M2(IP)=P(5,IP)**2
-      ENDDO
-C--ITERATE RESCALING OF 3-MOMENTA
-      FAC=1D0
-      DO IT=1,NT
-         ECM=0D0
-         DCM=0D0
-         DO IP=1,NP
-            EP=HWUSQR(M2(IP)+FAC*P2(IP))
-            IF (EP.GT.0D0) THEN
-               ECM=ECM+EP
-               DCM=DCM+P2(IP)/EP
-            ENDIF
-         ENDDO
-         IF (DCM.EQ.0D0) CALL HWWARN('HWURSC',390)
-         STEP=2D0*(ECM-SP(5))/DCM
-         FAC=FAC-STEP
-         IF (ABS(STEP).LT.TINY) GOTO 100
-      ENDDO
-C--FAILED TO CONVERGE
-      CALL HWWARN('HWURSC',1)
-C--CONVERGED: RESCALE 3-MOMENTA AND BOOST BACK 
- 100  IF (FAC.LT.0D0) CALL HWWARN('HWURSC',391)
-      FRT=SQRT(FAC)
-      DO IP=1,NP
-         CALL HWVSCA(3,FRT,P(1,IP),P(1,IP))
-         P(4,IP)=SQRT(M2(IP)+FAC*P2(IP))
-         CALL HWULOB(SP,P(1,IP),PP(1,IP))
-      ENDDO
-      END
diff --git a/Generators/Protos_i/CMakeLists.txt b/Generators/Protos_i/CMakeLists.txt
deleted file mode 100644
index 08e14aec9c0462fe31da8fa9f3aba5c72dc0e18f..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-################################################################################
-# Package: Protos_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( Protos_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PRIVATE
-                          Generators/GeneratorFortranCommon )
-
-# External dependencies:
-find_package( Pythia6 )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( Protos_i
-                   src/*.F
-                   PUBLIC_HEADERS Protos_i
-                   INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${PYTHIA6_LIBRARIES} GeneratorFortranCommonLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-atlas_install_runtime( share/*.events share/*.dat )
-
diff --git a/Generators/Protos_i/Protos_i/1HL.inc b/Generators/Protos_i/Protos_i/1HL.inc
deleted file mode 100644
index e8f5741fc8a10fcb395ccd77681dd837350c50b7..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/1HL.inc
+++ /dev/null
@@ -1,371 +0,0 @@
-1037  NUP=9
-
-      READ (lun,*,END=1237) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1
-      IF (IDB1 .EQ. 25) NUP=NUP-2
-      IF (ABS(IDB1) .EQ. 34) NUP=NUP-1
-      IF (ABS(IDB1) .EQ. 134) NUP=NUP+3
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     l2: Charged lepton from W/W' decay
-
-      i=3
-      id_L2=i
-      ISTUP(i)=1
-      IF (IHRD .EQ. 38) THEN
-        MOTHUP(1,i)=NUP
-      ELSE
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ENDIF
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      CHL1=-SIGN(1,IDUP(i))
-
-!     Charged lepton from L1 decay
-
-      i=i+1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+4
-      IF (IDB1 .EQ. 25) MOTHUP(1,i)=i+2
-      IF (ABS(IDB1) .EQ. 34) MOTHUP(1,i)=i+3
-      IF (ABS(IDB1) .EQ. 134) MOTHUP(1,i)=i+7
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      id_l=i
-      CHL=-SIGN(1,IDUP(i))
-      IF ( (ABS(IDUP(i)) .EQ. 12) .OR. (ABS(IDUP(i)) .EQ. 14)
-     &  .OR. (ABS(IDUP(i)) .EQ. 16) ) CHL=0 
-
-!     N decay products and N
-
-      IF ((ABS(IDB1) .EQ. 24) .OR. (IDB1 .EQ. 23)) THEN
-
-!     --------
-!     B1 = W,Z
-!     --------
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     B1
-
-      i=i0
-      id_VB=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+1
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     L1
-
-      i=id_VB+1
-      id_L1=i
-      ISTUP(i)=2
-      CHL2 = CHVB+CHL
-      IF (CHL2 .EQ. 0) THEN
-        IDUP(i)=SIGN(18,IDUP(id_l))
-      ELSE
-        PRINT *,'Wrong neutrino charge'
-        STOP
-      ENDIF
-      IF (IHRD .EQ. 38) THEN
-        MOTHUP(1,i)=NUP
-      ELSE
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_l)+PUP(j,id_VB)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     ------
-!     B1 = H
-!     ------
-
-      ELSE IF (IDB1 .EQ. 25) THEN
-
-      i=i+1
-      id_VB=i
-      CHVB=0
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     L1
-
-      i=id_VB+1
-      id_L1=i
-      ISTUP(i)=2
-      CHL2 = CHVB+CHL
-      IF (CHL2 .EQ. 0) THEN
-        IDUP(i)=SIGN(18,IDUP(id_l))
-      ELSE
-        PRINT *,'Wrong neutrino charge'
-        STOP
-      ENDIF
-      IF (IHRD .EQ. 38) THEN
-        MOTHUP(1,i)=NUP
-      ELSE
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_l)+PUP(j,id_VB)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     -------------
-!     B1 = W' -> jj
-!     -------------
-
-      ELSE IF (ABS(IDB1) .EQ. 34) THEN
-
-      i0=i+3
-      id_f1=i0-2
-      id_f2=i0-1
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-
-!     L1
-
-      i=i0
-      id_L1=i
-      ISTUP(i)=2
-      CHL2 = CHVB+CHL
-      IF (CHL2 .EQ. 0) THEN
-        IDUP(i)=SIGN(18,IDUP(id_l))
-      ELSE
-        PRINT *,'Wrong neutrino charge'
-        STOP
-      ENDIF
-      IF (IHRD .EQ. 38) THEN
-        MOTHUP(1,i)=NUP
-      ELSE
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_l)+PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     -------------
-!     B1 = W' -> tb
-!     -------------
-
-      ELSE
-
-      i0=i+7
-
-!     b from N
-
-      i=i+1
-      id_b1=i
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     b from t
-
-      i=i+1
-      id_b2=i
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0-1
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W decay products
-
-      DO i=i0-4,i0-3
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0-2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W
-
-      i=i0-2
-      id_VB=i
-      id_f1=i0-4
-      id_f2=i0-3
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'Wrong W charge'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+1
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     t
-
-      i=i+1
-      ISTUP(i)=2
-      MOTHUP(1,i)=i+1
-      ICOLUP(1,i)=ICOLUP(1,id_b2)
-      ICOLUP(2,i)=ICOLUP(2,id_b2)
-      IDUP(i)=SIGN(6,IDUP(id_b2))
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_b2)+PUP(j,id_VB)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     L1
-
-      i=i0
-      id_L1=i
-      ISTUP(i)=2
-      CHL2 = CHL+IDUP(i-4)+IDUP(i-3)
-      IF (CHL2 .EQ. 0) THEN
-        IDUP(i)=SIGN(18,IDUP(id_l))
-      ELSE
-        PRINT *,'Wrong neutrino charge'
-        STOP
-      ENDIF
-      IF (IHRD .EQ. 38) THEN
-        MOTHUP(1,i)=NUP
-      ELSE
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_l)+PUP(j,id_b1)+PUP(j,id_b2)+PUP(j,id_VB)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      ENDIF
-
-!     Check
-
-      IF ((IDUP(id_VB) .NE. IDB1) .AND. (ABS(IDB1) .LT. 34)) THEN
-        PRINT *,'Error in B1'
-        STOP
-      ENDIF
-
-      IF (IHRD .NE. 38) RETURN
-
-!     Finally, resonance
-
-      i=id_L1+1
-      IF (i .NE. NUP) THEN
-        PRINT *,'Reconstruction error'
-        STOP
-      ENDIF
-      ISTUP(i)=2
-      CHVB = CHL1+CHL2
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=32
-      ELSE
-        IDUP(i)=SIGN(34,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_L1)+PUP(j,id_L2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      RETURN
-
-1237  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/2HL.inc b/Generators/Protos_i/Protos_i/2HL.inc
deleted file mode 100644
index 800eefcc0bbfcac3f5a19bfd070d5a2e46b737a4..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/2HL.inc
+++ /dev/null
@@ -1,267 +0,0 @@
-1031  IF ((IHRD .GE. 31) .AND. (IHRD .LE. 33)) THEN
-        NUP=12
-      ELSE
-        NUP=13
-      ENDIF
-
-      READ (lun,*,END=1231) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1,IDB2
-      IF (IDB1 .EQ. 25) NUP=NUP-2
-      IF (IDB2 .EQ. 25) NUP=NUP-2
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Charged lepton from L1 decay
-
-      i=3
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+4
-      IF (IDB1 .EQ. 25) MOTHUP(1,i)=i+2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      id_l=i
-      CHL=-SIGN(1,IDUP(i))
-      IF ( (ABS(IDUP(i)) .EQ. 12) .OR. (ABS(IDUP(i)) .EQ. 14)
-     &  .OR. (ABS(IDUP(i)) .EQ. 16) ) CHL=0 
-
-!     B1 decay products (if any) and B1
-
-      IF (IDB1 .NE. 25) THEN     ! B1 = W,Z, decay products first
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     B1
-
-      i=i0
-      id_VB=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+1
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      ELSE                      !  B1 = H, no decay
-
-      i=i+1
-      id_VB=i
-      CHVB=0
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      ENDIF
-
-!     Check
-
-      IF (IDUP(id_VB) .NE. IDB1) THEN
-        PRINT *,'Error in B2'
-        STOP
-      ENDIF
-
-!     L1
-
-      i=id_VB+1
-      id_L1=i
-      ISTUP(i)=2
-      CHL1 = CHVB+CHL
-      IF (CHL1 .EQ. 0) THEN
-        IDUP(i)=SIGN(18,IDUP(id_l))
-      ELSE
-        IDUP(i)=-SIGN(17,CHL1)
-      ENDIF
-      IF ((IHRD .GE. 31) .AND. (IHRD .LE. 33)) THEN
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ELSE
-        MOTHUP(1,i)=NUP
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_l)+PUP(j,id_VB)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     Charged lepton from L2 decay
-
-      i=i+1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+4
-      IF (IDB2 .EQ. 25) MOTHUP(1,i)=i+2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      id_l=i
-      CHL=-SIGN(1,IDUP(i))
-      IF ( (ABS(IDUP(i)) .EQ. 12) .OR. (ABS(IDUP(i)) .EQ. 14)
-     &  .OR. (ABS(IDUP(i)) .EQ. 16) ) CHL=0 
-
-!     B2 decay products (if any) and B2
-
-      IF (IDB2 .NE. 25) THEN     ! B2 = W,Z, decay products first
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     B2
-
-      i=i0
-      id_VB=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+1
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      ELSE                      !  B1 = H, no decay
-
-      i=i+1
-      id_VB=i
-      CHVB=0
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      ENDIF
-
-!     Check
-
-      IF (IDUP(id_VB) .NE. IDB2) THEN
-        PRINT *,'Error in B2'
-        STOP
-      ENDIF
-
-!     L2
-
-      i=id_VB+1
-      id_L2=i
-      ISTUP(i)=2
-      CHL2 = CHVB+CHL
-      IF (CHL2 .EQ. 0) THEN
-        IDUP(i)=SIGN(18,IDUP(id_l))
-      ELSE
-        IDUP(i)=-SIGN(17,CHL2)
-      ENDIF
-      IF ((IHRD .GE. 31) .AND. (IHRD .LE. 33)) THEN
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ELSE
-        MOTHUP(1,i)=NUP
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_l)+PUP(j,id_VB)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      IF ((IHRD .GE. 31) .AND. (IHRD .LE. 33)) RETURN
-
-!     Resonance
-
-      i=id_L2+1
-      IF (i .NE. NUP) THEN
-        PRINT *,'Reconstruction error'
-        STOP
-      ENDIF
-      ISTUP(i)=2
-      CHVB = CHL1+CHL2
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=32
-      ELSE
-        IDUP(i)=SIGN(34,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_L1)+PUP(j,id_L2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      RETURN
-
-1231  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/BB.inc b/Generators/Protos_i/Protos_i/BB.inc
deleted file mode 100644
index fd7ca8c852a51171f500df30a0fe9feebacfb506..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/BB.inc
+++ /dev/null
@@ -1,351 +0,0 @@
-1052  NUP=20
-
-      READ (lun,*,END=1252) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1,IDB2
-      IF (IDB1 .EQ. 23) NUP=NUP-4
-      IF (IDB2 .EQ. 23) NUP=NUP-4
-      IF (IDB1 .EQ. 25) NUP=NUP-6
-      IF (IDB2 .EQ. 25) NUP=NUP-6
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Set pointers for first heavy quark
-
-      id_HQ=3
-      id_b=5
-      IF (ABS(IDB1) .EQ. 24) THEN
-        id_Qt=id_b+4
-        num_Qt=6
-      ELSE
-        id_Qt=id_HQ
-        num_Qt=7
-      ENDIF
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      IF (IDB1 .NE. 25) THEN
-
-!     W or Z decay products
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W or Z
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      ELSE
-
-!     Read H
-
-      i0=i+1
-      i=i0
-      id_VB=i0
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_HQ
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      ENDIF
-
-!     B or t
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      
-      IF (ABS(IDB1) .EQ. 24) THEN
-        MOTHUP(1,i)=id_HQ
-      ELSE
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     --------------------
-!     Extra bosons, if any
-!     --------------------
-
-      IF (ABS(IDB1) .EQ. 24) THEN
-
-!     Read one more W
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_HQ
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     B
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(7,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-      
-      ENDIF
-      
-!     ===============================================
-
-!     Set pointers for second heavy quark
-
-      id_HQ=4
-      id_b=i0+1
-      IF (ABS(IDB2) .EQ. 24) THEN
-        id_Qt=id_b+4
-        num_Qt=6
-      ELSE
-        id_Qt=id_HQ
-        num_Qt=7
-      ENDIF
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      IF (IDB2 .NE. 25) THEN
-
-!     W or Z decay products
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W or Z
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      ELSE
-
-!     Read H
-
-      i0=i+1
-      i=i0
-      id_VB=i0
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_HQ
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      ENDIF
-
-!     B or t
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      
-      IF (ABS(IDB2) .EQ. 24) THEN
-        MOTHUP(1,i)=id_HQ
-      ELSE
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     --------------------
-!     Extra bosons, if any
-!     --------------------
-
-      IF (ABS(IDB2) .EQ. 24) THEN
-
-!     Read one more W
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_HQ
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     B
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(7,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-      
-      ENDIF
-
-!     ===============================================
-
-      RETURN
-
-
-1252  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
-
-
diff --git a/Generators/Protos_i/Protos_i/Bj.inc b/Generators/Protos_i/Protos_i/Bj.inc
deleted file mode 100644
index ecab3e0cf67066553fe3283915f8b5e86029a958..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/Bj.inc
+++ /dev/null
@@ -1,210 +0,0 @@
-1063  IF (IHRD .EQ. 63) THEN
-        NUP=12
-        NJET=1
-      ELSE
-        NUP=13
-        NJET=2
-      ENDIF
-
-      READ (lun,*,END=1263) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1
-      IF (IDB1 .EQ. 23) NUP=NUP-4
-      IF (IDB1 .EQ. 25) NUP=NUP-6
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Set pointers for first heavy quark
-
-      id_HQ=3
-      id_b=4
-      IF (ABS(IDB1) .EQ. 24) THEN
-        id_Qt=id_b+4
-        num_Qt=6
-      ELSE
-        id_Qt=id_HQ
-        num_Qt=7
-      ENDIF
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      IF (IDB1 .NE. 25) THEN
-
-!     W or Z decay products
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W or Z
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      ELSE
-
-!     Read H
-
-      i0=i+1
-      i=i0
-      id_VB=i0
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_HQ
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-      ENDIF
-
-!     B or t
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      
-      IF (ABS(IDB1) .EQ. 24) THEN
-        MOTHUP(1,i)=id_HQ
-      ELSE
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     --------------------
-!     Extra bosons, if any
-!     --------------------
-
-      IF (ABS(IDB1) .EQ. 24) THEN
-
-!     Read one more W
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_HQ
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     B
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(7,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-      
-      ENDIF
-
-!     ===============================================
-
-      DO i=i0+1,i0+NJET
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      RETURN
-
-1263  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/DD4l.inc b/Generators/Protos_i/Protos_i/DD4l.inc
deleted file mode 100644
index e9e514335bc7fed214e1fd5b2f7f0ca93c1ac4b9..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/DD4l.inc
+++ /dev/null
@@ -1,47 +0,0 @@
-1041  NUP=6
-
-      READ (lun,*,END=1241) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial partons
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Leptons 
-
-      i0=3
-      DO i=i0,i0+3
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      RETURN
-
-1241  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/Protos.inc b/Generators/Protos_i/Protos_i/Protos.inc
deleted file mode 100644
index e31d4735770914295431819870adeb2374bd27b3..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/Protos.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-C     Protos common block for Protos_i
-c     Nuno Castro (Sep 2010)
-
-      INTEGER lun,IHRD
-      COMMON /PRdata/ lun,IHRD
-      REAL*8 PTbmax,IMATCH
-      COMMON /PRmatch/ PTbmax,IMATCH
-      INTEGER ISIGNWT
-      COMMON /PRinfo/ ISIGNWT
-
diff --git a/Generators/Protos_i/Protos_i/XX.inc b/Generators/Protos_i/Protos_i/XX.inc
deleted file mode 100644
index f2e3df0a68f3c49c594c808755669a793bf81af9..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/XX.inc
+++ /dev/null
@@ -1,244 +0,0 @@
-1053  NUP=18
-
-      READ (lun,*,END=1253) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1,IDB2                 ! Not really used
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Set pointers for first heavy quark
-
-      id_b=3
-      id_Qt=id_b+4
-      num_Qt=6
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W from top
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     t
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     W from X
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     ===============================================
-
-!     Set pointers for second heavy quark
-
-      id_b=i0+1
-      id_Qt=id_b+4
-      num_Qt=6
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W from antitop
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     tbar
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     W from X
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     ===============================================
-
-      RETURN
-
-1253  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/Xtj.inc b/Generators/Protos_i/Protos_i/Xtj.inc
deleted file mode 100644
index ec5153d70574e81a1eb0f16e69828b79f8ffac22..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/Xtj.inc
+++ /dev/null
@@ -1,228 +0,0 @@
-1069  NUP=16
-      NJET=1
-
-      READ (lun,*,END=1269) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1                 ! Not really used
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Set pointers for first heavy quark
-
-      id_b=3
-      id_Qt=id_b+4
-      num_Qt=6
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W from top
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     t
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     W from X
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     ===============================================
-
-!     Additional particles: top, jet
-
-      id_b=i0+1
-      id_Qt=i0+5
-      num_Qt=6
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W decay products
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     t or tbar
-
-      i=id_Qt
-      i0=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     ===============================================
-
-      DO i=i0+1,i0+NJET
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      RETURN
-
-
-1269  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/YY.inc b/Generators/Protos_i/Protos_i/YY.inc
deleted file mode 100644
index a9f9ada854afe441ba10c2b89f34243e0cb6fb6b..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/YY.inc
+++ /dev/null
@@ -1,145 +0,0 @@
-1054  NUP=10
-
-      READ (lun,*,END=1254) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1,IDB2                 ! Not really used
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Set pointers for first heavy quark
-
-      id_b=3
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W from Y
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     ===============================================
-
-!     Set pointers for second heavy quark
-
-      id_b=i0+1
-
-!     bbar
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W from Ybar
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-      RETURN
-
-
-1254  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/Yj.inc b/Generators/Protos_i/Protos_i/Yj.inc
deleted file mode 100644
index 6f2908edee1ba52e8a7731e6cac4bf5811b9a736..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/Yj.inc
+++ /dev/null
@@ -1,110 +0,0 @@
-1065  IF (IHRD .EQ. 65) THEN
-        NUP=7
-        NJET=1
-      ELSE
-        NUP=8
-        NJET=2
-      ENDIF
-
-      READ (lun,*,END=1265) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1                      ! Not really used
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Set pointers for first heavy quark
-
-      id_b=3
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W from Y
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!!'
-        STOP
-c        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-
-!     ===============================================
-
-      DO i=i0+1,i0+NJET
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      RETURN
-
-1265  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/double_heavy_T.inc b/Generators/Protos_i/Protos_i/double_heavy_T.inc
deleted file mode 100644
index bead4520f4421eae64328a98af67246d5ab61ad8..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/double_heavy_T.inc
+++ /dev/null
@@ -1,372 +0,0 @@
-1051  NUP=12
-
-      READ (lun,*,END=1251) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1,IDB2
-      IF (IDB1 .EQ. 23) NUP=NUP+4
-      IF (IDB2 .EQ. 23) NUP=NUP+4
-      IF (IDB1 .EQ. 25) NUP=NUP+2
-      IF (IDB2 .EQ. 25) NUP=NUP+2
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Set pointers for first heavy quark
-
-      id_HQ=3
-      id_b=5
-      IF (ABS(IDB1) .EQ. 24) THEN
-        id_Qt=id_HQ
-        num_Qt=8
-      ELSE
-        id_Qt=id_b+4
-        num_Qt=6
-      ENDIF
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W+ decay products
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W+
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     T or t
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      
-      IF (ABS(IDB1) .EQ. 24) THEN
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ELSE
-        MOTHUP(1,i)=id_HQ
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     --------------------
-!     Extra bosons, if any
-!     --------------------
-
-      IF (IDB1 .EQ. 23) THEN 
-
-!     Read Z
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        PRINT *,'No W here!!'
-        STOP
-      ENDIF
-      MOTHUP(1,i)=id_HQ
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     T
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(8,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-
-      ELSE IF (IDB1 .EQ. 25) THEN
-
-!     Read H
-
-      i0=i+1
-      i=i0
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_HQ
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     T
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(8,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-
-      ENDIF
-
-!     ===============================================
-
-!     Set pointers for second heavy quark
-
-      id_HQ=4
-      id_b=i0+1
-      IF (ABS(IDB2) .EQ. 24) THEN
-        id_Qt=id_HQ
-        num_Qt=8
-      ELSE
-        id_Qt=id_b+4
-        num_Qt=6
-      ENDIF
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W+ decay products
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W+
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     Tbar or tbar
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      
-      IF (ABS(IDB2) .EQ. 24) THEN
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ELSE
-        MOTHUP(1,i)=id_HQ
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     --------------------
-!     Extra bosons, if any
-!     --------------------
-
-      IF (IDB2 .EQ. 23) THEN 
-
-!     Read Z
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        PRINT *,'No W here!!'
-        STOP
-      ENDIF
-      MOTHUP(1,i)=id_HQ
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     Tbar
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(8,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-
-      ELSE IF (IDB2 .EQ. 25) THEN
-
-!     Read H
-
-      i0=i+1
-      i=i0
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_HQ
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     Tbar
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(8,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-
-      ENDIF
-
-!     ===============================================
-
-      RETURN
-
-1251  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/heavy_Tj.inc b/Generators/Protos_i/Protos_i/heavy_Tj.inc
deleted file mode 100644
index 4fbf79b1e193e08c1b7d00571ea8fc85480c6c6e..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/heavy_Tj.inc
+++ /dev/null
@@ -1,304 +0,0 @@
-1061  IF (IHRD .EQ. 61) THEN
-        NUP=8
-        NJET=1
-      ELSE IF (IHRD .EQ. 62) THEN
-        NUP=9
-        NJET=2
-      ELSE IF (IHRD .EQ. 67) THEN
-        NUP=13
-        NJET=1
-      ENDIF
-
-      READ (lun,*,END=1261) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial codes and initial partons
-
-      READ (lun,*) IDB1
-      IF (IDB1 .EQ. 23) NUP=NUP+4
-      IF (IDB1 .EQ. 25) NUP=NUP+2
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     Set pointers for first heavy quark
-
-      id_HQ=3
-      id_b=4
-      IF (ABS(IDB1) .EQ. 24) THEN
-        id_Qt=id_HQ
-        num_Qt=8
-      ELSE
-        id_Qt=id_b+4
-        num_Qt=6
-      ENDIF
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W+ decay products
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W+
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     T or t
-
-      i=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      
-      IF (ABS(IDB1) .EQ. 24) THEN
-        MOTHUP(1,i)=1
-        MOTHUP(2,i)=2
-      ELSE
-        MOTHUP(1,i)=id_HQ
-      ENDIF
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-!     --------------------
-!     Extra bosons, if any
-!     --------------------
-
-      IF (IDB1 .EQ. 23) THEN 
-
-!     Read Z
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        PRINT *,'No W here!!'
-        STOP
-      ENDIF
-      MOTHUP(1,i)=id_HQ
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     T
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(8,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-
-      ELSE IF (IDB1 .EQ. 25) THEN
-
-!     Read H
-
-      i0=i+1
-      i=i0
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_HQ
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     T
-
-      id_VB=i0
-      i=id_HQ
-      ISTUP(i)=2
-      IDUP(i)=SIGN(8,IDUP(id_Qt))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_Qt)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_Qt)
-      ICOLUP(2,i)=ICOLUP(2,id_Qt)
-
-      ENDIF
-
-!     ===============================================
-
-!     Additional particles: jet, b, top
-
-      IF (IHRD .EQ. 67) THEN
-
-      id_b=i0+1
-      id_Qt=i0+5
-      num_Qt=6
-
-!     b quark
-
-      i=id_b
-      ISTUP(i)=1
-      MOTHUP(1,i)=id_Qt
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     W decay products
-
-      i0=i+3
-      id_VB=i0
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'No Z here!!'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=id_Qt
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     t or tbar
-
-      i=id_Qt
-      i0=id_Qt
-      ISTUP(i)=2
-      IDUP(i)=SIGN(num_Qt,IDUP(id_b))
-      
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_b)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_b)
-      ICOLUP(2,i)=ICOLUP(2,id_b)
-
-      ENDIF
-
-!     ===============================================
-
-      DO i=i0+1,i0+NJET
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      RETURN
-
-
-1261  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/tW.inc b/Generators/Protos_i/Protos_i/tW.inc
deleted file mode 100644
index b4cd8ac4a8ee76a099e40e4d74dae0c8d421e845..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/tW.inc
+++ /dev/null
@@ -1,153 +0,0 @@
-1006  IF ((IHRD .EQ. 6) .OR. (IHRD .EQ. 10)) THEN
-        NUP=10
-        NJET=0
-      ELSE IF (IHRD .EQ. 7) THEN
-        NUP=11
-        NJET=1
-      ENDIF
-
-      READ (lun,*,END=1206) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial partons
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     W1 decay products
-
-      i0=5
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W1
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN               ! No Z bosons should be here
-c        IDUP(i)=23
-        PRINT *,'No Z bosons should be here: ERROR'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     b / bbar from t / tbar decay
-
-      i=i0+1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     t / tbar
-
-      i=i+1
-      id_VB=i-2
-      id_q=i-1
-      ISTUP(i)=2
-      IDUP(i)=SIGN(6,IDUP(id_q))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_q)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_q)
-      ICOLUP(2,i)=ICOLUP(2,id_q)
-
-!     B2 ( = W,Z) decay products
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     B2
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     b / bbar extra, if any
-
-      DO i=i0+1,i0+NJET
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      RETURN
-
-1206  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/tfcn.inc b/Generators/Protos_i/Protos_i/tfcn.inc
deleted file mode 100644
index 909ccb2a792776e6f378c26fb938feeac9c264c4..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/tfcn.inc
+++ /dev/null
@@ -1,135 +0,0 @@
-1011  NUP=10
-
-      READ (lun,*,END=1211) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial partons
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     W+ / W- decay products
-
-      i0=5
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W+ / W-
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN               ! No Z bosons should be here
-c        IDUP(i)=23
-        PRINT *,'No Z bosons should be here: ERROR'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     (anti)quark from top decay - should always be b(bar) quark
-
-      i=i0+1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     t / tbar decaying to Wb
-
-      i=i+1
-      id_VB=i-2
-      id_q=i-1
-      ISTUP(i)=2
-      IDUP(i)=SIGN(6,IDUP(id_q))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_q)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_q)
-      ICOLUP(2,i)=ICOLUP(2,id_q)
-
-!     Photon/gluon/Higgs and light quark (in this order) 
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     t / tbar with FCN decay
-
-      i=i0
-      id_VB=i-2
-      id_q=i-1
-      ISTUP(i)=2
-      IDUP(i)=SIGN(6,IDUP(id_q))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_q)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      IF ((IDUP(id_VB) .EQ. 22) .OR. (IDUP(id_VB) .EQ. 25)) THEN
-        ICOLUP(1,i)=ICOLUP(1,id_q)
-        ICOLUP(2,i)=ICOLUP(2,id_q)
-      ELSE IF (IDUP(id_q) .GT. 0) THEN
-        ICOLUP(1,i)=ICOLUP(1,id_VB)
-      ELSE IF (IDUP(id_q) .LT. 0) THEN
-        ICOLUP(2,i)=ICOLUP(2,id_VB)
-      ENDIF
-
-      RETURN
-
-1211  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/tj.inc b/Generators/Protos_i/Protos_i/tj.inc
deleted file mode 100644
index 35ecd483bb7c22d3b11c93175234d842d22cde20..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/tj.inc
+++ /dev/null
@@ -1,132 +0,0 @@
-1003  IF (IHRD .EQ. 3) THEN
-        NUP=8
-        NJET=1
-      ELSE IF (IHRD .EQ. 4) THEN
-        NUP=9
-        NJET=2
-      ELSE IF (IHRD .EQ. 5) THEN
-        NUP=8
-        NJET=1
-      ELSE IF (IHRD .EQ. 12) THEN
-        NUP=8
-        NJET=1
-      ELSE IF (IHRD .EQ. 14) THEN
-        NUP=7
-        NJET=0
-      ELSE IF (IHRD .EQ. 16) THEN
-        NUP=8
-        NJET=1
-      ENDIF
-
-      READ (lun,*,END=1203) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial partons
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     W decay products
-
-      i0=5
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN               ! No Z bosons should be here
-c        IDUP(i)=23
-        PRINT *,'No Z bosons should be here: ERROR'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     b / bbar from t / tbar decay
-
-      i=i0+1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     t / tbar
-
-      i=i+1
-      id_VB=i-2
-      id_q=i-1
-      ISTUP(i)=2
-      IDUP(i)=SIGN(6,IDUP(id_q))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_q)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_q)
-      ICOLUP(2,i)=ICOLUP(2,id_q)
-
-!     Additional particles: light quarks, b quarks, photons, Higgs
-
-      i0=i
-      DO i=i0+1,i0+NJET
-      ISTUP(i)=1
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      IF (ABS(IDUP(i)) .EQ. 25) mf=MH
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-      RETURN
-
-1203  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/tt.inc b/Generators/Protos_i/Protos_i/tt.inc
deleted file mode 100644
index 9b938c4b49da2d2f0c4efc3a05572479771f6478..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/tt.inc
+++ /dev/null
@@ -1,158 +0,0 @@
-1008  NUP=12
-
-      READ (lun,*,END=1208) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial partons
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     B1 ( = W,Z) decay products
-
-      i0=5
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     B1
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     quark from top decay: b or q
-
-      i=i0+1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     t
-
-      i=i+1
-      id_VB=i-2
-      id_q=i-1
-      ISTUP(i)=2
-      IDUP(i)=SIGN(6,IDUP(id_q))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_q)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_q)
-      ICOLUP(2,i)=ICOLUP(2,id_q)
-
-!     B2 ( = W,Z) decay products
-
-      i0=i+3
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     B2
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        IDUP(i)=23
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     antiquark from top decay: bbar or qbar
-
-      i=i0+1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     tbar
-
-      i=i+1
-      id_VB=i-2
-      id_q=i-1
-      ISTUP(i)=2
-      IDUP(i)=SIGN(6,IDUP(id_q))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_q)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_q)
-      ICOLUP(2,i)=ICOLUP(2,id_q)
-      
-      RETURN
-
-1208  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/Protos_i/tt4f.inc b/Generators/Protos_i/Protos_i/tt4f.inc
deleted file mode 100644
index fba0813536b37221485c24b40dfd95923c1e2453..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/Protos_i/tt4f.inc
+++ /dev/null
@@ -1,128 +0,0 @@
-1017  NUP=11
-
-      READ (lun,*,END=1217) nn1,XWGTUP,SCALUP
-      ISIGNWT=1
-      IF (XWGTUP .LT. 0) ISIGNWT=-1
-
-!     Initial partons
-
-      i=1
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-      i=2
-      ISTUP(i)=-1
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),Pz
-      PUP(3,i)=Pz
-      PUP(4,i)=ABS(Pz)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-
-!     top with SM decay
-
-      i0=5
-      DO i=i0-2,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     W+ / W-
-
-      i=i0
-      id_f1=i0-2
-      id_f2=i0-1
-      ISTUP(i)=2
-      CHVB = IDUP(id_f1)+IDUP(id_f2)
-      IF (CHVB .EQ. 0) THEN
-        PRINT *,'Should be W'
-        STOP
-      ELSE
-        IDUP(i)=SIGN(24,CHVB)
-      ENDIF
-      MOTHUP(1,i)=i+2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-
-!     b
-
-      i=i0+1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i+1
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 5) mf=mb
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-
-!     t
-
-      i=i+1
-      id_VB=i-2
-      id_q=i-1
-      ISTUP(i)=2
-      IDUP(i)=SIGN(6,IDUP(id_q))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_VB)+PUP(j,id_q)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_q)
-      ICOLUP(2,i)=ICOLUP(2,id_q)
-
-!     top with 3-body decay
-
-      i0=i+4
-      DO i=i0-3,i0-1
-      ISTUP(i)=1
-      MOTHUP(1,i)=i0
-      mf=0d0
-      READ (lun,*) IDUP(i),ICOLUP(1,i),ICOLUP(2,i),
-     &    PUP(1,i),PUP(2,i),PUP(3,i)
-      IF (ICOLUP(1,i) .NE. 0) ICOLUP(1,i)=500+ICOLUP(1,i)
-      IF (ICOLUP(2,i) .NE. 0) ICOLUP(2,i)=500+ICOLUP(2,i)
-      IF (ABS(IDUP(i)) .EQ. 15) mf=mtau
-      PUP(5,i)=mf
-      PUP(4,i)=SQRT(PUP(5,i)**2+PUP(1,i)**2+PUP(2,i)**2+PUP(3,i)**2)
-      ENDDO
-
-!     tbar
-
-      i=i0
-      id_f1=i0-3
-      id_f2=i0-2
-      id_q=i0-1
-      ISTUP(i)=2
-      IDUP(i)=SIGN(6,IDUP(id_q))
-      MOTHUP(1,i)=1
-      MOTHUP(2,i)=2
-      DO j=1,4
-        PUP(j,i)=PUP(j,id_f1)+PUP(j,id_f2)+PUP(j,id_q)
-      ENDDO
-      PUP(5,i)=SQRT(PUP(4,i)**2-PUP(1,i)**2-PUP(2,i)**2-PUP(3,i)**2)
-      ICOLUP(1,i)=ICOLUP(1,id_q)
-      ICOLUP(2,i)=ICOLUP(2,id_q)
-      
-      RETURN
-
-1217  PRINT 10002,lun
-      NUP = 0
-      RETURN
-
diff --git a/Generators/Protos_i/share/jobOptions_Protos_MC10.py b/Generators/Protos_i/share/jobOptions_Protos_MC10.py
deleted file mode 100644
index 57e904d4c4d907b883477f304bc66b7f6e8a9161..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/share/jobOptions_Protos_MC10.py
+++ /dev/null
@@ -1,62 +0,0 @@
-###############################################################
-#
-# JOB OPTIONS FILE. THIS FILE IS TO DEMONSTRATE HOW THE USER CAN
-# CHANGE THE PYTHIA PARAMETERS. IT DOES NOT NECESARILY COMPLY TO
-# THE ATLAS DEFAULTS FOR PHYSICS EVENT GENERATION.
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = DEBUG
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-"PYTHIA_INIT 820021 2347532"]
-# ServiceManager.AtRndmGenSvc.ReadFromFile = true;
-
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg=AlgSequence("TopAlg")
-#from Pythia_i.Pythia_iConf import Pythia
-
-include ( "MC10JobOptions/MC10_Pythia_Common.py" )
-
-Pythia.PythiaCommand = ["pyinit user protos",
-                        "pydat1 parj 90 20000.",
-                        "pydat3 mdcy 15 1 0"
-]
-
-# ... Tauola
-include ( "MC10JobOptions/MC10_Tauola_Fragment.py" )
-
-# ... Photos
-include ( "MC10JobOptions/MC10_Photos_Fragment.py" )
-
-#from TruthExamples.TruthExamplesConf import DumpMC
-#topAlg += DumpMC()
-
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.OutputFile = "protos.pool.root"
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]
-
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Protos_i/share/jobOptions_Protos_MC9.py b/Generators/Protos_i/share/jobOptions_Protos_MC9.py
deleted file mode 100644
index 1e9ae98139d26b61dc076c0ebe719902a69ed494..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/share/jobOptions_Protos_MC9.py
+++ /dev/null
@@ -1,62 +0,0 @@
-###############################################################
-#
-# JOB OPTIONS FILE. THIS FILE IS TO DEMONSTRATE HOW THE USER CAN
-# CHANGE THE PYTHIA PARAMETERS. IT DOES NOT NECESARILY COMPLY TO
-# THE ATLAS DEFAULTS FOR PHYSICS EVENT GENERATION.
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = DEBUG
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-"PYTHIA_INIT 820021 2347532"]
-# ServiceManager.AtRndmGenSvc.ReadFromFile = true;
-
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg=AlgSequence("TopAlg")
-#from Pythia_i.Pythia_iConf import Pythia
-
-include ( "MC09JobOptions/MC9_Pythia_Common.py" )
-
-Pythia.PythiaCommand = ["pyinit user protos",
-                        "pydat1 parj 90 20000.",
-                        "pydat3 mdcy 15 1 0"
-]
-
-# ... Tauola
-include ( "MC09JobOptions/MC9_Tauola_Fragment.py" )
-
-# ... Photos
-include ( "MC09JobOptions/MC9_Photos_Fragment.py" )
-
-#from TruthExamples.TruthExamplesConf import DumpMC
-#topAlg += DumpMC()
-
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.OutputFile = "protos.pool.root"
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]
-
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Protos_i/share/protos.dat b/Generators/Protos_i/share/protos.dat
deleted file mode 100644
index 46f6d8d6811120dcd885514fac8ada2ea21d0fd8..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/share/protos.dat
+++ /dev/null
@@ -1,10 +0,0 @@
- 8                               ! Process code
- 7000.                           ! CM energy
-172.50  1.45  4.80   115.0       ! mt, Gt, mb, MH
- 1.000   0.000   0.000   0.000   ! Re VL, Re VR, Re gL, Re gR (lep)
-   0.0   0.000   0.000   0.000   ! Clqp, Im VR, Im gL, Im gR (lep)
- 1.000   0.000   0.000   0.000   ! Re VL, Re VR, Re gL, Re gR (had)
-   0.0   0.000   0.000   0.000   ! Cqqp, Im VR, Im gL, Im gR (had)
-    1                            ! Initial random seed
- 4220982                         ! unweighted events
-0.543321E+02   0.426792E-02      ! tt cross section and error
diff --git a/Generators/Protos_i/share/protos.events b/Generators/Protos_i/share/protos.events
deleted file mode 100644
index dc8c05f406693ebb8df048dc7f147d792154cc3f..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/share/protos.events
+++ /dev/null
@@ -1,90 +0,0 @@
-         1 0.100000E+01 0.345000E+03
- 21   1   2 0.15315344E+03
- 21   2   3 -.41468818E+03
- 14   0   0 -.13666744E+02 0.12122326E+02 0.33898671E+02
--13   0   0 0.66517994E+02 -.22415635E+02 0.14584560E+02
-  5   1   0 0.87135339E+02 -.52172331E+02 -.62062549E+02
- -2   0  12 -.13592566E+02 -.66064294E+01 0.14661776E+02
-  1  12   0 -.22397199E+02 -.15540970E+02 -.11417333E+03
- -5   0   3 -.10399682E+03 0.84613040E+02 -.14844387E+03
-         2 0.100000E+01 0.345000E+03
- -1   0   2 0.12810473E+03
-  1   1   0 -.51710847E+03
-  4  11   0 0.44880593E+02 -.11929287E+02 -.27159225E+02
- -3   0  11 0.12478341E+02 0.64287210E+02 -.43831883E+02
-  5   1   0 -.46045965E+02 0.12598012E+03 -.39199965E+02
--16   0   0 0.35819819E+02 -.12870109E+02 -.20890069E+02
- 15   0   0 -.26317436E+02 -.81384178E+02 -.39266171E+02
- -5   0   2 -.20815352E+02 -.84083755E+02 -.21865643E+03
-         3 0.100000E+01 0.345000E+03
- 21   1   2 0.85387871E+02
- 21   2   3 -.49779696E+03
- 12   0   0 0.26786308E+02 -.41373174E+02 -.14116060E+02
--11   0   0 0.43411223E+02 0.26573123E+02 0.20348290E+02
-  5   1   0 -.50742111E+01 0.40967871E+02 -.90265040E+02
- -2   0  12 -.47359312E+01 0.53289668E+02 -.91450658E+02
-  1  12   0 -.15036796E+01 -.19089603E+02 -.14761140E+03
- -5   0   3 -.58883709E+02 -.60367885E+02 -.89314218E+02
-         4 0.100000E+01 0.345000E+03
- 21   2   3 0.77166412E+03
- 21   1   2 -.75343013E+02
- 16   0   0 -.14081065E+02 0.66887166E+01 -.59980720E+01
--15   0   0 -.14458111E+02 0.50864783E+02 0.14261671E+03
-  5   1   0 -.10191371E+00 0.31634674E+02 -.37858998E+02
- -4   0  12 0.56377770E+02 -.34962426E+02 0.19716512E+03
-  3  12   0 -.11228153E+01 -.39930651E+01 -.75838586E+01
- -5   0   3 -.26613865E+02 -.50232683E+02 0.40798021E+03
-         5 0.100000E+01 0.345000E+03
- 21   1   2 0.19270450E+03
- 21   2   3 -.51268447E+03
- 12   0   0 0.12752014E+01 -.29707829E+02 0.25939166E+02
--11   0   0 0.37462534E+02 0.15369920E+02 -.38712073E+02
-  5   1   0 0.16785316E+03 0.42258862E+02 0.33439930E+02
- -2   0  12 0.32825741E+01 -.11735192E+02 -.47714143E+02
-  1  12   0 -.85635334E+02 0.57458600E+02 -.10416985E+03
- -5   0   3 -.12423813E+03 -.73644361E+02 -.18876301E+03
-         6 0.100000E+01 0.345000E+03
- -2   0   2 0.51518875E+02
-  2   1   0 -.22087228E+04
- 12   0   0 0.20980527E+02 -.37570413E+02 -.14840512E+03
--11   0   0 0.64542796E+02 -.99463974E+02 -.12146136E+04
-  5   1   0 -.43094027E+02 -.69310901E+01 -.54643418E+03
- -4   0  12 0.27460955E+02 -.24454158E+01 -.41505280E+02
-  3  12   0 -.51565082E+02 0.26896104E+02 -.13474654E+03
- -5   0   2 -.18325169E+02 0.11951479E+03 -.71499144E+02
-         7 0.100000E+01 0.345000E+03
- 21   2   3 0.55665008E+03
- 21   1   2 -.18063283E+03
- 12   0   0 -.65908248E+02 -.10666006E+03 -.12229213E+03
--11   0   0 -.40161527E+01 0.13197599E+02 -.28156676E+01
-  5   1   0 -.13668456E+02 0.58415056E+01 0.36587366E+02
- -4   0  12 -.36944835E+02 0.12768730E+02 0.17655606E+03
-  3  12   0 0.19004300E+02 0.39543658E+02 0.51643868E+02
- -5   0   3 0.10153339E+03 0.35308564E+02 0.23633775E+03
-         8 0.100000E+01 0.345000E+03
- 21   1   2 0.30771000E+03
- 21   2   3 -.16834468E+03
- 12   0   0 0.45851076E+02 0.61553669E+02 0.12692584E+03
--11   0   0 0.21522424E+02 -.24095402E+02 0.42921648E+02
-  5   1   0 -.43131370E+02 0.53411897E+02 0.23718059E+02
- -4   0  12 -.34045289E+02 0.98670077E+01 0.13403913E+02
-  3  12   0 0.19565143E+02 0.74415283E+01 -.48635805E+02
- -5   0   3 -.97619837E+01 -.10817870E+03 -.18968328E+02
-         9 0.100000E+01 0.345000E+03
- 21   2   3 0.16018865E+03
- 21   1   2 -.26453833E+03
-  4  11   0 0.48288820E+02 -.95850111E+01 -.27838604E+02
- -3   0  11 -.25746563E+02 0.22580486E+00 0.15306080E+02
-  5   1   0 -.94379025E+01 0.11445308E+01 -.15377959E+03
--16   0   0 -.15609474E+02 0.35526487E+02 -.16601645E+02
- 15   0   0 -.53791327E+02 -.26414558E+02 0.28567794E+02
- -5   0   3 0.56296446E+02 -.89725390E+00 0.49996287E+02
-        10 0.100000E+01 0.345000E+03
- -1   0   2 0.14149143E+03
-  1   1   0 -.26726900E+03
-  4  11   0 0.76839604E+02 -.48908312E+02 -.26249856E+02
- -3   0  11 0.49204170E+02 0.28015061E+02 0.22783783E+01
-  5   1   0 -.38081287E+02 -.31511950E+01 -.36144677E+02
--16   0   0 -.46477648E+02 -.50970117E+01 -.74367698E+02
- 15   0   0 -.16161691E+02 -.39617784E+02 0.50204889E+01
- -5   0   2 -.25323149E+02 0.68759241E+02 0.36857896E+01
diff --git a/Generators/Protos_i/src/initprotos.F b/Generators/Protos_i/src/initprotos.F
deleted file mode 100644
index 2f7ec48f06cabe6f9f30aca3d43b0703dda8db80..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/src/initprotos.F
+++ /dev/null
@@ -1,254 +0,0 @@
-**********************************************************************************
-**********************************************************************************
-      SUBROUTINE INITPROTOS
-      IMPLICIT NONE
-
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/heprup.inc"
-
-      print *, "*************************************"
-      print *, "* Protos_i   interface for ATHENA   *"
-      print *, "* version 00-00-06     19/5/2011   *"
-      print *, "*                                   *"
-      print *, "* Nuno Castro (nuno.castro@cern.ch) *"
-      print *, "* LIP and Universidade do Minho     *"
-      print *, "*                                   *"
-      print *, "* based on protint.f, provided in   *"
-      print *, "* Protos 2.1A                       *"
-      print *, "*                                   *"
-      print *, "* Protos generator developed by     *"
-      print *, "* Juan Antonio Aguilar Saavedra     *"
-      print *, "* Universidad de Granada            *"
-      print *, "*************************************"
-
-C...Event Weighting Strategy: +/- input weights
-
-      IDWTUP = -3
-
-C...Initialize Information Using Protos
-
-      CALL PROTOS_INIT
-
-      END
-
-
-**********************************************************************************
-
-
-**********************************************************************************
-**********************************************************************************
-      SUBROUTINE PROTOS_INIT
-      IMPLICIT NONE
-
-#include "Protos_i/Protos.inc"
-#include "GeneratorFortranCommon/heprup.inc"
-
-!     External variables
-
-      INTEGER LONGITUD
-
-!     Local
-
-      CHARACTER*100 string
-      INTEGER i,idum1,idum2
-      REAL*8 ET
-      REAL*8 mt,Gt,mb,MH                    ! For Red and White
-      REAL*8 mL,GE,GN,mX,GX,mD,GD           ! For Triada
-      REAL*8 mQ,GQ,Vmix                     ! For Rose
-
-      lun=35                ! Select here some number not already used
-
-!     Read the ASCII file with process information (named protos.dat)
-
-      OPEN (lun,file='protos.dat')
-      READ (lun,*) IHRD
-      READ (lun,*) ET
-
-!     Set p pbar and CM energy
-
-      Write(*,*) " LHC considered: pp collisions at sqrt(s) = ", ET, " GeV"
-      IDBMUP(1)=2212
-      IDBMUP(2)=2212
-      EBMUP(1)=ET/2d0
-      EBMUP(2)=ET/2d0
-      Write(*,*) " Beam energy:",EBMUP(1)
-
-C...PROCESS TAGS
-      NPRUP  = 1
-      LPRUP(NPRUP)=600+IHRD
-
-!     Masses
-
-      IF ((IHRD .GE. 3) .AND. (IHRD .LE. 18)) THEN
-        READ (lun,*) mt,Gt,mb,MH
-      ELSE IF ((IHRD .GE. 31) .AND. (IHRD .LE. 33)) THEN
-        READ (lun,*) mL,GE,GN,MH
-      ELSE IF ((IHRD .GE. 34) .AND. (IHRD .LE. 38)) THEN
-        READ (lun,*) mX,GX,idum1,idum2
-        READ (lun,*) mL,GE,GN,MH
-      ELSE IF ((IHRD .GE. 41) .AND. (IHRD .LE. 43)) THEN
-        READ (lun,*) mD,GD
-      ELSE IF ((IHRD .GE. 51) .AND. (IHRD .LE. 69)) THEN
-        READ (lun,*) mt,Gt,mb,MH
-        READ (lun,*) mQ,GQ,Vmix
-      ELSE
-        PRINT 10001,IHRD
-        STOP
-      ENDIF
-
-      IF ((IHRD .GE. 3) .AND. (IHRD .LE. 18)) THEN
-
-      WRITE (string,'(F6.2)') mt
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(6,1)='//string(1:i))
-      WRITE (string,'(F6.2)') Gt
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(6,2)='//string(1:i))
-      WRITE (string,'(F6.2)') mb
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(5,1)='//string(1:i))
-      WRITE (string,'(F6.2)') MH
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(25,1)='//string(1:i))
-
-      ELSE IF ((IHRD .GE. 31) .AND. (IHRD .LE. 33)) THEN
-
-      WRITE (string,'(F7.2)') mL
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(17,1)='//string(1:i))
-      CALL PYGIVE('PMAS(18,1)='//string(1:i))
-      WRITE (string,'(F10.6)') GE
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(17,2)='//string(1:i))
-      WRITE (string,'(F10.6)') GN
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(18,2)='//string(1:i))
-      WRITE (string,'(F6.2)') MH
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(25,1)='//string(1:i))
-
-      ELSE IF ((IHRD .GE. 34) .AND. (IHRD .LE. 36)) THEN
-
-      WRITE (string,'(F7.1)') mX
-      i=LONGITUD(string)
-      IF (IHRD .NE. 35) THEN
-        CALL PYGIVE('PMAS(32,1)='//string(1:i))
-      ELSE
-        CALL PYGIVE('PMAS(34,1)='//string(1:i))
-      ENDIF
-      WRITE (string,'(F6.2)') GX
-      i=LONGITUD(string)
-      IF (IHRD .NE. 35) THEN
-        CALL PYGIVE('PMAS(32,2)='//string(1:i))
-      ELSE
-        CALL PYGIVE('PMAS(34,2)='//string(1:i))
-      ENDIF
-      WRITE (string,'(F7.2)') mL
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(17,1)='//string(1:i))
-      CALL PYGIVE('PMAS(18,1)='//string(1:i))
-      WRITE (string,'(F10.6)') GE
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(17,2)='//string(1:i))
-      WRITE (string,'(F10.6)') GN
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(18,2)='//string(1:i))
-      WRITE (string,'(F6.2)') MH
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(25,1)='//string(1:i))
-
-      ELSE IF (IHRD .EQ. 38) THEN
-
-      WRITE (string,'(F7.1)') mX
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(34,1)='//string(1:i))
-      WRITE (string,'(F6.2)') GX
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(34,2)='//string(1:i))
-      WRITE (string,'(F7.2)') mL
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(17,1)='//string(1:i))
-      CALL PYGIVE('PMAS(18,1)='//string(1:i))
-      WRITE (string,'(F10.6)') GE
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(17,2)='//string(1:i))
-      WRITE (string,'(F10.6)') GN
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(18,2)='//string(1:i))
-      WRITE (string,'(F6.2)') MH
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(25,1)='//string(1:i))
-
-      ELSE IF ((IHRD .GE. 41) .AND. (IHRD .LE. 43)) THEN
-
-c      WRITE (string,'(F7.1)') mD
-c      i=LONGITUD(string)
-c      CALL PYGIVE('PMAS(37,1)='//string(1:i))
-c      CALL PYGIVE('PMAS(9900041,1)='//string(1:i))
-c      WRITE (string,'(F10.6)') GD
-c      i=LONGITUD(string)
-c      CALL PYGIVE('PMAS(37,2)='//string(1:i))
-c      CALL PYGIVE('PMAS(9900041,2)='//string(1:i))
-
-      ELSE IF ((IHRD .GE. 51) .AND. (IHRD .LE. 69)) THEN
-
-      WRITE (string,'(F6.2)') mt
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(6,1)='//string(1:i))
-      WRITE (string,'(F7.2)') Gt
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(6,2)='//string(1:i))
-      WRITE (string,'(F6.2)') mb
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(5,1)='//string(1:i))
-      WRITE (string,'(F6.2)') MH
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(25,1)='//string(1:i))
-
-      WRITE (string,'(F7.2)') mQ
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(8,1)='//string(1:i))
-      CALL PYGIVE('PMAS(7,1)='//string(1:i))
-      WRITE (string,'(F6.2)') GQ
-      i=LONGITUD(string)
-      CALL PYGIVE('PMAS(8,2)='//string(1:i))
-      CALL PYGIVE('PMAS(7,2)='//string(1:i))
-
-      ENDIF
-
-!     Read matching parameters, if any
-
-      IF ( (IHRD .EQ. 3) .OR. (IHRD .EQ. 61) .OR. (IHRD .EQ. 63)
-     &  .OR. (IHRD .EQ. 65) ) THEN
-        READ (lun,*) IMATCH,PTbmax
-        IF (IMATCH .EQ. 2) CALL PYGIVE('MSTP(143)=1')
-      ELSE
-        IMATCH=0
-      ENDIF
-
-      CLOSE (lun)
-
-!     Open the ASCII event files (named protos.events)
-
-      OPEN (lun,file='protos.events')
-
-10001 FORMAT ('Unknown process IHRD = ',I2)
-
-      END
-**********************************************************************************
-
-**********************************************************************************
-**********************************************************************************
-      INTEGER FUNCTION LONGITUD(name)
-      CHARACTER*100 name
-      INTEGER i
-      i = LEN(name)
-      DO WHILE (name(i:i) .EQ. ' ')
-        i = i - 1
-      ENDDO
-      LONGITUD = i
-      RETURN
-      END
-**********************************************************************************
-
-
diff --git a/Generators/Protos_i/src/useprotos.F b/Generators/Protos_i/src/useprotos.F
deleted file mode 100644
index e10bb0206932fec250632479b999536555e7702c..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/src/useprotos.F
+++ /dev/null
@@ -1,239 +0,0 @@
-
-      SUBROUTINE USEPROTOS
-      IMPLICIT NONE
-
-#include "Protos_i/Protos.inc"
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/heprup.inc"
-
-!     Standard PYTHIA commonblocks.
-
-      INTEGER KCHG
-      REAL*8 PMAS,PARF,VCKM
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-
-!     Local
-
-      INTEGER NJET,CHVB,CHL
-      REAL*8 Pz,mf
-      REAL*8 mtau,mb,mt,MW,MZ,MH,mL,MZp,MWp,mQ
-
-!     Dummy
-
-      INTEGER i0,i,j,id_f1,id_f2,id_VB,id_q,id_l,id_b1,id_b2,nn1
-      INTEGER IDB1,IDB2,id_L1,id_L2,CHL1,CHL2
-      INTEGER ID_HQ,id_Qt,num_Qt,id_b
-
-!     ----------------------------------------------------
-
-!     Clear arrays
-
-      DO i=1,MAXNUP
-        MOTHUP(1,i)=0
-        MOTHUP(2,i)=0
-        ICOLUP(1,i)=0
-        ICOLUP(2,i)=0
-        SPINUP(I)=9d0
-        PUP(1,i)=0d0
-        PUP(2,i)=0d0
-        PUP(5,i)=0d0
-        VTIMUP(i)=0d0
-      ENDDO
-
-      IDPRUP=LPRUP(NPRUP)
-
-      mtau=PMAS(15,1)
-      mb=PMAS(5,1)
-      mt=PMAS(6,1)
-      MW=PMAS(24,1)
-      MZ=PMAS(23,1)
-      MH=PMAS(25,1)
-      mL=PMAS(17,1)
-      MZp=PMAS(32,1)
-      MWp=PMAS(34,1)
-      mQ=PMAS(8,1)
-
-!     ====================
-!     Select process group
-!     ====================
-
-!     One top quark (plus jets, a photon or a Higgs)
-
-      IF ( ((IHRD .GE. 3) .AND. (IHRD .LE. 5)) .OR. (IHRD .EQ. 12)
-     &  .OR. (IHRD .EQ. 14) .OR. (IHRD .EQ. 16))
-     &  GOTO 1003
-
-!     One top quark and a W/Z boson (plus jets)
-
-      IF ((IHRD .EQ. 6) .OR. (IHRD .EQ. 7) .OR. (IHRD .EQ. 10))
-     &  GOTO 1006
-
-!     A top quark pair decaying both to W/Z
-
-      IF ((IHRD .EQ. 8) .OR. (IHRD .EQ. 9) .OR. (IHRD .EQ. 18))
-     &   GOTO 1008
-
-!     A top quark pair decaying to W/Z and a photon/gluon/Higgs
-
-      IF ((IHRD .EQ. 11) .OR. (IHRD .EQ. 13) .OR. (IHRD .EQ. 15))
-     &  GOTO 1011
-
-!     A top quark pair decaying to W/Z and 3-body
-
-      IF (IHRD .EQ. 17) GOTO 1017
-
-!     Two heavy leptons
-
-      IF ((IHRD .GE. 31) .AND. (IHRD .LE. 36))
-     &  GOTO 1031
-
-!     One heavy lepton
-
-      IF ((IHRD .GE. 37) .AND. (IHRD .LE. 38))
-     &  GOTO 1037
-
-!     Two scalar triplets decaying into four leptons
-
-      IF ((IHRD .GE. 41) .AND. (IHRD .LE. 43))
-     &  GOTO 1041
-
-!     T Tbar
-
-      IF (IHRD .EQ. 51) GOTO 1051
-
-!     B Bbar
-
-      IF (IHRD .EQ. 52) GOTO 1052
-
-!     X Xbar
-
-      IF (IHRD .EQ. 53) GOTO 1053
-
-!     Y Ybar
-
-      IF (IHRD .EQ. 54) GOTO 1054
-
-!     One T quark plus j, bj, t j
-
-      IF ((IHRD .EQ. 61) .OR. (IHRD .EQ. 62) .OR. (IHRD .EQ. 67))
-     &  GOTO 1061
-
-!     One B quark plus j, bj
-
-      IF ((IHRD .EQ. 63) .OR. (IHRD .EQ. 64)) GOTO 1063
-
-!     One Y quark plus j, bj
-
-      IF ((IHRD .EQ. 65) .OR. (IHRD .EQ. 66)) GOTO 1065
-
- !    Xtj
-
-      IF (IHRD .EQ. 69) GOTO 1069
-
-!     None of the above
-
-      PRINT 10001,IHRD
-      STOP
-
-!     ------------------------------------------------------
-!     Read tj (3), tbj (4), tb (5), At (12), t (14), Ht (16)
-!     ------------------------------------------------------
-
-      include 'Protos_i/tj.inc'
-
-!     -----------------------------
-!     Read tW (6), tWb (7), Zt (10)
-!     -----------------------------
-
-      include 'Protos_i/tW.inc'
-
-!     --------------------
-!     Read tt (8), Zqt (9)
-!     --------------------
-
-      include 'Protos_i/tt.inc'
-
-!     ---------------------------------
-!     Read Aqt (11), gqt (13), Hqt (15)
-!     ---------------------------------
-
-      include 'Protos_i/tfcn.inc'
-
-!     --------------
-!     Read llqt (17)
-!     --------------
-
-      include 'Protos_i/tt4f.inc'
-
-!     ---------------------------------------------------------------------------
-!     Read E+E- (31), EN (32), NN (33), Z'-> E+E- (34), W'-> EN (35), Z'-> NN(36)
-!     ---------------------------------------------------------------------------
-
-      include 'Protos_i/2HL.inc'
-
-!     --------------------------
-!     Read lN (37), W'-> lN (38)
-!     --------------------------
-
-      include 'Protos_i/1HL.inc'
-
-!     --------------------------------------------------
-!     Read D++ D-- (41), D++D- / D+ D-- (42), D+ D- (43)
-!     --------------------------------------------------
-
-      include 'Protos_i/DD4l.inc'
-
-!     ------------
-!     Read TT (51)
-!     ------------
-
-      include 'Protos_i/double_heavy_T.inc'
-
-!     ------------
-!     Read BB (52)
-!     ------------
-
-      include 'Protos_i/BB.inc'
-
-!     ------------
-!     Read XX (53)
-!     ------------
-
-      include 'Protos_i/XX.inc'
-
-!     ------------
-!     Read YY (54)
-!     ------------
-
-      include 'Protos_i/YY.inc'
-
-!     --------------------------------
-!     Read Tj (61), Tbj (62), Ttj (67)
-!     --------------------------------
-
-      include 'Protos_i/heavy_Tj.inc'
-
-!     ----------------------
-!     Read Bj (63), Bbj (64)
-!     ----------------------
-
-      include 'Protos_i/Bj.inc'
-
-!     ----------------------
-!     Read Yj (65), Ybj (66)
-!     ----------------------
-
-      include 'Protos_i/Yj.inc'
-
-!     -------------
-!     Read Xtj (69)
-!     -------------
-
-      include 'Protos_i/Xtj.inc'
-
-
-10001 FORMAT ('Unknown process IHRD = ',I2)
-10002 FORMAT ('File end: NOT Doing Rewinding... ',I2)
-
-      END
-
diff --git a/Generators/Protos_i/src/vetoprotos.F b/Generators/Protos_i/src/vetoprotos.F
deleted file mode 100644
index abfd904aae2c06cf14345ba9cc892214f68b5f9f..0000000000000000000000000000000000000000
--- a/Generators/Protos_i/src/vetoprotos.F
+++ /dev/null
@@ -1,45 +0,0 @@
-      SUBROUTINE VETOPROTOS(IVETO)
-      IMPLICIT NONE
-
-      INTEGER IVETO
-
-#include "Protos_i/Protos.inc"
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/heprup.inc"
-
-!     Event record
-
-      INTEGER N,NPAD,K
-      REAL*8 P,V
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-
-!     Local
-
-      INTEGER IDB,ib
-      REAL*8 Pb(0:3),PTb
-
-!     ----------------------------------------------------
-
-      IVETO=0
-      IF ((IHRD .NE. 3) .OR. (IMATCH .NE. 2)) RETURN
-
-      IDB=IDUP(2)
-      ib=1
-
-      DO WHILE ((K(ib,2) .NE. -IDB) .OR. (K(ib,1) .NE. 3))
-        ib=ib+1
-        IF (ib .GT. N) RETURN
-      ENDDO
-
-      Pb(0) = P(ib,4)
-      Pb(1) = P(ib,1)
-      Pb(2) = P(ib,2)
-      Pb(3) = P(ib,3)
-
-      PTb=SQRT(Pb(1)**2+Pb(2)**2)
-      IF (PTb .GT. PTbmax) IVETO = 1
-
-      RETURN
-
-      END
-
diff --git a/Generators/Pyquench_i/CMakeLists.txt b/Generators/Pyquench_i/CMakeLists.txt
deleted file mode 100644
index ec72f132f9b6efe8127b1841133df44981256e4a..0000000000000000000000000000000000000000
--- a/Generators/Pyquench_i/CMakeLists.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-################################################################################
-# Package: Pyquench_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( Pyquench_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PUBLIC
-                          Generators/GeneratorModules
-                          Generators/Pythia_i
-                          Generators/Tauola_i
-                          PRIVATE
-                          Control/AthenaKernel
-                          GaudiKernel
-                          Generators/GeneratorUtils
-                          Generators/TruthUtils )
-
-# External dependencies:
-find_package( CLHEP )
-find_package( HepMC COMPONENTS HepMC HepMCfio )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( Pyquench_iLib
-                   src/*.cxx
-                   src/*.f
-                   PUBLIC_HEADERS Pyquench_i
-                   PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-                   PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
-                   LINK_LIBRARIES GeneratorModulesLib Pythia_iLib Tauola_iLib
-                   PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} AthenaKernel GaudiKernel TruthUtils )
-
-atlas_add_component( Pyquench_i
-                     src/components/*.cxx
-                     INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} GeneratorModulesLib Pythia_iLib Tauola_iLib AthenaKernel GaudiKernel TruthUtils Pyquench_iLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-
diff --git a/Generators/Pyquench_i/Pyquench_i/Pyqpar.h b/Generators/Pyquench_i/Pyquench_i/Pyqpar.h
deleted file mode 100644
index fbd9d568094964c4510a376a11afddac7792ce95..0000000000000000000000000000000000000000
--- a/Generators/Pyquench_i/Pyquench_i/Pyqpar.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef PYQUENCH_I_PYQPAR_H
-#define PYQUENCH_I_PYQPAR_H
-
-/* Pyquen common block definition
- /pyqpar/ T0u,tau0u,nfu,ienglu,ianglu
-*/
-
-extern "C" { void* pyqpar_address_(void); }
-/**
-@class Pyqpar
-
-@brief       Class definition for Pyqpar, which is used
-      to modify the PYQUEN PYQPAR common.
-*/
-
-class Pyqpar {
-public:
-    Pyqpar();
-    ~Pyqpar();
-
-    double& T0u (void);
-    double& tau0u (void);
-    int& nfu (void);
-    int& ienglu (void);
-    int& ianglu (void);
-    
-private: 
-
-    struct PYQPAR;
-    friend struct PYQPAR;
-
-    struct PYQPAR
-    {
-      double T0u;
-      double tau0u;
-      int nfu;
-      int ienglu;
-      int ianglu;
-
-    };
-    void init(void);
-    static PYQPAR* s_pyqpar;
-};
-
-// set pointer to zero at start
-Pyqpar::PYQPAR* Pyqpar::s_pyqpar =0;
-
-inline void
-Pyqpar::init(void)
-{ if (!s_pyqpar) s_pyqpar = static_cast<PYQPAR*>(pyqpar_address_()); }
-
-// Constructor
-inline
-Pyqpar::Pyqpar()
-{}
-
-// Destructor
-inline
-Pyqpar::~Pyqpar()
-{}
-
-inline double&
-Pyqpar::T0u	(void)
-{
-    init();
-    return s_pyqpar->T0u;
-}
-
-inline double&
-Pyqpar::tau0u	(void)
-{
-    init();
-    return s_pyqpar->tau0u;
-}
-
-inline int&
-Pyqpar::nfu	(void)
-{
-    init();
-    return s_pyqpar->nfu;
-}
-
-inline int&
-Pyqpar::ienglu	(void)
-{
-    init();
-    return s_pyqpar->ienglu;
-}
-
-inline int&
-Pyqpar::ianglu	(void)
-{
-    init();
-    return s_pyqpar->ianglu;
-}
-
-
-
-
-#endif
diff --git a/Generators/Pyquench_i/Pyquench_i/Pyquench.h b/Generators/Pyquench_i/Pyquench_i/Pyquench.h
deleted file mode 100644
index 0b495b9d69a162253cd3dcee9fcdbc983edb3d77..0000000000000000000000000000000000000000
--- a/Generators/Pyquench_i/Pyquench_i/Pyquench.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// --------------------------------------------------
-// 
-// File:  GeneratorModules/Pythia.h
-// Description:
-//    This code is used to get a PYTHIA Monte Carlo event.
-//    genInitialize() is used to read parameters
-//    callGenerator() makes the event
-//    genFinalize() writes log files etc
-//    fillEvt(GeneratorEvent* evt) passes the event to HepMC
-//
-//    The output will be stored in the transient event store so it can be
-//    passed to the simulation.
-//
-// AuthorList:
-//         Brian Cole, Nathan Grau 2006
-//         Modelled after the Pythia_i interface code by Ian Hinchclife
-//
-//
-//
-
-#ifndef GENERATORMODULESPYQUENCH_H
-#define GENERATORMODULESPYQUENCH_H
-#include "GeneratorModules/GenModule.h"
-#include "Pythia_i/Pydat1.h"
-#include "Pythia_i/Pydat2.h"
-#include "Pythia_i/Pydat3.h"
-#include "Pythia_i/Pysubs.h"
-#include "Pythia_i/Pypars.h"
-#include "Pythia_i/Pydatr.h"
-#include "Pythia_i/Pyint1.h"
-#include "Pythia_i/Pyint2.h"
-#include "Pythia_i/Pyint5.h"
-
-#include "Pyquench_i/Pyqpar.h"
-
-#include "Tauola_i/Atlas_HEPEVT.h"
-#include <vector>
-#include <string>
-
-class IAtRndmGenSvc;
-
-// Pyquench is a concrete instance of a generator (interface) module "GenModule"
-//
-class Pyquench : public GenModule 
-{
-public:
-  Pyquench(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~Pyquench(); 
-
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-
-  // Accessors to PYTHIA COMMONS
-  // reference to Pydat1, Pysubs and Pypars 
-  //
-  Pydat1& pydat1() { return m_pydat1; }  
-  Pydat2& pydat2() { return m_pydat2; }
-  Pydat3& pydat3() { return m_pydat3; }
-  Pysubs& pysubs() { return m_pysubs; }
-  Pypars& pypars() { return m_pypars; }
-  Pydatr& pydatr() { return m_pydatr; }
-  Pyint1& pyint1() { return m_pyint1; }
-  Pyint2& pyint2() { return m_pyint2; }
-  Pyint5& pyint5() { return m_pyint5; }
-
-  Pyqpar& pyqpar() {return m_pyqpar;};
-  // Pointer On AtRndmGenSvc
-  //
-  static IAtRndmGenSvc* m_AtRndmGenSvc_p;
-  static std::string	m_pythia_stream;
-
-protected:
-
-  void setPythiaParameters();
-
-  //  User configurable parametera
-  //
-  int    m_nuclearA;  // A of the nuclke
-  bool   m_minBias;
-  double m_bimpact;
-  double m_rootsNN;
-  int    m_randomseed;
-  int m_tune_index;
-  // event counter
-  int m_events ;
-  std::vector<std::string>  m_pythiaCommandVector;
-  //  Vector for storing seeds
-  //
-  std::vector<long int> m_seeds;
-
-  // members that provide access to Pythia common blocks
-  //
-  Pysubs m_pysubs;
-
-  // Pydat1 data, methods 
-  Pydat1 m_pydat1;  
-  // Pypars data, methods 
-  Pypars m_pypars;
-  // Pydat2 data, methods 
-  Pydat2 m_pydat2;
-  // Pydat3 data, methods 
-  Pydat3 m_pydat3;  
-  // Pydatr access for random numbers (only set the 1st seed just now
-  Pydatr m_pydatr;
-  // Pyint1 access for data
-  Pyint1 m_pyint1;
-  // Pyint2 access for data
-  Pyint2 m_pyint2;	
-  // Pyint5 access for data
-  Pyint5 m_pyint5;	
-
-  Pyqpar m_pyqpar;
-  // Method to Manage the random seed IO from/to a file
-  void	RandomNumberIO(void);
-
-  // I/O to HEPEVT
-  void store_Atlas_HEPEVT(void);
-
-  static Atlas_HEPEVT* s_atlas_HEPEVT;
-};
-
-
-#endif
-
-
-
-
-
-
-
-
-
-
diff --git a/Generators/Pyquench_i/share/r1040b0quenchJobOpt.py b/Generators/Pyquench_i/share/r1040b0quenchJobOpt.py
deleted file mode 100644
index d1fd824b667bce872cc55bf84cf4849d60a5ca16..0000000000000000000000000000000000000000
--- a/Generators/Pyquench_i/share/r1040b0quenchJobOpt.py
+++ /dev/null
@@ -1,76 +0,0 @@
-###############################################################
-#
-# Job options file for Pyquench_i
-#
-# Brian Cole, Nathan Grau, Mikhail Leltchouk, Nevis, April 2006
-#==============================================================
-
-# General Application Configuration options
-#--------------------------------------------------------------
-import AthenaCommon.AtlasUnixGeneratorJob
-
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-# make sure we are loading the ParticleProperty service
-from PartPropSvc.PartPropSvcConf import PartPropSvc
-ServiceMgr += PartPropSvc()
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-ServiceMgr.MessageSvc.OutputLevel = FATAL
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-
-# Set run number (default 0 causes problems)
-#EventSelector = Service("EventSelector")
-ServiceMgr.EventSelector.RunNumber = 1040
-
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYQUENCH 47895451 989454505", "PYQUENCH_INIT 489234453 71565781"]
-# AtRndmGenSvc.ReadFromFile = true;
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Pyquench_i.Pyquench_iConf import Pyquench
-job += Pyquench()
-job.Pyquench.OutputLevel = 3
-job.Pyquench.nuclearA = 208
-job.Pyquench.minBiasYN = False
-job.Pyquench.bimpact = 0.
-job.Pyquench.ptmin = 100.
-job.Pyquench.sqrtSNN = 5520.
-
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 50
-
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-include("GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py")
-
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-
-
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.OutputFile = "r1040b0pyquench.root"
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Pyquench_i/src/Pyquench.cxx b/Generators/Pyquench_i/src/Pyquench.cxx
deleted file mode 100644
index 781aa729dadcd1055013ca5aba943b0c8c8515b2..0000000000000000000000000000000000000000
--- a/Generators/Pyquench_i/src/Pyquench.cxx
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// An interface to the Pyquen(ch) generator written by I.P. Lokhtin,
-// A.M. Snigirev to model jet quenching on the output of Pythia. Largely
-// modelled after the Pythia_i interface written by Ian Hinchcliffe.
-//
-// AuthorList: Brian Cole, Nathan Grau
-
-#include "Pyquench_i/Pyquench.h"
-#include "TruthUtils/GeneratorName.h"
-#include "GeneratorUtils/StringParse.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-#include "CLHEP/Random/RandFlat.h"
-#include <cstdlib>
-#include <iomanip>
-#include <sstream>
-
-// The following code provides an interface to the Pythia random number
-// generator.  It is implemented in Pythia_i but since we are replacing that
-// code here we need to duplicate definition.
-extern "C" double atl_pyr_( int* /* idummy */ ) {
-  CLHEP::HepRandomEngine* engine = Pyquench::m_AtRndmGenSvc_p->GetEngine(Pyquench::m_pythia_stream);
-  return CLHEP::RandFlat::shoot(engine);
-}
-
-//  Declare C interface to Pythia entry points
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyinit_(const char*, const char*,
-               const char*, double* ,
-               int, // lengths of character strings
-               int, // (should be value, not reference)
-               int);
-  void pyevnt_();
-  void pyevnw_();
-  void pyexec_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  int  pycomp_(int*);
-  void pyhepc_(int*);
-
-  //  pyquen routine
-  void pyquen_(double*, int*, double*);
-}
-
-// Instantiation of static data members
-IAtRndmGenSvc* Pyquench::m_AtRndmGenSvc_p;
-std::string    Pyquench::m_pythia_stream = "PYTHIA_INIT";
-Atlas_HEPEVT*  Pyquench::s_atlas_HEPEVT = new Atlas_HEPEVT();
-
-
-//--------------------------------------------------------------------------
-
-
-//  Constructor
-Pyquench::Pyquench(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenModule(name, pSvcLocator), m_events(0)
-{
-  m_pythia_stream = "PYTHIA_INIT";
-  declareProperty("nuclearA", m_nuclearA = 208);
-  declareProperty("minBiasYN",m_minBias = true );
-  declareProperty("bimpact",  m_bimpact = 0.0 );
-  declareProperty("sqrtSNN",  m_rootsNN = 2760.);
-  declareProperty("seed",     m_randomseed = 19780503);
-  declareProperty("PythiaCommand",    m_pythiaCommandVector);
-  declareProperty("TuneIndex", m_tune_index=129);
-
-}
-
-
-//--------------------------------------------------------------------------
-
-
-Pyquench::~Pyquench()
-{   }
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode Pyquench::genInitialize() {
-  ATH_MSG_INFO("Generators/Pyquench ===> PYTHIA INITIALISING.\n");
-
-  //  Initialize the random number generator stream
-  /// @todo Remove: this is already done by the GenModule base class
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc", m_AtRndmGenSvc_p, CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == Pyquench::m_AtRndmGenSvc_p) {
-    ATH_MSG_ERROR(" Could not initialize Random Number Service");
-    return RndmStatus;
-  }
-  m_pythia_stream = "PYTHIA_INIT";
-
-  //  Now setup up Pythia taking into account user input
-  setPythiaParameters();
-  std::stringstream ss;
-  ss << std::setw(10) << "PYQPAR"
-     << std::setw(10) << this->pyqpar().T0u()
-     << std::setw(10) << this->pyqpar().tau0u()
-     << std::setw(10) << this->pyqpar().nfu()
-     << std::setw(10) << this->pyqpar().ienglu()
-     << std::setw(10) << this->pyqpar().ianglu()
-     << std::endl;
-  ATH_MSG_INFO(ss.str());
-  std::cout << ss.str() << std::endl;
-  // Save the PYTHIA_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = Pyquench::m_AtRndmGenSvc_p->GetEngine(m_pythia_stream);
-  const long*	sip = engine->getSeeds();
-  long	int	si1 = sip[0];
-  long	int	si2 = sip[1];
-
-  // set up the input parameters to pyinit: these cannot yet be changed by the user
-  const char* frame = "CMS   ";
-  const char* proj  = "P     ";
-  const char* targ  = "P     ";
-
-  //  Initialize Pythia
-  pyinit_(frame, proj, targ, &m_rootsNN,
-          strlen(frame), strlen(proj), strlen(targ));
-
-  ATH_MSG_INFO("Generators/Pyquench ===> pyinit_ was called \n");
-
-  // ... and set them back to the stream for proper save
-  m_AtRndmGenSvc_p->CreateStream(si1, si2, m_pythia_stream);
-
-  //  And now set up to the use "Pythia" generation stream
-  m_pythia_stream = "PYTHIA";
-
-  //  pylist_(&minlist);
-  m_events = 0;
-
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(4);
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  return StatusCode::SUCCESS;
-}
-
-StatusCode Pyquench::callGenerator()
-{
-  ATH_MSG_INFO(" PYQUEN generating.");
-
-  // Write/Read the random numbers to/from file if requested
-  //
-  //  if (m_RndmSwitch > 0)	RandomNumberIO();
-
-  // Save the random number seeds in the event
-  //
-  CLHEP::HepRandomEngine* engine = m_AtRndmGenSvc_p->GetEngine(m_pythia_stream);
-  const long* s	= engine->getSeeds();
-
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-
-  
-  //eml 29.03.10 change mstj(1)=1 to mstj(1)=0 (fix from Nathan Grau)
-  this->pydat1().mstj(1)=0;
-  pyevnt_();
-  int ifb=0;
-  if (m_minBias) ifb = 1;
-
-  // Convert the nucleus A to a double
-  //
-  double inputA = m_nuclearA;
-
-  pyquen_(&inputA, &ifb, &m_bimpact);
-
-  // Now call pythia again with hadronization on
-  //
-  this->pydat1().mstj(1)=1;
-  pyexec_();
-
-
-  // update event counter
-  ++m_events;
-
-  // Convert from PYJETS to HEPEVT
-  //
-  int mconv = 1;
-  pyhepc_(&mconv);
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//--------------------------------------------------------------------------
-
-
-StatusCode Pyquench::genFinalize() {
-  ATH_MSG_INFO(" PYTHIA Ending.");
-  return StatusCode::SUCCESS;
-}
-
-
-//--------------------------------------------------------------------------
-
-
-
-StatusCode Pyquench::fillEvt(HepMC::GenEvent* evt)
-{
-  ATH_MSG_DEBUG(" PYTHIA Atlas_HEPEVT Filling.");
-  store_Atlas_HEPEVT();
-
-  ATH_MSG_DEBUG(" PYTHIA Filling." );
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-
-  hepio.fill_next_event(evt);
-  evt->set_signal_process_id(this->pyint1().mint(1));
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-
-  // Set beam particle status = 4
-  if (evt->valid_beam_particles()) {
-    evt->beam_particles().first->set_status(4);
-    evt->beam_particles().second->set_status(4);
-  }
-
-  // PDF weights, using Pdf Info object: pdf_id, x_1, x_1, Q2, f_1, f_2
-  const int id1=this->pypars().msti(15);
-  const int id2=this->pypars().msti(16);
-  const double x1=this->pypars().pari(33);
-  const double x2=this->pypars().pari(34);
-  const double q=this->pypars().pari(23);
-  const double pdf1=(double)this->pypars().pari(29); // x*pdf1
-  const double pdf2=(double)this->pypars().pari(30); // x*pdf2 
-  const int pdfId1 = (int)this->pypars().mstp( 51 );    // LHAPDF set id of first parton
-  const int pdfId2 = (int)this->pypars().mstp( 51 );    // LHAPDF set id of second --
-
-  HepMC::PdfInfo tmp_pdi(id1, id2, x1, x2, q, pdf1, pdf2, pdfId1, pdfId2);
-  evt->set_pdf_info(tmp_pdi);
-
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->id1());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->id2());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->x1());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->x2());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->scalePDF());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->pdf1());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->pdf2());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->pdf_id1());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->pdf_id2());
-
-  // Convert cm->mm and GeV->MeV
-  // cmTomm(evt);
-  GeVToMeV(evt);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//--------------------------------------------------------------------------
-
-
-void Pyquench::store_Atlas_HEPEVT(void)
-{
-    ATH_MSG_DEBUG("atlas_HEPEVT------" << s_atlas_HEPEVT->nhep() );
-    ATH_MSG_DEBUG("atlas_HEPEVT------" << s_atlas_HEPEVT->isthep(10) );
-    ATH_MSG_DEBUG("atlas_HEPEVT------" << s_atlas_HEPEVT->idhep(10) );
-    ATH_MSG_DEBUG("atlas_HEPEVT------" << s_atlas_HEPEVT->jmohep(1,10) );
-    ATH_MSG_DEBUG("atlas_HEPEVT------" << s_atlas_HEPEVT->jdahep(2,10) );
-
-    s_atlas_HEPEVT->fill();
-
-    Atlas_HEPEVT* ahep = new Atlas_HEPEVT();
-    *(ahep) = *(s_atlas_HEPEVT);
-    static const std::string keyid = "Pythia";
-    StatusCode sc = evtStore()->record(ahep, keyid);
-    if (!sc.isSuccess())  ATH_MSG_WARNING("Could not record Atlas_HEPEVT");
-    }
-
-//--------------------------------------------------------------------------
-
-
-void Pyquench::setPythiaParameters()
-{
-
-  this->pydatr().mrpy(1) = m_randomseed;
-  this->pypars().mstp(5) = m_tune_index;
-
-  //set what is necessary for correct use of Pythia within Athena:
-  //-----------------------------------------------------------------------------
-  this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-  this->pydat1().mstu(21)   =1;      // error handling switch 
-  this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-  //-----------------------------------------------------------------------------
-  ATH_MSG_INFO( "setPythiaTune: using Pythia internal tune via PYTUNE(" << m_tune_index <<") call.");
-  ATH_MSG_INFO( "setting parameters needed for desired functioning of Pythia within Athena        ");
-  ATH_MSG_INFO( " mstp(128)  =1;      fix junk output for documentary particles ");
-  ATH_MSG_INFO( " mstu(21)   =1;      error handling switch                     ");
-  ATH_MSG_INFO( " mstj(22)   =2;      (Make K_S, Lambda stable)                 ");
-  ATH_MSG_INFO( " Please note: ");
-  ATH_MSG_INFO( " 1. in the jO overrides of the parameters set by PYTUNE # "<< m_tune_index <<" will have no effect " );
-  ATH_MSG_INFO( " - this correspods to (standalone) Pythia behavior "  );
-  ATH_MSG_INFO( " 2. handling of non-existing PYTUNE tune is same as for (default) Pythia standalone." );
-
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++)
-  {
-    ATH_MSG_INFO(" Command is: " << m_pythiaCommandVector[i]);
-    StringParse mystring(m_pythiaCommandVector[i]);
-    std::string myblock = mystring.piece(1);
-    std::string myentry = mystring.piece(2);
-    std::string mystr = mystring.piece(3);
-    std::string mystr2 = mystring.piece(4);
-    std::string mystr3 = mystring.piece(5);
-    int myint1 = mystring.intpiece(3);
-    int myint2 = mystring.intpiece(4);
-    int myint3 = mystring.intpiece(5);
-    int myint4 = mystring.intpiece(6);
-    //int myint5 = mystring.intpiece(7);
-    double myfl0 = mystring.numpiece(3);
-    double myfl1 = mystring.numpiece(4);
-    double myfl2 = mystring.numpiece(5);
-    double myfl3 = mystring.numpiece(6);
-    // For ExoGraviton_i and PythiaBc_i user param. input
-    //int myint6 = mystring.intpiece(2);
-
-    // Note that Pythia needs doubles hence the convert here
-    if (myentry!="use_PYINIT") ATH_MSG_INFO(myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1);
-    else ATH_MSG_INFO(myblock << " block  " << myentry << " set to " << mystr << " " <<mystr2<<" " <<mystr3<<" "<<myfl3);
-
-
-    if (myblock == "pysubs")
-    {
-      if(myentry == "msel") this->pysubs().msel()=myint1;
-      else if (myentry == "msub") this->pysubs().msub(myint1)=myint2;
-      else if (myentry == "ckin") this->pysubs().ckin(myint1)=myfl1;
-      else if (myentry == "kfin") this->pysubs().kfin(myint1,myint2)=myint3;
-      else  ATH_MSG_ERROR("PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED " << myentry);
-    }
-    else if (myblock == "pypars")
-    {
-      if(myentry == "mstp") this->pypars().mstp(myint1)=myint2;
-      else if(myentry == "msti") this->pypars().msti(myint1)=myint2;
-      else if(myentry == "parp") this->pypars().parp(myint1)=myfl1;
-      else if(myentry == "pari") this->pypars().pari(myint1)=myfl1;
-      else ATH_MSG_ERROR("PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED " << myentry);
-    }
-    else if (myblock == "pydat1")
-    {
-      if(myentry == "mstu") this->pydat1().mstu(myint1)=myint2;
-      else if(myentry == "mstj") this->pydat1().mstj(myint1)=myint2;
-      else if(myentry == "paru") this->pydat1().paru(myint1)=myfl1;
-      else if(myentry == "parj") this->pydat1().parj(myint1)=myfl1;
-      else ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED " << myentry);
-    }
-    else if (myblock == "pydat2")
-    {
-      if(myentry == "kchg") this->pydat2().kchg(myint1,myint2)=myint3;
-      else if(myentry == "pmas") this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      else if(myentry == "parf") this->pydat2().parf(myint1)=myfl1;
-      else if(myentry == "vckm") this->pydat2().vckm(myint1,myint2)=myfl2;
-      else  ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED " << myentry);
-
-    }
-    else if (myblock == "pydat3")
-    {
-      if(myentry == "mdcy") this->pydat3().mdcy(myint1,myint2)=myint3;
-      else if(myentry == "mdme") this->pydat3().mdme(myint1,myint2)=myint3;
-      else if(myentry == "brat") this->pydat3().brat(myint1)=myfl1;
-      else if(myentry == "kfdp") this->pydat3().kfdp(myint1,myint2)=myint3;
-      else ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED " << myentry);
-    }
-    else if (myblock == "pydatr")
-    {
-      if(myentry == "mrpy")
-      {
-        ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-        ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-        ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-        ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-        ATH_MSG_INFO(" DETAILS LOOK IN  ");
-        ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-        ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-	
-	this->pydatr().mrpy(myint1)=myint2;
-      }
-      else if(myentry == "rrpy") this->pydatr().rrpy(myint1)=myfl1;
-      else  ATH_MSG_ERROR("PYTHIA ERROR, block PYDATR HAS MRPY AND RRPY: YOU HAVE SPECIFIED " << myentry);
-    }
-
-    else if (myblock == "pyint2")
-    {
-      if (myentry == "iset") this->pyint2().iset(myint1)=myint2;
-      else if (myentry == "kfpr") this->pyint2().kfpr(myint1,myint2)=myint3;
-      else if (myentry == "coef") this->pyint2().coef(myint1,myint2)=myfl2;
-      else if (myentry == "icol") this->pyint2().icol(myint1,myint2,myint3)=myint4;
-      else  ATH_MSG_ERROR("PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry);
-    }
-    else if (myblock == "pyqpar")
-    {
-      if(myentry == "T") this->pyqpar().T0u()=myfl0;
-      else if(myentry == "tau") this->pyqpar().tau0u()=myfl0;
-      else if(myentry == "nfu") this->pyqpar().nfu()=myint1;
-      else if(myentry == "ienglu") this->pyqpar().ienglu()=myint1;
-      else if(myentry == "ianglu") this->pyqpar().ianglu()=myint1;
-      else ATH_MSG_ERROR("PYTHIA ERROR, block PYQPAR has T tau nfu ienlu and ianglu: YOU HAVE SPECIFIED " << myentry);
-    }
-
-  }//end loop
-}
diff --git a/Generators/Pyquench_i/src/components/Pythia_i_entries.cxx b/Generators/Pyquench_i/src/components/Pythia_i_entries.cxx
deleted file mode 100644
index f6d50bfe7bb65384d76efbf6c42b59084f7d6f86..0000000000000000000000000000000000000000
--- a/Generators/Pyquench_i/src/components/Pythia_i_entries.cxx
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "Pyquench_i/Pyquench.h"
-
-DECLARE_COMPONENT( Pyquench )
-
diff --git a/Generators/Pyquench_i/src/gpyqar.f b/Generators/Pyquench_i/src/gpyqar.f
deleted file mode 100644
index 6a633daa0d1ab3f08feb087d792fd7fe196ee069..0000000000000000000000000000000000000000
--- a/Generators/Pyquench_i/src/gpyqar.f
+++ /dev/null
@@ -1,10 +0,0 @@
-      INTEGER*4 FUNCTION PYQPAR_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER nfu,ienglu,ianglu
-      DOUBLE PRECISION T0u,tau0u
-      COMMON/PYQPAR/ T0u,tau0u,nfu,ienglu,ianglu
-      INTEGER*4 GETADDR
-
-      PYQPAR_ADDRESS = GETADDR(T0u)
-      RETURN
-      END
diff --git a/Generators/Pyquench_i/src/pyquen.f b/Generators/Pyquench_i/src/pyquen.f
deleted file mode 100644
index 73976b55ba2e0d645582ddfff182d3127fe43464..0000000000000000000000000000000000000000
--- a/Generators/Pyquench_i/src/pyquen.f
+++ /dev/null
@@ -1,1507 +0,0 @@
-
-*----------------------------------------------------------------------
-*
-*  Filename               : PYQUEN.F
-*
-*  Author                 : Igor Lokhtin  (Igor.Lokhtin@cern.ch)
-*  Version                : PYQUEN1_5.f, v.1.5.1 
-*  Last revision v.5.1    : 19-DEC-2007 
-*  Last revision v.5.1.1  : 06-MAY-2010
-*
-*======================================================================
-*
-*  Description : Event generator for simulation of parton rescattering 
-*                and energy loss in expanding quark-gluon plasma created  
-*                in ultrarelativistic heavy ion AA collisons   
-*               (implemented as modification of standard Pythia jet event) 
-*
-*  Reference: I.P. Lokhtin, A.M. Snigirev, Eur. Phys. J. C 46 (2006) 211   
-*                   
-*======================================================================
-
-      SUBROUTINE PYQUEN(A,ifb,bfix)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-      external pydata  
-      external pyp,pyr,pyk,pyjoin,pyshow
-      external funbip,prhoaa,pfunc1
-      common /pyjets/ n,npad,k(4000,5),p(4000,5),v(4000,5)
-      common /pydat1/ mstu(200),paru(200),mstj(200),parj(200)       
-      common /pysubs/ msel,mselpd,msub(500),kfin(2,-40:40),ckin(200)      
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-      common /plglur/ glur(1000,4),kglu(1000,6),nrg,nrgm 
-      common /plquar/ pqua(1000,5),kqua(1000,5),nrq 
-      common /parimp/ b1,psib1,rb1,rb2,noquen 
-      common /pyqpar/ T0u,tau0u,nfu,ienglu,ianglu 
-      common /plfpar/ bgen
-      common /pygeom/ BC
-      common /pythic/ PBAB(110),PTAB(110),PTAAB(110)
-      common /pynup1/ bp,x  
-      save/pyjets/,/pydat1/,/pysubs/,/plglur/,/plquar/,/pygeom/,
-     >    /pythic/,/plpar1/,/parimp/,/pyqpar/,/plfpar/
-      dimension ijoik(2),ijoin(1000),ijoin0(1000),nis(500),nss(500),
-     >          nas(500),nus(500)
-                  
-* set initial event paramters  
-      AW=A                                 ! atomic weight 
-      RA=1.15d0*AW**0.333333d0             ! nucleus radius in fm
-      RA3=3.d0*RA 
-      mvisc=0                              ! flag of QGP viscosity (off here) 
-      TC=0.2d0                             ! crutical temperature 
-      
-      if(nfu.ne.0.and.nfu.ne.1.and.nfu.ne.2.and.nfu.ne.3) nfu=0
-      nf=nfu                               ! number of active flavours in QGP
-      if(tau0u.lt.0.01d0.or.tau0u.gt.10.d0) tau0u=0.1d0  
-      tau0=tau0u                           ! proper time of QGP formation
-      if(T0u.lt.0.2d0.or.T0u.gt.2.d0) T0u=1.d0  
-      T0=T0u*(AW/207.d0)**0.166667d0       ! initial QGP temperatute at b=0
-      if(ienglu.ne.0.and.ienglu.ne.1.and.ienglu.ne.2) ienglu=0 ! e-loss type
-      if(ianglu.ne.0.and.ianglu.ne.1.and.ianglu.ne.2) ianglu=0 ! angular spec.  
-*    
-      pi=3.14159d0 
-
-* avoid stopping run if pythia does not conserve energy due to collisional loss 
-      mstu(21)=1 
-
-* creation of arrays for tabulation of beam/target nuclear thickness function
-      Z2=4.d0*RA
-      Z1=-1.d0*Z2
-      H=0.01d0*(Z2-Z1)
-      do ib=1,110    
-       BC=RA3*(ib-1)/109.d0
-       CALL SIMPA(Z1,Z2,H,0.005d0,1.d-8,prhoaa,Z,RES,AIH,AIABS)     
-       PBAB(ib)=BC
-       PTAB(ib)=AW*RES
-      end do   
-      
-* calculation of beam/target nuclear overlap function at b=0
-* if ifb=1: creation of arrays for tabulation of nuclear overlap function
-      npb=1
-      if (ifb.eq.1) npb=110  
-      Z1=0.d0 
-      Z2=6.28318d0 
-      H=0.01d0*(Z2-Z1)    
-      do ib=1,npb 
-       bp=PBAB(ib)
-       CALL SIMPA(Z1,Z2,H,0.05d0,1.d-8,PFUNC1,X,RES,AIH,AIABS)
-       PTAAB(ib)=RES 
-      end do   
-
-* generate impact parameter of A-A collision with jet production  
-      if(ifb.eq.0) then 
-       if(bfix.lt.0.d0) then    
-        write(6,*) 'Impact parameter less than zero!'  
-        bfix=0.d0  
-       end if  
-       if (bfix.gt.RA3) then 
-        write(6,*) 'Impact parameter larger than three nuclear radius!'  
-        bfix=RA3
-       end if 
-       b1=bfix  
-      else      
-       call bipsear(fmax1,xmin1) 
-       fmax=fmax1 
-       xmin=xmin1    
- 11    bb1=xmin*pyr(0) 
-       ff1=fmax*pyr(0) 
-       fb=funbip(bb1) 
-       if(ff1.gt.fb) goto 11    
-       b1=bb1  
-      end if  
-      bgen=b1 
-      
-* generate single event with partonic energy loss 
-      nrg=0 
-      ehard=ckin(3) 
-      call plinit(ehard)  
-      call plevnt(ehard)
-
-* reset all in-vacuum radiated guark 4-momenta and codes to zero 
-      do i=1,1000  
-       do j=1,5
-        pqua(i,j)=0.d0
-        kqua(i,j)=0  
-       end do          
-      end do   
-      nrq=0 
-
-* generate final state shower in vacuum if it was excluded before 
-      nrgm=nrg                        ! fix number of in-medium emitted gluons  
-      ip1=0
-      ip2=0
-      ip01=0
-      ip02=0
-      ip001=0
-      ip002=0  
-      if(mstj(41).ne.0) goto 5
-      mstj(41)=1  
-      nn=n 
-      do i=9,nn 
-       if(k(i,3).eq.7) then  
-        ip1=i                    ! first hard parton (line ip1) 
-        kfh1=k(i,1)              ! status code of first hard parton 
-        qmax1=pyp(i,10)          ! transverse momentum of first hard parton
-       end if
-       if(k(i,3).eq.8) then 
-        ip2=i                    ! second hard parton (line ip2)  
-        kfh2=k(i,1)              ! status code of second hard parton 
-        qmax2=pyp(i,10)          ! transverse momentum of second hard parton 
-       end if
-      end do
-      
-      n1=n  
-      call pyshow(ip1,0,qmax1)    ! vacuum showering for first hard parton  
-      if(n.eq.n1) ip1=0     
-      n2=n 
-      call pyshow(ip2,0,qmax2)    ! vacuum showering for second hard parton 
-      if(n.eq.n2) ip2=0   
-      mstj(41)=0 
-      if(n.eq.nn) goto 5  
-      
-* find two leading partons after showering  
-      do i=nn+1,n 
-       if(k(i,3).eq.ip1) ip001=i   ! first daughter of first hard parton 
-       if(k(i,3).eq.ip2) ip002=i   ! first daughter of second hard parton 
-      end do
-      ptle1=0.d0
-      ptle2=0.d0    
-      do i=nn+1,n
-       if (k(i,1).eq.14) goto 3
-       if(i.ge.ip002.and.ip002.gt.0) then 
-        ptl02=pyp(i,10) 
-        if(ptl02.gt.ptle2.and.k(i,2).eq.k(ip2,2)) then 
-         ip02=i                   ! leading parton in second shower (line ip02)
-         ptle2=ptl02              ! pt of the leading parton 
-        end if 
-       elseif(ip001.gt.0) then  
-        ptl01=pyp(i,10) 
-        if(ptl01.gt.ptle1.and.k(i,2).eq.k(ip1,2)) then 
-         ip01=i                   ! leading parton in first shower (line ip01)
-         ptle1=ptl01              ! pt of the leading parton 
-        end if 
-       end if
- 3     continue 
-      end do
-
-* replace two hard partons by two leading partons in original event record 
-      if(ip1.gt.0) then 
-       do j=1,5 
-        v(ip1,j)=v(ip01,j)  
-        p(ip1,j)=p(ip01,j) 
-       end do 
-       k(ip1,1)=kfh1
-* fix first/last daughter for moving entry 
-        do jgl=1,n
-         if(k(jgl,4).eq.ip01) k(jgl,4)=ip1
-         if(k(jgl,5).eq.ip01) k(jgl,5)=ip1  
-        end do 
-*
-      end if 
-      if(ip2.gt.0) then   
-       do j=1,5  
-        v(ip2,j)=v(ip02,j)  
-        p(ip2,j)=p(ip02,j) 
-       end do 
-       k(ip2,1)=kfh2  
-* fix first/last daughter for moving entry  
-        do jgl=1,n
-         if(k(jgl,4).eq.ip02) k(jgl,4)=ip2
-         if(k(jgl,5).eq.ip02) k(jgl,5)=ip2  
-        end do 
-*
-      end if 
- 
-* add final showering gluons to the list of in-medium emitted gluons,
-* fill the list of emitted quarks by final showering quark pairs,  
-* and remove showering gluons and quarks from the event record 
-      do i=nn+1,n 
-       if(k(i,1).eq.14.or.i.eq.ip01.or.i.eq.ip02) goto 12       
-       if(k(i,2).ne.21) then           ! filling 'plquar' arrays for quarks 
-       nrq=nrq+1 
-        do j=1,5 
-         kqua(nrq,j)=k(i,j)
-         pqua(nrq,j)=p(i,j)
-        end do 
-        kqua(nrq,1)=2 
-        goto 12        
-       end if   
-       if(i.ge.ip002.and.ip002.gt.0) then 
-        ish=ip2
-       else  
-        ish=ip1
-       end if 
-       nrg=nrg+1
-       nur=nrg 
- 7     ishm=kglu(nur-1,6)
-       if(ish.ge.ishm.or.nur.le.2) goto 6   ! adding gluons in 'plglur' arrays 
-       do j=1,6
-        kglu(nur,j)=kglu(nur-1,j)
-       end do 
-       do j=1,4 
-        glur(nur,j)=glur(nur-1,j)
-       end do 
-       nur=nur-1 
-       goto 7                                                    
- 6     kglu(nur,1)=2                              ! status code 
-       kglu(nur,2)=k(i,2)                         ! particle identificator      
-       kglu(nur,3)=k(ish,3)                       ! parent line number  
-       kglu(nur,4)=0                              ! special colour info
-       kglu(nur,5)=0                              ! special colour info  
-       kglu(nur,6)=ish                            ! associated parton number 
-       glur(nur,1)=p(i,4)                         ! energy  
-       glur(nur,2)=pyp(i,10)                      ! pt  
-       glur(nur,3)=pyp(i,15)                      ! phi
-       glur(nur,4)=pyp(i,19)                      ! eta   
- 12    continue        
-* remove partons from event list
-       do j=1,5                             
-        v(i,j)=0.d0 
-        k(i,j)=0 
-        p(i,j)=0.d0  
-       end do        
-      end do 
-      n=nn        
-       
- 5    continue   
-          
-* stop generate event if there are no additional gluons 
-      if(nrg.lt.1) goto 1 
-
-* define number of stirngs (ns) and number of entries in strings before 
-* in-medium radiation (nis(ns))  
-      ns=0 
-      nes=0 
-      i0=0  
-      i1=0  
-      do i=1,500  
-       nis(i)=0 
-       nas(i)=0 
-       nss(i)=0 
-       nus(i)=0 
-      end do                      
-      do i=9,n 
-       ks=k(i,1) 
-       ksp=k(i-1,1) 
-       if(ks.eq.2) then 
-        nis(ns+1)=nis(ns+1)+1   
-       elseif(ks.eq.1.and.nis(ns+1).gt.0) then 
-        nis(ns+1)=nis(ns+1)+1
-        nes=nes+nis(ns+1)     ! nes - total number of entries  
-        nss(ns+1)=nes 
-        ns=ns+1 
-       elseif(ks.ne.2.and.ksp.ne.2.and.ns.gt.0) then 
-        i1=i1+1               ! last i1 lines not included in strings 
-       end if 
-      end do 
-      i0=n-nes-i1             ! first i0 lines not included in strings 
-      do i=1,ns 
-       nss(i)=nss(i)+i0 
-      end do  
-      
-* move fragmented particles in bottom of event list  
-      i=i0+1      
- 2    ks=k(i,1)
-      ksp=k(i-1,1) 
-      if(ks.ne.2.and.ksp.ne.2) then 
-       n=n+1 
-       do j=1,5 
-        v(n,j)=v(i,j) 
-        k(n,j)=k(i,j) 
-        p(n,j)=p(i,j) 
-       end do 
-* fix first/last daughter for moving entry 
-       do jgl=1,n
-        if(k(jgl,4).eq.i) k(jgl,4)=n
-        if(k(jgl,5).eq.i) k(jgl,5)=n 
-       end do
-*
-       do in=i+1,n 
-        do j=1,5 
-         v(in-1,j)=v(in,j) 
-         k(in-1,j)=k(in,j) 
-         p(in-1,j)=p(in,j)
-        end do 
-* fix first/last daughter for moving entry 
-        do jgl=1,n
-         if(k(jgl,4).eq.in) k(jgl,4)=in-1
-         if(k(jgl,5).eq.in) k(jgl,5)=in-1 
-        end do
-*
-       end do 
-       do ip=1,nrg 
-        ku=kglu(ip,6) 
-        if(ku.gt.i) kglu(ip,6)=ku-1 
-       end do 
-       n=n-1
-      else  
-       i=i+1  
-      end if 
-      if(i.le.n-i1) goto 2  
-
-* define number of additional entries in strings, nas(ns)                     
-      do i=1,nrg 
-       kas=kglu(i,6) 
-       if(kas.le.nss(1)) then 
-        nas(1)=nas(1)+1 
-       else 
-        do j=2,ns 
-         if(kas.le.nss(j).and.kas.gt.nss(j-1)) 
-     >   nas(j)=nas(j)+1 
-        end do
-       end if 	        
-      end do 
-      do j=1,ns   
-       do i=1,j   
-        nus(j)=nus(j)+nas(i) 
-       end do 
-      end do 
-	    
-* add emitted gluons in event list  
-      nu=n 
-      n=n+nrg 
-      do i=nu,nu-i1,-1 
-       is=i+nrg 
-       do j=1,5 
-        v(is,j)=v(i,j) 
-        k(is,j)=k(i,j) 
-        p(is,j)=p(i,j) 
-       end do 
-* fix first/last daughter for moving entries 
-       do jgl=1,n
-        if(k(jgl,4).eq.i) k(jgl,4)=is
-        if(k(jgl,5).eq.i) k(jgl,5)=is 
-       end do
-*
-      end do 
-
-      do ia=ns-1,1,-1  
-       do i=nss(ia+1)-1,nss(ia),-1 
-        is=i+nus(ia) 
-        do j=1,5 
-         v(is,j)=v(i,j) 
-         k(is,j)=k(i,j) 
-         p(is,j)=p(i,j) 
-        end do
-* fix first/last daughter for moving entries 
-        do jgl=1,n
-         if(k(jgl,4).eq.i) k(jgl,4)=is
-         if(k(jgl,5).eq.i) k(jgl,5)=is 
-        end do
-*       
-       end do 
-      end do 
-
-      do i=1,nrg 
-       if(i.le.nus(1)) then 
-       ia=nss(1)-1+i 
-       else  
-        do in=2,ns 
-         if(i.le.nus(in).and.i.gt.nus(in-1)) 
-     >   ia=nss(in)-1+i 
-        end do 
-       end if 
-       eg=glur(i,1)
-       ptg=glur(i,2)
-       phig=glur(i,3)    
-       etag=glur(i,4)   
-       do j=1,5 
-        v(ia,j)=0.d0 
-        k(ia,j)=kglu(i,j) 
-       end do 
-       p(ia,1)=ptg*dcos(phig)
-       p(ia,2)=ptg*dsin(phig) 
-       p(ia,3)=dsqrt(abs(eg*eg-ptg*ptg))
-       if(etag.lt.0.d0) p(ia,3)=-1.d0*p(ia,3)  
-       p(ia,4)=dsqrt(ptg*ptg+p(ia,3)**2)      
-       p(ia,5)=0.d0   
-      end do  
-      
-* rearrange partons to form strings in event list 
-      do ij=1,1000 
-       ijoin(ij)=0 
-       ijoin0(ij)=0 
-      end do 
-      do i=1,ns 
-       njoin=nis(i)+nas(i) 
-       if(i.eq.1) then 
-        do j=1,njoin 
-         ijoin(j)=i0+j
-        end do 
-       else 
-        do j=1,njoin 
-         ijoin(j)=nss(i-1)+nus(i-1)+j 
-        end do  
-       end if 
-       
-* re-oder additional gluons by z-coordinate along the string
-       if(nas(i).gt.0) then
-        ja=njoin-nas(i)
-        jo1=ijoin(1)
-        jon=ijoin(njoin)
-        etasum=0.d0
-        detaj=pyp(jo1,19)-pyp(jon,19)
-        do j=ja,njoin-1
-         jnum=0
-         etaj=pyp(jo1+j-1,19)
-	 etasum=etasum+etaj
-         do jj=ja,njoin-1
-          etajj=pyp(jo1+jj-1,19)
-          if(detaj.lt.0) then
-           if(etajj.lt.etaj.and.j.ne.jj) jnum=jnum+1
-          else
-           if(etajj.gt.etaj.and.j.ne.jj) jnum=jnum+1
-          end if
-          if(etajj.eq.etaj.and.j.lt.jj) jnum=jnum+1
-	 end do
-         ijoin(ja+jnum)=jo1+j-1
-        end do
-        detas1=abs(pyp(jo1,19)-etasum)
-        detasn=abs(pyp(jon,19)-etasum)
-	if(detasn.gt.detas1) then
-	 do j=1,njoin 
-	  ijoin0(j)=ijoin(j)
-	 end do 
-         do j=2,nas(i)+1
-          ijoin(j)=ijoin0(ja+j-2)
-         end do 	 	
-         do j=nas(i)+2,njoin-1  	
-          ijoin(j)=ijoin0(j-nas(i))
-         end do
-        end if 
-       end if
-
-* form strings
-       call pyjoin(njoin,ijoin)
-
-      end do  
-
-* add in-vacuum emitted quark pairs 
-      if(nrq.lt.2) goto 1                    
-      do i=1,nrq,2  
-       n=n+2 
-       do j=1,5  
-        v(n-1,j)=0.d0 
-        k(n-1,j)=kqua(i,j) 
-        p(n-1,j)=pqua(i,j) 
-       end do
-       in=i+1 
- 4     ktest=k(n-1,2)+kqua(in,2)
-       if(ktest.eq.0.or.in.eq.nrq) goto 8 
-       in=in+1 
-       goto 4 
- 8     do j=1,5  
-        v(n,j)=0.d0 
-        k(n,j)=kqua(in,j) 
-        p(n,j)=pqua(in,j) 
-       end do
-       if(in.gt.i+1) then 
-        do j=1,5   
-         kqua(in,j)=kqua(i+1,j) 
-         pqua(in,j)=pqua(i+1,j) 
-        end do
-       end if  
-      end do
- 
-      do ij=1,2 
-       ijoik(ij)=0 
-      end do 
-      do i=1,nrq-1,2 
-       k(n+1-i,1)=1 
-       ijoik(1)=n-i 
-       ijoik(2)=n+1-i 
-       call pyjoin(2,ijoik)
-      end do  
-
- 1    continue 
-           
-      return 
-      end 
-
-********************************* PLINIT ***************************
-      SUBROUTINE PLINIT(ET) 
-* set time-dependence of plasma parameters   
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      external plvisc  
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf  
-      common /plpar2/ pln0,taupl,tauh,sigpl,sigh,sigplh,sigqqh,rg,rgn 
-      common /plevol/ taup(5000),temp(5000),denp(5000),enep(5000)  
-      save /plevol/,/plpar1/,/plpar2/  
-*
-      pi=3.14159d0 
-      pi2=pi*pi  
-
-* set number degrees of freedom in QGP                
-      hgd=3.d0
-      rg=(16.d0+10.5d0*nf)/hgd   
-      rgn=(16.d0+9.d0*nf)/hgd 
-      
-* set 'fiction' sigma for parton rescattering in QGP  
-      sigqq=4.2d0 
-      sigpl=2.25d0*2.25d0*sigqq*(16.d0+4.d0*nf)/(16.d0+9.d0*nf) 
-
-* set intial plasma temperature, density and energy density in perfect 
-* (if mvisc=0) or viscous (mvisc=1,2) QGP with PLVISC subroitine  
-      hst=0.15d0   
-      if(T0.gt.1.5d0.or.mvisc.eq.2) hst=0.25d0
-      if(T0.gt.1.5d0.and.mvisc.ne.0) hst=0.9d0  
-      T01=T0*5.06d0                 
-      TC1=TC*5.06d0
-      pln0=(16.d0+9.d0*nf)*1.2d0*(T01**3)/pi2
-      ened0=pi2*(16.d0+10.5d0*nf)*(T01**4)/30.d0  
-      hh=hst*tau0  
-      tau=tau0                          ! proper time
-      T=T01                             ! temperature
-      den=pln0                          ! number density 
-      ened=ened0                        ! energy density 
-
-* create array of parameters to configurate QGP time evolution 
-      DO I=1,5000
-       taup(i)=tau                      ! proper time 
-       temp(i)=T/5.06d0                 ! temperature  
-       denp(i)=den                      ! number density 
-       enep(i)=ened/5.06d0              ! energy density
-       ened1=0.5d0*hh*(1.3333d0*plvisc(T)/(tau*tau)-1.3333d0 
-     >       *ened/tau)+ened
-       T1=(30.d0*ened1/((16.d0+10.5d0*nf)*pi2))**0.25d0 
-       tau1=tau+0.5d0*hh 
-       ened=hh*(1.3333d0*plvisc(T1)/(tau1*tau1)-1.3333d0
-     >      *ened1/tau1)+ened 
-       TPR=T 
-       T=(30.d0*ened/((16.d0+10.5d0*nf)*pi2))**0.25d0 
-       den=(16.d0+9.d0*nf)*1.2d0*(T**3)/pi2 
-       tau=tau+hh 
-       if(TPR.gt.TC1.and.T.le.TC1) taupl=tau-0.5d0*hh  ! QGP lifetime taupl 
-      END DO 
-      tauh=taupl*rg                                    ! mixed phase lifetime        
-
-      return 
-      end 
-******************************** END PLINIT ************************** 
-
-******************************* PLEVNT ******************************
-      SUBROUTINE PLEVNT(ET)    
-* generate hard parton production vertex and passing with rescattering,
-* collisional and radiative energy loss of each parton through plasma        
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-      external plthik, pln, plt, pls, gauss, gluang 
-      external pyp,pyr,pyk 
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-      common /plpar2/ pln0,taupl,tauh,sigpl,sigh,sigplh,sigqqh,rg,rgn 
-      common /thikpa/ fmax,xmin 
-      common /pyjets/ n,npad,k(4000,5),p(4000,5),v(4000,5)
-      common /pyqpar/ T0u,tau0u,nfu,ienglu,ianglu 
-      common /plglur/ glur(1000,4),kglu(1000,6),nrg,nrgm  
-      common /factor/ cfac, kf 
-      common /pleave/ taul, temlev   
-      common /parimp/ b1, psib1, rb1, rb2, noquen 
-      common /plen/ epartc, um 
-      common /plos/ elr,rsk 
-      common /numje1/ nuj1, nuj2  
-      save/pyjets/,/plglur/,/plpar1/,/plpar2/,/thikpa/,/factor/,
-     <    /pleave/,/parimp/,/plen/,/plos/,/numje1/
-*
-      pi=3.14159d0              
-
-* find minimum of nuclear thikness function with subroutine plsear      
-      psib1=pi*(2.d0*pyr(0)-1.d0) 
-      call plsear (fmax1,xmin1)
-      fmax=fmax1 
-      xmin=xmin1  
-
-* generate vertex of jet production  
-      iv=0 
- 1    rr1=xmin*pyr(0) 
-      ff1=fmax*pyr(0) 
-      f=plthik(rr1)
-      iv=iv+1  
-      if(ff1.gt.f.and.iv.le.100000) goto 1    
-      r0=rr1 
-      rb1=dsqrt(abs(r0*r0+b1*b1/4.d0+r0*b1*dcos(psib1))) 
-      rb2=dsqrt(abs(r0*r0+b1*b1/4.d0-r0*b1*dcos(psib1))) 
-      rb1=max(rb1,1.d-4) 
-      rb2=max(rb2,1.d-4) 
-* no quenching if noquen=1 or jet production vertex is out of effective dense zone 
-      if(noquen.eq.1.or.rb1.gt.RA.or.rb2.gt.RA) goto 7
-
-* find maximum of angular spectrum of radiated gluons with subroutine gluang 
-      temin=0.5d0*pi 
-      temax=0.5d0*(1.d0+dsqrt(5.d0))*0.0863d0   
-      ftemax=gluang(temax) 
-
-* reset all radiated gluon 4-momenta and codes to zero -------------------
-      do i=1,1000  
-       do j=1,4
-        glur(i,j)=0.d0
-        kglu(i,j)=0  
-       end do 
-       kglu(i,5)=0        
-       kglu(i,6)=0 
-      end do   
-      nrg=0 
-
-* generate changing 4-momentum of partons due to rescattering and energy loss 
-* (for partons with |eta|<3.5 and pt>3 GeV/c)
-      nuj1=9                            ! minimum line number of rescattered parton 
-      nuj2=n                            ! maximum line number of rescattered parton   
-      do 2 ip=nuj1,nuj2                 ! cycle on travelling partons 
-       irasf=0 
-       iraz=0 
-       ks=k(ip,1)                       ! parton status code 
-       kf=k(ip,2)                       ! parton identificator 
-       ka=abs(kf) 
-       ko=k(ip,3)                       ! origin (parent line number) 
-       epart=abs(pyp(ip,10))            ! parton transverse momentum
-       etar=pyp(ip,19)                  ! parton pseudorapidity  
-       if(ko.gt.6.and.epart.ge.3.d0.and.abs(etar).
-     >  le.7.d0) then 
-       if(ka.eq.21.or.ka.eq.1.or.ka.eq.2.or.ka.eq.3.
-     >  or.ka.eq.4.or.ka.eq.5.or.ka.eq.6.or.ka.eq.7.  
-     >  or.ka.eq.8) then    
-       if(ks.eq.2.or.ks.eq.1) then  
-        phir=pyp(ip,15)                 ! parton azimuthal angle  
-        tetr=pyp(ip,13)                 ! parton polar angle         
-        yrr=pyp(ip,17)                  ! parton rapidity 
-        stetr=dsin(tetr)                ! parton sin(theta) 
-        if(abs(stetr).le.1.d-05) then 
-         if(stetr.ge.0.d0) then 
-          stetr=1.d-05
-         else 
-          stetr=-1.d-05
-         end if 
-        end if 
-        phir1=-1.d0*phir 
-        tetr1=-1.d0*tetr 
-
-* set colour factor 
-        if(kf.eq.21) then 
-         cfac=1.d0                      ! for gluon 
-        else 
-         cfac=0.44444444d0              ! for quark 
-        end if    
-
-* boost from laboratory system to system of hard parton  
-        ipar=ip 
-        bet0=(r0*dcos(psib1)+0.5d0*b1)/rb1 
-        if(bet0.le.-1.d0) bet0=-0.99999d0
-        if(bet0.ge.1.d0) bet0=0.99999d0   
-        bet=dacos(bet0)
-        if(psib1.lt.0.d0) bet=-1.d0*bet 
-        phip=phir-bet 
-        if(phip.gt.pi) phip=phip-2.d0*pi 
-        if(phip.lt.-1.d0*pi) phip=phip+2.d0*pi   
-        call pyrobo(ip,ip,0.d0,phir1,0.d0,0.d0,0.d0)  
-        call pyrobo(ip,ip,tetr1,0.d0,0.d0,0.d0,0.d0)  
- 
-* calculate proper time of parton leaving the effective dense zone
-        aphin=(r0*r0-b1*b1/4.d0)/(rb1*rb2) 
-        if(aphin.le.-1.d0) aphin=-0.99999d0
-        if(aphin.ge.1.d0) aphin=0.99999d0   
-        phin=dacos(aphin) 
-        if(psib1.le.0.d0) phin=-1.d0*phin 
-        phid=phip-phin    
-        if(phid.gt.pi) phid=phid-2.d0*pi 
-        if(phid.lt.-1.d0*pi) phid=phid+2.d0*pi 
-        taul1=abs(dsqrt(abs(RA*RA-(rb1*dsin(phip))**2))-rb1*dcos(phip)) 
-        taul2=abs(dsqrt(abs(RA*RA-(rb2*dsin(phid))**2))-rb2*dcos(phid))    
-        taul=min(taul1,taul2)             ! escape time taul 
-        temlev=plt(taul,rb1,rb2,yrr)      ! QGP temperature at taul 
-        if(taul.le.tau0) goto 100        ! escape from QGP if taul<tau0  
-
-* start parton rescattering in QGP with proper time iterations  
-        tau=tau0 
-        xj=r0*dcos(psib1)
-        yj=r0*dsin(psib1)
-        rj1=rb1
-        rj2=rb2
- 3      tfs=plt(tau,rj1,rj2,yrr) 
-        xi=-10.d0*dlog(max(pyr(0),1.d-10))/(sigpl*pln(tau,rj1,rj2,yrr))
-        vel=abs(p(ip,3))/dsqrt(p(ip,3)**2+p(ip,5)**2) ! parton velocity 
-        if(vel.lt.0.3d0) goto 4      
-        tau=tau+xi*vel    
-        xj=xj+xi*vel*dcos(phir)
-        yj=yj+xi*vel*dsin(phir)
-        rj1=sqrt(abs(yj**2+(xj+0.5d0*b1)**2))
-        rj2=sqrt(abs(yj**2+(xj-0.5d0*b1)**2))
-        if(tfs.le.TC) goto 100     ! escape if temperature drops below TC
-
-* transform parton 4-momentum due to next scattering with subroutine pljetr
-        epartc=p(ip,4)                         ! parton energy 
-        um=p(ip,5)                             ! parton mass 
-        sigtr=pls(tfs)*cfac*((p(ip,4)/pyp(ip,8))**2)   
-        prob=sigpl/(sigtr/stetr+sigpl) 
-        ran=pyr(0) 
-        irasf=irasf+1 
-        if(irasf.gt.100000) goto 100 
-        if(ran.lt.prob) goto 3  
-        pltp=plt(tau,rj1,rj2,yrr) 
-        if(pltp.le.TC) goto 100     ! escape if temperature drops below TC
-        pltp3=3.d0*pltp 
-        pass=50.6d0/(pln(tau,rj1,rj2,yrr)*sigtr)    
-        elr=0.d0 
-        rsk=0.d0 
-        call pljetr(tau,pass,pltp,ipar,epart) 
-        irasf=0 
-
-* set 4-momentum (in lab system) of next radiated gluon for parton number >8  
-* and fill arrays of radiated gluons in common block plglur  
-        if(nrg.le.1000) then 
-         if(abs(elr).gt.0.1d0.and.ip.gt.8) then   
-* generate the angle of emitted gluon 
-          if(ianglu.eq.0) then 
- 6         te1=temin*pyr(0) 
-           fte1=ftemax*pyr(0) 
-           fte2=gluang(te1)
-           if(fte1.gt.fte2) goto 6  
-           tgl=te1                              
-          elseif (ianglu.eq.1) then              
-           tgl=((0.5d0*pi*epartc)**pyr(0))/epartc
-          else 
-           tgl=0.d0 
-          end if  	                                          
-          pgl=pi*(2.d0*pyr(0)-1.d0) 
-* in comoving system 
-          pxgl=abs(elr)*stetr*(dcos(phir)*dcos(tgl)-
-     >      dsin(phir)*dsin(tgl)*dsin(pgl)) 
-          pygl=abs(elr)*stetr*(dsin(phir)*dcos(tgl)+
-     >      dcos(phir)*dsin(tgl)*dsin(pgl))  
-          pzgl=-1.d0*abs(elr)*stetr*dsin(tgl)*dcos(pgl) 
-          ptgl=dsqrt(abs(pxgl*pxgl+pygl*pygl))
-          psgl=dsqrt(abs(ptgl*ptgl+pzgl*pzgl)) 
-* recalculate in lab system 
-          dyg=0.5d0*dlog(max(1.d-9,(psgl+pzgl)/(psgl-pzgl)))
-          pzgl=ptgl*dsinh(yrr+dyg) 
-          psgl=dsqrt(abs(ptgl*ptgl+pzgl*pzgl))
-*
-          dpgl=pygl/pxgl        
-          glur1=abs(elr)                                       ! energy 
-          glur3=datan(dpgl)                                    ! phi
-          if(pxgl.lt.0.d0) then 
-           if(pygl.ge.0.d0) then 
-            glur3=glur3+pi 
-           else 
-            glur3=glur3-pi  
-           end if 
-          end if   
-          glur4=0.5d0*dlog(max(1.d-9,(psgl+pzgl)/(psgl-pzgl))) ! eta  
-          glur2=glur1/dcosh(glur4)                             ! pt 
-
-* put in event list radiated gluons with pt > 0.2 GeV only 
-          if(glur2.ge.0.2d0) then 
-           nrg=nrg+1 
-* set gluon 4-momentum 
-           glur(nrg,1)=glur1                     ! energy
-           glur(nrg,2)=glur2                     ! pt
-           glur(nrg,3)=glur3                     ! phi 
-           glur(nrg,4)=glur4                     ! eta
-* set gluon codes 
-           kglu(nrg,1)=2                         ! status code 
-           kglu(nrg,2)=21                        ! particle identificator 
-           kglu(nrg,3)=k(ipar,3)                 ! parent line number  
-           kglu(nrg,4)=0                         ! special colour info
-           kglu(nrg,5)=0                         ! special colour info  
-           kglu(nrg,6)=ipar                      ! associated parton number 
-          end if 
-         end if  
-        else 
-         write(6,*) 'Warning! Number of emitted gluons is too large!' 
-        end if 
-
-* set parton "thermalization" if pt<T
-        if(abs(p(ip,3)).gt.pltp3) goto 3   
- 4      continue  
-        if(p(ip,3).ge.0.d0) then 
-         sigp=1.d0 
-        else 
-         sigp=-1.d0 
-        end if     
- 5      iraz=iraz+1  
-        if(iraz.gt.100000) goto 100  
-        ep0=-0.15d0*(dlog(max(1.d-10,pyr(0)))+dlog(max(1.d-10,pyr(0)))+
-     >  dlog(max(1.d-10,pyr(0)))) 
-        if(ep0.le.p(ip,5).or.ep0.ge.100.d0) goto 5   
-        pp0=dsqrt(abs(ep0**2-p(ip,5)**2)) 
-        probt=pp0/ep0 
-        if(pyr(0).gt.probt) goto 5  
-        ctp0=2.d0*pyr(0)-1.d0 
-        stp0=dsqrt(abs(1.d0-ctp0**2)) 
-        php0=pi*(2.d0*pyr(0)-1.d0)  
-        p(ip,1)=pp0*stp0*dcos(php0)       
-        p(ip,2)=pp0*stp0*dsin(php0)         
-        p(ip,3)=sigp*pp0*ctp0
-        p(ip,4)=dsqrt(p(ip,1)**2+p(ip,2)**2+p(ip,3)**2+p(ip,5)**2) 
-
-* boost to laboratory system 
- 100    call pyrobo(ip,ip,tetr,phir,0.d0,0.d0,0.d0)
-       end if 
-       end if 
-       end if 
- 2    continue 
- 7    continue
- 
-      return 
-      end     
-******************************* END PLEVNT ************************* 
-
-******************************* PLJETR *****************************
-      SUBROUTINE PLJETR(tau,y,x,ip,epart)       
-* transform parton 4-momentum due to scattering in plasma at time = tau 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-      external plfun1, pls 
-      external pyp,pyr   
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-      common /plpar2/ pln0,taupl,tauh,sigpl,sigh,sigplh,sigqqh,rg,rgn        
-      common /pyjets/ n,npad,k(4000,5),p(4000,5),v(4000,5)
-      common /pyqpar/ T0u,tau0u,nfu,ienglu,ianglu 
-      common /pljdat/ ej, z, ygl, alfs, um, epa 
-      common /pleave/ taul, temlev        
-      common /radcal/ aa, bb 
-      common /factor/ cfac, kf 
-      common /plos/ elr,rsk 
-      save /pyjets/,/plpar1/,/plpar2/,/pyqpar/,/pljdat/,/pleave/,/plos/,
-     <     /factor/,/radcal/
-*
-      pi=3.14159d0 
-      spi=dsqrt(pi)
-      tauu=x                            ! redenote temerature tauu=x 
-      i=ip                              ! redenote parton number i=ip       
-      iter=0 
-      iraz=0 
-
-* boost to system of comoving plasma constituent  
-      phir=pyp(i,15)                    ! parton phi  
-      tetr=pyp(i,13)                    ! parton theta   
-      phir1=-1.d0*phir 
-      tetr1=-1.d0*tetr 
-      call pyrobo(i,i,0.d0,phir1,0.d0,0.d0,0.d0)  
-      call pyrobo(i,i,tetr1,0.d0,0.d0,0.d0,0.d0)  
-      pp=pyp(i,8)                       ! parton total momentum   
-      ppl=abs(p(i,3))                   ! parton pz 
-      um=p(i,5)                         ! parton mass 
-      epa=p(i,4)                        ! parton energy 
-      ppt=pyp(i,10)                     ! parton pt 
-      pphi=pyp(i,15)                    ! parton phi       
-
-      if(ppl.lt.3.d0) goto 222          ! no energy loss if pz<3 GeV/c 
-
-* generation hard parton-plasma scattering with momentum transfer rsk 
- 221   ep0=-1.*tauu*(dlog(max(1.d-10,pyr(0)))+dlog(max(1.d-10,
-     >   pyr(0)))+dlog(max(1.d-10,pyr(0))))     ! energy of 'thermal' parton 
-       iter=iter+1 
-       if(ep0.lt.1.d-10.and.iter.le.100000) goto 221   
-       scm=2.*ep0*epa+um*um+ep0*ep0 
-       qm2=(scm-((um+ep0)**2))*(scm-((um-ep0)**2))/scm  
-       bub=4.d0*tauu/TC   
-       alf=6.d0*pi/((33.d0-2.d0*nf)*dlog(max(bub,1.d-10)))
-       z=abs(pi*4.d0*tauu*tauu*alf*(1.+nf/6.d0))  
-       bubs=dsqrt(z)/TC 
-       alfs=6.d0*pi/((33.d0-2.d0*nf)*dlog(max(bubs,1.d-10))) 
-       phmin2=z 
-       phmax2=max(phmin2,qm2)  
-       fqmax2=1.d0/(dlog(max(phmin2/(TC*TC),1.d-10)))**2           
- 12    rn1=pyr(0)
-       tp=1.d0/(rn1/phmax2+(1.d0-rn1)/phmin2)
-       ftp=1.d0/(dlog(max(tp/(TC*TC),1.d-10)))**2 
-       fprob=ftp/fqmax2 
-       rn2=pyr(0) 
-       if(fprob.lt.rn2) goto 12             
-       rsk=dsqrt(abs(tp))
-       if(rsk.gt.ppl) rsk=ppl          
-
-* calculate radiative energy loss per given scattering with subroutine plfun1 
-       ygl=y*cfac                      ! mean gluon free path in GeV^{-1}
-       elp=ygl*z                       ! mimimum radiated energy in LPM regime
-       ej=ppl                           
-       bb=ej                           ! maximum radiated energy 
-       bbi=max(dsqrt(z),1.000001d0*elp)  
-       aa=min(bb,bbi)                  ! minimum radiated energy 
-       hh=0.00001d0*(bb-aa)    
-       REPS=0.01d0 
-       AEPS=1.d-8 
-       CALL SIMPA(aa,bb,hh,REPS,AEPS,plfun1,om,resun,AIH,AIABS)    
-*                                      ! integral over omega for radiative loss
-       call radsear(ermax1,eomin1) 
-       ermax=ermax1 
-       eomin=eomin1 
- 11    resu=eomin*pyr(0)+aa 
-       fres=ermax*pyr(0) 
-       fres1=plfun1(resu) 
-       iraz=iraz+1 
-       if(fres.gt.fres1.and.iraz.lt.100000) goto 11   
-       elr=resu*resun                   ! energy of radiated gluon 
-
-* to chancel radiative energy loss (optional case) 
-       if(ienglu.eq.2) elr=0.d0
-* to chancel collisional energy loss (optional case) 
-       if(ienglu.eq.1) rsk=0.d0 
-
-* determine the direction of parton moving 
-       if(p(i,3).ge.0.d0) then 
-        sigp=1.d0 
-       else 
-        sigp=-1.d0
-       end if     
-
-* calculate new 4-momentum of hard parton 
-       phirs=2.d0*pi*pyr(0)
-       epan=epa-rsk*rsk/(2.d0*ep0)-abs(elr)  
-       if(epan.lt.0.1d0) then 
-        epan=epan+abs(elr) 
-        elr=0.d0
-        if(epan.lt.0.1d0) then
-         rsk=0.d0 
-         epan=epa
-        end if  
-       end if  
-       pptn=dsqrt(abs(rsk*rsk+(rsk**4)*(1.d0-epa*epa/(ppl*ppl))/
-     >      (4.d0*ep0*ep0)-(rsk**4)*epa/(2.d0*ep0*ppl*ppl)-(rsk**4)/
-     >      (4.d0*ppl*ppl))) 
-       ppln=dsqrt(abs(epan*epan-pptn*pptn-p(i,5)**2))   
-       p(i,1)=pptn*dcos(phirs)                                 ! px 
-       p(i,2)=pptn*dsin(phirs)                                 ! py
-       p(i,3)=sigp*ppln                                        ! pz 
-       p(i,4)=dsqrt(p(i,1)**2+p(i,2)**2+p(i,3)**2+p(i,5)**2)   ! E 
-* boost to system of hard parton 
- 222   call pyrobo(i,i,tetr,phir,0.d0,0.d0,0.d0)
-
-      return
-      end
-******************************* END PLJETR **************************
-
-******************************** PLSEAR ***************************
-       SUBROUTINE PLSEAR (fmax,xmin) 
-* find maximum and 'sufficient minimum' of jet production vertex distribution
-* xm, fm are outputs. 
-       IMPLICIT DOUBLE PRECISION(A-H, O-Z) 
-       external plthik
-       common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-       save /plpar1/
-       xmin=3.d0*RA 
-       fmax=0.d0
-       do 10 j=1,1000
-        x=xmin*(j-1)/999.d0
-        f=plthik(x) 
-        if(f.gt.fmax) then
-         fmax=f
-        end if
-  10   continue
-       return
-       end
-****************************** END PLSEAR **************************
-
-******************************** RADSEAR ***************************
-       SUBROUTINE RADSEAR (fmax,xmin)
-* find maximum and 'sufficient minimum' of radiative energy loss distribution 
-* xm, fm are outputs. 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      external plfun1  
-      common /radcal/ aa, bb
-      save /radcal/ 
-      xmin=bb-aa     
-      fmax=0.d0
-      do j=1,1000
-       x=aa+xmin*(j-1)/999.d0
-       f=plfun1(x)   
-       if(f.gt.fmax) then
-        fmax=f
-       end if
-      end do   
-      return
-      end
-****************************** END RADSEAR **************************
-
-********************************* BIPSEAR ***************************
-      SUBROUTINE BIPSEAR (fmax,xmin) 
-* find maximum and 'sufficient minimum' of jet production cross section  
-* as a function of impact paramater (xm, fm are outputs)       
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      external funbip 
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-      save /plpar1/
-      xmin=3.d0*RA 
-      fmax=0.d0 
-      do j=1,1000
-       x=xmin*(j-1)/999.d0 
-       f=funbip(x) 
-       if(f.gt.fmax) then
-        fmax=f
-       end if
-      end do  
-      return
-      end
-****************************** END RADSEAR **************************
-
-**************************** SIMPA **********************************
-      SUBROUTINE SIMPA (A1,B1,H1,REPS1,AEPS1,FUNCT,X,                   
-     1                     AI,AIH,AIABS)                                
-* calculate intergal of function FUNCT(X) on the interval from A1 to B1 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      DIMENSION F(7), P(5)                                             
-      H=dSIGN ( H1, B1-A1 )                                             
-      S=dSIGN (1.d0, H )                                                   
-      A=A1                                                              
-      B=B1                                                              
-      AI=0.0d0                                                            
-      AIH=0.0d0                                                           
-      AIABS=0.0d0                                                        
-      P(2)=4.d0                                                           
-      P(4)=4.d0                                                           
-      P(3)=2.d0                                                           
-      P(5)=1.d0                                                           
-      IF(B-A)1,2,1                                                      
- 1    REPS=ABS(REPS1)                                                   
-      AEPS=ABS(AEPS1)                                                  
-      DO 3 K=1,7                                                        
- 3    F(K)=10.d16                                                       
-      X=A                                                              
-      C=0.d0                                                              
-      F(1)=FUNCT(X)/3.d0                                                  
- 4    X0=X                                                              
-      IF( (X0+4.d0*H-B)*S)5,5,6                                           
- 6    H=(B-X0)/4.d0                                                       
-      IF ( H ) 7,2,7                                                   
- 7    DO 8 K=2,7                                                      
- 8    F(K)=10.d16                                                       
-      C=1.d0                                                           
- 5    DI2=F (1)                                                       
-      DI3=ABS( F(1) )                                                   
-      DO 9 K=2,5                                                       
-      X=X+H                                                           
-      IF((X-B)*S)23,24,24                                              
- 24   X=B                                                              
- 23   IF(F(K)-10.d16)10,11,10                                          
- 11   F(K)=FUNCT(X)/3.d0                                               
- 10   DI2=DI2+P(K)*F(K)                                                 
- 9    DI3=DI3+P(K)*ABS(F(K))                                            
-      DI1=(F(1)+4.*F(3)+F(5))*2.d0*H                                      
-      DI2=DI2*H                                                         
-      DI3=DI3*H                                                        
-      IF (REPS) 12,13,12                                               
- 13   IF (AEPS) 12,14,12                                                
- 12   EPS=ABS((AIABS+DI3)*REPS)                                         
-      IF(EPS-AEPS)15,16,16                                              
- 15   EPS=AEPS                                                          
- 16   DELTA=ABS(DI2-DI1)                                               
-      IF(DELTA-EPS)20,21,21                                             
- 20   IF(DELTA-EPS/8.d0)17,14,14                                          
- 17   H=2.d0*H                                                            
-      F(1)=F(5)                                                         
-      F(2)=F(6)                                                         
-      F(3)=F(7)                                                         
-      DO 19 K=4,7                                                       
- 19   F(K)=10.d16                                                      
-      GO TO 18                                                         
- 14   F(1)=F(5)                                                         
-      F(3)=F(6)                                                         
-      F(5)=F(7)                                                         
-      F(2)=10.d16                                                       
-      F(4)=10.d16                                                      
-      F(6)=10.d16                                                      
-      F(7)=10.d16                                                      
- 18   DI1=DI2+(DI2-DI1)/15.d0                                            
-      AI=AI+DI1                                                         
-      AIH=AIH+DI2                                                      
-      AIABS=AIABS+DI3                                                   
-      GO TO 22                                                          
- 21   H=H/2.d0                                                            
-      F(7)=F(5)                                                        
-      F(6)=F(4)                                                        
-      F(5)=F(3)                                                        
-      F(3)=F(2)                                                         
-      F(2)=10.d16                                                      
-      F(4)=10.d16                                                      
-      X=X0                                                            
-      C=0.                                                             
-      GO TO 5                                                          
- 22   IF(C)2,4,2                                                      
- 2    RETURN                                                        
-      END                                                              
-************************* END SIMPA *******************************
-
-**************************** SIMPB **********************************
-      SUBROUTINE SIMPB (A1,B1,H1,REPS1,AEPS1,FUNCT,X,                   
-     1                     AI,AIH,AIABS)                                
-* calculate intergal of function FUNCT(X) on the interval from A1 to B1 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      DIMENSION F(7), P(5)                                             
-      H=dSIGN ( H1, B1-A1 )                                             
-      S=dSIGN (1.d0, H )                                                   
-      A=A1                                                              
-      B=B1                                                              
-      AI=0.0d0                                                            
-      AIH=0.0d0                                                           
-      AIABS=0.0d0                                                        
-      P(2)=4.d0                                                           
-      P(4)=4.d0                                                           
-      P(3)=2.d0                                                           
-      P(5)=1.d0                                                           
-      IF(B-A)1,2,1                                                      
- 1    REPS=ABS(REPS1)                                                   
-      AEPS=ABS(AEPS1)                                                  
-      DO 3 K=1,7                                                        
- 3    F(K)=10.d16                                                       
-      X=A                                                              
-      C=0.d0                                                              
-      F(1)=FUNCT(X)/3.d0                                                  
- 4    X0=X                                                              
-      IF( (X0+4.d0*H-B)*S)5,5,6                                           
- 6    H=(B-X0)/4.d0                                                       
-      IF ( H ) 7,2,7                                                   
- 7    DO 8 K=2,7                                                      
- 8    F(K)=10.d16                                                       
-      C=1.d0                                                           
- 5    DI2=F (1)                                                       
-      DI3=ABS( F(1) )                                                   
-      DO 9 K=2,5                                                       
-      X=X+H                                                           
-      IF((X-B)*S)23,24,24                                              
- 24   X=B                                                              
- 23   IF(F(K)-10.d16)10,11,10                                          
- 11   F(K)=FUNCT(X)/3.d0                                               
- 10   DI2=DI2+P(K)*F(K)                                                 
- 9    DI3=DI3+P(K)*ABS(F(K))                                            
-      DI1=(F(1)+4.*F(3)+F(5))*2.d0*H                                      
-      DI2=DI2*H                                                         
-      DI3=DI3*H                                                        
-      IF (REPS) 12,13,12                                               
- 13   IF (AEPS) 12,14,12                                                
- 12   EPS=ABS((AIABS+DI3)*REPS)                                         
-      IF(EPS-AEPS)15,16,16                                              
- 15   EPS=AEPS                                                          
- 16   DELTA=ABS(DI2-DI1)                                               
-      IF(DELTA-EPS)20,21,21                                             
- 20   IF(DELTA-EPS/8.d0)17,14,14                                          
- 17   H=2.d0*H                                                            
-      F(1)=F(5)                                                         
-      F(2)=F(6)                                                         
-      F(3)=F(7)                                                         
-      DO 19 K=4,7                                                       
- 19   F(K)=10.d16                                                      
-      GO TO 18                                                         
- 14   F(1)=F(5)                                                         
-      F(3)=F(6)                                                         
-      F(5)=F(7)                                                         
-      F(2)=10.d16                                                       
-      F(4)=10.d16                                                      
-      F(6)=10.d16                                                      
-      F(7)=10.d16                                                      
- 18   DI1=DI2+(DI2-DI1)/15.d0                                            
-      AI=AI+DI1                                                         
-      AIH=AIH+DI2                                                      
-      AIABS=AIABS+DI3                                                   
-      GO TO 22                                                          
- 21   H=H/2.d0                                                            
-      F(7)=F(5)                                                        
-      F(6)=F(4)                                                        
-      F(5)=F(3)                                                        
-      F(3)=F(2)                                                         
-      F(2)=10.d16                                                      
-      F(4)=10.d16                                                      
-      X=X0                                                            
-      C=0.                                                             
-      GO TO 5                                                          
- 22   IF(C)2,4,2                                                      
- 2    RETURN                                                        
-      END                                                              
-************************* END SIMPB *******************************
-
-************************* PARINV **********************************
-      SUBROUTINE PARINV(X,A,F,N,R)                                      
-* gives interpolation of function F(X) with  arrays A(N) and F(N) 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      DIMENSION A(N),F(N)                                              
-      IF(X.LT.A(1))GO TO 11                                            
-      IF(X.GT.A(N))GO TO 4                                              
-      K1=1                                                              
-      K2=N                                                              
- 2    K3=K2-K1                                                          
-      IF(K3.LE.1)GO TO 6                                               
-      K3=K1+K3/2                                                        
-      IF(A(K3)-X) 7,8,9                                                 
- 7    K1=K3                                                             
-      GOTO2                                                            
- 9    K2=K3                                                            
-      GOTO2                                                             
- 8    P=F(K3)                                                          
-      RETURN                                                          
- 3    B1=A(K1)                                                          
-      B2=A(K1+1)                                                      
-      B3=A(K1+2)                                                        
-      B4=F(K1)                                                        
-      B5=F(K1+1)                                                        
-      B6=F(K1+2)                                                       
-      R=B4*((X-B2)*(X-B3))/((B1-B2)*(B1-B3))+B5*((X-B1)*(X-B3))/       
-     1 ((B2-B1)*(B2-B3))+B6*((X-B1)*(X-B2))/((B3-B1)*(B3-B2))           
-      RETURN                                                          
- 6    IF(K2.NE.N)GO TO 3                                               
-      K1=N-2                                                            
-      GOTO3                                                            
- 4    C=ABS(X-A(N))                                                     
-      IF(C.LT.0.1d-7) GO TO 5                                           
-      K1=N-2                                                           
- 13   CONTINUE                                                          
-C13   PRINT 41,X                                                        
-C41   FORMAT(25H X IS OUT OF THE INTERVAL,3H X=,F15.9)                  
-      GO TO 3                                                           
- 5    R=F(N)                                                           
-      RETURN                                                            
- 11   C=ABS(X-A(1))                                                     
-      IF(C.LT.0.1d-7) GO TO 12                                         
-      K1=1                                                             
-      GOTO 13                                                           
- 12   R=F(1)                                                            
-      RETURN                                                            
-      END                                                              
-C************************** END PARINV *************************************
-
-* quark-quark scattering differential cross section 
-       double precision FUNCTION PLSIGH(Z)
-       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-       common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-       save /plpar1/
-       pi=3.14159d0
-       beta=(33.d0-2.d0*nf)/(12.d0*pi)  
-       alfs=1.d0/(beta*dlog(max(1.d-10,z/(TC*TC)))) 
-       PLSIGH=8.d0*pi*alfs*alfs/(9.d0*z*z) 
-       return
-       end 
-
-* differential radiated gluon spectrum in BDMS model 
-      double precision FUNCTION PLFUN1(or) 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-      common /pljdat/ ej, z, ygl, alfs, um, epa 
-      common /pleave/ taul, temlev    
-      common /factor/ cfac, kf 
-      save /plpar1/,/pljdat/,/pleave/,/factor/
-      pi=3.14159d0
-      x=min((1.d0-ygl*z/or),or/ej)  
-      if(x.le.0.d0) x=0.d0 
-      if(x.ge.1.d0) x=0.9999d0      
-      if(kf.eq.21) then 
-       if(x.ge.0.5d0) x=1.d0-x 
-       spinf=0.5d0*(1.+(1.d0-x)**4+x**4)/(1.d0-x)            
-      else 
-       spinf=1.d0-x+0.5d0*x*x 
-      end if   
-      ak=ygl*z/(or*(1.d0-x)) 
-      al=taul*5.06d0 
-      uu=0.5d0*al*dsqrt(abs(0.5d0*(1.d0-x+cfac*x*x)*ak*
-     >   dlog(max(16.d0/ak,1.d-10))))/ygl  
-* if  quark production outside the QGP then 
-* arg=(((dsin(uu)*cosh(uu))**2)+((dcos(uu)*sinh(uu))**2))/(2.d0*uu*uu);   
-* here quark production inside the QGP  
-      arg=((dcos(uu)*cosh(uu))**2)+((dsin(uu)*sinh(uu))**2)   
-      gl1=(ygl/(cfac*z))**0.3333333d0
-      gl2=(um/epa)**1.333333d0  
-      dc=1.d0/((1.d0+((gl1*gl2*or)**1.5d0))**2)       ! massive parton    
-c      dc=1.d0                                         !massless parton 
-      plfun1=dc*3.d0*alfs*ygl*dlog(max(arg,1.d-20))*spinf/(pi*al*or)   
-      return 
-      end  
-
-* angular distribution of emitted gluons       
-      double precision function gluang(x) 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      s=0.0863d0 
-      gluang=x*dexp(-1.d0*(x-s)*(x-s)/(2.d0*s*s)) 
-      return
-      end    
-
-* temperature-dependence of parton-plasma integral cross section 
-       double precision FUNCTION PLS(X)
-       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-       external plsigh 
-       common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-       common /plpar2/ pln0,taupl,tauh,sigpl,sigh,sigplh,sigqqh,rg,rgn 
-       common /plen/ epartc, um  
-       save /plpar1/,/plpar2/,/plen/ 
-       t=X 
-       pi=3.14159d0
-       bub=4.d0*t/TC   
-       alf=6.d0*pi/((33.d0-2.d0*nf)*dlog(max(bub,1.d-10)))
-       ZZ0=4.d0*t*t*pi*alf*(1.d0+nf/6.d0)
-       scm=4.d0*t*epartc+um*um+4.d0*t*t  
-       ZZ1=max((scm-((um+2.d0*t)**2))*(scm-((um-2.d0*t)**2))/scm,ZZ0)      
-       HH1=0.01d0*ZZ1  
-       REPS=0.01d0 
-       AEPS=1.d-8
-       CALL SIMPA(ZZ0,ZZ1,HH1,REPS,AEPS,plsigh,ZZ,RESS,AIH,AIABS) 
-       PLS=0.39d0*2.25d0*2.25d0*RESS*(16.d0+4.d0*nf)/(16.d0+9.d0*nf) 
-       return
-       end
-
-* temperature-dependence of QGP viscosity (if mvisc=1,2)  
-      double precision FUNCTION PLVISC(X) 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-      save /plpar1/
-      pi=3.14159d0
-      T=X 
-      TC1=5.06d0*TC 
-      if(X.le.TC1) T=TC1  
-      if(mvisc.eq.0) then 
-       c=0.d0
-      elseif(mvisc.eq.1) then 
-       a=3.4d0*(1.d0+0.12d0*(2.d0*nf+1.d0))
-       b=15.d0*(1.d0+0.06d0*nf)
-       c=4.d0*pi*pi*(10.5d0*nf/a+16.d0/b)/675.d0         
-      else 
-       c=(1.7d0*nf+1.d0)*0.342d0/(1.d0+nf/6.d0)
-      end if 
-      bub=4.d0*T/TC1   
-      alf=6.d0*pi/((33.d0-2.d0*nf)*dlog(max(bub,1.d-10)))
-      alf1=1.d0/alf 
-      PLVISC=c*(T**3)/(alf*alf*dlog(max(1.d-10,alf1)))  
-      return
-      end 
-
-* space-time dependence of QGP number density 
-       double precision FUNCTION PLN(X,r1,r2,y)  
-       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-       external pythik
-       common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-       common /plpar2/ pln0,taupl,tauh,sigpl,sigh,sigplh,sigqqh,rg,rgn 
-       common /plevol/ taup(5000),temp(5000),denp(5000),enep(5000)  
-       common /pythic/ PBAB(110),PTAB(110),PTAAB(110)
-       save /plpar1/,/plpar2/,/plevol/,/pythic/
-       pi=3.14159d0
-       t=X       
-       if(t.lt.taupl) then
-        call parinv(t,taup,denp,5000,res)    
-       else
-        res=1.2d0*(16.d0+9.d0*nf)*((5.06d0*TC)**3)/(pi*pi)
-       end if 
-       res=res*(pythik(r1)*pythik(r2)*pi*RA*RA/PTAAB(1))**0.75d0 
-       res=res*dexp(-1.d0*y*y/24.5d0)
-       PLN=max(1.d-8,res)
-       return 
-       end
-
-* space-time dependence of QGP temperature 
-       double precision FUNCTION PLT(X,r1,r2,y)  
-       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-       common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf
-       common /plpar2/ pln0,taupl,tauh,sigpl,sigh,sigplh,sigqqh,rg,rgn 
-       common /plevol/ taup(5000),temp(5000),denp(5000),enep(5000) 
-       common /pythic/ PBAB(110),PTAB(110),PTAAB(110)
-       save /plpar1/,/plpar2/,/plevol/,/pythic/
-       pi=3.14159d0
-       t=X       
-       if(t.lt.taupl) then
-        call parinv(t,taup,temp,5000,res)    
-       else
-        res=TC
-       end if 
-        res=res*(pythik(r1)*pythik(r2)*pi*RA*RA/PTAAB(1))**0.25d0 
-	res=res*(dexp(-1.d0*y*y/24.5d0))**0.333333d0
-        PLT=max(1.d-8,res)  
-       return 
-       end
-
-* impact parameter dependence of jet production cross section
-      double precision function funbip(x) 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      external ftaa 
-      common /pyint7/ sigt(0:6,0:6,0:5)
-      save /pyint7/ 
-      br=x 
-      sigin=sigt(0,0,0)-sigt(0,0,1)
-      taa=ftaa(br)
-      funbip=taa*br*(1.d0-dexp(-0.1d0*taa*sigin)) 
-      return 
-      end 
-
-* distribution over jet production vertex position  
-      double precision FUNCTION plthik(X)  
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      external pythik
-      common /parimp/ b1, psib1, rb1, rb2, noquen 
-      save /parimp/
-      bu=X
-      r12=dsqrt(abs(bu*bu+b1*b1/4.d0+bu*b1*dcos(psib1))) 
-      r22=dsqrt(abs(bu*bu+b1*b1/4.d0-bu*b1*dcos(psib1)))  
-      PLTHIK=bu*pythik(r12)*pythik(r22) 
-      return
-      end
-
-* nuclear overlap function at impact parameter b  
-      double precision function ftaa(r)  
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      common /pythic/ PBAB(110),PTAB(110),PTAAB(110)
-      save /pythic/ 
-      call parinv(r,PBAB,PTAAB,110,RES) 
-      ftaa=RES 
-      return 
-      end   
-*
-      double precision function PFUNC1(x) 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      external PFUNC2 
-      common /pynup1/ bp,xx 
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf       
-      save /plpar1/
-      xx=x 
-      EPS=0.05d0 
-      A=0.d0 
-      B=3.d0*RA
-      H=0.01d0*(B-A)    
-      CALL SIMPB(A,B,H,EPS,1.d-8,PFUNC2,Y,RES,AIH,AIABS)
-      PFUNC1=RES 
-      return 
-      end   
-*      
-      double precision function PFUNC2(y) 
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      external pythik 
-      common /pynup1/ bp,x 
-      r1=sqrt(abs(y*y+bp*bp/4.+y*bp*cos(x))) 
-      r2=sqrt(abs(y*y+bp*bp/4.-y*bp*cos(x)))
-      PFUNC2=y*pythik(r1)*pythik(r2) 
-      return 
-      end  
-
-* nuclear thickness function 
-      double precision function pythik(r)   
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      common /pythic/ PBAB(110),PTAB(110),PTAAB(110)
-      save /pythic/ 
-      call parinv(r,PBAB,PTAB,110,RES) 
-      pythik=RES 
-      return
-      end
-
-* Wood-Saxon nucleon distrubution  
-      double precision function prhoaa(z)  
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      common /plpar1/ tau0,T0,TC,sigqq,AW,RA,mvisc,nf       
-      common /pygeom/ BC 
-      save /plpar1/,/pygeom/
-      pi=3.14159d0
-      df=0.54d0
-      r=sqrt(bc*bc+z*z)
-      rho0=3.d0/(4.d0*pi*RA**3)/(1.d0+(pi*df/RA)**2)
-      prhoaa=rho0/(1.d0+exp((r-RA)/df))
-      return
-      end
-
-* function to generate gauss distribution
-      double precision function gauss(x0,sig)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
- 41   u1=pyr(0) 
-      u2=pyr(0)  
-      v1=2.d0*u1-1.d0
-      v2=2.d0*u2-1.d0 
-      s=v1**2+v2**2
-      if(s.gt.1) go to 41
-      gauss=v1*dsqrt(-2.d0*dlog(s)/s)*sig+x0
-      return
-      end    
-**************************************************************************   
diff --git a/Generators/PythiaB/CMakeLists.txt b/Generators/PythiaB/CMakeLists.txt
deleted file mode 100644
index 91a5c0100621e9c83df03a76aa8fdc3bbf5e9e9e..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/CMakeLists.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-################################################################################
-# Package: PythiaB
-################################################################################
-
-# Declare the package name:
-atlas_subdir( PythiaB )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PUBLIC
-                          Control/StoreGate
-                          GaudiKernel
-                          Generators/GeneratorModules
-                          Generators/GeneratorObjects
-                          Generators/Pythia_i
-                          PRIVATE
-                          Control/AthenaKernel
-                          Generators/GeneratorUtils
-                          Generators/TruthUtils )
-
-# External dependencies:
-find_package( CLHEP )
-find_package( HepMC COMPONENTS HepMC HepMCfio )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( PythiaBLib
-                   src/PythiaB.cxx
-                   src/charm.F
-                   src/children.F
-                   src/qualify.F
-                   src/anti_beauty.F
-                   src/find_children.F
-                   src/anti_charm.F
-                   src/finsel.F
-                   src/trig1.F
-                   src/trig2.F
-                   src/bbbb_luexec.F
-                   src/swop_ludat3.F
-                   src/copy_pydat3.F
-                   src/forced.F
-                   src/uinit.F
-                   src/bbcc_luexec.F
-                   src/multi_flav_luexec.F
-                   src/user_finsel.F
-                   src/bcopy.F
-                   src/off_line.F
-                   src/beauty.F
-                   src/parsel.F
-                   src/comons.F
-                   src/fill_ntup.F
-                   src/ulast.F
-                   src/uf_Skeleton.F
-                   src/uf_DsPhiX.F
-                   src/uf_LambdabJpsimumuLambda.F
-                   src/uf_LambdabmumuLambda.F
-                   src/uf_BsJpsimumuphiKK.F
-                   src/uf_BdJpsimumuK0starKpi.F
-                   src/uf_BsAngles.F
-                   src/uf_BsAnglesCDF.F
-                   src/uf_BdAnglesCDF.F
-                   src/uf_bbmumu.F
-                   src/uf_KstarMuMu.F
-                   src/uf_PhiMuMu.F
-                   src/uf_GammaMuMu.F
-                   src/uf_DK1.F
-                   src/uf_ChHadr.F
-                   src/btreedel.F
-                   src/coef.F
-                   src/comfunc.F
-                   src/formfactors_KstMuMu.F
-                   src/formfactors_PhiMuMu.F
-                   src/formfactors_b2gmm.F
-                   src/daughterline.F
-                   src/matrix_and_kinematics_KstMuMu.F
-                   src/matrix_and_kinematics_PhiMuMu.F
-                   src/matrix_and_kinematics_b2gmm.F
-                   src/matrix_for_fortran_KstMuMu.F
-                   src/matrix_for_fortran_PhiMuMu.F
-                   src/matrix_for_fortran_b2gmm.F
-                   src/rotat.F
-                   PUBLIC_HEADERS PythiaB
-                   PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-                   PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
-                   LINK_LIBRARIES GaudiKernel GeneratorObjects StoreGateLib SGtests GeneratorModulesLib Pythia_iLib
-                   PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} AthenaKernel TruthUtils )
-
-atlas_add_component( PythiaB
-                     src/components/*.cxx
-                     INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} StoreGateLib SGtests GaudiKernel GeneratorModulesLib GeneratorObjects Pythia_iLib AthenaKernel TruthUtils PythiaBLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
-atlas_install_runtime( share/Bdecays0.dat )
-
diff --git a/Generators/PythiaB/PythiaB/PythiaB.h b/Generators/PythiaB/PythiaB/PythiaB.h
deleted file mode 100644
index 7dce05cf656b4bdd1818f640028cdb2f7a099132..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/PythiaB/PythiaB.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef GENERATORMODULESPYTHIAB_H
-#define GENERATORMODULESPYTHIAB_H
-#include "Pythia_i/Pythia.h"
-#include "GeneratorModules/GenModule.h"
-// commons from input cards
-//#include "Cutbq.h"
-
-#include "Pythia_i/Pydat1.h"
-#include "Pythia_i/Pydat2.h"
-#include "Pythia_i/Pydat3.h"
-#include "Pythia_i/Pysubs.h"
-#include "Pythia_i/Pypars.h"
-#include "Pythia_i/Pydatr.h"
-#include "Pythia_i/Pymssm.h"
-#include "Pythia_i/Pyint2.h"
-#include "Pythia_i/Pyint5.h"
-
-#include "GeneratorObjects/McEventCollection.h"
-#include "StoreGate/DataHandle.h"
-
-using std::string;
-typedef std::vector<std::string> CommandVector;
-
-/**
-@class  PythiaB
-
-@brief   This code is used to get a PYTHIA Monte Carlo event.
-
-    genInitialize() is used to read parameters
-
-    callGenerator() makes the event
-
-    genFinalize() writes log files etc
-
-    fillEvt(GeneratorEvent* evt) passes the event to HepMC
-
-    The output will be stored in the transient event store so it can be
-    passed to the simulation.
-
-@author        M.Smizanska
-
-         Ian Hinchliffe June 2000
-
-         Modeled after the CDF code by Stan Thompson
-         added access to pyint2 common Feb 2001
-
-         W.Walkowiak, 2006-04-02 added m_maxTriesHard, m_forceDecayChannel
-                                 and m_decayChannelParameters 
-                                (for user_finsel.F reorganization) 
-
-        E.Lobodzinska doxygen docu (Jan. 2008)
-*/
-
-class PythiaB : public Pythia
-{
-public:
-  PythiaB(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~PythiaB();
-	
-  virtual StatusCode genuserInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  //	Pyint5& pyint5();
-		
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-		
-private:
-  StatusCode storeBEvent();
-  long pCounter(HepMC::GenEvent* myEvt) const;
-		
-  McEventCollection m_BEventBuffer;
-  // HepMC::GenEvent currentEvent;
-		
-  CommandVector m_cutbqVector;
-  string m_cutbqandor; 
-  std::vector<double> m_lvl1cut;
-  std::vector<double> m_lvl2cut;
-  std::vector<double> m_offcut;
-  double m_cutbqp, m_cutbqe, m_cutabqp, m_cutabqe;
-  double m_mhad;
-  double m_xhad;
-  double m_fla;
-  double m_Ntup;
-
-  double m_maxTriesHard;
-  string m_forceDecayChannel;
-  std::vector<double> m_decayChannelParameters;	
-
-  string m_forceb;
-  string m_forcec;
-
-};
-
-#endif
diff --git a/Generators/PythiaB/doc/PythiaB.pdf b/Generators/PythiaB/doc/PythiaB.pdf
deleted file mode 100644
index 70ea691ed77afc15ac9f4a30ce8b94f63eafd6e9..0000000000000000000000000000000000000000
Binary files a/Generators/PythiaB/doc/PythiaB.pdf and /dev/null differ
diff --git a/Generators/PythiaB/doc/PythiaB.tex b/Generators/PythiaB/doc/PythiaB.tex
deleted file mode 100644
index 1d66d5e153629b4597379d48979800a195eaaf4f..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/doc/PythiaB.tex
+++ /dev/null
@@ -1,855 +0,0 @@
-\documentstyle[12pt,epsfig]{article}
-%\documentclass[11pt]{cernrep}
-
-\topmargin 0cm
-%\headheight 0pt
-%\headsep 0pt
-\topskip 0pt
-
-\oddsidemargin  -5mm
-%\evensidemargin -3mm
-\textheight 22cm
-\textwidth 160mm
-%\parindent 7mm
-\itemsep -5mm
-\newcommand{\tabulka}[3]{
-  \begin{table}[h]
-    \begin{center}
-      #1
-      \end{center}
-   \caption{#2}
-    \label{#3}
- \end{table}}
-
-\newcommand{\psubt}{\mbox{$p_{T}\ $}}
-\newcommand{\bquark}{\mbox{$\rm b\ $}}
-\newcommand{\abquark}{\mbox{$\rm \overline{b}\ $}}
-\newcommand{\bab}{\mbox{$\rm b\overline{b}\ $}}
-
-\begin{document}
-\title{\Large{ \bf PythiaB} \\
-\large{\bf interface to Pythia6 dedicated to simulation of beauty events.}}
-\author{ \normalsize Maria Smizanska (maria.smizanska@cern.ch)\\
-  University Lancaster}
-
-
-\normalsize
-%\today
-
-\maketitle
-
-
-%\begin{tabular*}{\textwidth}{@{}l@{\extracolsep{\fill}}rrr}
-\begin{scriptsize}
-\begin{tabular}{|l|l|l|l|}
-\hline
-
-release 3.1.0  & PythiaBModule - algorithm & new  & M.Smizanska based on  \\
-  April 2002   &    and related code       &      & PythiaModule and atgenb \\ \hline
-release 4.4.0  & PythiaBModule             & update    &  \\
- Oct.2002      & Event store at repeated hadronization  & &  M.Muller,  P.Calafiura      \\
-               & bbbb, bbcc if forced decay& & M.Smizanska \\ \cline{2-4}
-
-               & BSignalFiler - algorithm & new &   M.Muller based on \\
-           &                          &  &EventFilter and HistSample \\
-\hline
-release 5.0.0  & Btune.py & new    &  M.Smizanska \\
- 2.Dec.2002              &           &          & Pythia6 B-tuned parameters \\ \cline{2-4}
-               &  $\rm PythiaB\_Signal.py$    & updated & M.Smizanska\\
-               &  $\rm PythiaB\_bbmu6X.py$     &     "  &  " \\ \hline
- release 6.5.0 & PythiaBModule renamed to PythiaB                        & reorganization   & G.Stavropoulos,  \\
- 3.Aug.2003    &   replaced from former & of Generators  &I.Hinchcliffe\\
-               & /Generators/GeneratorModules/PythiaBModule & &\\
-               & to /Generators/PythiaB  & &\\ \cline{2-4}
-               &  $\rm PythiaB\_Signal.py$    & updated to  & M.Smizanska\\
-               &   $\rm PythiaB\_bbmu6X.py$ &  new  Rndm Number     &  \\ 
-               &    &    service      &   \\ \hline
-\end{tabular}
-
-\end{scriptsize}
-\tableofcontents
-\newpage
-\section{Shortly}
-\begin{tabular}{|l|l|}
- \hline
-& \\
- \bf{athena $\rm PythiaB\_bbmu6X.py$} &simulate $\rm \bab \rightarrow
-\mu(6GeV) X$ \\
-& \\
-\hline & \\
-\bf{athena  $\rm PythiaB\_Signal.py$} & simulate one exclusive B-channel \\
-   &     default   $ \rm B_{s} \rightarrow J/\psi(\mu\mu) \phi $ \\
-   &     other examples  inside $\rm PythiaB\_Signal.py $\\
-\hline
-\end{tabular}
-\section{What PythiaB provides }
-
-{\bf PythiaB} provides an interface to Pythia6 allowing to: {\bf
-1.}~speed up B events simulations, {\bf 2.}~simulate only wanted
-decay channel,  {\bf 3.}~apply selection cuts organized in several
-levels: after parton showering ( before hadronization), after
-hadronization: trigger-like cuts and off-line type of cuts, {\bf
-4.}~define b-production  parameters - optimal parameters are
-prepared as default. User can control 1.-4. by datacards contained
-in jobOptions.py file.
-
-  PythiaB inherits from Pythia and GenModule, so the event is converted
-  from Pythia common block HEPEVT to c++  HepMc tree structure
-  and stored in Storegate as a transient object and finally written to a root persistency.
-  
-\section{Where to use PythiaB}
-
-PythiaB can be used for a generation of beauty events 
-written into a persistent root file, which can serve as an input into 
-a detector simulation
-(atlsim) or into ATFAST. PythiaB can also work in the same job with ATLFAST 
-  in this case the HepMC tree is passed from PythiaB to ATLFAST in
-  a transient form. 
-\section{How to use PythiaB}
-
-
-
-\subsection{Just changing jobOptions.py, linking only PythiaB files}
-
-
-To work just with PythiaB avoiding to connect large number of
- unwanted files to your
-TestRelease area      you simply do following:
-
-
-\begin{enumerate}
-
-\vspace{-3mm}\item set up athena under cmt,  see cmt manual
-\cite{cmt} and Athena manual \cite{athena}.
-\vspace{3mm}\item cmt co TestRelease 
-\vspace{-3mm} \item cd TestRelease/TestRelease-00-*/cmt
-\vspace{-3mm} \item edit requirements
-and change following lines:
-%\end{enumerate}
-
-\begin{verbatim}
-
-     O R I G I N A L 
-  
- use AtlasRelease AtlasRelease-* 
-  
-\end{verbatim}
-
-\begin{verbatim}
-
-     R E W R I T T E N 
-  
-#use AtlasRelease AtlasRelease-*
-use PythiaB PythiaB-00-* Generators
-use AthenaCommon AthenaCommon-* Control
-use AtlasROOT           AtlasROOT-*        External  
-use EventHdrAthenaRoot EventHdrAthenaRoot-* Event
-use EventSelectorAthenaRoot EventSelectorAthenaRoot-* Database/AthenaRoot
-
-
-\end{verbatim}
-
-%\begin{enumerate}
- \vspace{-3mm} \item  source setup.sh 
-\vspace{-3mm}\item  gmake
-\vspace{-3mm} \item  cd TestRelease/TestRelease-00-*/run
-\vspace{-3mm} \item  edit and adopt jobOptions.py to your needs
- \vspace{-3mm}\item  to run interactively: athena jobOptions.py $>$output.log
-\end{enumerate}
-
-
-
-
-
-
-
-
-\subsection{Changing an existing Athena code}
-I want to change some of the existing code, e.g. apply dedicated
-selection criteria in user$\_$finsel.F, or change PythiaB.cxx.
-Then do following: \\
-
-\begin{enumerate}
-\vspace{-3mm}\item set up Athena under cmt
-\vspace{-3mm}\item cmt co TestRelease
-\vspace{-3mm}\item cmt co Generators/PythiaB
-\vspace{-3mm}\item cd Generators/PythiaB/src/
-\vspace{-3mm}\item edit and adopt user$\_$finsel.F
-\vspace{-3mm}\item edit and adopt PythiaB.cxx
-\vspace{-3mm}\item cd TestRelease/TestRelease-00-*/cmt
-\vspace{-3mm}\item change the default requirements to the
-requirements as written at the item 4 of the  subsection 4.1
-\vspace{-3mm}\item source setup.sh
-\vspace{-3mm}\item cmt broadcast gmake
-\vspace{-3mm}\item cd TestRelease/TestRelease-00-*/run
-\vspace{-3mm}\item (edit and adopt jobOptions.py if you need)
-\vspace{-3mm}\item to run interactively: athena jobOptions.py $>$
-output.log
- \end{enumerate}
- 
- The release 6.5.0 allows also running in the InstallArea, 
- so you can as well do the last three points as follows:
- 
- \begin{itemize}
- \vspace{-3mm}\item[11.] cd InstallArea/jobOptions/PythiaB 
-\vspace{-3mm}\item[12.] (edit and adopt jobOptions.pyif you need)
-\vspace{-3mm}\item[13.] to run interactively: athena jobOptions.py $>$
-output.log
- \end{itemize}
- 
-
-\subsection{Changing an existing Pythia6 subroutine }
-I have my own physics model in fortran.
-I want to pluck it into an existing PYTHIA6 subroutine PYxyz.F.
-It is similar to previous case. 
-So you do following: \\
-
-
-
-\begin{enumerate}
-\vspace{-3mm}\item set up Athena under cmt
-\vspace{-3mm}\item cmt co TestRelease
-\vspace{-3mm}\item cmt co Generators/PythiaB
-\vspace{-3mm}\item cd Generators/PythiaB/src/
-\vspace{-3mm}\item cp ${\$}$MYSPACE/PYxyz.F ./
-\vspace{-3mm}\item cd Generators/PythiaB/cmt/
-edit requirements 
-and change following lines:
-
-\begin{verbatim}
-
-     O R I G I N A L 
-  
-                                       charm.F \
-                                       children.F \  
-  
-\end{verbatim}
-
-\begin{verbatim}
-
-     R E W R I T T E N 
-                                       charm.F \
-               PYxyz.F  \
-                                       children.F \  
-
-
-\end{verbatim}
-
-\vspace{-3mm}\item cd TestRelease/TestRelease-00-*/cmt
-\vspace{-3mm}\item change the default requirements to the
-requirements as written at the point 4 of the  subsection 4.1
-\vspace{-3mm}\item source setup.sh
-\vspace{-3mm}\item cmt broadcast gmake
-\vspace{-3mm}\item cd TestRelease/TestRelease-00-*/run
-\vspace{-3mm}\item (edit and adopt jobOptions.py if you need)
-\vspace{-3mm}\item to run interactively: athena jobOptions.py $>$ output.log
-
-
-
-
- \end{enumerate}
-
-  or
-  
-  
-\begin{itemize}
- \vspace{-3mm}\item[11.] cd InstallArea/jobOptions/PythiaB 
-\vspace{-3mm}\item[12.] (edit and adopt jobOptions.py if you need)
-\vspace{-3mm}\item[13.] to run interactively: athena jobOptions.py $>$
-output.log
- \end{itemize}
- 
-\section{Why dedicated code for b-physics }
-
-\subsection{Speed up simulation}
-Pythia6 is a phenomenological model that provides  three
-mechanisms to produce b-quark. They are classified as a flavour
-creation ($ \rm gg \rightarrow b \overline{b}$, $ \rm qq
-\rightarrow b \overline{b}$), flavour excitation ($\rm gb
-\rightarrow gb$) and gluon splitting ($g \rightarrow b
-\overline{b}$). All these three mechanisms are activated if
-following Pythia processes are allowed:
- isub=11 f + f' $\rightarrow$ f + f' (QCD) ,
- isub=12 f + fbar $\rightarrow$ f' + fbar' ,
- isub=13 f + fbar $\rightarrow$ g + g  ,
- isub=28 f + g $\rightarrow$ f + g   ,
- isub=53 g + g $\rightarrow$ f + fbar ,
- isub=68 g + g $\rightarrow$ g + g ,
-  with parameter "pysubs msel=1".
- In this regime beauty quark is
-produced approximately in $1\%$ of events (the number depends on
-the selected phase space). There is another mechanism which is
-activated by selecting "pysubs msel 5" - here b-quark is produced
-in each event in a hard scattering processes of type: $ \rm gg
-\rightarrow b \overline{b}$, $ \rm qq \rightarrow b \overline{b}$
-using mass matrix elements. This mechanism however does not
-describe known b-production data from Fermilab. The difference is
-so large that it is not suggested to use it for simulations. The
-details can be found for instance in \cite{my5}.
-
-In order to speed up the simulation in "pysubs msel 1" mode
-PythiaB interrupts a simulation after the parton development (just
-before the hadronization) to check for the presence of $b
-\overline{b}$ quarks satisfying user's defined limits in \psubt
-and $\eta$. If user wants the hadronization is repeated several
-(MHAD) times using the same parton part of the event. The
-resulting cross section is then divided by MHAD. It is suggested
-that user selects MHAD such that the average number of accepted
-events with the same parton part is close to 1. The latter value
-is printed out by PythiaB in an output log file.
-
-
-\subsection{Simulate only wanted channel}
-It is not difficult to select only wanted channel in Pythia.
-PythiaB does nothing special - just saves your time and work:
-1.~by providing an interface to datacards allowing user to close
-and open channels without an intervention in the code, 2.~by
-providing special datacard files allowing to close large groups of
-unwanted channels. For more details see section 6.2. PythiaB
-provides also datacards allowing user  to apply trigger-like cuts
-and offline-like selection cuts.
-
-\subsection{How should I calculate a cross section}
-
-If a user  did not force any of B-decays, then the  cross section
-is calculated in PythiaB and appeares in the output.log file under
-the name:
-  CROSSSECTION OF YOUR B-CHANNEL IS. If you forced any channel in B-decay chain
-  you should multiply the PythaBModule cross section by a branching ratio for this
-  channel.
-\tabulka{\begin{tabular}{||c|c|c|c||} \hline 
- 
- MEANING     &     ATLAS VALUE     &           Pythia6 default \\
- \hline
- b-quark production-related parameters              &                     &\\          
- Structure fuction                     &   "pypars mstp 51 1 (CTEQ3)" &   CTEQ5 \\       
-Min bias               &          "pysubs msel 1", &  1 \\
-Max parton virtuality           &  &  \\
-factor to multiply $Q^2_{\mbox{hard}}$ &  "pypars parp 67 1", &  1\\
-The factorization scale  $Q^2_{\mbox{hard}}= $&                     &\\
-$\psubt^2 (P_1^2 + P_2^2 + m_3^2+m_4^2)/2$  &          "pypars mstp 32 8"  &           8 \\
-
-\hline     
-B hadron related parameters                 &                     &\\
-
-
-Spin s=1 probability            &  "pydat1 parj 13 0.65"                   &  0.75\\ 
-j=1  l=1 s=0                    &        "pydat1 parj 14 0.12", &     0\\
-j=0  l=1 s=1            &        "pydat1 parj 15 0.04", &     0\\
-j=1  s=1 l=1            &        "pydat1 parj 16 0.12", &     0\\
-j=2  s=1 l=1                    &        "pydat1 parj 17 0.2", &     0\\
-Peterson fragmentation   $\epsilon_b$      &   "pydat1 parj 55 -.006"                 & -.005   \\    
-           
-            
-No B-oscillations            & "pydat1 mstj 26 0", &\\
-            
-         
-         \hline
-            
-Multiple   interactions parameters   &                     &\\
-Model           & "pypars mstp 82 4 (double gauss)", & 1 (step fcn)\\
- Regularization \psubt scale          & "pypars parp 82 1.4",  &     1.9\\
- Double gauss parameters           &"pypars parp 83 0.5",   &    0.5\\
-   "        & "pypars parp 84 0.4",   &    0.2\\
-  Gluon probability          &"pypars parp 85 0.9",   &    0.33\\
- Two gluon probability          & "pypars parp 86 0.95",  &    0.66\\
- Energy scale for parp 82          & "pypars parp 89 1800",  &    1000\\
- Power of energy rescaling           &"pypars parp 90 0.25".  &    0.16 \\ 
-            
-         \hline 
-  \end{tabular}}
-           {The optimized set of B-physics-related Pythia6 parameters, values  for ATLAS simulations.}
-           {table:abab} 
-
-
-
-
-
-
-
-\subsection{Optimal B-simulation parameters}
-PythiaB provides an interface to datacards allowing user to define
-beauty production  parameters. The optimal  values of these
-parameters were selected in \cite{my6} and are summarized in
-the  Table \ref{table:abab}. This set is provided by PythiaB
-as a default.
-  The new structure functions CTEQ5
-('mstp 51 7' ) fails to describe  the b-production data
-while the older CTEQ3 ('mstp 51 1') fits fairly well \cite{my6}.
-The reason is that Pythia contains many parameters that influence the
-b-production and a complex tuning have been done 
-by phenomenologists only for CTEQ3, \cite{Py6,Py6Nor}. For CTEQ5 the job still needs to be
-done.  Such a  job exceeds possibilities of our
-group. Currently we recommend user to use 'mstp 51 1' in a combination with the other 
-parameter values of the optimized set provided by PythiaB.  
-%We do not
-%see this inconsistent with the fact that ATLAS minimum bias events
-%are simulated with CTEQ5.
-
-
-
-
-\section{Datacards}
-
-
-In Athena a user controls the simulation using the datacards
-contained in files jobOptions.py. For PythiaB  you will find in
-release two prepared files: {\bf $\rm PythiaB\_bbmu6X.py$} and
-{\bf $\rm PythiaB\_Signal.py$} from which you can easily derive
-your case. File {\bf $\rm PythiaB\_bbmu6X.py$} simulates events
-$\bab \rightarrow \mu6 X$. File {\bf $\rm PythiaB\_Signal.py$}
-simulates one exclusive B-channel ( default is for $ \rm B_{s}
-\rightarrow J/\psi(\mu\mu) \phi $).
-
-
-\subsection{ Job control Datacards  }
-\begin{tabular}{|p{75mm}|p{90mm}|}
-\hline  & \\
-
-\verb!Generator.Members = [!& \\ \hline
- \verb!"PythiaB",! & Simulate b-event in HepMc into  transient
- store\\ \hline
- \verb!"DumpMC" ,!  & Dump HepMc for each accepted event into  log file\\
-             & do not use with large statistics \\ \hline
- \verb! "BSignalFilter"]!    & Finds all B-decay chains and store in ntuple\\
-    &  for print  level=2 also dumps B chains into log file \\
- \hline
-\verb!ApplicationMgr.EvtMax = 10! & Number of events to be accepted \\
-\hline
-\verb!EventSelector.RunNumber = 1;!& Defines a Run numb. in the job \\
-\hline
-\verb!EventSelector.FirstEvent  = 1;!& Defines the first evt numb. in the job\\
-\hline
-\verb!AtRndmGenSvc.Seeds =! & User random number seeds\\
-\verb!["PYTHIA 4789899 989240512", ! &\\
-\verb!"PYTHIA_INIT 820021 2347532"]! &\\ \hline
-
-
- 
-\end{tabular}
-
-
-
-\subsection{  Opening - closing decay channels }
-
-
-
-\begin{tabular}{|p{75mm}|p{90mm}|}
-\hline  & Channel\\ \hline
-  & \\
-\verb!#include "CloseAntibQuark.py";
-      PythiaB.PythiaCommand+=[
-                                    "pydat3 mdme 1120 1 1",
-                                    "pydat3mdme 996 1 0",
-                                    "pydat3 mdme 998 1 0" ]! &
-    $ \rm B_{s} \rightarrow J/\psi(\mu\mu) \phi $                                 \\
-
- & \\ \hline
-\verb!#include "CloseAntibQuark.py";
-      #include"Dsphipi.py";
-      PythiaB.PythiaCommand += [
-                "pydat3 mdme 1105 1 1"]! &
- $ \rm B_{s} \rightarrow D_{s} (\phi \pi) \pi$     \\ \hline
-
-& \\
- \verb!#include "CloseAntibQuark.py";
- PythiaB.PythiaCommand+= [
-                                      "pydat3 mdme 1027 1 1",
-                                      "pydat3 mdme 996 1 0",
-                                      "pydat3 mdme 998 1 0" ]! &
-$ \rm B_{s} \rightarrow J/\psi(\mu\mu) K^0(\pi^{+}\pi^{-}) $                                      \\
-                                      \hline
-
-\end{tabular}
-
-
-
-Be carefull: there should be just one space between numbers in
-'datacards mdme'. If you put two or more - program will not
-complain, but ignore your 'datacard'.
-
-\subsection{ How to change Pythia parameters}
-
- The optimized Pythia6 B-physics-related parameters (Table.\ref{table:abab})
-  are defined in ATHENA by the file Btune.py, 
- which is  included in the standard $\rm PythiaB\_Signal.py$ and  
- $\rm PythiaB\_bbmu6X.py$. To change any value you can just copy a 
- corresponding line from  Btune.py into $\rm PythiaB\_Signal.py$ 
- placing it after the line \verb!#include "Btune.py"! and changing the value
- of parameter to a wanted one. It is suggested that the large background samples 
- of general use are always generated using the values defined in Btune.py.
-
-  
-  
-%\begin{tabular}{|p{75mm}|p{90mm}|}
-%\hline
-
-%\verb!PythiaB.PythiaCommand += { ! & \\
-
-%                \verb!"pysubs ckin 3 10.",! & \psubt limit of hard scattering\\
-%                \verb!"pysubs ckin 9 -3.5",! & $\eta$ limit of hard scattering  for the\\
-%                \verb!"pysubs ckin 10 3.5",! & \hspace{16mm}  product with larger $|\eta$| \\
-%                \verb!"pysubs ckin 11 -3.5",! & $\eta$ limit of hard scattering   for the\\
-%                \verb!"pysubs ckin 12 3.5",! & \hspace{16mm} product with smaller $|\eta$| \\
-%                \verb!"pysubs msel 1",!  & 1=all \bab production mechanisms  \\
-%                                         & 5=\bab massive matrix el. \\
-%                \verb!"pydat1 mstj 26 0",! & 0= B mixing off, 1=B mixing on\\
-%                \verb! "pypars mstp 51 1"};! & 1=CTEQ3(use CTEQ3) \hspace{3mm}
-%                7=CTEQ5\\ \hline
-
-
-%\end{tabular}
-
-
-
-\subsection{ Define your selection cuts   }
-
-\begin{tabular}{|p{85mm}|p{80mm}|}
-\hline
-
-\verb!PythiaB.cutbq = !
-& b-quark cuts: pT,  eta, and(or)    \\
-\verb!["7. 3.5 or 7. 3.5"]! &antib-quark cuts: pT,  eta\\
-
-\hline
-\verb!PythiaB.lvl1cut = { 1., 6., 2.5};! & lvl1 single muon cuts: switch on(1)/off(0) pT eta\\
-
-\hline
- \verb!PythiaB.lvl2cut = !&lvl2 second lepton cuts: \\
-\verb![ 0., 13., 6., 2.5]!& switch on(1)/off(0),
-PID(13mu~or~11e),pT, eta\\ \hline
- \verb!PythiaB.offcut = !  & offline cuts: applied on stable particles \\
- \verb![ 1., 0.5, 2.5, 0.5, 2.5, 0.5, 2.5]!        & at the end of B-decay chain \\
-            & switch
-on(1)/off(0),  pT, eta of K/pi/p,
-                                 pT, eta of muon,  pT, eta of electron \\
-\hline
-\verb!PythiaB.mhadr =  10. ;! &   number of repeated hadronizations  \\
-
-&   select MHAD such that the average number of accepted
-events with the same parton part is close to 1. The latter value
-is printed out by PythiaB in the output log file.  \\
-\hline
-\verb!BSignalFilter.SignaltoNtup =  50.; ! &  For how many events store B-chains into NTUPLE  \\
-
-
-\hline
-\verb!PythiaB.SignalDumptoAscii = 0.; ! &  For how many events store exclusive signal B-chain into ascii fort.50 \\
-\hline
-\verb!PythiaB.flavour =  5.;! & wanted heavy flavour b(5) or c(4-not yet installed)\\
-\hline
-
-
-
-
-\end{tabular}
-
-
-
-
-\subsection{  Data cards to define output files }
-
-Data cards to define output files are  in the section {\bf Output files}.
-
-
-
-\section{  Output files }
-
-\subsection{NTUPLE file for B-decays chains}
-
-\begin{verbatim}
-
-//--------------------------------------------------------------
-// NTuple output file
-//--------------------------------------------------------------
-
-NTupleSvc.Output = [ "FILE1
-                      DATAFILE='pythiaB.ntup'
-                      OPT='NEW'
-                      TYP='HBOOK'" ]
-
-
-\end{verbatim}
-
-
-For each secondary particle from a B-signal and any other B-decay
-chain in the event a following values in column-wise Ntuple are
-written:
-
-\begin{verbatim}
-            "particles",
-            "event_number",
-            "chain_number",
-            "particle_number",
-            "id",
-            "status",
-            "child_of",
-
-            "px",
-            "py",
-            "pz",
-            "pe",
-            "pt",
-            "mass",
-
-            "phi",
-            "rapidity",
-            "pseudorapidity"
-
-
-\end{verbatim}
-
-
-
-
-\subsection{B-signal chain, ascii file  }
-
-Formated ascii file fort.50 containing lines each with one
-particle from a B-signal chain.  Was used before BSignaFilter was
-written. The file is created automatically if user defines non
-zero values in PythiaB.SignalDumptoAscii = 10. and in
-PythiaB.offcut = { 1., ...}.
-
-
-Each line contains following information:
-\begin{verbatim}
-
-           float(ieve) ! this accepted ev number
-           float(ITB)  ! # of evs hadronised to get this one
-           float(ntree)! # of particles in B-chain
-           float(itree)! this particle number in Bchain
-           float(I)    ! this particle number in PYJET
-
-           float(K(I,1))
-           float(K(I,2))
-           float(K(I,3))
-           float(K(I,4))
-           float(K(I,5))
-
-           P(I,1)
-           P(I,2)
-           P(I,3)
-           P(I,4)
-           P(I,5)
-
-           V(I,1)
-           V(I,2)
-           V(I,3)
-           V(I,4)
-           V(I,5)
-
-
-\end{verbatim}
-
-
-
-\subsection{Output log file}
-
-
-
-Contains Pythia messages. List of all input datacards.
-Pylist12 - list of all decay channels including status: opened-closed.
-Cross section table. Summary of principle parameters and cuts.
-Here is a part of log file:
-\begin{verbatim}
-
- ==============================================================================
- I                                  I                            I            I
- I            Subprocess            I      Number of points      I    Sigma   I
- I                                  I                            I            I
- I----------------------------------I----------------------------I    (mb)    I
- I                                  I                            I            I
- I N:o Type                         I    Generated         Tried I            I
- I                                  I                            I            I
- ==============================================================================
- I                                  I                            I            I
- I   0 All included subprocesses    I         3095         32166 I  1.138E+00 I
- I  11 f + f' -> f + f' (QCD)       I           72           783 I  2.631E-02 I
- I  12 f + fbar -> f' + fbar'       I            3             6 I  3.266E-04 I
- I  13 f + fbar -> g + g            I            2             4 I  4.345E-04 I
- I  28 f + g -> f + g               I          818         10581 I  2.974E-01 I
- I  53 g + g -> f + fbar            I           67           262 I  2.491E-02 I
- I  68 g + g -> g + g               I         2133         20530 I  7.886E-01 I
- I                                  I                            I            I
- ==============================================================================
-
- ********* Fraction of events that fail fragmentation cuts =  0.00000 *********
-
-I=====================================================================================
-I   CROSSSECTION OF YOUR B-CHANNEL IS                   I
-I                       BX= PX*NB/AC/MHAD=              I    2.77963e-05 mbarn
-I                                                       I
-I   IN CASE YOU FORCED ANY DECAY YOU SHOULD             I
-I   CORRECT CROSS SECTION BX FURTHER, MULTIPLYING       I
-I   BX BY BRANCHING RATIO(S) OF YOUR FORCED             I
-I   DECAY(S) AND BY A FACTOR OF 2 FOR SYMMETRY          I
-I                                                       I
-I   MORE DETAILS ON CROSS SECTION                       I
-I   PYTHIA MSEL=1     CROSS SECTION IS    PX=           I    1.13794 mbarn
-I   NUMBER OF   ACCEPTED  MSEL=1 EVENTS   AC=           I    32166
-I   NUMBER OF   ACCEPTED    B-EVENTS   IS NB=           I    11
-I   REPEATED HADRONIZATIONS IN EACH EVENT MHAD=         I    14
-I   AVERAGE NUM OF ACCEPTED EVTS IN HADRONIZATION LOOP  I    1.1
-I   IN CASE YOU FORCED ANY DECAY YOU SHOULD             I
-I   CORRECT CROSS SECTION BX FURTHER, MULTIPLYING       I
-I   BX BY BRANCHING RATIO(S) OF YOUR FORCED             I
-I   DECAY(S) AND BY A FACTOR OF 2 FOR SYMMETRY          I
-I                                                       I
-I=====================================================================================
-
-I=====================================================================================
-I          YOUR  MAIN SIMULATION PARAMETERS AND CUTS
-I=====================================================================================
-I   HARD SCATTERING  CUT  pysubs().ckin(3)             PT      I 15
-I   STRUCTURE FCN (1=CTEQ3 7=CTEQ5) pypars().mstp(51)          I  1
-I   CUTS ON b and/or anti b QUARK                              I  0 ; 102.5 ; and ; 10 ; 2.5
-I   LVL1 MUON CUTS:                               PT AND ETA   I  6 ;  2.5
-I   LVL2 CUTS:         ON(1)/OFF(0); PARTICLE-ID; PT AND ETA   I  0 ;  13 ;  6 ;  2.5
-I   CUTS FOR STABLE PARTICLES IN B-DECAY:         ON(1)/OFF(0) I  1
-I    CHARGED HADRONS:                             PT AND ETA   I  0.5 ;  2.5
-I    MUONS:                                       PT AND ETA   I  3 ;  2.5
-I    ELECTRONS:                                   PT AND ETA   I  0.5 ;  2.5
-I=====================================================================================
-
-
-\end{verbatim}
-
-
-\subsection{AthenaRoot Persistency}
-
-Produced Pythia B events are stored in root persistent file
-PythiaB.root. This file  serves as an input to atlsim (detector simulation)
-or atlfast.
-
-\begin{verbatim}
-//--------------------------------------------------------------
-// AthenaRoot Persistency
-//--------------------------------------------------------------
-
-ApplicationMgr.DLLs += [ "EventHdrAthenaRoot", "GeneratorObjectsAthenaRoot"]
-ApplicationMgr.DLLs += [ "RootSvcModules", "EventSelectorAthenaRoot", "AthenaRootCnvSvc"]
-ApplicationMgr.ExtSvc += [ "RootSvc", "AthenaRootCnvSvc" ]
-ApplicationMgr.DLLs += ["McEventSelector"]
-ApplicationMgr.ExtSvc += [ "McCnvSvc", "McEventSelector/EventSelector" ]
-EventPersistencySvc.CnvServices += [ "McCnvSvc" ]
-ApplicationMgr.OutStream = [ "Stream1" ]
-ApplicationMgr.OutStreamType = "AthenaOutputStream";
-// for StoreGate
-Stream1.ItemList = [ "2101#*", "133273#*"]
-RootSvc.Output =["PythiaB.root"]
-EventPersistencySvc.CnvServices += [ "AthenaRootCnvSvc" ]
-Stream1.EvtConversionSvc = "AthenaRootCnvSvc"
-
-\end{verbatim}
-
-%\section{Bookeeping and cataloging}
-\subsection{Which output  files we store in CASTOR}
-B-physics group has a space in CASTOR
-/afs/cern.ch/atlas/project/bphys/.
-For password  into this area contact maria.smizanska@cern.ch.
-Following files are to be stored:
-
-\begin{itemize}
-\vspace{-3mm}\item  PythiaB.root
-\vspace{-3mm}\item  pythiaB.ntup
-\vspace{-3mm}\item  output.log
-\end{itemize}
-
-
-%\subsection{Logical file names for Generator production.}
-
-%Ouput files are recognized by their Logical File name defined
-%as: \\
-% \verb!LFN=$PROJECT.$DSET.$STEP.$PARTNR.$PGROUP.$DESCRIPTOR!.
-
-%\begin{tabular}{|p{60mm}|p{100mm}|}
-%\hline
-
-%&    \\
-% PROJECT  & =dc1 or dc2  \\ \hline
-% DSET     & Number taken from a range of DSET numbers -
-%            given to B-physics group.
-%           Each institute participating in B-group will be given a subset
-%         according to their request.
-%          Contact maria.Smizanska@cern.ch     \\ \hline
-% STEP     & =evgen  \\ \hline
-% OUTPARTNR    &   one DSET have several OUTPARTNR assigned at atlsim simulation step.
-%               e.q. 5000 Generator events with one DSET number will be simulated
-%                  in atlsim in bunches of 500 events they will have 10
-%              OUTPARTNR numbers \\ \hline
-% PARTNR    &   one DSET have several OUTPARTNR assigned when sending jobs.
-%               e.q. 5000 Generator events with one DSET number will be generated
-%           in 5 bunches of 1000 events they will have 5
-%               OUTPARTNR numbers \\ \hline
-
-% PGROUP   & =Bphys \\ \hline
-%DESCRIPTOR & e.q. \verb! Bd_Jpsi_mu6mu3_K0!  \
-%                  \verb! bb_Jpsi_mumu_X !  \  \verb! Bs_Ds_phi_KK_pi ! \\
-%          &    \\ \hline
-
-
-%\end{tabular}
-
-
-\section{List of all ATHENA files  dedicated to B-physics simulation  }
-\begin{itemize}
-\vspace{-3mm}\item PythiaB/src/PythiaB.cxx \vspace{-3mm}\item
-PythiaB/src/$\rm PythiaB\_entries.cxx$
- \vspace{-3mm}\item
-PythiaB/src/$\rm PythiaB\_load.cxx$ \vspace{-3mm}\item
-PythiaB/src/*.F \vspace{-3mm}\item PythiaB/PythiaB/PythiaB.h
-
-\vspace{-3mm}\item PythiaB/share/$\rm PythiaB\_Signal.py$
-\vspace{-3mm}\item PythiaB/share/$\rm PythiaB\_bbmu6X.py$
-\vspace{-3mm}\item PythiaB/share/Btune.py \vspace{-3mm}\item
-PythiaB/share/CloseAntibQuark.py \vspace{-3mm}\item
-PythiaB/share/Dsphipi.py
-
-?
-
-
-\vspace{12mm} \vspace{-3mm}\item
-GeneratorFilters/src/BSignalFilter.cxx \vspace{-3mm}
-\item
-GeneratorFilters/GeneratorFilters/BSignalFilter.h
-
-\end{itemize}
-
-\section{Classes PythiaB inheriths from}
-Pythia, GenModule
-
-%\newpage
-%\section{Structure of PythiaB code - Fig.}
-%\begin{figure}[h]
-%    \mbox{\epsfig{file=img2.eps,height=16.cm,width=17.cm}}
-% \end{figure}
-
-%\newpage
-%\section{ PythiaB I$/$O - Fig.}
-% \begin{figure}[h]
-%    \mbox{\epsfig{file=img3.eps,height=16.cm,width=17.cm}}
-% \end{figure}
-
-\begin{thebibliography}{9}
-
-\bibitem{cmt} ATLAS software developers guide, 
-   \begin{verbatim} http://atlas-sw.cern.ch/cgi-bin/cvsweb.cgi/~checkout~/offline/ 
-AtlasDoc/doc/SwDevUserGuide/userguide.html
-\end{verbatim}
-and cmt manual
-\begin{verbatim} http://atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/tools/cmt/Tutorial.html
-\end{verbatim}
-\bibitem{athena} Athena User Guide, 
-
-\begin{verbatim} http://atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/architecture/General/index.html
-\end{verbatim}
-
-\bibitem{Py6} T. Sjostrand et al,  PYTHIA 6.206 manual, LU TP 01-21 [hep-ph/0108264], 
-
-\bibitem{Py6Nor} E.Norrbin, QCD phenomenology of Heavy particle dynamics, PhD theses, Lun University, Oct.2000.
-\bibitem{my5}  S.P.Baranov, M.Smizanska, Phys.Rev.D62:014012,2000 and ATL-PHYS-98-133.
-\bibitem{my6} Pythia6 Tuning for B-physics simulations in ATLAS.
-NOTE under the preparation.
-
-\end{thebibliography}
-\end{document}
diff --git a/Generators/PythiaB/doc/packagedoc.h b/Generators/PythiaB/doc/packagedoc.h
deleted file mode 100644
index 9d1c72b0d37b009acbebddca77a338bc938481b7..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/doc/packagedoc.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-
- <i>
-Interface to Pythia6 dedicated to simulation of beauty events.
-
-PythiaB can be used for a generation of beauty events 
-written into a persistent root file, which can serve as an input into 
-a detector simulation
-(atlsim) or into ATFAST. PythiaB can also work in the same job with ATLFAST 
-  in this case the HepMC tree is passed from PythiaB to ATLFAST in
-  a transient form.
-
-    The description of pysics related to the PythiaB, as well as instructions how to run PythiaB can be found here:
-http://atlas-sw.cern.ch/cgi-bin/viewcvs-atlas.cgi/offline/Generators/PythiaB/doc/PythiaB.pdf
-
-
-</i>
-
-@author Maria Smizanska (maria.smizanska@cern.ch),
-
-    doxygen doc - Ewelina Lobodzinska (Jan. 2008)
-
-@page PythiaB_page 
-
-
-
-*/
diff --git a/Generators/PythiaB/share/Bdecays0.dat b/Generators/PythiaB/share/Bdecays0.dat
deleted file mode 100644
index d975b31959044bd6e8ce5b8629aa850a3bfa9fa0..0000000000000000000000000000000000000000
Binary files a/Generators/PythiaB/share/Bdecays0.dat and /dev/null differ
diff --git a/Generators/PythiaB/share/BtoJpsieeK0s.py b/Generators/PythiaB/share/BtoJpsieeK0s.py
deleted file mode 100644
index 6ea95b442a9086831be4aed9afd51a172a924647..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/BtoJpsieeK0s.py
+++ /dev/null
@@ -1,170 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submition script
-#--------------------------------------------------------------
-theApp.EvtMax = 5
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submition script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T H R E E   E X A M P L E S    T O   O P E N    Y O U R    C H A N N E L 				 
-#   Decomment one of following examples or create your analogically
-# open your exclusive channel here  Bs -> J/psi(mumu) phi 				 
-#PythiaB.PythiaCommand += ["pydat3 mdme 982 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        ]
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-##include "Dsphipi.txt" 				 
-#PythiaB.PythiaCommand += {"pydat3 mdme 967 1 1",
-#                                "pydat3 mdme 831 1 1"      };
-#PythiaB.ForceCDecay = "yes";                                
-# open your exclusive channel here  Bs -> J/psi(mumu) K0 
-#PythiaB.PythiaCommand += {"pydat3 mdme 889 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        };
-# open your exclusive channel here  Bs -> J/psi(ee) K0 
-PythiaB.PythiaCommand += ["pydat3 mdme 889 1 1",    
-                          "pydat3 mdme 858 1 1" ,"pydat3 brat 858 1."
-				"pydat3 mdme 859 1 0",
-				"pydat3 mdme 860 1 0"        ]
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "Btune.py" )
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["10. 2.5 and 10. 2.5"]
-#PythiaB.cutbq = ["6. 2.5 and 6. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  15. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 50
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  50.
-
-
-
-###############################################################
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency
-#--------------------------------------------------------------
-# Change the following line to "RootHistCnv" for ROOT persistency
-#theApp.Dlls                += [ "RootHistCnv" ]
-# Change the following line to "ROOT" for ROOT persistency
-#theApp.HistogramPersistency = "ROOT"
-#--------------------------------------------------------------
-# NTuple output file
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-#HbookHistSvc.NPAWC = 1500000
-#HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-#HistogramPersistencySvc.OutputFile  = "histo.root"
-#NTupleSvc = Service( "NTupleSvc" )
-#NTupleSvc.Output = [ "FILE1  DATAFILE='pythiaB.root'  OPT='NEW'  TYP='ROOT'" ]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-
-###############################################################
-# Add POOL persistency
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-          
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/BtoJpsieeX.py b/Generators/PythiaB/share/BtoJpsieeX.py
deleted file mode 100644
index a0218cbddefe56825388778de8e3e608a17bf107..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/BtoJpsieeX.py
+++ /dev/null
@@ -1,166 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submition script
-#--------------------------------------------------------------
-theApp.EvtMax = 5
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submition script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-
-#
-#   Inclusive B -> J/psi(ee) X production
-#
-
-include( "Jpsichannels.py" )
-
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-
-include( "Btune.py" )
-
-#   Force J/psi to e+ e-
-PythiaB.PythiaCommand += ["pydat3 mdme 889 1 1",    
-                          "pydat3 mdme 858 1 1" ,"pydat3 brat 858 1."
-				"pydat3 mdme 859 1 0",
-				"pydat3 mdme 860 1 0"        ]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 9.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-				 "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["10. 2.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-#PythiaB.lvl2cut = [ 0.,  13.,     3.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.0, 102.5, 0., 102.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  15. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 50
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  50.
-
- 
-###############################################################
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency
-#--------------------------------------------------------------
-# Change the following line to "RootHistCnv" for ROOT persistency
-#theApp.Dlls                += [ "RootHistCnv" ]
-# Change the following line to "ROOT" for ROOT persistency
-#theApp.HistogramPersistency = "ROOT"
-#--------------------------------------------------------------
-# NTuple output file
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-#HbookHistSvc.NPAWC = 1500000
-#HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-#HistogramPersistencySvc.OutputFile  = "histo.root"
-#NTupleSvc = Service( "NTupleSvc" )
-#NTupleSvc.Output = [ "FILE1  DATAFILE='pythiaB.root'  OPT='NEW'  TYP='ROOT'" ]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-
-
-
-###############################################################
-# Add POOL persistency
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-          
-                     
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/Btune.py b/Generators/PythiaB/share/Btune.py
deleted file mode 100644
index ea96b6713cd651481fec4d36f79966a9ccf5ab77..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/Btune.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# CTEQ6L with UE tuning by Arthur Moraes
-#
-# author: B-Physics group, 2006-11-09
-#
-#--------------------------------------------------------------------------
-PythiaB = topAlg.PythiaB
-#PythiaB.PythiaCommand += [
-# eta ranges 
-#                          "pysubs ckin 9 -4.5",
-#                          "pysubs ckin 10 4.5",
-#                          "pysubs ckin 11 -4.5",
-#                          "pysubs ckin 12 4.5",
-# no B-B mixing
-#                          "pydat1 mstj 26 0",
-# parton decay length scheme:
-# particle decayed if average proper lifetime
-# c\tau < PARJ(71): default PARJ(71):= 10 mm
-#                          "pydat1 mstj 22 2",
-# Peterson / SLAC fragmentaton function for b-quark (def: -0.005)
-#                          "pydat1 parj 55 -0.006",
-# Excited B-meson parameters
-#                          "pydat1 parj 13 0.65",
-#                          "pydat1 parj 14 0.12",
-#                          "pydat1 parj 15 0.04",
-#                          "pydat1 parj 16 0.12",
-#                          "pydat1 parj 17 0.2"
-#                         ]
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-
-
-#########################################################################################
-####################### Arthur Moraes tuning (for reference) ############################
-
-# lambda value for alpha_s
-#                          "pydat1 parj 81 0.14",
-# effects the amount of color reconnection
-#                          "pypars parp 78 0.2",
-# suppression probability for string pieces reattaching beam remnant 
-# to hard scatter
-#                          "pypars parp 80 0.01",
-# effective pT_min for MI (pt0 scale)
-#			  "pypars parp 82 1.9",
-# matter distribution
-#			  "pypars parp 83 0.3",
-#			  "pypars parp 84 0.5",
-# pT0 scale
-#			  "pypars parp 89 1800",
-#			  "pypars parp 90 0.22",
-# ISR
-#                          "pypars mstp 70 2",
-# max scale for FSR dipoles
-#                          "pypars mstp 72 0",
-# new multiple interaction model and new parton shower selected
-#                          "pypars mstp 81 1",
-# MPI
-#                          "pypars mstp 82 4",
-# ISR
-#                          "pypars mstp 84 1",
-# FSR
-#                          "pypars mstp 85 1",
-# MPI
-#                          "pypars mstp 86 2",
-# sea quarks: large x behavior of assumed gluon distribution
-#                          "pypars mstp 87 4",
-# color reconnection 
-#                          "pypars mstp 88 0",
-#                          "pypars mstp 89 1",
-#                          "pypars mstp 90 1",
-#                          "pypars mstp 95 1",
-#                          
-#########################################################################################
-#########################################################################################
diff --git a/Generators/PythiaB/share/CSC.016701.PythiaB_Bs_Ds_PhiPi_Pi_Signal3.py b/Generators/PythiaB/share/CSC.016701.PythiaB_Bs_Ds_PhiPi_Pi_Signal3.py
deleted file mode 100644
index 5139310058f5121782433da3f34b12ea482180c1..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.016701.PythiaB_Bs_Ds_PhiPi_Pi_Signal3.py
+++ /dev/null
@@ -1,141 +0,0 @@
-###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: B0s->Ds(Phi(K+K-)Pi)Pi
-#
-#  Author:  W. Walkowiak, 2006-04-02
-#           (adjusted after a template provided by PythiaB)
-#  Changes: WW, 2006-04-13
-#           Removed CBNT_ lines; added RootHistSvc again 
-# PRODUCTION SYSTEM FRAGMENT
-#==============================================================
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-#
-include( "PythiaB/Dsphipi.py" )   				 
-# 959: Bs  -> Ds-mu+nu
-# 967: Bs  -> Ds-Pi+
-# 969: Bs  -> Ds-a1+
-# 831: Ds- -> PhiPi-
-   				 
-PythiaB.PythiaCommand += [ "pydat3 mdme 967 1 1",
-                           "pydat3 mdme 831 1 1"   ];
-PythiaB.ForceCDecay = "yes";                               
-
-#
-# w.w., 2006-04-02 revised:
-# 
-# user_finsel.F decay particle channel
-#
-PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-PythiaB.DecayChannelParameters = [1., 0., 0., 0.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-# 
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 50000.
-# 
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017500.PythiaB_bbmu6X.py b/Generators/PythiaB/share/CSC.017500.PythiaB_bbmu6X.py
deleted file mode 100644
index fccca8dde94ff6c534527ae3e7ab8405a78528c8..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017500.PythiaB_bbmu6X.py
+++ /dev/null
@@ -1,91 +0,0 @@
-###############################################################
-# PRODUCTION SYSTEM FRAGMENT
-# Job options file for generation of B events 
-# no decay channel is specified.
-# Only events containing at least one muon  
-# with pT>6GeV |eta|<2.5 are written to output
-# Selection criteria can be changed by datacards
-#==============================================================
-
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = topAlg.PythiaB
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-				 "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  5.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["7. 4.5 or 7. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0., 102.5, 0., 102.5, 0., 102.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  9. 
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017501.PythiaB_bbmu4X.py b/Generators/PythiaB/share/CSC.017501.PythiaB_bbmu4X.py
deleted file mode 100644
index d96d0ad663342a87e0074cc2041a4001cc8f48bc..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017501.PythiaB_bbmu4X.py
+++ /dev/null
@@ -1,99 +0,0 @@
-###############################################################
-#
-# Job options file fragment for generation of B events 
-# no decay channel is specified.
-# Only events containing at least one muon  
-# with pT>4GeV |eta|<2.5 are written to output
-# Selection criteria can be changed by datacards
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = topAlg.PythiaB
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "PythiaB/Btune.py" )
-
-PythiaB.PythiaCommand += [
-    # lambda value for alpha_s
-    "pydat1 parj 81 0.14",
-    # effects the amount of color reconnection
-    "pypars parp 78 0.2",
-    # suppression probability for string pieces reattaching beam remnant
-    # to hard scatter
-    "pypars parp 80 0.01",
-    # effective pT_min for MI (pt0 scale)
-    "pypars parp 82 1.9",
-    # matter distribution
-    "pypars parp 83 0.3",
-    "pypars parp 84 0.5",
-    # pT0 scale
-    "pypars parp 89 1800",
-    "pypars parp 90 0.22",
-    # ISR
-    "pypars mstp 70 2",
-    # max scale for FSR dipoles
-    "pypars mstp 72 0",
-    # new multiple interaction model and new parton shower selected
-    "pypars mstp 81 1",
-    # MPI
-    "pypars mstp 82 4",
-    # ISR
-    "pypars mstp 84 1",
-    # FSR
-    "pypars mstp 85 1",
-    # MPI
-    "pypars mstp 86 2",
-    # sea quarks: large x behavior of assumed gluon distribution
-    "pypars mstp 87 4",
-    # color reconnection
-    "pypars mstp 88 0",
-    "pypars mstp 89 1",
-    "pypars mstp 90 1",
-    "pypars mstp 95 1",
-    ]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-				 "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  5.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["5. 4.5 or 5. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  4., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0., 102.5, 0., 102.5, 0., 102.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  7. 
-###############################################################
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017503.Pythia_directJpsimu6mu4.py b/Generators/PythiaB/share/CSC.017503.Pythia_directJpsimu6mu4.py
deleted file mode 100644
index 3aa4f27f42d2413746410b351511c2a414802619..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017503.Pythia_directJpsimu6mu4.py
+++ /dev/null
@@ -1,231 +0,0 @@
-###############################################################
-# PRODUCTION SYSTEM FRAGMENT
-#       jobOptions for quarkonium production in the
-#               NRQCD colour-octet framework
-# Author:   Darren D Price ( Darren.Price@cern.ch )
-# Date:     Jun 2006
-# Modified: Oct 2006
-#==============================================================
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-
-
-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-topAlg += BSignalFilter()
-
-
-# AtRndmGenSvc.ReadFromFile = true;
-Pythia = topAlg.Pythia
-
-Pythia.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-Pythia.PythiaCommand += [ # quarkonium processes
-    
-    #"pysubs msel 0",   # user chooses decay mode(s)
-    "pysubs msel 61", # colour octet charmonium production (421-439)
-    #"pysubs msel 62", # colour octet bottomonium production (461-479)
-    #"pysubs msel 63", # colour octet onium production (msel 61+62)
-    
-    # ----- J/Psi production -----
-    # --- 3S1(1)                        
-    #"pysubs msub 421 1",  # gg->cc~[3S1(1)]+g
-    # --- 3S1(8)
-    #"pysubs msub 422 1",  # gg->cc~[3S1(8)]+g
-    #"pysubs msub 425 1",  # gq->q+cc~[3S1(8)]
-    #"pysubs msub 428 1",  # qq~->g+cc~[3S1(8)]
-    # --- 1S0(8)                        
-    #"pysubs msub 423 1",  # gg->cc~[1S0(8)]+g
-    #"pysubs msub 426 1",  # gq->q+cc~[1S0(8)]
-    #"pysubs msub 429 1",  # qq~->g+cc~[1S0(8)]
-    # --- 3PJ(8)
-    #"pysubs msub 424 1",  # gg->cc~[3PJ(8)]+g
-    #"pysubs msub 427 1",  # gq->q+cc~[3PJ(8)]
-    #"pysubs msub 430 1",  # qq~->g+cc~[3PJ(8)]
-
-    # ----- Chi's -----
-    #"pysubs msub 431 1",  # gg->cc~[3P0(1)]+g
-    #"pysubs msub 432 1",  # gg->cc~[3P1(1)]+g
-    #"pysubs msub 433 1",  # gg->cc~[3P2(1)]+g
-    #"pysubs msub 434 1",  # qg->q+cc~[3P0(1)]
-    #"pysubs msub 435 1",  # qg->q+cc~[3P1(1)]
-    #"pysubs msub 436 1",  # qg->q+cc~[3P2(1)]
-    #"pysubs msub 437 1",  # qq~->cc~[3P0(1)]+g
-    #"pysubs msub 438 1",  # qq~->cc~[3P1(1)]+g
-    #"pysubs msub 439 1",  # qq~->cc~[3P2(1)]+g
-                        
-    # ----- Upsilon production -----
-    # --- 3S1(1)
-    #"pysubs msub 461 1",  # gg->bb~[3S1(1)]+g
-    # --- 3S1(8)
-    #"pysubs msub 462 1",  # gg->bb~[3S1(8)]+g
-    #"pysubs msub 465 1",  # gq->q+bb~[3S1(8)]
-    #"pysubs msub 468 1",  # qq~->g+bb~[3S1(8)]
-    # --- 1S0(8)
-    #"pysubs msub 463 1",  # gg->bb~[1S0(8)]+g
-    #"pysubs msub 466 1",  # gq->q+bb~[1S0(8)]
-    #"pysubs msub 469 1",  # qq~->g+bb~[1S0(8)]
-    # --- 3PJ(8)
-    #"pysubs msub 464 1",  # gg->bb~[3PJ(8)]+g
-    #"pysubs msub 467 1",  # gq->q+bb~[3PJ(8)]
-    #"pysubs msub 470 1",  # qq~->g+bb~[3PJ(8)]
-
-    # ----- Chi's -----
-    #"pysubs msub 471 1",  # gg->bb~[3P0(1)]+g
-    #"pysubs msub 472 1",  # gg->bb~[3P1(1)]+g
-    #"pysubs msub 473 1",  # gg->bb~[3P2(1)]+g
-    #"pysubs msub 474 1",  # qg->q+bb~[3P0(1)]
-    #"pysubs msub 475 1",  # qg->q+bb~[3P1(1)]
-    #"pysubs msub 476 1",  # qg->q+bb~[3P2(1)]
-    #"pysubs msub 477 1",  # qq~->bb~[3P0(1)]+g
-    #"pysubs msub 478 1",  # qq~->bb~[3P1(1)]+g
-    #"pysubs msub 479 1",  # qq~->bb~[3P2(1)]+g
-    
-    ]                        
-
-Pythia.PythiaCommand += [ # force decays
-
-    "pydat3 mdme 858 1 0", # J/psi->e+e-
-    "pydat3 mdme 859 1 1", # J/psi->mumu (br 0.06)
-    "pydat3 mdme 860 1 0",  # J/psi->rndmflavpairs
-
-    "pydat3 mdme 1501 1 1", # chi0c->J/psi gamma (br 0.007)
-    "pydat3 mdme 1502 1 0", # chi0c->rfp 
-    
-    "pydat3 mdme 1555 1 1", # chi1c->J/psi gamma (br 0.273)
-    "pydat3 mdme 1556 1 0", # chi1c->rfp
-    
-    "pydat3 mdme 861 1 1", # chi2c->J/psi gamma (br 0.135)
-    "pydat3 mdme 862 1 0", # chi2c->rfp
-
-    "pydat3 mdme 1034 1 0", # Upsilon->e+e- (br 0.0254)
-    "pydat3 mdme 1035 1 1", # Upsilon->mu+mu- (br 0.0248)
-    "pydat3 mdme 1036 1 0", # Upsilon->tau+tau- (br 0.0267)
-    "pydat3 mdme 1037 1 0", # Upsilon->ddbar
-    "pydat3 mdme 1038 1 0", # Upsilon->uubar
-    "pydat3 mdme 1039 1 0", # Upsilon->ssbar
-    "pydat3 mdme 1040 1 0", # Upsilon->ccbar
-    "pydat3 mdme 1041 1 0", # Upsilon->ggg
-    "pydat3 mdme 1042 1 0", # Upsilon->gamma gg
-    
-    "pydat3 mdme 1520 1 1", # chi0b->Upsilon gamma (br 0.02)
-    "pydat3 mdme 1521 1 0", # chi0b->gg
-    
-    "pydat3 mdme 1565 1 1", # chi1b->Upsilon gamma (br 0.35)
-    "pydat3 mdme 1566 1 0", # chi1b->gg
-    
-    "pydat3 mdme 1043 1 1", # chi2b->Upsilon gamma (br 0.22)
-    "pydat3 mdme 1044 1 0", # chi2b->gg
-    
-    ]
-
-Pythia.PythiaCommand += [ # NRQCD matrix elements
-    
-    "pypars parp 141 1.16",   # Jpsi-3S1(1) NRQCD ME
-    "pypars parp 142 0.0119", # Jpsi-3S1(8) NRQCD ME
-    "pypars parp 143 0.01",   # Jpsi-1S0(8) NRQCD ME
-    "pypars parp 144 0.01",   # Jpsi-3P0(8) NRQCD ME / m_c^2
-    "pypars parp 145 0.05",   # chi_c0-3P0(1) NRQCD ME / m_c^2
-
-    "pypars parp 146 9.28",   # Upsilon-3S1(1) NRQCD ME
-    "pypars parp 147 0.15",   # Upsilon-3S1(8) NRQCD ME
-    "pypars parp 148 0.02",   # Upsilon-1S0(8) NRQCD ME
-    "pypars parp 149 0.02",   # Upsilon-3P0(8) NRQCD ME / m_b^2 
-    "pypars parp 150 0.085",  # chi_b0-3P0(1) NRQCD ME / m_b^2
-        
-    ]
-
-#Pythia.PythiaCommand += [ ### Moraes tunings (here for reference only)
-
-#        "pypars mstp 70 2",
-#        "pypars mstp 72 0",
-
-#            "pypars mstp 81 1",
-#            "pypars mstp 82 4",
-
-#            "pypars mstp 84 1",
-#            "pypars mstp 85 1",
-#            "pypars mstp 86 2",
-#            "pypars mstp 87 4",
-#            "pypars mstp 88 0",
-#            "pypars mstp 89 1",
-#            "pypars mstp 90 1",
-
-#            "pypars mstp 95 1",
-
-#            "pypars parp 78 0.2",
-#            "pypars parp 80 0.01",
-#            "pypars parp 82 1.9",
-#            "pypars parp 83 0.3",
-#            "pypars parp 84 0.5",
-#            "pypars parp 89 1800",
-#            "pypars parp 90 0.22",
-
-#            "pydat1 parj 81 0.14",
-
-#            ]
-
-
-Pythia.PythiaCommand += [
-
-    "pysubs ckin 3 4.5",   # lower pT cut on hard process in GeV
-
-    #"pypars mstp 61 0", # inital state showers off
-    #"pypars mstp 71 0", # final state showers off
-    #"pypars mstp 111 0" # fragmentation/hadronisation off
-    
-    ]
-
-Pythia.PythiaCommand += ["pyinit pylistf 1",
-                        "pystat mstat 1", 
-			"pyinit dumpr 0 3",#dump this event range to screen
-                         ]
-
-
-#------- Muon Trigger Cuts --------
-BSignalFilter = topAlg.BSignalFilter
-#-------------- Level 1 Muon Cuts --------------------- 
-BSignalFilter.LVL1MuonCutOn = True
-BSignalFilter.LVL1MuonCutPT = 6000.0 
-BSignalFilter.LVL1MuonCutEta = 2.5 
-#-------------- Level 2 lepton cuts -------------------
-# These will only function if LVL1 trigger used. 
-BSignalFilter.LVL2MuonCutOn = True 
-BSignalFilter.LVL2MuonCutPT = 4000.0 
-BSignalFilter.LVL2MuonCutEta = 2.5
-try:
-     Stream1.RequireAlgs += ["BSignalFilter"]
-except Exception, e:
-     pass
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017506.PythiaB_bbmu6mu4X.py b/Generators/PythiaB/share/CSC.017506.PythiaB_bbmu6mu4X.py
deleted file mode 100644
index c0f3e6244de3901e5bad4f84cf20eec3b9541630..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017506.PythiaB_bbmu6mu4X.py
+++ /dev/null
@@ -1,92 +0,0 @@
-###############################################################
-# PRODUCTION SYSTEM FRAGMENT
-# Job options file for generation of B events 
-# no decay channel is specified.
-# Only events containing at least one muon  
-# with pT>6GeV |eta|<2.5 are written to output
-# Selection criteria can be changed by datacards
-#==============================================================
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = topAlg.PythiaB
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-				 "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  5.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["7. 4.5 or 7. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 1.,  13.,     4.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0., 102.5, 0., 102.5, 0., 102.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  20. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017516.PythiaB_bb_Jpsimu6mu4X.py b/Generators/PythiaB/share/CSC.017516.PythiaB_bb_Jpsimu6mu4X.py
deleted file mode 100644
index ecafc2db77ee6934cffc7e3dc6fa7e3eab5d015b..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017516.PythiaB_bb_Jpsimu6mu4X.py
+++ /dev/null
@@ -1,127 +0,0 @@
-###############################################################
-# PRODUCTION SYSTEM SCRIPT
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-topAlg += BSignalFilter()
-
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-
-#
-#   Inclusive B -> J/psi(mumu) X production
-#
-
-include( "PythiaB/Jpsichannels.py" )
-
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-#   Force J/psi to mu+ mu-
-PythiaB.PythiaCommand += ["pydat3 mdme 889 1 1",    
-                          "pydat3 mdme 858 1 0",
-                          "pydat3 mdme 859 1 1",
-                          "pydat3 brat 859 1.",
-                          "pydat3 mdme 860 1 0"        ]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 9.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-				 "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 1.,  13.,     4.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  2. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-
- 
-###############################################################
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017700.PythiaB_Bs_Jpsi_mu6mu3_phi_KK.py b/Generators/PythiaB/share/CSC.017700.PythiaB_Bs_Jpsi_mu6mu3_phi_KK.py
deleted file mode 100644
index e252311535f0b7f76f25576f752e1e01158687b4..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017700.PythiaB_Bs_Jpsi_mu6mu3_phi_KK.py
+++ /dev/null
@@ -1,126 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#-------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------	
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------	
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T H R E E   E X A M P L E S    T O   O P E N    Y O U R    C H A N N E L 
-#   Decomment one of following examples or create your analogically
-# open your exclusive channel here  Bs -> J/psi(mumu) phi 
- PythiaB.PythiaCommand += ["pydat3 mdme 982 1 1",    
- 				"pydat3 mdme 858 1 0",
- 				"pydat3 mdme 860 1 0"        ]
-# This phis which have originated from Bs to decay into two kaons. Other phis 
-# are left to decay as normal. Comment this line to prevent the phi forcing. 
-# See user_finsel.F (in src directory) for more such forcing options.   
-PythiaB.ForceDecayChannel = "BsJpsimumuphiKK"
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-##include "Dsphipi.txt" 
-#PythiaB.PythiaCommand += {"pydat3 mdme 967 1 1",
-#                                "pydat3 mdme 831 1 1"      };
-#PythiaB.ForceCDecay = "yes";                                
-# open your exclusive channel here  Bs -> J/psi(mumu) K0 
-#PythiaB.PythiaCommand += {"pydat3 mdme 889 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        };
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#-------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 12.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------	
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 0.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 6.0, 2.5, 6., 2.5, 6.0, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  14. 
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017900.PythiaB_Bs_mu6mu4.py b/Generators/PythiaB/share/CSC.017900.PythiaB_Bs_mu6mu4.py
deleted file mode 100644
index 32a5bf9fcc6e03d7cf6300e8ec147b6ee8b975d7..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017900.PythiaB_Bs_mu6mu4.py
+++ /dev/null
@@ -1,128 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-# PRODUCTION SYSTEM FRAGMENT
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T H R E E   E X A M P L E S    T O   O P E N    Y O U R    C H A N N E L 				 
-#   Decomment one of following examples or create your analogically
-# open your exclusive channel here  Bs -> J/psi(mumu) phi 				 
-# PythiaB.PythiaCommand += ["pydat3 mdme 982 1 1",    
-# 				"pydat3 mdme 858 1 0",
-# 				"pydat3 mdme 860 1 0"        ]
-
-# open your exclusive channel here  Bs -> mumu 				 
-PythiaB.PythiaCommand += ["pydat3 mdme 977 1 1",    
-				"pydat3 kfdp 977 1 13",
-				"pydat3 kfdp 977 2 -13"        ]
-
-
-
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-##include "Dsphipi.txt" 				 
-#PythiaB.PythiaCommand += {"pydat3 mdme 967 1 1",
-#                                "pydat3 mdme 831 1 1"      };
-#PythiaB.ForceCDecay = "yes";                                
-# open your exclusive channel here  Bs -> J/psi(mumu) K0 
-#PythiaB.PythiaCommand += {"pydat3 mdme 889 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        };
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 4., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  10. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017901.PythiaB_Bd_KstarMuMu_Signal_F.py b/Generators/PythiaB/share/CSC.017901.PythiaB_Bd_KstarMuMu_Signal_F.py
deleted file mode 100644
index dca03f2e6c720e36624f3681e83fd2af3b97a622..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017901.PythiaB_Bd_KstarMuMu_Signal_F.py
+++ /dev/null
@@ -1,112 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-topAlg += BSignalFilter()
-
-#--------------------------------------------------------------
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-# T O   O P E N    T H E    U S E R    C H A N N E L
-# For Bd -> Kstar(892) mu+ mu- 
-#
-PythiaB.PythiaCommand += ["pydat3 mdme 875 1 1", 
-                                "pydat3 kfdp 875 1 13",
-                                "pydat3 kfdp 875 2 -13",
-                                "pydat3 kfdp 875 3 313",
-                                "pydat3 kfdp 875 4 0",
-                                "pydat3 kfdp 875 5 0",
-                                "pydat3 brat 875 0.0000001"     ]
-PythiaB.ForceDecayChannel = "BdKstarMuMu"
-# lvl1 and lvl2 cuts pt_L1 eta_L1 pt_L2 eta_L2
-PythiaB.DecayChannelParameters = [1., 6.0, 2.5, 1., 6.0, 2.5] ;
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-# for BsPhiMuMu, BdKstarMuMu BsGammaMuMu lvl1,lvl2 must be OFF
-PythiaB.lvl1cut = [ 0.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-# ???  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  4. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = topAlg.BSignalFilter
-BSignalFilter.Cuts_Final_hadrons_switch = TRUE
-BSignalFilter.Cuts_Final_hadrons_pT = 500.0
-BSignalFilter.Cuts_Final_hadrons_eta = 2.5
-BSignalFilter.BParticle_cuts = 511
-###############################################################
-# Add POOL persistency
-try:
-     Stream1.RequireAlgs += ["BSignalFilter"]
-except Exception, e:
-     pass
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017902.PythiaB_Bs_PhiMuMu_Signal.py b/Generators/PythiaB/share/CSC.017902.PythiaB_Bs_PhiMuMu_Signal.py
deleted file mode 100644
index 432112bf03655f80fa0e8673482f1c068a2f508c..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017902.PythiaB_Bs_PhiMuMu_Signal.py
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-topAlg += BSignalFilter()
-
-#-------------------------------------------------------------
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#-------------------------------------------------------------
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-# T O   O P E N    T H E    U S E R    C H A N N E L
-# Bs -> phi mu+ mu- 
-PythiaB.PythiaCommand += ["pydat3 mdme 965 1 1",
-                                "pydat3 kfdp 965 1 13",
-                                "pydat3 kfdp 965 2 -13",
-                                "pydat3 kfdp 965 3 333",
-                                "pydat3 kfdp 965 4 0",
-                                "pydat3 kfdp 965 5 0",
-                                "pydat3 brat 0.000001"     ]
-                                                                                                                                                                                                                            
-
-PythiaB.ForceDecayChannel = "BsPhiMuMu"
-# lvl1 and lvl2 cuts    KEY_L1(0/1) pt_L1 eta_L1 KEY_L2 pt_L2 eta_L2
-PythiaB.DecayChannelParameters = [1., 6.0, 2.5, 1., 4.0, 2.5] ;
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-    
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#-------------------------------------------------------------
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-# for BsPhiMuMu, BdKstarMuMu BsGammaMuMu lvl1,lvl2 must be OFF
-PythiaB.lvl1cut = [ 0.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-# ???  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  14. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = topAlg.BSignalFilter
-BSignalFilter.Cuts_Final_hadrons_switch = TRUE
-BSignalFilter.Cuts_Final_hadrons_pT = 500.0
-BSignalFilter.Cuts_Final_hadrons_eta = 2.5
-BSignalFilter.BParticle_cuts = 531
-
-###############################################################
-
-# Change since 12.0.3
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-try:
-     Stream1.RequireAlgs += ["BSignalFilter"]
-except Exception, e:
-     pass
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.017981.B_Kpi.py b/Generators/PythiaB/share/CSC.017981.B_Kpi.py
deleted file mode 100644
index 01be05d49316c715cb7e2dfe31277e54b466352a..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.017981.B_Kpi.py
+++ /dev/null
@@ -1,130 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#-------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------	
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------	
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T H R E E   E X A M P L E S    T O   O P E N    Y O U R    C H A N N E L 
-#   Decomment one of following examples or create your analogically
-# open your exclusive channel here  Bs -> J/psi(mumu) phi 				 
-# PythiaB.PythiaCommand += ["pydat3 mdme 982 1 1",    
-# 				"pydat3 mdme 858 1 0",
-# 				"pydat3 mdme 860 1 0"        ]
-
-# open your exclusive channel here  Bs -> mumu 
-PythiaB.PythiaCommand += ["pydat3 mdme 977 1 1",
-				"pydat3 kfdp 977 1 -321",
-				"pydat3 kfdp 977 2 211"        ]
-
-
-
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-##include "Dsphipi.txt" 
-#PythiaB.PythiaCommand += {"pydat3 mdme 967 1 1",
-#                                "pydat3 mdme 831 1 1"      };
-#PythiaB.ForceCDecay = "yes";                                
-# open your exclusive channel here  Bs -> J/psi(mumu) K0 
-#PythiaB.PythiaCommand += {"pydat3 mdme 889 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        };
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#-------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 12.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------	
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 0.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 6.0, 2.5, 6., 2.5, 6.0, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  14. 
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.018101.PythiaB_Bd_Jpsie3e3K0s.py b/Generators/PythiaB/share/CSC.018101.PythiaB_Bd_Jpsie3e3K0s.py
deleted file mode 100644
index ca5ce27eb2cc7bda69d76a027396cde2c2c38ed8..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.018101.PythiaB_Bd_Jpsie3e3K0s.py
+++ /dev/null
@@ -1,139 +0,0 @@
-###############################################################

-#

-# Job options file for generation of B-events 

-#  in user selected exclusive channel

-#

-#==============================================================

-#--------------------------------------------------------------

-# Private Application Configuration options

-#--------------------------------------------------------------

-

-from AthenaCommon.AlgSequence import AlgSequence 

-topAlg = AlgSequence("TopAlg") 

-

-from PythiaB.PythiaBConf import PythiaB

-topAlg += PythiaB()

-

-#--------------------------------------------------------------

-# Algorithms

-#--------------------------------------------------------------

-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter

-topAlg += BSignalFilter()

-

-from GeneratorFilters.GeneratorFiltersConf import MultiLeptonFilter

-topAlg += MultiLeptonFilter()

-

-#--------------------------------------------------------------				 

-#              PARAMETERS  SPECIFIC  TO   PYTHIAB

-#--------------------------------------------------------------

-PythiaB = topAlg.PythiaB

-PythiaB.ForceCDecay = "no"

-PythiaB.ForceBDecay = "yes"

-#--------------------------------------------------------------				 

-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------

-#--------------------------------------------------------------

-# To force your B-decay channels decomment following 2 lines:

-include( "PythiaB/CloseAntibQuark.py" )

-

-PythiaB.PythiaCommand += ["pydat3 mdme 889 1 1",    

-                          "pydat3 mdme 858 1 1",

-				"pydat3 mdme 859 1 0",

-				"pydat3 mdme 860 1 0"        ]

-#--------------------------------------------------------------

-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --

-#--------------------------------------------------------------

-

-include( "PythiaB/Btune.py" )

-

-PythiaB.PythiaCommand += [ # Arthur Moraes tuning

-    # lambda value for alpha_s

-    "pydat1 parj 81 0.14",

-    # affects the amount of color reconnection

-    "pypars parp 78 0.2",

-    # suppression probability for string pieces reattaching beam remnant

-    # to hard scatter

-    "pypars parp 80 0.01",

-    # effective pT_min for MI (pt0 scale)

-    "pypars parp 82 1.9",

-    # matter distribution

-    "pypars parp 83 0.3",

-    "pypars parp 84 0.5",

-    # pT0 scale

-    "pypars parp 89 1800",

-    "pypars parp 90 0.22",

-    # ISR

-    "pypars mstp 70 2",

-    # max scale for FSR dipoles

-    "pypars mstp 72 0",

-    # new multiple interaction model and new parton shower selected

-    "pypars mstp 81 1",

-    # MPI

-    "pypars mstp 82 4",

-    # ISR

-    "pypars mstp 84 1",

-    # FSR

-    "pypars mstp 85 1",

-    # MPI

-    "pypars mstp 86 2",

-    # sea quarks: large x behavior of assumed gluon distribution

-    "pypars mstp 87 4",

-    # color reconnection

-    "pypars mstp 88 0",

-    "pypars mstp 89 1",

-    "pypars mstp 90 1",

-    "pypars mstp 95 1",

-    ]

-

-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",

-                                "pysubs ckin 9 -3.5",

-				"pysubs ckin 10 3.5",

-				"pysubs ckin 11 -3.5",

-				"pysubs ckin 12 3.5",

-                                "pydat1 mstj 22 1",

-          "pysubs msel 1"]

-#--------------------------------------------------------------

-# -------------  DEFINE SELECTION CUTS  -------------

-#--------------------------------------------------------------				

-#  ------------- Selections on b  quarks   -------------

-# simulate  only b-flavour events

-PythiaB.flavour =  5.

-# PythiaB force exclusive decay channels only on b=-5 side 

-# ------------------- b=5  --- and/or ---  b=-5 --------

-PythiaB.cutbq = ["10. 2.5 and 10. 2.5"]

-#PythiaB.cutbq = ["6. 2.5 and 6. 2.5"]

-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------

-PythiaB.lvl1cut = [ 1.,  6., 2.5]

-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------

-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]

-#  ------------- Offline cuts 0=OFF 1=ON -------------

-PythiaB.offcut = [ 1., 0.0, 102.5, 0., 102.5, 3.0, 2.5]

-#  ------------- Number of repeated hadronization mhadr -------------

-PythiaB.mhadr =  15. 

-

-# Add the filters:

-BSignalFilter = topAlg.BSignalFilter

-BSignalFilter.LVL1MuonCutOn = TRUE

-BSignalFilter.LVL1MuonCutPT = 6000.0

-BSignalFilter.LVL1MuonCutEta = 2.5

-BSignalFilter.Cuts_Final_e_switch = TRUE

-BSignalFilter.Cuts_Final_e_pT = 3000.0

-BSignalFilter.Cuts_Final_e_eta = 2.5

-

-MultiLeptonFilter = topAlg.MultiLeptonFilter

-#MultiLeptonFilter.Ptcut = 3.0*GeV

-MultiLeptonFilter.Ptcut = 3000.0

-MultiLeptonFilter.Etacut = 2.5

-MultiLeptonFilter.NLeptons = 3

-

-###############################################################

-# Add POOL persistency

-try:

-     Stream1.RequireAlgs +=  [ "BSignalFilter" ]

-except Exception, e:

-     pass

-

-#==============================================================

-#

-# End of job options file

-#

-###############################################################

diff --git a/Generators/PythiaB/share/CSC.018673.Bplus_Jpsi_mu6mu4_Kplus.py b/Generators/PythiaB/share/CSC.018673.Bplus_Jpsi_mu6mu4_Kplus.py
deleted file mode 100644
index 06d5b62fcc1a85b69acaa2d461b61104c78ade0d..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.018673.Bplus_Jpsi_mu6mu4_Kplus.py
+++ /dev/null
@@ -1,117 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-# open Channel B+ -> J/psi(mumu) K+
-PythiaB.PythiaCommand += ["pydat3 mdme 934 1 1",
-                                "pydat3 mdme 858 1 0",
-                               "pydat3 mdme 860 1 0"  ]
-
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 4., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-#mhadr = 2 for Channel B+ -> J/psi(mumu) K+
-PythiaB.PythiaCommand += ["pydat3 mdme 934 1 1",
-                                "pydat3 mdme 858 1 0",
-                               "pydat3 mdme 860 1 0"  ]
-PythiaB.mhadr =  2. 
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.018701.PythiaB_Bs_Ds_PhiPi_A1_Signal3.py b/Generators/PythiaB/share/CSC.018701.PythiaB_Bs_Ds_PhiPi_A1_Signal3.py
deleted file mode 100644
index 7664501527ec36d8d837b08d6530802bd6396ae9..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.018701.PythiaB_Bs_Ds_PhiPi_A1_Signal3.py
+++ /dev/null
@@ -1,141 +0,0 @@
-###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: B0s->Ds(Phi(K+K-)Pi)A1(Rho(Pi+Pi-)Pi)
-#
-#  Author : W. Walkowiak, 2006-04-02
-#           (adjusted after a template provided by PythiaB)
-#  Changes: WW, 2006-04-13
-#           Removed CBNT_ lines; added RootHistSvc again 
-# PRODUCTION FRAGMENT
-#==============================================================
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-# Algorithms 
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  Bs -> Ds a1 with Ds->phi pi
-#
-include( "PythiaB/Dsphipi.py" )   				 
-# 959: Bs  -> Ds-mu+nu
-# 967: Bs  -> Ds-Pi+
-# 969: Bs  -> Ds-a1+
-# 831: Ds- -> PhiPi-
-   				 
-PythiaB.PythiaCommand += [ "pydat3 mdme 969 1 1",
-                           "pydat3 mdme 831 1 1"   ];
-PythiaB.ForceCDecay = "yes";                               
-
-#
-# w.w., 2006-04-02 revised:
-# 
-# user_finsel.F decay particle channel
-#
-PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-#
-PythiaB.DecayChannelParameters = [1., 0., 1., 1.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-# 
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 100000.
-# 
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#  ------------- For how many events store B-chain in NTUPLE -------------
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CSC.019250.Bs_Kmunu.py b/Generators/PythiaB/share/CSC.019250.Bs_Kmunu.py
deleted file mode 100644
index 476ddd768866769629c30079a83682aa75538d16..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.019250.Bs_Kmunu.py
+++ /dev/null
@@ -1,123 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T H R E E   E X A M P L E S    T O   O P E N    Y O U R    C H A N N E L 				 
-#   Decomment one of following examples or create your analogically
-# open your exclusive channel here  Bs -> J/psi(mumu) phi 				 
-# PythiaB.PythiaCommand += ["pydat3 mdme 982 1 1",    
-# 				"pydat3 mdme 858 1 0",
-# 				"pydat3 mdme 860 1 0"        ]
-
-# open your exclusive channel here  B0 -> Kmunu 				 
-PythiaB.PythiaCommand += ["pydat3 mdme 962 1 1",
-                          "pydat3 kfdp 962 1 -321",
-                          "pydat3 kfdp 962 2 13",
-                          "pydat3 kfdp 962 3 14"        ]
-
-
-
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-##include "Dsphipi.txt" 				 
-#PythiaB.PythiaCommand += {"pydat3 mdme 967 1 1",
-#                                "pydat3 mdme 831 1 1"      };
-#PythiaB.ForceCDecay = "yes";                                
-# open your exclusive channel here  Bs -> J/psi(mumu) K0 
-#PythiaB.PythiaCommand += {"pydat3 mdme 889 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        };
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 4., 2.5, 6., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  6. 
diff --git a/Generators/PythiaB/share/CSC.019251.Bs_Kmunu.py b/Generators/PythiaB/share/CSC.019251.Bs_Kmunu.py
deleted file mode 100644
index f05573309159cb221d7d187d7f916f44161325aa..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.019251.Bs_Kmunu.py
+++ /dev/null
@@ -1,123 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------	
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = topAlg.PythiaB
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------	
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "PythiaB/CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T H R E E   E X A M P L E S    T O   O P E N    Y O U R    C H A N N E L 
-#   Decomment one of following examples or create your analogically
-# open your exclusive channel here  Bs -> J/psi(mumu) phi 
-# PythiaB.PythiaCommand += ["pydat3 mdme 982 1 1",    
-# 				"pydat3 mdme 858 1 0",
-# 				"pydat3 mdme 860 1 0"        ]
-
-# open your exclusive channel here  B0 -> Kmunu 
-PythiaB.PythiaCommand += ["pydat3 mdme 962 1 1",
-                          "pydat3 kfdp 962 1 -321",
-                          "pydat3 kfdp 962 2 -13",
-                          "pydat3 kfdp 962 3 14"        ]
-
-
-
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-##include "Dsphipi.txt" 				 
-#PythiaB.PythiaCommand += {"pydat3 mdme 967 1 1",
-#                                "pydat3 mdme 831 1 1"      };
-#PythiaB.ForceCDecay = "yes";                       
-# open your exclusive channel here  Bs -> J/psi(mumu) K0 
-#PythiaB.PythiaCommand += {"pydat3 mdme 889 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        };
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 9 -4.5",
-    "pysubs ckin 10 4.5",
-    "pysubs ckin 11 -4.5",
-    "pysubs ckin 12 4.5",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------	
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 4., 2.5, 6., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  6. 
diff --git a/Generators/PythiaB/share/CSC.019300.Chib.py b/Generators/PythiaB/share/CSC.019300.Chib.py
deleted file mode 100644
index 1914281b1fae5bd27ca3fc8508dba9435e5eac58..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.019300.Chib.py
+++ /dev/null
@@ -1,72 +0,0 @@
-
-try:
-     Stream1.RequireAlgs += ["BSignalFilter"]
-except Exception, e:
-     pass
-
-StoreGateSvc = Service( "StoreGateSvc" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-
-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-topAlg += BSignalFilter()
-
-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-topAlg += BSignalFilter()
-
-
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-Pythia = topAlg.Pythia
-
-Pythia.PythiaCommand = [        "pysubs msel 0",              #user chooses decay
-                                "pysubs msub 471 1",          #gg->bb~[3P0(1)]+g
-                                "pysubs msub 474 1",          #qg->q+bb~[3P0(1)]
-# Force chi_b ->J/psi J/psi
-                                "pydat3 mdme 1521 1 0",       #chi_0b->gg
-                                "pydat3 mdme 1520 1 1",       #chi_0b->Y+gamma
-                                "pydat3 kfdp 1520 1 443",     #chi_0b->J/psi+gamma
-                                "pydat3 kfdp 1520 2 443",     #chi_0b->J/psi+J/psi
-
-
-# J/Psi Decays (close ee-pairs and random flavours production, and open only mumu pairs production.
-
-                                "pydat3 mdme 860 1 0",
-                                "pydat3 mdme 859 1 1",
-                                "pydat3 mdme 858 1 0",
-
-# Other stuff (pysubs ckin 3 3- mean that i demand pt > 3 GeV
-
-#                               "pyinit pylistf 1",
-                                "pyinit dumpr 0 3",
-                                "pysubs ckin 3 3"]
-
-TopSequence = topAlg.TopSequence
-TopSequence.Members  += ["Sequencer/Filter"]
-
-#------- Muon Trigger Cuts --------
-BSignalFilter = topAlg.BSignalFilter
-#-------------- Level 1 Muon Cuts ---------------------
-BSignalFilter.LVL1MuonCutOn = "true"
-BSignalFilter.LVL1MuonCutPT = 1000.0
-BSignalFilter.LVL1MuonCutEta = 2.5
-#-------------- Level 2 lepton cuts -------------------
-# These will only function if LVL1 trigger used.
-BSignalFilter.LVL2MuonCutOn = "true"
-BSignalFilter.LVL2MuonCutPT = 1000.0
-BSignalFilter.LVL2MuonCutEta = 2.5
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
-
diff --git a/Generators/PythiaB/share/CSC.019900.Pythia_directUpsilonmu6mu4.py b/Generators/PythiaB/share/CSC.019900.Pythia_directUpsilonmu6mu4.py
deleted file mode 100644
index 1ec5a7b69cc7f98b30a651e38ee7223159f11930..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CSC.019900.Pythia_directUpsilonmu6mu4.py
+++ /dev/null
@@ -1,229 +0,0 @@
-###############################################################
-#
-#       jobOptions for quarkonium production in the
-#               NRQCD colour-octet framework
-# Author: Darren D Price ( Darren.Price@cern.ch )
-# Date:   June 2006
-#         Feb 2007 -- updated UE tuning to use CSC jobO
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-
-
-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-topAlg += BSignalFilter()
-
-
-Pythia = topAlg.Pythia
-#Pythia.newScenario = FALSE
-
-# New tuning for CTEQ6L and Pythia new showering
-include( "PythiaB/Btune.py" )
-
-Pythia.PythiaCommand += [
-    # lambda value for alpha_s
-    "pydat1 parj 81 0.14",
-    # effects the amount of color reconnection
-    "pypars parp 78 0.2",
-    # suppression probability for string pieces reattaching beam remnant
-    # to hard scatter
-    "pypars parp 80 0.01",
-    # effective pT_min for MI (pt0 scale)
-    "pypars parp 82 1.9",
-    # matter distribution
-    "pypars parp 83 0.3",
-    "pypars parp 84 0.5",
-    # pT0 scale
-    "pypars parp 89 1800",
-    "pypars parp 90 0.22",
-    # ISR
-    "pypars mstp 70 2",
-    # max scale for FSR dipoles
-    "pypars mstp 72 0",
-    # new multiple interaction model and new parton shower selected
-    "pypars mstp 81 1",
-    # MPI
-    "pypars mstp 82 4",
-    # ISR
-    "pypars mstp 84 1",
-    # FSR
-    "pypars mstp 85 1",
-    # MPI
-    "pypars mstp 86 2",
-    # sea quarks: large x behavior of assumed gluon distribution
-    "pypars mstp 87 4",
-    # color reconnection
-    "pypars mstp 88 0",
-    "pypars mstp 89 1",
-    "pypars mstp 90 1",
-    "pypars mstp 95 1",
-    ]
-
-Pythia.PythiaCommand += [ # quarkonium processes
-    
-    #"pysubs msel 0",   # user chooses decay mode(s)
-    #"pysubs msel 61", # colour octet charmonium production (421-439)
-    "pysubs msel 62", # colour octet bottomonium production (461-479)
-    #"pysubs msel 63", # colour octet onium production (msel 61+62)
-    
-    # ----- J/Psi production -----
-    # --- 3S1(1)                        
-    #"pysubs msub 421 1",  # gg->cc~[3S1(1)]+g
-    # --- 3S1(8)
-    #"pysubs msub 422 1",  # gg->cc~[3S1(8)]+g
-    #"pysubs msub 425 1",  # gq->q+cc~[3S1(8)]
-    #"pysubs msub 428 1",  # qq~->g+cc~[3S1(8)]
-    # --- 1S0(8)                        
-    #"pysubs msub 423 1",  # gg->cc~[1S0(8)]+g
-    #"pysubs msub 426 1",  # gq->q+cc~[1S0(8)]
-    #"pysubs msub 429 1",  # qq~->g+cc~[1S0(8)]
-    # --- 3PJ(8)
-    #"pysubs msub 424 1",  # gg->cc~[3PJ(8)]+g
-    #"pysubs msub 427 1",  # gq->q+cc~[3PJ(8)]
-    #"pysubs msub 430 1",  # qq~->g+cc~[3PJ(8)]
-
-    # ----- Chi's -----
-    #"pysubs msub 431 1",  # gg->cc~[3P0(1)]+g
-    #"pysubs msub 432 1",  # gg->cc~[3P1(1)]+g
-    #"pysubs msub 433 1",  # gg->cc~[3P2(1)]+g
-    #"pysubs msub 434 1",  # qg->q+cc~[3P0(1)]
-    #"pysubs msub 435 1",  # qg->q+cc~[3P1(1)]
-    #"pysubs msub 436 1",  # qg->q+cc~[3P2(1)]
-    #"pysubs msub 437 1",  # qq~->cc~[3P0(1)]+g
-    #"pysubs msub 438 1",  # qq~->cc~[3P1(1)]+g
-    #"pysubs msub 439 1",  # qq~->cc~[3P2(1)]+g
-                        
-    # ----- Upsilon production -----
-    # --- 3S1(1)
-    #"pysubs msub 461 1",  # gg->bb~[3S1(1)]+g
-    # --- 3S1(8)
-    #"pysubs msub 462 1",  # gg->bb~[3S1(8)]+g
-    #"pysubs msub 465 1",  # gq->q+bb~[3S1(8)]
-    #"pysubs msub 468 1",  # qq~->g+bb~[3S1(8)]
-    # --- 1S0(8)
-    #"pysubs msub 463 1",  # gg->bb~[1S0(8)]+g
-    #"pysubs msub 466 1",  # gq->q+bb~[1S0(8)]
-    #"pysubs msub 469 1",  # qq~->g+bb~[1S0(8)]
-    # --- 3PJ(8)
-    #"pysubs msub 464 1",  # gg->bb~[3PJ(8)]+g
-    #"pysubs msub 467 1",  # gq->q+bb~[3PJ(8)]
-    #"pysubs msub 470 1",  # qq~->g+bb~[3PJ(8)]
-
-    # ----- Chi's -----
-    #"pysubs msub 471 1",  # gg->bb~[3P0(1)]+g
-    #"pysubs msub 472 1",  # gg->bb~[3P1(1)]+g
-    #"pysubs msub 473 1",  # gg->bb~[3P2(1)]+g
-    #"pysubs msub 474 1",  # qg->q+bb~[3P0(1)]
-    #"pysubs msub 475 1",  # qg->q+bb~[3P1(1)]
-    #"pysubs msub 476 1",  # qg->q+bb~[3P2(1)]
-    #"pysubs msub 477 1",  # qq~->bb~[3P0(1)]+g
-    #"pysubs msub 478 1",  # qq~->bb~[3P1(1)]+g
-    #"pysubs msub 479 1",  # qq~->bb~[3P2(1)]+g
-    
-    ]                        
-
-Pythia.PythiaCommand += [ # force decays
-
-    "pydat3 mdme 858 1 0", # J/psi->e+e-
-    "pydat3 mdme 859 1 1", # J/psi->mumu (br 0.06)
-    "pydat3 mdme 860 1 0",  # J/psi->rndmflavpairs
-
-    "pydat3 mdme 1501 1 1", # chi0c->J/psi gamma (br 0.007)
-    "pydat3 mdme 1502 1 0", # chi0c->rfp 
-    
-    "pydat3 mdme 1555 1 1", # chi1c->J/psi gamma (br 0.273)
-    "pydat3 mdme 1556 1 0", # chi1c->rfp
-    
-    "pydat3 mdme 861 1 1", # chi2c->J/psi gamma (br 0.135)
-    "pydat3 mdme 862 1 0", # chi2c->rfp
-
-    "pydat3 mdme 1034 1 0", # Upsilon->e+e- (br 0.0254)
-    "pydat3 mdme 1035 1 1", # Upsilon->mu+mu- (br 0.0248)
-    "pydat3 mdme 1036 1 0", # Upsilon->tau+tau- (br 0.0267)
-    "pydat3 mdme 1037 1 0", # Upsilon->ddbar
-    "pydat3 mdme 1038 1 0", # Upsilon->uubar
-    "pydat3 mdme 1039 1 0", # Upsilon->ssbar
-    "pydat3 mdme 1040 1 0", # Upsilon->ccbar
-    "pydat3 mdme 1041 1 0", # Upsilon->ggg
-    "pydat3 mdme 1042 1 0", # Upsilon->gamma gg
-    
-    "pydat3 mdme 1520 1 1", # chi0b->Upsilon gamma (br 0.02)
-    "pydat3 mdme 1521 1 0", # chi0b->gg
-    
-    "pydat3 mdme 1565 1 1", # chi1b->Upsilon gamma (br 0.35)
-    "pydat3 mdme 1566 1 0", # chi1b->gg
-    
-    "pydat3 mdme 1043 1 1", # chi2b->Upsilon gamma (br 0.22)
-    "pydat3 mdme 1044 1 0", # chi2b->gg
-    
-    ]
-
-Pythia.PythiaCommand += [ # NRQCD matrix elements
-    
-    "pypars parp 141 1.16",   # Jpsi-3S1(1) NRQCD ME
-    "pypars parp 142 0.0119", # Jpsi-3S1(8) NRQCD ME
-    "pypars parp 143 0.01",   # Jpsi-1S0(8) NRQCD ME
-    "pypars parp 144 0.01",   # Jpsi-3P0(8) NRQCD ME / m_c^2
-    "pypars parp 145 0.05",   # chi_c0-3P0(1) NRQCD ME / m_c^2
-
-    "pypars parp 146 9.28",   # Upsilon-3S1(1) NRQCD ME
-    "pypars parp 147 0.15",   # Upsilon-3S1(8) NRQCD ME
-    "pypars parp 148 0.02",   # Upsilon-1S0(8) NRQCD ME
-    "pypars parp 149 0.02",   # Upsilon-3P0(8) NRQCD ME / m_b^2 
-    "pypars parp 150 0.085",  # chi_b0-3P0(1) NRQCD ME / m_b^2
-        
-    ]
-
-Pythia.PythiaCommand += [
-
-    "pysubs ckin 3 1.",   # lower pT cut on hard process in GeV
-
-    # LHAPDF parameters for CTEQ6M
-    #"pypars mstp 51 10050",
-    #"pypars mstp 53 10050",
-    #"pypars mstp 55 10050",
-    #"pypars mstp 52 2",
-    #"pypars mstp 54 2",
-    #"pypars mstp 56 2",
-    
-    
-    #"pypars mstp 61 0", # inital state showers off
-    #"pypars mstp 71 0", # final state showers off
-    #"pypars mstp 111 0" # fragmentation/hadronisation off
-    
-    ]
-
-Pythia.PythiaCommand += ["pyinit pylistf 1",
-                         "pystat mstat 1",
-                         "pyinit dumpr 0 3",#dump this event range to screen
-                         ]
-
-
-#------- Muon Trigger Cuts --------
-BSignalFilter = topAlg.BSignalFilter
-#-------------- Level 1 Muon Cuts --------------------- 
-BSignalFilter.LVL1MuonCutOn = "true"
-BSignalFilter.LVL1MuonCutPT = 6000.0 
-BSignalFilter.LVL1MuonCutEta = 2.5 
-#-------------- Level 2 lepton cuts -------------------
-# These will only function if LVL1 trigger used. 
-BSignalFilter.LVL2MuonCutOn = "true" 
-BSignalFilter.LVL2MuonCutPT = 4000.0 
-BSignalFilter.LVL2MuonCutEta = 2.5
-
-try:
-     Stream1.RequireAlgs += ["BSignalFilter"]
-except Exception, e:
-     pass
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/CloseAntibQuark.py b/Generators/PythiaB/share/CloseAntibQuark.py
deleted file mode 100644
index f5dae1a76f2eac9e2ec17b1b967525e21ec07582..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CloseAntibQuark.py
+++ /dev/null
@@ -1,377 +0,0 @@
-PythiaB = topAlg.PythiaB
-PythiaB.PythiaCommand += [  "pydat3 mdme 863 1 3"
-           ,"pydat3 mdme 864 1 3"
-           ,"pydat3 mdme 865 1 3"
-           ,"pydat3 mdme 866 1 3"
-           ,"pydat3 mdme 867 1 3"
-           ,"pydat3 mdme 868 1 3"
-           ,"pydat3 mdme 869 1 3"
-           ,"pydat3 mdme 870 1 3"
-           ,"pydat3 mdme 871 1 3"
-           ,"pydat3 mdme 872 1 3"
-           ,"pydat3 mdme 873 1 3"
-           ,"pydat3 mdme 874 1 3"
-           ,"pydat3 mdme 875 1 3"
-           ,"pydat3 mdme 876 1 3"
-           ,"pydat3 mdme 877 1 3"
-           ,"pydat3 mdme 878 1 3"
-           ,"pydat3 mdme 879 1 3"
-           ,"pydat3 mdme 880 1 3"
-           ,"pydat3 mdme 881 1 3"
-           ,"pydat3 mdme 882 1 3"
-           ,"pydat3 mdme 883 1 3"
-           ,"pydat3 mdme 884 1 3"
-           ,"pydat3 mdme 885 1 3"
-           ,"pydat3 mdme 886 1 3"
-           ,"pydat3 mdme 887 1 3"
-           ,"pydat3 mdme 888 1 3"
-           ,"pydat3 mdme 889 1 3"
-           ,"pydat3 mdme 890 1 3"
-           ,"pydat3 mdme 891 1 3"
-           ,"pydat3 mdme 892 1 3"
-           ,"pydat3 mdme 893 1 3"
-           ,"pydat3 mdme 894 1 3"
-           ,"pydat3 mdme 895 1 3"
-           ,"pydat3 mdme 896 1 3"
-           ,"pydat3 mdme 897 1 3"
-           ,"pydat3 mdme 898 1 3"
-           ,"pydat3 mdme 908 1 3"
-           ,"pydat3 mdme 909 1 3"
-           ,"pydat3 mdme 910 1 3"
-           ,"pydat3 mdme 911 1 3"
-           ,"pydat3 mdme 912 1 3"
-           ,"pydat3 mdme 913 1 3"
-           ,"pydat3 mdme 914 1 3"
-           ,"pydat3 mdme 915 1 3"
-           ,"pydat3 mdme 916 1 3"
-           ,"pydat3 mdme 917 1 3"
-           ,"pydat3 mdme 918 1 3"
-           ,"pydat3 mdme 919 1 3"
-           ,"pydat3 mdme 920 1 3"
-           ,"pydat3 mdme 921 1 3"
-           ,"pydat3 mdme 922 1 3"
-           ,"pydat3 mdme 923 1 3"
-           ,"pydat3 mdme 924 1 3"
-           ,"pydat3 mdme 925 1 3"
-           ,"pydat3 mdme 926 1 3"
-           ,"pydat3 mdme 927 1 3"
-           ,"pydat3 mdme 928 1 3"
-           ,"pydat3 mdme 929 1 3"
-           ,"pydat3 mdme 930 1 3"
-           ,"pydat3 mdme 931 1 3"
-           ,"pydat3 mdme 932 1 3"
-           ,"pydat3 mdme 933 1 3"
-           ,"pydat3 mdme 934 1 3"
-           ,"pydat3 mdme 935 1 3"
-           ,"pydat3 mdme 936 1 3"
-           ,"pydat3 mdme 937 1 3"
-           ,"pydat3 mdme 938 1 3"
-           ,"pydat3 mdme 939 1 3"
-           ,"pydat3 mdme 940 1 3"
-           ,"pydat3 mdme 941 1 3"
-           ,"pydat3 mdme 942 1 3"
-           ,"pydat3 mdme 943 1 3"
-           ,"pydat3 mdme 953 1 3"
-           ,"pydat3 mdme 954 1 3"
-           ,"pydat3 mdme 955 1 3"
-           ,"pydat3 mdme 956 1 3"
-           ,"pydat3 mdme 957 1 3"
-           ,"pydat3 mdme 958 1 3"
-           ,"pydat3 mdme 959 1 3"
-           ,"pydat3 mdme 960 1 3"
-           ,"pydat3 mdme 961 1 3"
-           ,"pydat3 mdme 962 1 3"
-           ,"pydat3 mdme 963 1 3"
-           ,"pydat3 mdme 964 1 3"
-           ,"pydat3 mdme 965 1 3"
-           ,"pydat3 mdme 966 1 3"
-           ,"pydat3 mdme 967 1 3"
-           ,"pydat3 mdme 968 1 3"
-           ,"pydat3 mdme 969 1 3"
-           ,"pydat3 mdme 970 1 3"
-           ,"pydat3 mdme 971 1 3"
-           ,"pydat3 mdme 972 1 3"
-           ,"pydat3 mdme 973 1 3"
-           ,"pydat3 mdme 974 1 3"
-           ,"pydat3 mdme 975 1 3"
-           ,"pydat3 mdme 976 1 3"
-           ,"pydat3 mdme 977 1 3"
-           ,"pydat3 mdme 978 1 3"
-           ,"pydat3 mdme 979 1 3"
-           ,"pydat3 mdme 980 1 3"
-           ,"pydat3 mdme 981 1 3"
-           ,"pydat3 mdme 982 1 3"
-           ,"pydat3 mdme 983 1 3"
-           ,"pydat3 mdme 984 1 3"
-           ,"pydat3 mdme 985 1 3"
-           ,"pydat3 mdme 986 1 3"
-           ,"pydat3 mdme 987 1 3"
-           ,"pydat3 mdme 988 1 3"
-           ,"pydat3 mdme 989 1 3"
-           ,"pydat3 mdme 990 1 3"
-           ,"pydat3 mdme 991 1 3"
-           ,"pydat3 mdme 997 1 3"
-           ,"pydat3 mdme 998 1 3"
-           ,"pydat3 mdme 999 1 3"
-           ,"pydat3 mdme 1000 1 3"
-           ,"pydat3 mdme 1001 1 3"
-           ,"pydat3 mdme 1002 1 3"
-           ,"pydat3 mdme 1003 1 3"
-           ,"pydat3 mdme 1004 1 3"
-           ,"pydat3 mdme 1005 1 3"
-           ,"pydat3 mdme 1006 1 3"
-           ,"pydat3 mdme 1007 1 3"
-           ,"pydat3 mdme 1008 1 3"
-           ,"pydat3 mdme 1009 1 3"
-           ,"pydat3 mdme 1010 1 3"
-           ,"pydat3 mdme 1011 1 3"
-           ,"pydat3 mdme 1012 1 3"
-           ,"pydat3 mdme 1013 1 3"
-           ,"pydat3 mdme 1014 1 3"
-           ,"pydat3 mdme 1015 1 3"
-           ,"pydat3 mdme 1016 1 3"
-           ,"pydat3 mdme 1017 1 3"
-           ,"pydat3 mdme 1018 1 3"
-           ,"pydat3 mdme 1019 1 3"
-           ,"pydat3 mdme 1020 1 3"
-           ,"pydat3 mdme 1021 1 3"
-           ,"pydat3 mdme 1022 1 3"
-           ,"pydat3 mdme 1023 1 3"
-           ,"pydat3 mdme 1024 1 3"
-           ,"pydat3 mdme 1025 1 3"
-           ,"pydat3 mdme 1026 1 3"
-           ,"pydat3 mdme 1027 1 3"
-           ,"pydat3 mdme 1219 1 2"
-           ,"pydat3 mdme 1220 1 2"
-           ,"pydat3 mdme 1221 1 2"
-           ,"pydat3 mdme 1222 1 2"
-           ,"pydat3 mdme 1223 1 2"
-           ,"pydat3 mdme 1224 1 2"
-           ,"pydat3 mdme 1225 1 2"
-           ,"pydat3 mdme 1226 1 2"
-           ,"pydat3 mdme 1227 1 2"
-           ,"pydat3 mdme 1228 1 2"
-           ,"pydat3 mdme 1229 1 2"
-           ,"pydat3 mdme 1230 1 2"
-           ,"pydat3 mdme 1231 1 2"
-           ,"pydat3 mdme 1232 1 2"
-           ,"pydat3 mdme 1233 1 2"
-           ,"pydat3 mdme 1234 1 2"
-           ,"pydat3 mdme 1235 1 2"
-           ,"pydat3 mdme 1236 1 2"
-           ,"pydat3 mdme 1237 1 2"
-           ,"pydat3 mdme 1238 1 2"
-           ,"pydat3 mdme 1239 1 2"
-           ,"pydat3 mdme 1240 1 2"
-           ,"pydat3 mdme 1241 1 2"
-           ,"pydat3 mdme 1242 1 2"
-           ,"pydat3 mdme 1243 1 2"
-           ,"pydat3 mdme 1244 1 2"
-           ,"pydat3 mdme 1245 1 2"
-           ,"pydat3 mdme 1246 1 2"
-           ,"pydat3 mdme 1247 1 2"
-           ,"pydat3 mdme 1248 1 2"
-           ,"pydat3 mdme 1249 1 2"
-           ,"pydat3 mdme 1250 1 2"
-           ,"pydat3 mdme 1251 1 2"
-           ,"pydat3 mdme 1252 1 2"
-           ,"pydat3 mdme 1253 1 2"
-           ,"pydat3 mdme 1258 1 2"
-           ,"pydat3 mdme 1259 1 2"
-           ,"pydat3 mdme 1260 1 2"
-           ,"pydat3 mdme 1261 1 2"
-           ,"pydat3 mdme 1262 1 2"
-           ,"pydat3 mdme 1263 1 2"
-           ,"pydat3 mdme 1264 1 2"
-           ,"pydat3 mdme 1265 1 2"
-           ,"pydat3 mdme 1266 1 2"
-           ,"pydat3 mdme 1267 1 2"
-           ,"pydat3 mdme 1268 1 2"
-           ,"pydat3 mdme 1269 1 2"
-           ,"pydat3 mdme 1270 1 2"
-           ,"pydat3 mdme 1271 1 2"
-           ,"pydat3 mdme 1272 1 2"
-           ,"pydat3 mdme 1273 1 2"
-           ,"pydat3 mdme 1274 1 2"
-           ,"pydat3 mdme 1275 1 2"
-           ,"pydat3 mdme 1280 1 2"
-           ,"pydat3 mdme 1281 1 2"
-           ,"pydat3 mdme 1282 1 2"
-           ,"pydat3 mdme 1283 1 2"
-           ,"pydat3 mdme 1284 1 2"
-           ,"pydat3 mdme 1285 1 2"
-           ,"pydat3 mdme 1286 1 2"
-           ,"pydat3 mdme 1287 1 2"
-           ,"pydat3 mdme 1288 1 2"
-           ,"pydat3 mdme 1290 1 2"
-           ,"pydat3 mdme 1291 1 2"
-           ,"pydat3 mdme 1292 1 2"
-           ,"pydat3 mdme 1293 1 2"
-           ,"pydat3 mdme 1294 1 2"
-           ,"pydat3 mdme 1295 1 2"
-           ,"pydat3 mdme 1296 1 2"
-           ,"pydat3 mdme 1297 1 2"
-           ,"pydat3 mdme 1298 1 2"
-           ,"pydat3 mdme 1299 1 2"
-           ,"pydat3 mdme 1300 1 2"
-           ,"pydat3 mdme 1301 1 2"
-           ,"pydat3 mdme 1302 1 2"
-           ,"pydat3 mdme 1303 1 2"
-           ,"pydat3 mdme 1304 1 2"
-           ,"pydat3 mdme 1305 1 2"
-           ,"pydat3 mdme 1306 1 2"
-           ,"pydat3 mdme 1307 1 2"
-           ,"pydat3 mdme 1308 1 2"
-           ,"pydat3 mdme 1309 1 2"
-           ,"pydat3 mdme 1310 1 2"
-           ,"pydat3 mdme 1311 1 2"
-           ,"pydat3 mdme 1312 1 2"
-           ,"pydat3 mdme 1313 1 2"
-           ,"pydat3 mdme 1314 1 2"
-           ,"pydat3 mdme 1315 1 2"
-           ,"pydat3 mdme 1316 1 2"
-           ,"pydat3 mdme 1317 1 2"
-           ,"pydat3 mdme 1318 1 2"
-           ,"pydat3 mdme 1319 1 2"
-           ,"pydat3 mdme 1320 1 2"
-           ,"pydat3 mdme 1321 1 2"
-           ,"pydat3 mdme 1322 1 2"
-           ,"pydat3 mdme 1323 1 2"
-           ,"pydat3 mdme 1324 1 2"
-           ,"pydat3 mdme 1325 1 2"
-           ,"pydat3 mdme 1326 1 2"
-           ,"pydat3 mdme 1327 1 2"
-           ,"pydat3 mdme 1328 1 2"
-           ,"pydat3 mdme 1329 1 2"
-           ,"pydat3 mdme 1330 1 2"
-           ,"pydat3 mdme 1331 1 2"
-           ,"pydat3 mdme 1332 1 2"
-           ,"pydat3 mdme 1333 1 2"
-           ,"pydat3 mdme 1334 1 2"
-           ,"pydat3 mdme 1335 1 2"
-           ,"pydat3 mdme 1336 1 2"
-           ,"pydat3 mdme 1337 1 2"
-           ,"pydat3 mdme 1338 1 2"
-           ,"pydat3 mdme 1339 1 2"
-           ,"pydat3 mdme 1340 1 2"
-           ,"pydat3 mdme 1341 1 2"
-           ,"pydat3 mdme 1342 1 2"
-           ,"pydat3 mdme 1343 1 2"
-           ,"pydat3 mdme 1344 1 2"
-           ,"pydat3 mdme 1345 1 2"
-           ,"pydat3 mdme 1346 1 2"
-           ,"pydat3 mdme 1347 1 2"
-           ,"pydat3 mdme 1348 1 2"
-           ,"pydat3 mdme 1349 1 2"
-           ,"pydat3 mdme 1350 1 2"
-           ,"pydat3 mdme 1351 1 2"
-           ,"pydat3 mdme 1352 1 2"
-           ,"pydat3 mdme 1353 1 2"
-           ,"pydat3 mdme 1354 1 2"
-           ,"pydat3 mdme 1355 1 2"
-           ,"pydat3 mdme 1356 1 2"
-           ,"pydat3 mdme 1357 1 2"
-           ,"pydat3 mdme 1358 1 2"
-           ,"pydat3 mdme 1359 1 2"
-           ,"pydat3 mdme 1360 1 2"
-           ,"pydat3 mdme 1361 1 2"
-           ,"pydat3 mdme 1362 1 2"
-           ,"pydat3 mdme 1363 1 2"
-           ,"pydat3 mdme 1364 1 2"
-           ,"pydat3 mdme 1365 1 2"
-           ,"pydat3 mdme 1366 1 2"
-           ,"pydat3 mdme 1367 1 2"
-           ,"pydat3 mdme 1368 1 2"
-           ,"pydat3 mdme 1369 1 2"
-           ,"pydat3 mdme 1370 1 2"
-           ,"pydat3 mdme 1371 1 2"
-           ,"pydat3 mdme 1372 1 2"
-           ,"pydat3 mdme 1373 1 2"
-           ,"pydat3 mdme 1374 1 2"
-           ,"pydat3 mdme 1375 1 2"
-           ,"pydat3 mdme 1376 1 2"
-           ,"pydat3 mdme 1377 1 2"
-           ,"pydat3 mdme 1378 1 2"
-           ,"pydat3 mdme 1379 1 2"
-           ,"pydat3 mdme 1380 1 2"
-           ,"pydat3 mdme 1381 1 2"
-           ,"pydat3 mdme 1382 1 2"
-           ,"pydat3 mdme 1383 1 2"
-           ,"pydat3 mdme 1384 1 2"
-           ,"pydat3 mdme 1385 1 2"
-           ,"pydat3 mdme 1386 1 2"
-           ,"pydat3 mdme 1387 1 2"
-           ,"pydat3 mdme 1388 1 2"
-           ,"pydat3 mdme 1389 1 2"
-           ,"pydat3 mdme 1390 1 2"
-           ,"pydat3 mdme 1391 1 2"
-           ,"pydat3 mdme 1392 1 2"
-           ,"pydat3 mdme 1393 1 2"
-           ,"pydat3 mdme 1394 1 2"
-           ,"pydat3 mdme 1395 1 2"
-           ,"pydat3 mdme 1396 1 2"
-           ,"pydat3 mdme 1397 1 2"
-           ,"pydat3 mdme 1398 1 2"
-           ,"pydat3 mdme 1399 1 2"
-           ,"pydat3 mdme 1400 1 2"
-           ,"pydat3 mdme 1401 1 2"
-           ,"pydat3 mdme 1402 1 2"
-           ,"pydat3 mdme 1403 1 2"
-           ,"pydat3 mdme 1404 1 2"
-           ,"pydat3 mdme 1405 1 2"
-           ,"pydat3 mdme 1406 1 2"
-           ,"pydat3 mdme 1407 1 2"
-           ,"pydat3 mdme 1408 1 2"
-           ,"pydat3 mdme 1409 1 2"
-           ,"pydat3 mdme 1410 1 2"
-           ,"pydat3 mdme 1411 1 2"
-           ,"pydat3 mdme 1412 1 2"
-           ,"pydat3 mdme 1413 1 2"
-           ,"pydat3 mdme 1414 1 2"
-           ,"pydat3 mdme 1415 1 2"
-           ,"pydat3 mdme 1416 1 2"
-           ,"pydat3 mdme 1417 1 2"
-           ,"pydat3 mdme 1418 1 2"
-           ,"pydat3 mdme 1419 1 2"
-           ,"pydat3 mdme 1420 1 2"
-           ,"pydat3 mdme 1421 1 2"
-           ,"pydat3 mdme 1422 1 2"
-           ,"pydat3 mdme 1423 1 2"
-           ,"pydat3 mdme 1424 1 2"
-           ,"pydat3 mdme 1425 1 2"
-           ,"pydat3 mdme 1426 1 2"
-           ,"pydat3 mdme 1427 1 2"
-           ,"pydat3 mdme 1428 1 2"
-           ,"pydat3 mdme 1429 1 2"
-           ,"pydat3 mdme 1430 1 2"
-           ,"pydat3 mdme 1431 1 2"
-           ,"pydat3 mdme 1432 1 2"
-           ,"pydat3 mdme 1433 1 2"
-           ,"pydat3 mdme 1434 1 2"
-           ,"pydat3 mdme 1435 1 2"
-           ,"pydat3 mdme 1436 1 2"
-           ,"pydat3 mdme 1437 1 2"
-           ,"pydat3 mdme 1438 1 2"
-           ,"pydat3 mdme 1439 1 2"
-           ,"pydat3 mdme 1440 1 2"
-           ,"pydat3 mdme 1441 1 2"
-           ,"pydat3 mdme 1442 1 2"
-           ,"pydat3 mdme 1443 1 2"
-           ,"pydat3 mdme 1444 1 2"
-           ,"pydat3 mdme 1445 1 2"
-           ,"pydat3 mdme 1446 1 2"
-           ,"pydat3 mdme 1447 1 2"
-           ,"pydat3 mdme 1448 1 2"
-           ,"pydat3 mdme 1449 1 2"
-           ,"pydat3 mdme 1450 1 2"
-           ,"pydat3 mdme 1451 1 2"
-           ,"pydat3 mdme 545 1 2"
-           ,"pydat3 mdme 546 1 2"
-           ,"pydat3 mdme 547 1 2"
-           ,"pydat3 mdme 548 1 2"
-           ,"pydat3 mdme 549 1 2"
-           ,"pydat3 mdme 550 1 2"
-           ,"pydat3 mdme 551 1 2"
-           ,"pydat3 mdme 552 1 2"
-           ,"pydat3 mdme 553 1 2"
-                                         ]   
diff --git a/Generators/PythiaB/share/CloseD0bar.py b/Generators/PythiaB/share/CloseD0bar.py
deleted file mode 100644
index 9040364402230d322017946f0ef82c3fe2be0dcf..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/CloseD0bar.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# $Id: CloseD0bar.py,v 1.1 2007-03-01 17:15:38 msmizans Exp $
-#
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.PythiaCommand += [  
-            "pydat3 mdme 747 1 2",
-            "pydat3 mdme 748 1 2",
-            "pydat3 mdme 749 1 2",
-            "pydat3 mdme 750 1 2",
-            "pydat3 mdme 751 1 2",
-            "pydat3 mdme 752 1 2",
-            "pydat3 mdme 753 1 2",
-            "pydat3 mdme 754 1 2",
-            "pydat3 mdme 755 1 2",
-            "pydat3 mdme 756 1 2",
-            "pydat3 mdme 757 1 2",
-            "pydat3 mdme 758 1 2",
-            "pydat3 mdme 759 1 2",
-            "pydat3 mdme 760 1 2",
-            "pydat3 mdme 761 1 2",
-            "pydat3 mdme 762 1 2",
-            "pydat3 mdme 763 1 2",
-            "pydat3 mdme 764 1 2",
-            "pydat3 mdme 765 1 2",
-            "pydat3 mdme 766 1 2",
-            "pydat3 mdme 767 1 2",
-            "pydat3 mdme 768 1 2",
-            "pydat3 mdme 769 1 2",
-            "pydat3 mdme 770 1 2",
-            "pydat3 mdme 771 1 2",
-            "pydat3 mdme 772 1 2",
-            "pydat3 mdme 773 1 2",
-            "pydat3 mdme 774 1 2",
-            "pydat3 mdme 775 1 2",
-            "pydat3 mdme 776 1 2",
-            "pydat3 mdme 777 1 2",
-            "pydat3 mdme 778 1 2",
-            "pydat3 mdme 779 1 2",
-            "pydat3 mdme 780 1 2",
-            "pydat3 mdme 781 1 2",
-            "pydat3 mdme 782 1 2",
-            "pydat3 mdme 783 1 2",
-            "pydat3 mdme 784 1 2",
-            "pydat3 mdme 785 1 2",
-            "pydat3 mdme 786 1 2",
-            "pydat3 mdme 787 1 2",
-            "pydat3 mdme 788 1 2",
-            "pydat3 mdme 789 1 2",
-            "pydat3 mdme 790 1 2",
-            "pydat3 mdme 791 1 2",
-            "pydat3 mdme 792 1 2",
-            "pydat3 mdme 793 1 2",
-            "pydat3 mdme 794 1 2",
-            "pydat3 mdme 795 1 2",
-            "pydat3 mdme 796 1 2",
-            "pydat3 mdme 797 1 2",
-            "pydat3 mdme 798 1 2",
-            "pydat3 mdme 799 1 2",
-            "pydat3 mdme 800 1 2",
-            "pydat3 mdme 801 1 2",
-            "pydat3 mdme 802 1 2",
-            "pydat3 mdme 803 1 2",
-            "pydat3 mdme 804 1 2",
-            "pydat3 mdme 805 1 2",
-            "pydat3 mdme 806 1 2",
-            "pydat3 mdme 807 1 2"
-            ]   
diff --git a/Generators/PythiaB/share/DXphipi.py b/Generators/PythiaB/share/DXphipi.py
deleted file mode 100644
index eb67a18adef6ea5cab47f001c8daa7f5eb49b989..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/DXphipi.py
+++ /dev/null
@@ -1,148 +0,0 @@
-#
-# $Id: DXphipi.py,v 1.1 2007-03-01 17:15:46 msmizans Exp $
-#
-PythiaB = Algorithm( "PythiaB" )
-
-# For Ds- -> phipi-: open Ds channels only for particle Ds+
-if DXChannel == "Dsphipi":
-    PythiaB.PythiaCommand += [  "pydat3 mdme 818 1 2"
-           ,"pydat3 mdme 819 1 2"
-           ,"pydat3 mdme 820 1 2"
-           ,"pydat3 mdme 821 1 2"
-           ,"pydat3 mdme 822 1 2"
-           ,"pydat3 mdme 823 1 2"
-           ,"pydat3 mdme 824 1 2"
-           ,"pydat3 mdme 825 1 2"
-           ,"pydat3 mdme 826 1 2"
-           ,"pydat3 mdme 827 1 2"
-           ,"pydat3 mdme 828 1 2"
-           ,"pydat3 mdme 829 1 2"
-           ,"pydat3 mdme 830 1 2"
-           ,"pydat3 mdme 831 1 2"
-           ,"pydat3 mdme 832 1 2"
-           ,"pydat3 mdme 833 1 2"
-           ,"pydat3 mdme 834 1 2"
-           ,"pydat3 mdme 835 1 2"
-           ,"pydat3 mdme 836 1 2"
-           ,"pydat3 mdme 837 1 2"
-           ,"pydat3 mdme 838 1 2"
-           ,"pydat3 mdme 839 1 2"
-           ,"pydat3 mdme 840 1 2"
-           ,"pydat3 mdme 841 1 2"
-           ,"pydat3 mdme 842 1 2"
-           ,"pydat3 mdme 843 1 2"
-           ,"pydat3 mdme 844 1 2"
-           ,"pydat3 mdme 845 1 2"
-           ,"pydat3 mdme 846 1 2"
-           ,"pydat3 mdme 847 1 2"
-           ,"pydat3 mdme 848 1 2"
-           ,"pydat3 mdme 849 1 2"
-           ,"pydat3 mdme 850 1 2"
-                                         ]   
-
-
-# For Ds+ -> phipi+: open Ds channels only for antiparticle Ds-
-if DXChannel == "Dsbarphipi":
-    PythiaB.PythiaCommand += [  "pydat3 mdme 818 1 3"
-           ,"pydat3 mdme 819 1 3"
-           ,"pydat3 mdme 820 1 3"
-           ,"pydat3 mdme 821 1 3"
-           ,"pydat3 mdme 822 1 3"
-           ,"pydat3 mdme 823 1 3"
-           ,"pydat3 mdme 824 1 3"
-           ,"pydat3 mdme 825 1 3"
-           ,"pydat3 mdme 826 1 3"
-           ,"pydat3 mdme 827 1 3"
-           ,"pydat3 mdme 828 1 3"
-           ,"pydat3 mdme 829 1 3"
-           ,"pydat3 mdme 830 1 3"
-           ,"pydat3 mdme 831 1 3"
-           ,"pydat3 mdme 832 1 3"
-           ,"pydat3 mdme 833 1 3"
-           ,"pydat3 mdme 834 1 3"
-           ,"pydat3 mdme 835 1 3"
-           ,"pydat3 mdme 836 1 3"
-           ,"pydat3 mdme 837 1 3"
-           ,"pydat3 mdme 838 1 3"
-           ,"pydat3 mdme 839 1 3"
-           ,"pydat3 mdme 840 1 3"
-           ,"pydat3 mdme 841 1 3"
-           ,"pydat3 mdme 842 1 3"
-           ,"pydat3 mdme 843 1 3"
-           ,"pydat3 mdme 844 1 3"
-           ,"pydat3 mdme 845 1 3"
-           ,"pydat3 mdme 846 1 3"
-           ,"pydat3 mdme 847 1 3"
-           ,"pydat3 mdme 848 1 3"
-           ,"pydat3 mdme 849 1 3"
-           ,"pydat3 mdme 850 1 3"
-                                         ]
-
-
-# For D- -> phipi-: open D channels only for particle D+
-if DXChannel == "Dphipi":
-    PythiaB.PythiaCommand += [  "pydat3 mdme 673 1 2"
-           ,"pydat3 mdme 674 1 2"
-           ,"pydat3 mdme 675 1 2"
-           ,"pydat3 mdme 676 1 2"
-           ,"pydat3 mdme 677 1 2"
-           ,"pydat3 mdme 678 1 2"
-           ,"pydat3 mdme 679 1 2"
-           ,"pydat3 mdme 680 1 2"
-           ,"pydat3 mdme 681 1 2"
-           ,"pydat3 mdme 682 1 2"
-           ,"pydat3 mdme 683 1 2"
-           ,"pydat3 mdme 684 1 2"
-           ,"pydat3 mdme 685 1 2"
-           ,"pydat3 mdme 686 1 2"
-           ,"pydat3 mdme 687 1 2"
-           ,"pydat3 mdme 688 1 2"
-           ,"pydat3 mdme 689 1 2"
-           ,"pydat3 mdme 690 1 2"
-           ,"pydat3 mdme 691 1 2"
-           ,"pydat3 mdme 692 1 2"
-           ,"pydat3 mdme 693 1 2"
-           ,"pydat3 mdme 694 1 2"
-           ,"pydat3 mdme 695 1 2"
-           ,"pydat3 mdme 696 1 2"
-           ,"pydat3 mdme 697 1 2"
-           ,"pydat3 mdme 698 1 2"
-           ,"pydat3 mdme 699 1 2"
-           ,"pydat3 mdme 700 1 2"                                
-           ,"pydat3 mdme 701 1 2"
-           ,"pydat3 mdme 702 1 2"
-           ,"pydat3 mdme 703 1 2"
-           ,"pydat3 mdme 704 1 2"
-           ,"pydat3 mdme 705 1 2"
-           ,"pydat3 mdme 706 1 2"
-           ,"pydat3 mdme 707 1 2"
-           ,"pydat3 mdme 708 1 2"
-           ,"pydat3 mdme 709 1 2"
-           ,"pydat3 mdme 710 1 2"
-           ,"pydat3 mdme 711 1 2"
-           ,"pydat3 mdme 712 1 2"
-           ,"pydat3 mdme 713 1 2"
-           ,"pydat3 mdme 714 1 2"
-           ,"pydat3 mdme 715 1 2"
-           ,"pydat3 mdme 716 1 2"
-           ,"pydat3 mdme 717 1 2"
-           ,"pydat3 mdme 718 1 2"
-           ,"pydat3 mdme 719 1 2"
-           ,"pydat3 mdme 720 1 2"
-           ,"pydat3 mdme 721 1 2"
-           ,"pydat3 mdme 722 1 2"
-           ,"pydat3 mdme 723 1 2"
-           ,"pydat3 mdme 724 1 2"
-           ,"pydat3 mdme 725 1 2"
-           ,"pydat3 mdme 726 1 2"
-           ,"pydat3 mdme 727 1 2"
-           ,"pydat3 mdme 728 1 2"
-           ,"pydat3 mdme 729 1 2"
-           ,"pydat3 mdme 730 1 2"
-           ,"pydat3 mdme 731 1 2"
-           ,"pydat3 mdme 732 1 2"
-           ,"pydat3 mdme 733 1 2"
-           ,"pydat3 mdme 734 1 2"
-           ,"pydat3 mdme 735 1 2"
-                                         ]   
-
diff --git a/Generators/PythiaB/share/Dsphipi.py b/Generators/PythiaB/share/Dsphipi.py
deleted file mode 100644
index cf1b8ee47a927d6f1c6417f60c592146f70e73cc..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/Dsphipi.py
+++ /dev/null
@@ -1,35 +0,0 @@
-PythiaB = topAlg.PythiaB
-PythiaB.PythiaCommand += [  "pydat3 mdme 818 1 2"
-           ,"pydat3 mdme 819 1 2"
-           ,"pydat3 mdme 820 1 2"
-           ,"pydat3 mdme 821 1 2"
-           ,"pydat3 mdme 822 1 2"
-           ,"pydat3 mdme 823 1 2"
-           ,"pydat3 mdme 824 1 2"
-           ,"pydat3 mdme 825 1 2"
-           ,"pydat3 mdme 826 1 2"
-           ,"pydat3 mdme 827 1 2"
-           ,"pydat3 mdme 828 1 2"
-           ,"pydat3 mdme 829 1 2"
-           ,"pydat3 mdme 830 1 2"
-           ,"pydat3 mdme 831 1 2"
-           ,"pydat3 mdme 832 1 2"
-           ,"pydat3 mdme 833 1 2"
-           ,"pydat3 mdme 834 1 2"
-           ,"pydat3 mdme 835 1 2"
-           ,"pydat3 mdme 836 1 2"
-           ,"pydat3 mdme 837 1 2"
-           ,"pydat3 mdme 838 1 2"
-           ,"pydat3 mdme 839 1 2"
-           ,"pydat3 mdme 840 1 2"
-           ,"pydat3 mdme 841 1 2"
-           ,"pydat3 mdme 842 1 2"
-           ,"pydat3 mdme 843 1 2"
-           ,"pydat3 mdme 844 1 2"
-           ,"pydat3 mdme 845 1 2"
-           ,"pydat3 mdme 846 1 2"
-           ,"pydat3 mdme 847 1 2"
-           ,"pydat3 mdme 848 1 2"
-           ,"pydat3 mdme 849 1 2"
-           ,"pydat3 mdme 850 1 2"
-                                         ]   
diff --git a/Generators/PythiaB/share/Jpsichannels.py b/Generators/PythiaB/share/Jpsichannels.py
deleted file mode 100644
index b9a3e9fbd590e7d21f6d3e96bc3fe6766f8cdfcf..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/Jpsichannels.py
+++ /dev/null
@@ -1,400 +0,0 @@
-PythiaB = topAlg.PythiaB
-#   Force selected anti-b-quark hadron decays (B+, B0, Bs, anti-Lambda_b etc.)
-#
-#   B0 decays
-#   repoint to place 4501, 96 decays including new ones
-PythiaB.PythiaCommand += [  "pydat3 mdcy 134 2 4501" ,"pydat3 mdcy 134 3 96" ,"pydat3 mdcy 134 1 1"
-           ,"pydat3 mdme 4501 1 3" ,"pydat3 mdme 4501 2 42" ,"pydat3 brat 4501 0.02000" ,"pydat3 kfdp 4501 1 12" ,"pydat3 kfdp 4501 2 -11" ,"pydat3 kfdp 4501 3 -411"
-           ,"pydat3 mdme 4502 1 3" ,"pydat3 mdme 4502 2 42" ,"pydat3 brat 4502 0.05500" ,"pydat3 kfdp 4502 1 12" ,"pydat3 kfdp 4502 2 -11" ,"pydat3 kfdp 4502 3 -413"
-           ,"pydat3 mdme 4503 1 3" ,"pydat3 mdme 4503 2 42" ,"pydat3 brat 4503 0.00500" ,"pydat3 kfdp 4503 1 12" ,"pydat3 kfdp 4503 2 -11" ,"pydat3 kfdp 4503 3 -10413"
-           ,"pydat3 mdme 4504 1 3" ,"pydat3 mdme 4504 2 42" ,"pydat3 brat 4504 0.00500" ,"pydat3 kfdp 4504 1 12" ,"pydat3 kfdp 4504 2 -11" ,"pydat3 kfdp 4504 3 -10411"
-           ,"pydat3 mdme 4505 1 3" ,"pydat3 mdme 4505 2 42" ,"pydat3 brat 4505 0.00800" ,"pydat3 kfdp 4505 1 12" ,"pydat3 kfdp 4505 2 -11" ,"pydat3 kfdp 4505 3 -20413"
-           ,"pydat3 mdme 4506 1 3" ,"pydat3 mdme 4506 2 42" ,"pydat3 brat 4506 0.01200" ,"pydat3 kfdp 4506 1 12" ,"pydat3 kfdp 4506 2 -11" ,"pydat3 kfdp 4506 3 -415"
-           ,"pydat3 mdme 4507 1 3" ,"pydat3 mdme 4507 2 42" ,"pydat3 brat 4507 0.02000" ,"pydat3 kfdp 4507 1 14" ,"pydat3 kfdp 4507 2 -13" ,"pydat3 kfdp 4507 3 -411"
-           ,"pydat3 mdme 4508 1 3" ,"pydat3 mdme 4508 2 42" ,"pydat3 brat 4508 0.05500" ,"pydat3 kfdp 4508 1 14" ,"pydat3 kfdp 4508 2 -13" ,"pydat3 kfdp 4508 3 -413"
-           ,"pydat3 mdme 4509 1 3" ,"pydat3 mdme 4509 2 42" ,"pydat3 brat 4509 0.00500" ,"pydat3 kfdp 4509 1 14" ,"pydat3 kfdp 4509 2 -13" ,"pydat3 kfdp 4509 3 -10413"
-           ,"pydat3 mdme 4510 1 3" ,"pydat3 mdme 4510 2 42" ,"pydat3 brat 4510 0.00500" ,"pydat3 kfdp 4510 1 14" ,"pydat3 kfdp 4510 2 -13" ,"pydat3 kfdp 4510 3 -10411"
-           ,"pydat3 mdme 4511 1 3" ,"pydat3 mdme 4511 2 42" ,"pydat3 brat 4511 0.00800" ,"pydat3 kfdp 4511 1 14" ,"pydat3 kfdp 4511 2 -13" ,"pydat3 kfdp 4511 3 -20413"
-           ,"pydat3 mdme 4512 1 3" ,"pydat3 mdme 4512 2 42" ,"pydat3 brat 4512 0.01200" ,"pydat3 kfdp 4512 1 14" ,"pydat3 kfdp 4512 2 -13" ,"pydat3 kfdp 4512 3 -415"
-           ,"pydat3 mdme 4513 1 3" ,"pydat3 mdme 4513 2 42" ,"pydat3 brat 4513 0.01000" ,"pydat3 kfdp 4513 1 16" ,"pydat3 kfdp 4513 2 -15" ,"pydat3 kfdp 4513 3 -411"
-           ,"pydat3 mdme 4514 1 3" ,"pydat3 mdme 4514 2 42" ,"pydat3 brat 4514 0.03000" ,"pydat3 kfdp 4514 1 16" ,"pydat3 kfdp 4514 2 -15" ,"pydat3 kfdp 4514 3 -413"
-           ,"pydat3 mdme 4515 1 3" ,"pydat3 brat 4515 0.00350" ,"pydat3 kfdp 4515 1 -411" ,"pydat3 kfdp 4515 2 211"
-           ,"pydat3 mdme 4516 1 3" ,"pydat3 brat 4516 0.01100" ,"pydat3 kfdp 4516 1 -411" ,"pydat3 kfdp 4516 2 213"
-           ,"pydat3 mdme 4517 1 3" ,"pydat3 brat 4517 0.00550" ,"pydat3 kfdp 4517 1 -411" ,"pydat3 kfdp 4517 2 20213"
-           ,"pydat3 mdme 4518 1 3" ,"pydat3 brat 4518 0.00420" ,"pydat3 kfdp 4518 1 -413" ,"pydat3 kfdp 4518 2 211"
-           ,"pydat3 mdme 4519 1 3" ,"pydat3 brat 4519 0.00900" ,"pydat3 kfdp 4519 1 -413" ,"pydat3 kfdp 4519 2 213"
-           ,"pydat3 mdme 4520 1 3" ,"pydat3 brat 4520 0.01800" ,"pydat3 kfdp 4520 1 -413" ,"pydat3 kfdp 4520 2 20213"
-           ,"pydat3 mdme 4521 1 3" ,"pydat3 brat 4521 0.01500" ,"pydat3 kfdp 4521 1 -411" ,"pydat3 kfdp 4521 2 431"
-           ,"pydat3 mdme 4522 1 3" ,"pydat3 brat 4522 0.01850" ,"pydat3 kfdp 4522 1 -411" ,"pydat3 kfdp 4522 2 433"
-           ,"pydat3 mdme 4523 1 3" ,"pydat3 brat 4523 0.01350" ,"pydat3 kfdp 4523 1 -413" ,"pydat3 kfdp 4523 2 431"
-           ,"pydat3 mdme 4524 1 3" ,"pydat3 brat 4524 0.02500" ,"pydat3 kfdp 4524 1 -413" ,"pydat3 kfdp 4524 2 433"
-           ,"pydat3 mdme 4525 1 3" ,"pydat3 brat 4525 0.00040" ,"pydat3 kfdp 4525 1 441" ,"pydat3 kfdp 4525 2 311"
-           ,"pydat3 mdme 4526 1 3" ,"pydat3 brat 4526 0.00070" ,"pydat3 kfdp 4526 1 441" ,"pydat3 kfdp 4526 2 313"
-           ,"pydat3 mdme 4527 1 1" ,"pydat3 brat 4527 0.00094" ,"pydat3 kfdp 4527 1 443" ,"pydat3 kfdp 4527 2 311"
-           ,"pydat3 mdme 4528 1 1" ,"pydat3 brat 4528 0.00132" ,"pydat3 kfdp 4528 1 443" ,"pydat3 kfdp 4528 2 313"
-           ,"pydat3 mdme 4529 1 1" ,"pydat3 brat 4529 0.00013" ,"pydat3 kfdp 4529 1 20443" ,"pydat3 kfdp 4529 2 311"
-           ,"pydat3 mdme 4530 1 1" ,"pydat3 brat 4530 0.00018" ,"pydat3 kfdp 4530 1 20443" ,"pydat3 kfdp 4530 2 313"
-           ,"pydat3 mdme 4531 1 3" ,"pydat3 mdme 4531 2 48" ,"pydat3 brat 4531 0.42910" ,"pydat3 kfdp 4531 1 2" ,"pydat3 kfdp 4531 2 -1" ,"pydat3 kfdp 4531 3 -4" ,"pydat3 kfdp 4531 4 1"
-           ,"pydat3 mdme 4532 1 3" ,"pydat3 mdme 4532 2 13" ,"pydat3 brat 4532 0.08000" ,"pydat3 kfdp 4532 1 2" ,"pydat3 kfdp 4532 2 -4" ,"pydat3 kfdp 4532 3 -1" ,"pydat3 kfdp 4532 4 1"
-           ,"pydat3 mdme 4533 1 3" ,"pydat3 mdme 4533 2 13" ,"pydat3 brat 4533 0.07000" ,"pydat3 kfdp 4533 1 4" ,"pydat3 kfdp 4533 2 -3" ,"pydat3 kfdp 4533 3 -4" ,"pydat3 kfdp 4533 4 1"
-           ,"pydat3 mdme 4534 1 3" ,"pydat3 mdme 4534 2 13" ,"pydat3 brat 4534 0.02000" ,"pydat3 kfdp 4534 1 4" ,"pydat3 kfdp 4534 2 -4" ,"pydat3 kfdp 4534 3 -3" ,"pydat3 kfdp 4534 4 1"
-           ,"pydat3 mdme 4535 1 3" ,"pydat3 mdme 4535 2 42" ,"pydat3 brat 4535 0.01500" ,"pydat3 kfdp 4535 1 2" ,"pydat3 kfdp 4535 2 -1" ,"pydat3 kfdp 4535 3 -2" ,"pydat3 kfdp 4535 4 1"
-           ,"pydat3 mdme 4536 1 3" ,"pydat3 mdme 4536 2 42" ,"pydat3 brat 4536 0.00500" ,"pydat3 kfdp 4536 1 4" ,"pydat3 kfdp 4536 2 -3" ,"pydat3 kfdp 4536 3 -2" ,"pydat3 kfdp 4536 4 1"
-           ,"pydat3 mdme 4537 1 1" ,"pydat3 brat 4537 0.00140" ,"pydat3 kfdp 4537 1 443" ,"pydat3 kfdp 4537 2 10313"
-           ,"pydat3 mdme 4538 1 1" ,"pydat3 brat 4538 0.00003" ,"pydat3 kfdp 4538 1 443" ,"pydat3 kfdp 4538 2 111"
-           ,"pydat3 mdme 4539 1 1" ,"pydat3 brat 4539 0.00001" ,"pydat3 kfdp 4539 1 443" ,"pydat3 kfdp 4539 2 221"
-           ,"pydat3 mdme 4540 1 1" ,"pydat3 brat 4540 0.00002" ,"pydat3 kfdp 4540 1 443" ,"pydat3 kfdp 4540 2 113"
-           ,"pydat3 mdme 4541 1 1" ,"pydat3 brat 4541 0.00002" ,"pydat3 kfdp 4541 1 443" ,"pydat3 kfdp 4541 2 223"
-           ,"pydat3 mdme 4542 1 1" ,"pydat3 brat 4542 0.00001" ,"pydat3 kfdp 4542 1 443" ,"pydat3 kfdp 4542 2 333"
-           ,"pydat3 mdme 4543 1 1" ,"pydat3 brat 4543 0.00001" ,"pydat3 kfdp 4543 1 443" ,"pydat3 kfdp 4543 2 331"
-           ,"pydat3 mdme 4544 1 1" ,"pydat3 brat 4544 0.00029" ,"pydat3 kfdp 4544 1 443" ,"pydat3 kfdp 4544 2 321" ,"pydat3 kfdp 4544 3 -211"
-           ,"pydat3 mdme 4545 1 1" ,"pydat3 brat 4545 0.00014" ,"pydat3 kfdp 4545 1 443" ,"pydat3 kfdp 4545 2 311" ,"pydat3 kfdp 4545 3 111"
-           ,"pydat3 mdme 4546 1 1" ,"pydat3 brat 4546 0.00008" ,"pydat3 kfdp 4546 1 443" ,"pydat3 kfdp 4546 2 311" ,"pydat3 kfdp 4546 3 333"
-           ,"pydat3 mdme 4547 1 1" ,"pydat3 brat 4547 0.00003" ,"pydat3 kfdp 4547 1 443" ,"pydat3 kfdp 4547 2 211" ,"pydat3 kfdp 4547 3 -211"
-           ,"pydat3 mdme 4548 1 1" ,"pydat3 brat 4548 0.00072" ,"pydat3 kfdp 4548 1 443" ,"pydat3 kfdp 4548 2 323" ,"pydat3 kfdp 4548 3 -211"
-           ,"pydat3 mdme 4549 1 1" ,"pydat3 brat 4549 0.00036" ,"pydat3 kfdp 4549 1 443" ,"pydat3 kfdp 4549 2 313" ,"pydat3 kfdp 4549 3 111"
-           ,"pydat3 mdme 4550 1 1" ,"pydat3 brat 4550 0.00058" ,"pydat3 kfdp 4550 1 443" ,"pydat3 kfdp 4550 2 321" ,"pydat3 kfdp 4550 3 -213"
-           ,"pydat3 mdme 4551 1 1" ,"pydat3 brat 4551 0.00029" ,"pydat3 kfdp 4551 1 443" ,"pydat3 kfdp 4551 2 311" ,"pydat3 kfdp 4551 3 113"
-           ,"pydat3 mdme 4552 1 1" ,"pydat3 brat 4552 0.00059" ,"pydat3 kfdp 4552 1 443" ,"pydat3 kfdp 4552 2 313" ,"pydat3 kfdp 4552 3 211" ,"pydat3 kfdp 4552 4 -211"
-           ,"pydat3 mdme 4553 1 1" ,"pydat3 brat 4553 0.00041" ,"pydat3 kfdp 4553 1 443" ,"pydat3 kfdp 4553 2 311" ,"pydat3 kfdp 4553 3 211" ,"pydat3 kfdp 4553 4 -211"
-           ,"pydat3 mdme 4554 1 1" ,"pydat3 brat 4554 0.00027" ,"pydat3 kfdp 4554 1 443" ,"pydat3 kfdp 4554 2 321" ,"pydat3 kfdp 4554 3 -211" ,"pydat3 kfdp 4554 4 111"
-           ,"pydat3 mdme 4555 1 1" ,"pydat3 brat 4555 0.00027" ,"pydat3 kfdp 4555 1 443" ,"pydat3 kfdp 4555 2 311" ,"pydat3 kfdp 4555 3 111" ,"pydat3 kfdp 4555 4 111"
-           ,"pydat3 mdme 4556 1 1" ,"pydat3 brat 4556 0.00021" ,"pydat3 kfdp 4556 1 100443" ,"pydat3 kfdp 4556 2 311"
-           ,"pydat3 mdme 4557 1 1" ,"pydat3 brat 4557 0.00030" ,"pydat3 kfdp 4557 1 100443" ,"pydat3 kfdp 4557 2 313"
-           ,"pydat3 mdme 4558 1 1" ,"pydat3 brat 4558 0.00032" ,"pydat3 kfdp 4558 1 100443" ,"pydat3 kfdp 4558 2 10313"
-           ,"pydat3 mdme 4559 1 1" ,"pydat3 brat 4559 0.00001" ,"pydat3 kfdp 4559 1 100443" ,"pydat3 kfdp 4559 2 111"
-           ,"pydat3 mdme 4560 1 1" ,"pydat3 brat 4560 0.00007" ,"pydat3 kfdp 4560 1 100443" ,"pydat3 kfdp 4560 2 321" ,"pydat3 kfdp 4560 3 -211"
-           ,"pydat3 mdme 4561 1 1" ,"pydat3 brat 4561 0.00003" ,"pydat3 kfdp 4561 1 100443" ,"pydat3 kfdp 4561 2 311" ,"pydat3 kfdp 4561 3 111"
-           ,"pydat3 mdme 4562 1 1" ,"pydat3 brat 4562 0.00002" ,"pydat3 kfdp 4562 1 100443" ,"pydat3 kfdp 4562 2 311" ,"pydat3 kfdp 4562 3 333"
-           ,"pydat3 mdme 4563 1 1" ,"pydat3 brat 4563 0.00001" ,"pydat3 kfdp 4563 1 100443" ,"pydat3 kfdp 4563 2 211" ,"pydat3 kfdp 4563 3 -211"
-           ,"pydat3 mdme 4564 1 1" ,"pydat3 brat 4564 0.00016" ,"pydat3 kfdp 4564 1 100443" ,"pydat3 kfdp 4564 2 323" ,"pydat3 kfdp 4564 3 -211"
-           ,"pydat3 mdme 4565 1 1" ,"pydat3 brat 4565 0.00008" ,"pydat3 kfdp 4565 1 100443" ,"pydat3 kfdp 4565 2 313" ,"pydat3 kfdp 4565 3 111"
-           ,"pydat3 mdme 4566 1 1" ,"pydat3 brat 4566 0.00013" ,"pydat3 kfdp 4566 1 100443" ,"pydat3 kfdp 4566 2 321" ,"pydat3 kfdp 4566 3 -213"
-           ,"pydat3 mdme 4567 1 1" ,"pydat3 brat 4567 0.00007" ,"pydat3 kfdp 4567 1 100443" ,"pydat3 kfdp 4567 2 311" ,"pydat3 kfdp 4567 3 113"
-           ,"pydat3 mdme 4568 1 1" ,"pydat3 brat 4568 0.00013" ,"pydat3 kfdp 4568 1 100443" ,"pydat3 kfdp 4568 2 313" ,"pydat3 kfdp 4568 3 211" ,"pydat3 kfdp 4568 4 -211"
-           ,"pydat3 mdme 4569 1 1" ,"pydat3 brat 4569 0.00009" ,"pydat3 kfdp 4569 1 100443" ,"pydat3 kfdp 4569 2 311" ,"pydat3 kfdp 4569 3 211" ,"pydat3 kfdp 4569 4 -211"
-           ,"pydat3 mdme 4570 1 1" ,"pydat3 brat 4570 0.00006" ,"pydat3 kfdp 4570 1 100443" ,"pydat3 kfdp 4570 2 321" ,"pydat3 kfdp 4570 3 -211" ,"pydat3 kfdp 4570 4 111"
-           ,"pydat3 mdme 4571 1 1" ,"pydat3 brat 4571 0.00006" ,"pydat3 kfdp 4571 1 100443" ,"pydat3 kfdp 4571 2 311" ,"pydat3 kfdp 4571 3 111" ,"pydat3 kfdp 4571 4 111"
-           ,"pydat3 mdme 4572 1 1" ,"pydat3 brat 4572 0.00019" ,"pydat3 kfdp 4572 1 20443" ,"pydat3 kfdp 4572 2 10313"
-           ,"pydat3 mdme 4573 1 1" ,"pydat3 brat 4573 0.00004" ,"pydat3 kfdp 4573 1 20443" ,"pydat3 kfdp 4573 2 321" ,"pydat3 kfdp 4573 3 -211"
-           ,"pydat3 mdme 4574 1 1" ,"pydat3 brat 4574 0.00002" ,"pydat3 kfdp 4574 1 20443" ,"pydat3 kfdp 4574 2 311" ,"pydat3 kfdp 4574 3 111"
-           ,"pydat3 mdme 4575 1 1" ,"pydat3 brat 4575 0.00001" ,"pydat3 kfdp 4575 1 20443" ,"pydat3 kfdp 4575 2 311" ,"pydat3 kfdp 4575 3 333"
-           ,"pydat3 mdme 4576 1 1" ,"pydat3 brat 4576 0.00010" ,"pydat3 kfdp 4576 1 20443" ,"pydat3 kfdp 4576 2 323" ,"pydat3 kfdp 4576 3 -211"
-           ,"pydat3 mdme 4577 1 1" ,"pydat3 brat 4577 0.00005" ,"pydat3 kfdp 4577 1 20443" ,"pydat3 kfdp 4577 2 313" ,"pydat3 kfdp 4577 3 111"
-           ,"pydat3 mdme 4578 1 1" ,"pydat3 brat 4578 0.00008" ,"pydat3 kfdp 4578 1 20443" ,"pydat3 kfdp 4578 2 321" ,"pydat3 kfdp 4578 3 -213"
-           ,"pydat3 mdme 4579 1 1" ,"pydat3 brat 4579 0.00004" ,"pydat3 kfdp 4579 1 20443" ,"pydat3 kfdp 4579 2 311" ,"pydat3 kfdp 4579 3 113"
-           ,"pydat3 mdme 4580 1 1" ,"pydat3 brat 4580 0.00008" ,"pydat3 kfdp 4580 1 20443" ,"pydat3 kfdp 4580 2 313" ,"pydat3 kfdp 4580 3 211" ,"pydat3 kfdp 4580 4 -211"
-           ,"pydat3 mdme 4581 1 1" ,"pydat3 brat 4581 0.00006" ,"pydat3 kfdp 4581 1 20443" ,"pydat3 kfdp 4581 2 311" ,"pydat3 kfdp 4581 3 211" ,"pydat3 kfdp 4581 4 -211"
-           ,"pydat3 mdme 4582 1 1" ,"pydat3 brat 4582 0.00004" ,"pydat3 kfdp 4582 1 20443" ,"pydat3 kfdp 4582 2 321" ,"pydat3 kfdp 4582 3 -211" ,"pydat3 kfdp 4582 4 111"
-           ,"pydat3 mdme 4583 1 1" ,"pydat3 brat 4583 0.00004" ,"pydat3 kfdp 4583 1 20443" ,"pydat3 kfdp 4583 2 311" ,"pydat3 kfdp 4583 3 111" ,"pydat3 kfdp 4583 4 111"
-           ,"pydat3 mdme 4584 1 1" ,"pydat3 brat 4584 0.00004" ,"pydat3 kfdp 4584 1 445" ,"pydat3 kfdp 4584 2 311"
-           ,"pydat3 mdme 4585 1 1" ,"pydat3 brat 4585 0.00006" ,"pydat3 kfdp 4585 1 445" ,"pydat3 kfdp 4585 2 313"
-           ,"pydat3 mdme 4586 1 1" ,"pydat3 brat 4586 0.00006" ,"pydat3 kfdp 4586 1 445" ,"pydat3 kfdp 4586 2 10313"
-           ,"pydat3 mdme 4587 1 1" ,"pydat3 brat 4587 0.00001" ,"pydat3 kfdp 4587 1 445" ,"pydat3 kfdp 4587 2 321" ,"pydat3 kfdp 4587 3 -211"
-           ,"pydat3 mdme 4588 1 1" ,"pydat3 brat 4588 0.00001" ,"pydat3 kfdp 4588 1 445" ,"pydat3 kfdp 4588 2 311" ,"pydat3 kfdp 4588 3 111"
-           ,"pydat3 mdme 4589 1 1" ,"pydat3 brat 4589 0.00003" ,"pydat3 kfdp 4589 1 445" ,"pydat3 kfdp 4589 2 323" ,"pydat3 kfdp 4589 3 -211"
-           ,"pydat3 mdme 4590 1 1" ,"pydat3 brat 4590 0.00002" ,"pydat3 kfdp 4590 1 445" ,"pydat3 kfdp 4590 2 313" ,"pydat3 kfdp 4590 3 111"
-           ,"pydat3 mdme 4591 1 1" ,"pydat3 brat 4591 0.00003" ,"pydat3 kfdp 4591 1 445" ,"pydat3 kfdp 4591 2 321" ,"pydat3 kfdp 4591 3 -213"
-           ,"pydat3 mdme 4592 1 1" ,"pydat3 brat 4592 0.00001" ,"pydat3 kfdp 4592 1 445" ,"pydat3 kfdp 4592 2 311" ,"pydat3 kfdp 4592 3 113"
-           ,"pydat3 mdme 4593 1 1" ,"pydat3 brat 4593 0.00003" ,"pydat3 kfdp 4593 1 445" ,"pydat3 kfdp 4593 2 313" ,"pydat3 kfdp 4593 3 211" ,"pydat3 kfdp 4593 4 -211"
-           ,"pydat3 mdme 4594 1 1" ,"pydat3 brat 4594 0.00002" ,"pydat3 kfdp 4594 1 445" ,"pydat3 kfdp 4594 2 311" ,"pydat3 kfdp 4594 3 211" ,"pydat3 kfdp 4594 4 -211"
-           ,"pydat3 mdme 4595 1 1" ,"pydat3 brat 4595 0.00001" ,"pydat3 kfdp 4595 1 445" ,"pydat3 kfdp 4595 2 321" ,"pydat3 kfdp 4595 3 -211" ,"pydat3 kfdp 4595 4 111"
-           ,"pydat3 mdme 4596 1 1" ,"pydat3 brat 4596 0.00001" ,"pydat3 kfdp 4596 1 445" ,"pydat3 kfdp 4596 2 311" ,"pydat3 kfdp 4596 3 111" ,"pydat3 kfdp 4596 4 111"
-#   B+ decays
-#   repoint to place 4601, 87 decays including new ones
-           ,"pydat3 mdcy 137 2 4601" ,"pydat3 mdcy 137 3 87" ,"pydat3 mdcy 137 1 1"
-           ,"pydat3 mdme 4601 1 3" ,"pydat3 mdme 4601 2 42" ,"pydat3 brat 4601 0.02000" ,"pydat3 kfdp 4601 1 12" ,"pydat3 kfdp 4601 2 -11" ,"pydat3 kfdp 4601 3 -421"
-           ,"pydat3 mdme 4602 1 3" ,"pydat3 mdme 4602 2 42" ,"pydat3 brat 4602 0.05500" ,"pydat3 kfdp 4602 1 12" ,"pydat3 kfdp 4602 2 -11" ,"pydat3 kfdp 4602 3 -423"
-           ,"pydat3 mdme 4603 1 3" ,"pydat3 mdme 4603 2 42" ,"pydat3 brat 4603 0.00500" ,"pydat3 kfdp 4603 1 12" ,"pydat3 kfdp 4603 2 -11" ,"pydat3 kfdp 4603 3 -10423"
-           ,"pydat3 mdme 4604 1 3" ,"pydat3 mdme 4604 2 42" ,"pydat3 brat 4604 0.00500" ,"pydat3 kfdp 4604 1 12" ,"pydat3 kfdp 4604 2 -11" ,"pydat3 kfdp 4604 3 -10421"
-           ,"pydat3 mdme 4605 1 3" ,"pydat3 mdme 4605 2 42" ,"pydat3 brat 4605 0.00800" ,"pydat3 kfdp 4605 1 12" ,"pydat3 kfdp 4605 2 -11" ,"pydat3 kfdp 4605 3 -20423"
-           ,"pydat3 mdme 4606 1 3" ,"pydat3 mdme 4606 2 42" ,"pydat3 brat 4606 0.01200" ,"pydat3 kfdp 4606 1 12" ,"pydat3 kfdp 4606 2 -11" ,"pydat3 kfdp 4606 3 -425"
-           ,"pydat3 mdme 4607 1 3" ,"pydat3 mdme 4607 2 42" ,"pydat3 brat 4607 0.02000" ,"pydat3 kfdp 4607 1 14" ,"pydat3 kfdp 4607 2 -13" ,"pydat3 kfdp 4607 3 -421"
-           ,"pydat3 mdme 4608 1 3" ,"pydat3 mdme 4608 2 42" ,"pydat3 brat 4608 0.05500" ,"pydat3 kfdp 4608 1 14" ,"pydat3 kfdp 4608 2 -13" ,"pydat3 kfdp 4608 3 -423"
-           ,"pydat3 mdme 4609 1 3" ,"pydat3 mdme 4609 2 42" ,"pydat3 brat 4609 0.00500" ,"pydat3 kfdp 4609 1 14" ,"pydat3 kfdp 4609 2 -13" ,"pydat3 kfdp 4609 3 -10423"
-           ,"pydat3 mdme 4610 1 3" ,"pydat3 mdme 4610 2 42" ,"pydat3 brat 4610 0.00500" ,"pydat3 kfdp 4610 1 14" ,"pydat3 kfdp 4610 2 -13" ,"pydat3 kfdp 4610 3 -10421"
-           ,"pydat3 mdme 4611 1 3" ,"pydat3 mdme 4611 2 42" ,"pydat3 brat 4611 0.00800" ,"pydat3 kfdp 4611 1 14" ,"pydat3 kfdp 4611 2 -13" ,"pydat3 kfdp 4611 3 -20423"
-           ,"pydat3 mdme 4612 1 3" ,"pydat3 mdme 4612 2 42" ,"pydat3 brat 4612 0.01200" ,"pydat3 kfdp 4612 1 14" ,"pydat3 kfdp 4612 2 -13" ,"pydat3 kfdp 4612 3 -425"
-           ,"pydat3 mdme 4613 1 3" ,"pydat3 mdme 4613 2 42" ,"pydat3 brat 4613 0.01000" ,"pydat3 kfdp 4613 1 16" ,"pydat3 kfdp 4613 2 -15" ,"pydat3 kfdp 4613 3 -421"
-           ,"pydat3 mdme 4614 1 3" ,"pydat3 mdme 4614 2 42" ,"pydat3 brat 4614 0.03000" ,"pydat3 kfdp 4614 1 16" ,"pydat3 kfdp 4614 2 -15" ,"pydat3 kfdp 4614 3 -423"
-           ,"pydat3 mdme 4615 1 3" ,"pydat3 brat 4615 0.00350" ,"pydat3 kfdp 4615 1 -421" ,"pydat3 kfdp 4615 2 211"
-           ,"pydat3 mdme 4616 1 3" ,"pydat3 brat 4616 0.01100" ,"pydat3 kfdp 4616 1 -421" ,"pydat3 kfdp 4616 2 213"
-           ,"pydat3 mdme 4617 1 3" ,"pydat3 brat 4617 0.00550" ,"pydat3 kfdp 4617 1 -421" ,"pydat3 kfdp 4617 2 20213"
-           ,"pydat3 mdme 4618 1 3" ,"pydat3 brat 4618 0.00420" ,"pydat3 kfdp 4618 1 -423" ,"pydat3 kfdp 4618 2 211"
-           ,"pydat3 mdme 4619 1 3" ,"pydat3 brat 4619 0.00900" ,"pydat3 kfdp 4619 1 -423" ,"pydat3 kfdp 4619 2 213"
-           ,"pydat3 mdme 4620 1 3" ,"pydat3 brat 4620 0.01800" ,"pydat3 kfdp 4620 1 -423" ,"pydat3 kfdp 4620 2 20213"
-           ,"pydat3 mdme 4621 1 3" ,"pydat3 brat 4621 0.01500" ,"pydat3 kfdp 4621 1 -421" ,"pydat3 kfdp 4621 2 431"
-           ,"pydat3 mdme 4622 1 3" ,"pydat3 brat 4622 0.01850" ,"pydat3 kfdp 4622 1 -421" ,"pydat3 kfdp 4622 2 433"
-           ,"pydat3 mdme 4623 1 3" ,"pydat3 brat 4623 0.01350" ,"pydat3 kfdp 4623 1 -423" ,"pydat3 kfdp 4623 2 431"
-           ,"pydat3 mdme 4624 1 3" ,"pydat3 brat 4624 0.02500" ,"pydat3 kfdp 4624 1 -423" ,"pydat3 kfdp 4624 2 433"
-           ,"pydat3 mdme 4625 1 3" ,"pydat3 brat 4625 0.00040" ,"pydat3 kfdp 4625 1 441" ,"pydat3 kfdp 4625 2 321"
-           ,"pydat3 mdme 4626 1 3" ,"pydat3 brat 4626 0.00070" ,"pydat3 kfdp 4626 1 441" ,"pydat3 kfdp 4626 2 323"
-           ,"pydat3 mdme 4627 1 1" ,"pydat3 brat 4627 0.00094" ,"pydat3 kfdp 4627 1 443" ,"pydat3 kfdp 4627 2 321"
-           ,"pydat3 mdme 4628 1 1" ,"pydat3 brat 4628 0.00132" ,"pydat3 kfdp 4628 1 443" ,"pydat3 kfdp 4628 2 323"
-           ,"pydat3 mdme 4629 1 1" ,"pydat3 brat 4629 0.00013" ,"pydat3 kfdp 4629 1 20443" ,"pydat3 kfdp 4629 2 321"
-           ,"pydat3 mdme 4630 1 1" ,"pydat3 brat 4630 0.00018" ,"pydat3 kfdp 4630 1 20443" ,"pydat3 kfdp 4630 2 323"
-           ,"pydat3 mdme 4631 1 3" ,"pydat3 mdme 4631 2 48" ,"pydat3 brat 4631 0.42910" ,"pydat3 kfdp 4631 1 2" ,"pydat3 kfdp 4631 2 -1" ,"pydat3 kfdp 4631 3 -4" ,"pydat3 kfdp 4631 4 2"
-           ,"pydat3 mdme 4632 1 3" ,"pydat3 mdme 4632 2 13" ,"pydat3 brat 4632 0.08000" ,"pydat3 kfdp 4632 1 2" ,"pydat3 kfdp 4632 2 -4" ,"pydat3 kfdp 4632 3 -1" ,"pydat3 kfdp 4632 4 2"
-           ,"pydat3 mdme 4633 1 3" ,"pydat3 mdme 4633 2 13" ,"pydat3 brat 4633 0.07000" ,"pydat3 kfdp 4633 1 4" ,"pydat3 kfdp 4633 2 -3" ,"pydat3 kfdp 4633 3 -4" ,"pydat3 kfdp 4633 4 2"
-           ,"pydat3 mdme 4634 1 3" ,"pydat3 mdme 4634 2 13" ,"pydat3 brat 4634 0.02000" ,"pydat3 kfdp 4634 1 4" ,"pydat3 kfdp 4634 2 -4" ,"pydat3 kfdp 4634 3 -3" ,"pydat3 kfdp 4634 4 2"
-           ,"pydat3 mdme 4635 1 3" ,"pydat3 mdme 4635 2 42" ,"pydat3 brat 4635 0.01500" ,"pydat3 kfdp 4635 1 2" ,"pydat3 kfdp 4635 2 -1" ,"pydat3 kfdp 4635 3 -2" ,"pydat3 kfdp 4635 4 2"
-           ,"pydat3 mdme 4636 1 3" ,"pydat3 mdme 4636 2 42" ,"pydat3 brat 4636 0.00500" ,"pydat3 kfdp 4636 1 4" ,"pydat3 kfdp 4636 2 -3" ,"pydat3 kfdp 4636 3 -2" ,"pydat3 kfdp 4636 4 2"
-           ,"pydat3 mdme 4637 1 1" ,"pydat3 brat 4637 0.00140" ,"pydat3 kfdp 4637 1 443" ,"pydat3 kfdp 4637 2 10323"
-           ,"pydat3 mdme 4638 1 1" ,"pydat3 brat 4638 0.00003" ,"pydat3 kfdp 4638 1 443" ,"pydat3 kfdp 4638 2 211"
-           ,"pydat3 mdme 4639 1 1" ,"pydat3 brat 4639 0.00002" ,"pydat3 kfdp 4639 1 443" ,"pydat3 kfdp 4639 2 213"
-           ,"pydat3 mdme 4640 1 1" ,"pydat3 brat 4640 0.00029" ,"pydat3 kfdp 4640 1 443" ,"pydat3 kfdp 4640 2 311" ,"pydat3 kfdp 4640 3 211"
-           ,"pydat3 mdme 4641 1 1" ,"pydat3 brat 4641 0.00014" ,"pydat3 kfdp 4641 1 443" ,"pydat3 kfdp 4641 2 321" ,"pydat3 kfdp 4641 3 111"
-           ,"pydat3 mdme 4642 1 1" ,"pydat3 brat 4642 0.00005" ,"pydat3 kfdp 4642 1 443" ,"pydat3 kfdp 4642 2 321" ,"pydat3 kfdp 4642 3 333"
-           ,"pydat3 mdme 4643 1 1" ,"pydat3 brat 4643 0.00076" ,"pydat3 kfdp 4643 1 443" ,"pydat3 kfdp 4643 2 313" ,"pydat3 kfdp 4643 3 211"
-           ,"pydat3 mdme 4644 1 1" ,"pydat3 brat 4644 0.00038" ,"pydat3 kfdp 4644 1 443" ,"pydat3 kfdp 4644 2 323" ,"pydat3 kfdp 4644 3 111"
-           ,"pydat3 mdme 4645 1 1" ,"pydat3 brat 4645 0.00058" ,"pydat3 kfdp 4645 1 443" ,"pydat3 kfdp 4645 2 311" ,"pydat3 kfdp 4645 3 213"
-           ,"pydat3 mdme 4646 1 1" ,"pydat3 brat 4646 0.00029" ,"pydat3 kfdp 4646 1 443" ,"pydat3 kfdp 4646 2 321" ,"pydat3 kfdp 4646 3 113"
-           ,"pydat3 mdme 4647 1 1" ,"pydat3 brat 4647 0.00001" ,"pydat3 kfdp 4647 1 443" ,"pydat3 kfdp 4647 2 -3122" ,"pydat3 kfdp 4647 3 2212"
-           ,"pydat3 mdme 4648 1 1" ,"pydat3 brat 4648 0.00069" ,"pydat3 kfdp 4648 1 443" ,"pydat3 kfdp 4648 2 321" ,"pydat3 kfdp 4648 3 -211" ,"pydat3 kfdp 4648 4 211"
-           ,"pydat3 mdme 4649 1 1" ,"pydat3 brat 4649 0.00045" ,"pydat3 kfdp 4649 1 443" ,"pydat3 kfdp 4649 2 321" ,"pydat3 kfdp 4649 3 111" ,"pydat3 kfdp 4649 4 111"
-           ,"pydat3 mdme 4650 1 1" ,"pydat3 brat 4650 0.00045" ,"pydat3 kfdp 4650 1 443" ,"pydat3 kfdp 4650 2 311" ,"pydat3 kfdp 4650 3 211" ,"pydat3 kfdp 4650 4 111"
-           ,"pydat3 mdme 4651 1 1" ,"pydat3 brat 4651 0.00021" ,"pydat3 kfdp 4651 1 100443" ,"pydat3 kfdp 4651 2 321"
-           ,"pydat3 mdme 4652 1 1" ,"pydat3 brat 4652 0.00030" ,"pydat3 kfdp 4652 1 100443" ,"pydat3 kfdp 4652 2 323"
-           ,"pydat3 mdme 4653 1 1" ,"pydat3 brat 4653 0.00032" ,"pydat3 kfdp 4653 1 100443" ,"pydat3 kfdp 4653 2 10323"
-           ,"pydat3 mdme 4654 1 1" ,"pydat3 brat 4654 0.00001" ,"pydat3 kfdp 4654 1 100443" ,"pydat3 kfdp 4654 2 211"
-           ,"pydat3 mdme 4655 1 1" ,"pydat3 brat 4655 0.00007" ,"pydat3 kfdp 4655 1 100443" ,"pydat3 kfdp 4655 2 311" ,"pydat3 kfdp 4655 3 211"
-           ,"pydat3 mdme 4656 1 1" ,"pydat3 brat 4656 0.00003" ,"pydat3 kfdp 4656 1 100443" ,"pydat3 kfdp 4656 2 321" ,"pydat3 kfdp 4656 3 111"
-           ,"pydat3 mdme 4657 1 1" ,"pydat3 brat 4657 0.00001" ,"pydat3 kfdp 4657 1 100443" ,"pydat3 kfdp 4657 2 321" ,"pydat3 kfdp 4657 3 333"
-           ,"pydat3 mdme 4658 1 1" ,"pydat3 brat 4658 0.00017" ,"pydat3 kfdp 4658 1 100443" ,"pydat3 kfdp 4658 2 313" ,"pydat3 kfdp 4658 3 211"
-           ,"pydat3 mdme 4659 1 1" ,"pydat3 brat 4659 0.00009" ,"pydat3 kfdp 4659 1 100443" ,"pydat3 kfdp 4659 2 323" ,"pydat3 kfdp 4659 3 111"
-           ,"pydat3 mdme 4660 1 1" ,"pydat3 brat 4660 0.00013" ,"pydat3 kfdp 4660 1 100443" ,"pydat3 kfdp 4660 2 311" ,"pydat3 kfdp 4660 3 213"
-           ,"pydat3 mdme 4661 1 1" ,"pydat3 brat 4661 0.00007" ,"pydat3 kfdp 4661 1 100443" ,"pydat3 kfdp 4661 2 321" ,"pydat3 kfdp 4661 3 113"
-           ,"pydat3 mdme 4662 1 1" ,"pydat3 brat 4662 0.00016" ,"pydat3 kfdp 4662 1 100443" ,"pydat3 kfdp 4662 2 321" ,"pydat3 kfdp 4662 3 -211" ,"pydat3 kfdp 4662 4 211"
-           ,"pydat3 mdme 4663 1 1" ,"pydat3 brat 4663 0.00010" ,"pydat3 kfdp 4663 1 100443" ,"pydat3 kfdp 4663 2 321" ,"pydat3 kfdp 4663 3 111" ,"pydat3 kfdp 4663 4 111"
-           ,"pydat3 mdme 4664 1 1" ,"pydat3 brat 4664 0.00010" ,"pydat3 kfdp 4664 1 100443" ,"pydat3 kfdp 4664 2 311" ,"pydat3 kfdp 4664 3 211" ,"pydat3 kfdp 4664 4 111"
-           ,"pydat3 mdme 4665 1 1" ,"pydat3 brat 4665 0.00019" ,"pydat3 kfdp 4665 1 20443" ,"pydat3 kfdp 4665 2 10323"
-           ,"pydat3 mdme 4666 1 1" ,"pydat3 brat 4666 0.00004" ,"pydat3 kfdp 4666 1 20443" ,"pydat3 kfdp 4666 2 311" ,"pydat3 kfdp 4666 3 211"
-           ,"pydat3 mdme 4667 1 1" ,"pydat3 brat 4667 0.00002" ,"pydat3 kfdp 4667 1 20443" ,"pydat3 kfdp 4667 2 321" ,"pydat3 kfdp 4667 3 111"
-           ,"pydat3 mdme 4668 1 1" ,"pydat3 brat 4668 0.00001" ,"pydat3 kfdp 4668 1 20443" ,"pydat3 kfdp 4668 2 321" ,"pydat3 kfdp 4668 3 333"
-           ,"pydat3 mdme 4669 1 1" ,"pydat3 brat 4669 0.00010" ,"pydat3 kfdp 4669 1 20443" ,"pydat3 kfdp 4669 2 313" ,"pydat3 kfdp 4669 3 211"
-           ,"pydat3 mdme 4670 1 1" ,"pydat3 brat 4670 0.00005" ,"pydat3 kfdp 4670 1 20443" ,"pydat3 kfdp 4670 2 323" ,"pydat3 kfdp 4670 3 111"
-           ,"pydat3 mdme 4671 1 1" ,"pydat3 brat 4671 0.00008" ,"pydat3 kfdp 4671 1 20443" ,"pydat3 kfdp 4671 2 311" ,"pydat3 kfdp 4671 3 213"
-           ,"pydat3 mdme 4672 1 1" ,"pydat3 brat 4672 0.00004" ,"pydat3 kfdp 4672 1 20443" ,"pydat3 kfdp 4672 2 321" ,"pydat3 kfdp 4672 3 113"
-           ,"pydat3 mdme 4673 1 1" ,"pydat3 brat 4673 0.00009" ,"pydat3 kfdp 4673 1 20443" ,"pydat3 kfdp 4673 2 321" ,"pydat3 kfdp 4673 3 -211" ,"pydat3 kfdp 4673 4 211"
-           ,"pydat3 mdme 4674 1 1" ,"pydat3 brat 4674 0.00006" ,"pydat3 kfdp 4674 1 20443" ,"pydat3 kfdp 4674 2 321" ,"pydat3 kfdp 4674 3 111" ,"pydat3 kfdp 4674 4 111"
-           ,"pydat3 mdme 4675 1 1" ,"pydat3 brat 4675 0.00006" ,"pydat3 kfdp 4675 1 20443" ,"pydat3 kfdp 4675 2 311" ,"pydat3 kfdp 4675 3 211" ,"pydat3 kfdp 4675 4 111"
-           ,"pydat3 mdme 4676 1 1" ,"pydat3 brat 4676 0.00004" ,"pydat3 kfdp 4676 1 443" ,"pydat3 kfdp 4676 2 321"
-           ,"pydat3 mdme 4677 1 1" ,"pydat3 brat 4677 0.00006" ,"pydat3 kfdp 4677 1 443" ,"pydat3 kfdp 4677 2 323"
-           ,"pydat3 mdme 4678 1 1" ,"pydat3 brat 4678 0.00006" ,"pydat3 kfdp 4678 1 443" ,"pydat3 kfdp 4678 2 10323"
-           ,"pydat3 mdme 4679 1 1" ,"pydat3 brat 4679 0.00001" ,"pydat3 kfdp 4679 1 443" ,"pydat3 kfdp 4679 2 311" ,"pydat3 kfdp 4679 3 211"
-           ,"pydat3 mdme 4680 1 1" ,"pydat3 brat 4680 0.00001" ,"pydat3 kfdp 4680 1 443" ,"pydat3 kfdp 4680 2 321" ,"pydat3 kfdp 4680 3 111"
-           ,"pydat3 mdme 4681 1 1" ,"pydat3 brat 4681 0.00003" ,"pydat3 kfdp 4681 1 443" ,"pydat3 kfdp 4681 2 313" ,"pydat3 kfdp 4681 3 211"
-           ,"pydat3 mdme 4682 1 1" ,"pydat3 brat 4682 0.00002" ,"pydat3 kfdp 4682 1 443" ,"pydat3 kfdp 4682 2 323" ,"pydat3 kfdp 4682 3 111"
-           ,"pydat3 mdme 4683 1 1" ,"pydat3 brat 4683 0.00002" ,"pydat3 kfdp 4683 1 443" ,"pydat3 kfdp 4683 2 311" ,"pydat3 kfdp 4683 3 213"
-           ,"pydat3 mdme 4684 1 1" ,"pydat3 brat 4684 0.00001" ,"pydat3 kfdp 4684 1 443" ,"pydat3 kfdp 4684 2 321" ,"pydat3 kfdp 4684 3 113"
-           ,"pydat3 mdme 4685 1 1" ,"pydat3 brat 4685 0.00003" ,"pydat3 kfdp 4685 1 443" ,"pydat3 kfdp 4685 2 321" ,"pydat3 kfdp 4685 3 -211" ,"pydat3 kfdp 4685 4 211"
-           ,"pydat3 mdme 4686 1 1" ,"pydat3 brat 4686 0.00002" ,"pydat3 kfdp 4686 1 443" ,"pydat3 kfdp 4686 2 321" ,"pydat3 kfdp 4686 3 111" ,"pydat3 kfdp 4686 4 111"
-           ,"pydat3 mdme 4687 1 1" ,"pydat3 brat 4687 0.00002" ,"pydat3 kfdp 4687 1 443" ,"pydat3 kfdp 4687 2 311" ,"pydat3 kfdp 4687 3 211" ,"pydat3 kfdp 4687 4 111"
-#   Bs decays
-#   repoint to place 4701, 73 decays including new ones
-           ,"pydat3 mdcy 140 2 4701" ,"pydat3 mdcy 140 3 73" ,"pydat3 mdcy 140 1 1"
-           ,"pydat3 mdme 4701 1 3" ,"pydat3 mdme 4701 2 42" ,"pydat3 brat 4701 0.02000" ,"pydat3 kfdp 4701 1 12" ,"pydat3 kfdp 4701 2 -11" ,"pydat3 kfdp 4701 3 -431"
-           ,"pydat3 mdme 4702 1 3" ,"pydat3 mdme 4702 2 42" ,"pydat3 brat 4702 0.05500" ,"pydat3 kfdp 4702 1 12" ,"pydat3 kfdp 4702 2 -11" ,"pydat3 kfdp 4702 3 -433"
-           ,"pydat3 mdme 4703 1 3" ,"pydat3 mdme 4703 2 42" ,"pydat3 brat 4703 0.00500" ,"pydat3 kfdp 4703 1 12" ,"pydat3 kfdp 4703 2 -11" ,"pydat3 kfdp 4703 3 -10433"
-           ,"pydat3 mdme 4704 1 3" ,"pydat3 mdme 4704 2 42" ,"pydat3 brat 4704 0.00500" ,"pydat3 kfdp 4704 1 12" ,"pydat3 kfdp 4704 2 -11" ,"pydat3 kfdp 4704 3 -10431"
-           ,"pydat3 mdme 4705 1 3" ,"pydat3 mdme 4705 2 42" ,"pydat3 brat 4705 0.00800" ,"pydat3 kfdp 4705 1 12" ,"pydat3 kfdp 4705 2 -11" ,"pydat3 kfdp 4705 3 -20433"
-           ,"pydat3 mdme 4706 1 3" ,"pydat3 mdme 4706 2 42" ,"pydat3 brat 4706 0.01200" ,"pydat3 kfdp 4706 1 12" ,"pydat3 kfdp 4706 2 -11" ,"pydat3 kfdp 4706 3 -435"
-           ,"pydat3 mdme 4707 1 3" ,"pydat3 mdme 4707 2 42" ,"pydat3 brat 4707 0.02000" ,"pydat3 kfdp 4707 1 14" ,"pydat3 kfdp 4707 2 -13" ,"pydat3 kfdp 4707 3 -431"
-           ,"pydat3 mdme 4708 1 3" ,"pydat3 mdme 4708 2 42" ,"pydat3 brat 4708 0.05500" ,"pydat3 kfdp 4708 1 14" ,"pydat3 kfdp 4708 2 -13" ,"pydat3 kfdp 4708 3 -433"
-           ,"pydat3 mdme 4709 1 3" ,"pydat3 mdme 4709 2 42" ,"pydat3 brat 4709 0.00500" ,"pydat3 kfdp 4709 1 14" ,"pydat3 kfdp 4709 2 -13" ,"pydat3 kfdp 4709 3 -10433"
-           ,"pydat3 mdme 4710 1 3" ,"pydat3 mdme 4710 2 42" ,"pydat3 brat 4710 0.00500" ,"pydat3 kfdp 4710 1 14" ,"pydat3 kfdp 4710 2 -13" ,"pydat3 kfdp 4710 3 -10431"
-           ,"pydat3 mdme 4711 1 3" ,"pydat3 mdme 4711 2 42" ,"pydat3 brat 4711 0.00800" ,"pydat3 kfdp 4711 1 14" ,"pydat3 kfdp 4711 2 -13" ,"pydat3 kfdp 4711 3 -20433"
-           ,"pydat3 mdme 4712 1 3" ,"pydat3 mdme 4712 2 42" ,"pydat3 brat 4712 0.01200" ,"pydat3 kfdp 4712 1 14" ,"pydat3 kfdp 4712 2 -13" ,"pydat3 kfdp 4712 3 -435"
-           ,"pydat3 mdme 4713 1 3" ,"pydat3 mdme 4713 2 42" ,"pydat3 brat 4713 0.01000" ,"pydat3 kfdp 4713 1 16" ,"pydat3 kfdp 4713 2 -15" ,"pydat3 kfdp 4713 3 -431"
-           ,"pydat3 mdme 4714 1 3" ,"pydat3 mdme 4714 2 42" ,"pydat3 brat 4714 0.03000" ,"pydat3 kfdp 4714 1 16" ,"pydat3 kfdp 4714 2 -15" ,"pydat3 kfdp 4714 3 -433"
-           ,"pydat3 mdme 4715 1 3" ,"pydat3 brat 4715 0.00350" ,"pydat3 kfdp 4715 1 -431" ,"pydat3 kfdp 4715 2 211"
-           ,"pydat3 mdme 4716 1 3" ,"pydat3 brat 4716 0.01100" ,"pydat3 kfdp 4716 1 -431" ,"pydat3 kfdp 4716 2 213"
-           ,"pydat3 mdme 4717 1 3" ,"pydat3 brat 4717 0.00550" ,"pydat3 kfdp 4717 1 -431" ,"pydat3 kfdp 4717 2 20213"
-           ,"pydat3 mdme 4718 1 3" ,"pydat3 brat 4718 0.00420" ,"pydat3 kfdp 4718 1 -433" ,"pydat3 kfdp 4718 2 211"
-           ,"pydat3 mdme 4719 1 3" ,"pydat3 brat 4719 0.00900" ,"pydat3 kfdp 4719 1 -433" ,"pydat3 kfdp 4719 2 213"
-           ,"pydat3 mdme 4720 1 3" ,"pydat3 brat 4720 0.01800" ,"pydat3 kfdp 4720 1 -433" ,"pydat3 kfdp 4720 2 20213"
-           ,"pydat3 mdme 4721 1 3" ,"pydat3 brat 4721 0.01500" ,"pydat3 kfdp 4721 1 -431" ,"pydat3 kfdp 4721 2 431"
-           ,"pydat3 mdme 4722 1 3" ,"pydat3 brat 4722 0.01850" ,"pydat3 kfdp 4722 1 -431" ,"pydat3 kfdp 4722 2 433"
-           ,"pydat3 mdme 4723 1 3" ,"pydat3 brat 4723 0.01350" ,"pydat3 kfdp 4723 1 -433" ,"pydat3 kfdp 4723 2 431"
-           ,"pydat3 mdme 4724 1 3" ,"pydat3 brat 4724 0.02500" ,"pydat3 kfdp 4724 1 -433" ,"pydat3 kfdp 4724 2 433"
-           ,"pydat3 mdme 4725 1 3" ,"pydat3 brat 4725 0.00020" ,"pydat3 kfdp 4725 1 441" ,"pydat3 kfdp 4725 2 221"
-           ,"pydat3 mdme 4726 1 3" ,"pydat3 brat 4726 0.00020" ,"pydat3 kfdp 4726 1 441" ,"pydat3 kfdp 4726 2 331"
-           ,"pydat3 mdme 4727 1 3" ,"pydat3 brat 4727 0.00070" ,"pydat3 kfdp 4727 1 441" ,"pydat3 kfdp 4727 2 333"
-           ,"pydat3 mdme 4728 1 1" ,"pydat3 brat 4728 0.00012" ,"pydat3 kfdp 4728 1 443" ,"pydat3 kfdp 4728 2 221"
-           ,"pydat3 mdme 4729 1 1" ,"pydat3 brat 4729 0.00034" ,"pydat3 kfdp 4729 1 443" ,"pydat3 kfdp 4729 2 331"
-           ,"pydat3 mdme 4730 1 1" ,"pydat3 brat 4730 0.00093" ,"pydat3 kfdp 4730 1 443" ,"pydat3 kfdp 4730 2 333"
-           ,"pydat3 mdme 4731 1 1" ,"pydat3 brat 4731 0.00002" ,"pydat3 kfdp 4731 1 20443" ,"pydat3 kfdp 4731 2 221"
-           ,"pydat3 mdme 4732 1 1" ,"pydat3 brat 4732 0.00005" ,"pydat3 kfdp 4732 1 20443" ,"pydat3 kfdp 4732 2 331"
-           ,"pydat3 mdme 4733 1 1" ,"pydat3 brat 4733 0.00013" ,"pydat3 kfdp 4733 1 20443" ,"pydat3 kfdp 4733 2 333"
-           ,"pydat3 mdme 4734 1 3" ,"pydat3 mdme 4734 2 48" ,"pydat3 brat 4734 0.42910" ,"pydat3 kfdp 4734 1 2" ,"pydat3 kfdp 4734 2 -1" ,"pydat3 kfdp 4734 3 -4" ,"pydat3 kfdp 4734 4 3"
-           ,"pydat3 mdme 4735 1 3" ,"pydat3 mdme 4735 2 13" ,"pydat3 brat 4735 0.08000" ,"pydat3 kfdp 4735 1 2" ,"pydat3 kfdp 4735 2 -4" ,"pydat3 kfdp 4735 3 -1" ,"pydat3 kfdp 4735 4 3"
-           ,"pydat3 mdme 4736 1 3" ,"pydat3 mdme 4736 2 13" ,"pydat3 brat 4736 0.07000" ,"pydat3 kfdp 4736 1 4" ,"pydat3 kfdp 4736 2 -3" ,"pydat3 kfdp 4736 3 -4" ,"pydat3 kfdp 4736 4 3"
-           ,"pydat3 mdme 4737 1 3" ,"pydat3 mdme 4737 2 13" ,"pydat3 brat 4737 0.02000" ,"pydat3 kfdp 4737 1 4" ,"pydat3 kfdp 4737 2 -4" ,"pydat3 kfdp 4737 3 -3" ,"pydat3 kfdp 4737 4 3"
-           ,"pydat3 mdme 4738 1 3" ,"pydat3 mdme 4738 2 42" ,"pydat3 brat 4738 0.01500" ,"pydat3 kfdp 4738 1 2" ,"pydat3 kfdp 4738 2 -1" ,"pydat3 kfdp 4738 3 -2" ,"pydat3 kfdp 4738 4 3"
-           ,"pydat3 mdme 4739 1 3" ,"pydat3 mdme 4739 2 42" ,"pydat3 brat 4739 0.00500" ,"pydat3 kfdp 4739 1 4" ,"pydat3 kfdp 4739 2 -3" ,"pydat3 kfdp 4739 3 -2" ,"pydat3 kfdp 4739 4 3"
-           ,"pydat3 mdme 4740 1 1" ,"pydat3 brat 4740 0.00130" ,"pydat3 kfdp 4740 1 443" ,"pydat3 kfdp 4740 2 321" ,"pydat3 kfdp 4740 3 -321"
-           ,"pydat3 mdme 4741 1 1" ,"pydat3 brat 4741 0.00130" ,"pydat3 kfdp 4741 1 443" ,"pydat3 kfdp 4741 2 311" ,"pydat3 kfdp 4741 3 -311"
-           ,"pydat3 mdme 4742 1 1" ,"pydat3 brat 4742 0.00012" ,"pydat3 kfdp 4742 1 443" ,"pydat3 kfdp 4742 2 221" ,"pydat3 kfdp 4742 3 111"
-           ,"pydat3 mdme 4743 1 1" ,"pydat3 brat 4743 0.00034" ,"pydat3 kfdp 4743 1 443" ,"pydat3 kfdp 4743 2 331" ,"pydat3 kfdp 4743 3 111"
-           ,"pydat3 mdme 4744 1 1" ,"pydat3 brat 4744 0.00093" ,"pydat3 kfdp 4744 1 443" ,"pydat3 kfdp 4744 2 333" ,"pydat3 kfdp 4744 3 111"
-           ,"pydat3 mdme 4745 1 1" ,"pydat3 brat 4745 0.00130" ,"pydat3 kfdp 4745 1 443" ,"pydat3 kfdp 4745 2 321" ,"pydat3 kfdp 4745 3 -321" ,"pydat3 kfdp 4745 4 111"
-           ,"pydat3 mdme 4746 1 1" ,"pydat3 brat 4746 0.00130" ,"pydat3 kfdp 4746 1 443" ,"pydat3 kfdp 4746 2 311" ,"pydat3 kfdp 4746 3 -311" ,"pydat3 kfdp 4746 4 111"
-           ,"pydat3 mdme 4747 1 1" ,"pydat3 brat 4747 0.00003" ,"pydat3 kfdp 4747 1 100443" ,"pydat3 kfdp 4747 2 221"
-           ,"pydat3 mdme 4748 1 1" ,"pydat3 brat 4748 0.00008" ,"pydat3 kfdp 4748 1 100443" ,"pydat3 kfdp 4748 2 331"
-           ,"pydat3 mdme 4749 1 1" ,"pydat3 brat 4749 0.00021" ,"pydat3 kfdp 4749 1 100443" ,"pydat3 kfdp 4749 2 333"
-           ,"pydat3 mdme 4750 1 1" ,"pydat3 brat 4750 0.00030" ,"pydat3 kfdp 4750 1 100443" ,"pydat3 kfdp 4750 2 321" ,"pydat3 kfdp 4750 3 -321"
-           ,"pydat3 mdme 4751 1 1" ,"pydat3 brat 4751 0.00030" ,"pydat3 kfdp 4751 1 100443" ,"pydat3 kfdp 4751 2 311" ,"pydat3 kfdp 4751 3 -311"
-           ,"pydat3 mdme 4752 1 1" ,"pydat3 brat 4752 0.00003" ,"pydat3 kfdp 4752 1 100443" ,"pydat3 kfdp 4752 2 221" ,"pydat3 kfdp 4752 3 111"
-           ,"pydat3 mdme 4753 1 1" ,"pydat3 brat 4753 0.00008" ,"pydat3 kfdp 4753 1 100443" ,"pydat3 kfdp 4753 2 331" ,"pydat3 kfdp 4753 3 111"
-           ,"pydat3 mdme 4754 1 1" ,"pydat3 brat 4754 0.00021" ,"pydat3 kfdp 4754 1 100443" ,"pydat3 kfdp 4754 2 333" ,"pydat3 kfdp 4754 3 111"
-           ,"pydat3 mdme 4755 1 1" ,"pydat3 brat 4755 0.00030" ,"pydat3 kfdp 4755 1 100443" ,"pydat3 kfdp 4755 2 321" ,"pydat3 kfdp 4755 3 -321" ,"pydat3 kfdp 4755 4 111"
-           ,"pydat3 mdme 4756 1 1" ,"pydat3 brat 4756 0.00030" ,"pydat3 kfdp 4756 1 100443" ,"pydat3 kfdp 4756 2 311" ,"pydat3 kfdp 4756 3 -311" ,"pydat3 kfdp 4756 4 111"
-           ,"pydat3 mdme 4757 1 1" ,"pydat3 brat 4757 0.00018" ,"pydat3 kfdp 4757 1 20443" ,"pydat3 kfdp 4757 2 321" ,"pydat3 kfdp 4757 3 -321"
-           ,"pydat3 mdme 4758 1 1" ,"pydat3 brat 4758 0.00018" ,"pydat3 kfdp 4758 1 20443" ,"pydat3 kfdp 4758 2 311" ,"pydat3 kfdp 4758 3 -311"
-           ,"pydat3 mdme 4759 1 1" ,"pydat3 brat 4759 0.00002" ,"pydat3 kfdp 4759 1 20443" ,"pydat3 kfdp 4759 2 221" ,"pydat3 kfdp 4759 3 111"
-           ,"pydat3 mdme 4760 1 1" ,"pydat3 brat 4760 0.00005" ,"pydat3 kfdp 4760 1 20443" ,"pydat3 kfdp 4760 2 331" ,"pydat3 kfdp 4760 3 111"
-           ,"pydat3 mdme 4761 1 1" ,"pydat3 brat 4761 0.00013" ,"pydat3 kfdp 4761 1 20443" ,"pydat3 kfdp 4761 2 333" ,"pydat3 kfdp 4761 3 111"
-           ,"pydat3 mdme 4762 1 1" ,"pydat3 brat 4762 0.00018" ,"pydat3 kfdp 4762 1 20443" ,"pydat3 kfdp 4762 2 321" ,"pydat3 kfdp 4762 3 -321" ,"pydat3 kfdp 4762 4 111"
-           ,"pydat3 mdme 4763 1 1" ,"pydat3 brat 4763 0.00018" ,"pydat3 kfdp 4763 1 20443" ,"pydat3 kfdp 4763 2 311" ,"pydat3 kfdp 4763 3 -311" ,"pydat3 kfdp 4763 4 111"
-           ,"pydat3 mdme 4764 1 1" ,"pydat3 brat 4764 0.00001" ,"pydat3 kfdp 4764 1 445" ,"pydat3 kfdp 4764 2 221"
-           ,"pydat3 mdme 4765 1 1" ,"pydat3 brat 4765 0.00002" ,"pydat3 kfdp 4765 1 445" ,"pydat3 kfdp 4765 2 331"
-           ,"pydat3 mdme 4766 1 1" ,"pydat3 brat 4766 0.00004" ,"pydat3 kfdp 4766 1 445" ,"pydat3 kfdp 4766 2 333"
-           ,"pydat3 mdme 4767 1 1" ,"pydat3 brat 4767 0.00006" ,"pydat3 kfdp 4767 1 445" ,"pydat3 kfdp 4767 2 321" ,"pydat3 kfdp 4767 3 -321"
-           ,"pydat3 mdme 4768 1 1" ,"pydat3 brat 4768 0.00006" ,"pydat3 kfdp 4768 1 445" ,"pydat3 kfdp 4768 2 311" ,"pydat3 kfdp 4768 3 -311"
-           ,"pydat3 mdme 4769 1 1" ,"pydat3 brat 4769 0.00001" ,"pydat3 kfdp 4769 1 445" ,"pydat3 kfdp 4769 2 221" ,"pydat3 kfdp 4769 3 111"
-           ,"pydat3 mdme 4770 1 1" ,"pydat3 brat 4770 0.00002" ,"pydat3 kfdp 4770 1 445" ,"pydat3 kfdp 4770 2 331" ,"pydat3 kfdp 4770 3 111"
-           ,"pydat3 mdme 4771 1 1" ,"pydat3 brat 4771 0.00004" ,"pydat3 kfdp 4771 1 445" ,"pydat3 kfdp 4771 2 333" ,"pydat3 kfdp 4771 3 111"
-           ,"pydat3 mdme 4772 1 1" ,"pydat3 brat 4772 0.00006" ,"pydat3 kfdp 4772 1 445" ,"pydat3 kfdp 4772 2 321" ,"pydat3 kfdp 4772 3 -321" ,"pydat3 kfdp 4772 4 111"
-           ,"pydat3 mdme 4773 1 1" ,"pydat3 brat 4773 0.00006" ,"pydat3 kfdp 4773 1 445" ,"pydat3 kfdp 4773 2 311" ,"pydat3 kfdp 4773 3 -311" ,"pydat3 kfdp 4773 4 111"
-#   Lambda_b decays
-#   repoint to place 4801, 55 decays including new ones
-           ,"pydat3 mdcy 210 2 4801" ,"pydat3 mdcy 210 3 55" ,"pydat3 mdcy 210 1 1"
-           ,"pydat3 mdme 4801 1 2" ,"pydat3 mdme 4801 2 42" ,"pydat3 brat 4801 0.10500" ,"pydat3 kfdp 4801 1 -12" ,"pydat3 kfdp 4801 2 11" ,"pydat3 kfdp 4801 3 4122"
-           ,"pydat3 mdme 4802 1 2" ,"pydat3 mdme 4802 2 42" ,"pydat3 brat 4802 0.10500" ,"pydat3 kfdp 4802 1 -14" ,"pydat3 kfdp 4802 2 13" ,"pydat3 kfdp 4802 3 4122"
-           ,"pydat3 mdme 4803 1 2" ,"pydat3 mdme 4803 2 42" ,"pydat3 brat 4803 0.04000" ,"pydat3 kfdp 4803 1 -16" ,"pydat3 kfdp 4803 2 15" ,"pydat3 kfdp 4803 3 4122"
-           ,"pydat3 mdme 4804 1 2" ,"pydat3 brat 4804 0.00770" ,"pydat3 kfdp 4804 1 4122" ,"pydat3 kfdp 4804 2 -211"
-           ,"pydat3 mdme 4805 1 2" ,"pydat3 brat 4805 0.02000" ,"pydat3 kfdp 4805 1 4122" ,"pydat3 kfdp 4805 2 -213"
-           ,"pydat3 mdme 4806 1 2" ,"pydat3 brat 4806 0.02350" ,"pydat3 kfdp 4806 1 4122" ,"pydat3 kfdp 4806 2 -20213"
-           ,"pydat3 mdme 4807 1 2" ,"pydat3 brat 4807 0.02850" ,"pydat3 kfdp 4807 1 4122" ,"pydat3 kfdp 4807 2 -431"
-           ,"pydat3 mdme 4808 1 2" ,"pydat3 brat 4808 0.04350" ,"pydat3 kfdp 4808 1 4122" ,"pydat3 kfdp 4808 2 -433"
-           ,"pydat3 mdme 4809 1 2" ,"pydat3 brat 4809 0.00110" ,"pydat3 kfdp 4809 1 441" ,"pydat3 kfdp 4809 2 3122"
-           ,"pydat3 mdme 4810 1 1" ,"pydat3 brat 4810 0.00047" ,"pydat3 kfdp 4810 1 443" ,"pydat3 kfdp 4810 2 3122"
-           ,"pydat3 mdme 4811 1 1" ,"pydat3 brat 4811 0.00006" ,"pydat3 kfdp 4811 1 20443" ,"pydat3 kfdp 4811 2 3122"
-           ,"pydat3 mdme 4812 1 2" ,"pydat3 mdme 4812 2 48" ,"pydat3 brat 4812 0.42910" ,"pydat3 kfdp 4812 1 -2" ,"pydat3 kfdp 4812 2 1" ,"pydat3 kfdp 4812 3 4" ,"pydat3 kfdp 4812 4 2101"
-           ,"pydat3 mdme 4813 1 2" ,"pydat3 mdme 4813 2 13" ,"pydat3 brat 4813 0.08000" ,"pydat3 kfdp 4813 1 -2" ,"pydat3 kfdp 4813 2 4" ,"pydat3 kfdp 4813 3 1" ,"pydat3 kfdp 4813 4 2101"
-           ,"pydat3 mdme 4814 1 2" ,"pydat3 mdme 4814 2 13" ,"pydat3 brat 4814 0.07000" ,"pydat3 kfdp 4814 1 -4" ,"pydat3 kfdp 4814 2 3" ,"pydat3 kfdp 4814 3 4" ,"pydat3 kfdp 4814 4 2101"
-           ,"pydat3 mdme 4815 1 2" ,"pydat3 mdme 4815 2 13" ,"pydat3 brat 4815 0.02000" ,"pydat3 kfdp 4815 1 -4" ,"pydat3 kfdp 4815 2 4" ,"pydat3 kfdp 4815 3 3" ,"pydat3 kfdp 4815 4 2101"
-           ,"pydat3 mdme 4816 1 2" ,"pydat3 mdme 4816 2 42" ,"pydat3 brat 4816 0.01500" ,"pydat3 kfdp 4816 1 -2" ,"pydat3 kfdp 4816 2 1" ,"pydat3 kfdp 4816 3 2" ,"pydat3 kfdp 4816 4 2101"
-           ,"pydat3 mdme 4817 1 2" ,"pydat3 mdme 4817 2 42" ,"pydat3 brat 4817 0.00500" ,"pydat3 kfdp 4817 1 -4" ,"pydat3 kfdp 4817 2 3" ,"pydat3 kfdp 4817 3 2" ,"pydat3 kfdp 4817 4 2101"
-           ,"pydat3 mdme 4818 1 1" ,"pydat3 brat 4818 0.00047" ,"pydat3 kfdp 4818 1 443" ,"pydat3 kfdp 4818 2 3212"
-           ,"pydat3 mdme 4819 1 1" ,"pydat3 brat 4819 0.00024" ,"pydat3 kfdp 4819 1 443" ,"pydat3 kfdp 4819 2 -321" ,"pydat3 kfdp 4819 3 2212"
-           ,"pydat3 mdme 4820 1 1" ,"pydat3 brat 4820 0.00024" ,"pydat3 kfdp 4820 1 443" ,"pydat3 kfdp 4820 2 -311" ,"pydat3 kfdp 4820 3 2112"
-           ,"pydat3 mdme 4821 1 1" ,"pydat3 brat 4821 0.00047" ,"pydat3 kfdp 4821 1 443" ,"pydat3 kfdp 4821 2 -321" ,"pydat3 kfdp 4821 3 211" ,"pydat3 kfdp 4821 4 2112"
-           ,"pydat3 mdme 4822 1 1" ,"pydat3 brat 4822 0.00024" ,"pydat3 kfdp 4822 1 443" ,"pydat3 kfdp 4822 2 -321" ,"pydat3 kfdp 4822 3 111" ,"pydat3 kfdp 4822 4 2212"
-           ,"pydat3 mdme 4823 1 1" ,"pydat3 brat 4823 0.00047" ,"pydat3 kfdp 4823 1 443" ,"pydat3 kfdp 4823 2 -311" ,"pydat3 kfdp 4823 3 -211" ,"pydat3 kfdp 4823 4 2212"
-           ,"pydat3 mdme 4824 1 1" ,"pydat3 brat 4824 0.00024" ,"pydat3 kfdp 4824 1 443" ,"pydat3 kfdp 4824 2 -311" ,"pydat3 kfdp 4824 3 111" ,"pydat3 kfdp 4824 4 2112"
-           ,"pydat3 mdme 4825 1 1" ,"pydat3 brat 4825 0.00047" ,"pydat3 kfdp 4825 1 443" ,"pydat3 kfdp 4825 2 3122" ,"pydat3 kfdp 4825 3 111"
-           ,"pydat3 mdme 4826 1 1" ,"pydat3 brat 4826 0.00047" ,"pydat3 kfdp 4826 1 443" ,"pydat3 kfdp 4826 2 3212" ,"pydat3 kfdp 4826 3 111"
-           ,"pydat3 mdme 4827 1 1" ,"pydat3 brat 4827 0.00011" ,"pydat3 kfdp 4827 1 100443" ,"pydat3 kfdp 4827 2 3122"
-           ,"pydat3 mdme 4828 1 1" ,"pydat3 brat 4828 0.00011" ,"pydat3 kfdp 4828 1 100443" ,"pydat3 kfdp 4828 2 3212"
-           ,"pydat3 mdme 4829 1 1" ,"pydat3 brat 4829 0.00005" ,"pydat3 kfdp 4829 1 100443" ,"pydat3 kfdp 4829 2 -321" ,"pydat3 kfdp 4829 3 2212"
-           ,"pydat3 mdme 4830 1 1" ,"pydat3 brat 4830 0.00005" ,"pydat3 kfdp 4830 1 100443" ,"pydat3 kfdp 4830 2 -311" ,"pydat3 kfdp 4830 3 2112"
-           ,"pydat3 mdme 4831 1 1" ,"pydat3 brat 4831 0.00011" ,"pydat3 kfdp 4831 1 100443" ,"pydat3 kfdp 4831 2 -321" ,"pydat3 kfdp 4831 3 211" ,"pydat3 kfdp 4831 4 2112"
-           ,"pydat3 mdme 4832 1 1" ,"pydat3 brat 4832 0.00005" ,"pydat3 kfdp 4832 1 100443" ,"pydat3 kfdp 4832 2 -321" ,"pydat3 kfdp 4832 3 111" ,"pydat3 kfdp 4832 4 2212"
-           ,"pydat3 mdme 4833 1 1" ,"pydat3 brat 4833 0.00011" ,"pydat3 kfdp 4833 1 100443" ,"pydat3 kfdp 4833 2 -311" ,"pydat3 kfdp 4833 3 -211" ,"pydat3 kfdp 4833 4 2212"
-           ,"pydat3 mdme 4834 1 1" ,"pydat3 brat 4834 0.00005" ,"pydat3 kfdp 4834 1 100443" ,"pydat3 kfdp 4834 2 -311" ,"pydat3 kfdp 4834 3 111" ,"pydat3 kfdp 4834 4 2112"
-           ,"pydat3 mdme 4835 1 1" ,"pydat3 brat 4835 0.00011" ,"pydat3 kfdp 4835 1 100443" ,"pydat3 kfdp 4835 2 3122" ,"pydat3 kfdp 4835 3 111"
-           ,"pydat3 mdme 4836 1 1" ,"pydat3 brat 4836 0.00011" ,"pydat3 kfdp 4836 1 100443" ,"pydat3 kfdp 4836 2 3212" ,"pydat3 kfdp 4836 3 111"
-           ,"pydat3 mdme 4837 1 1" ,"pydat3 brat 4837 0.00006" ,"pydat3 kfdp 4837 1 20443" ,"pydat3 kfdp 4837 2 3212"
-           ,"pydat3 mdme 4838 1 1" ,"pydat3 brat 4838 0.00003" ,"pydat3 kfdp 4838 1 20443" ,"pydat3 kfdp 4838 2 -321" ,"pydat3 kfdp 4838 3 2212"
-           ,"pydat3 mdme 4839 1 1" ,"pydat3 brat 4839 0.00003" ,"pydat3 kfdp 4839 1 20443" ,"pydat3 kfdp 4839 2 -311" ,"pydat3 kfdp 4839 3 2112"
-           ,"pydat3 mdme 4840 1 1" ,"pydat3 brat 4840 0.00006" ,"pydat3 kfdp 4840 1 20443" ,"pydat3 kfdp 4840 2 -321" ,"pydat3 kfdp 4840 3 211" ,"pydat3 kfdp 4840 4 2112"
-           ,"pydat3 mdme 4841 1 1" ,"pydat3 brat 4841 0.00003" ,"pydat3 kfdp 4841 1 20443" ,"pydat3 kfdp 4841 2 -321" ,"pydat3 kfdp 4841 3 111" ,"pydat3 kfdp 4841 4 2212"
-           ,"pydat3 mdme 4842 1 1" ,"pydat3 brat 4842 0.00006" ,"pydat3 kfdp 4842 1 20443" ,"pydat3 kfdp 4842 2 -311" ,"pydat3 kfdp 4842 3 -211" ,"pydat3 kfdp 4842 4 2212"
-           ,"pydat3 mdme 4843 1 1" ,"pydat3 brat 4843 0.00003" ,"pydat3 kfdp 4843 1 20443" ,"pydat3 kfdp 4843 2 -311" ,"pydat3 kfdp 4843 3 111" ,"pydat3 kfdp 4843 4 2112"
-           ,"pydat3 mdme 4844 1 1" ,"pydat3 brat 4844 0.00006" ,"pydat3 kfdp 4844 1 20443" ,"pydat3 kfdp 4844 2 3122" ,"pydat3 kfdp 4844 3 111"
-           ,"pydat3 mdme 4845 1 1" ,"pydat3 brat 4845 0.00006" ,"pydat3 kfdp 4845 1 20443" ,"pydat3 kfdp 4845 2 3212" ,"pydat3 kfdp 4845 3 111"
-           ,"pydat3 mdme 4846 1 1" ,"pydat3 brat 4846 0.00002" ,"pydat3 kfdp 4846 1 445" ,"pydat3 kfdp 4846 2 3122"
-           ,"pydat3 mdme 4847 1 1" ,"pydat3 brat 4847 0.00002" ,"pydat3 kfdp 4847 1 445" ,"pydat3 kfdp 4847 2 3212"
-           ,"pydat3 mdme 4848 1 1" ,"pydat3 brat 4848 0.00001" ,"pydat3 kfdp 4848 1 445" ,"pydat3 kfdp 4848 2 -321" ,"pydat3 kfdp 4848 3 2212"
-           ,"pydat3 mdme 4849 1 1" ,"pydat3 brat 4849 0.00001" ,"pydat3 kfdp 4849 1 445" ,"pydat3 kfdp 4849 2 -311" ,"pydat3 kfdp 4849 3 2112"
-           ,"pydat3 mdme 4850 1 1" ,"pydat3 brat 4850 0.00002" ,"pydat3 kfdp 4850 1 445" ,"pydat3 kfdp 4850 2 -321" ,"pydat3 kfdp 4850 3 211" ,"pydat3 kfdp 4850 4 2112"
-           ,"pydat3 mdme 4851 1 1" ,"pydat3 brat 4851 0.00001" ,"pydat3 kfdp 4851 1 445" ,"pydat3 kfdp 4851 2 -321" ,"pydat3 kfdp 4851 3 111" ,"pydat3 kfdp 4851 4 2212"
-           ,"pydat3 mdme 4852 1 1" ,"pydat3 brat 4852 0.00002" ,"pydat3 kfdp 4852 1 445" ,"pydat3 kfdp 4852 2 -311" ,"pydat3 kfdp 4852 3 -211" ,"pydat3 kfdp 4852 4 2212"
-           ,"pydat3 mdme 4853 1 1" ,"pydat3 brat 4853 0.00001" ,"pydat3 kfdp 4853 1 445" ,"pydat3 kfdp 4853 2 -311" ,"pydat3 kfdp 4853 3 111" ,"pydat3 kfdp 4853 4 2112"
-           ,"pydat3 mdme 4854 1 1" ,"pydat3 brat 4854 0.00002" ,"pydat3 kfdp 4854 1 445" ,"pydat3 kfdp 4854 2 3122" ,"pydat3 kfdp 4854 3 111"
-           ,"pydat3 mdme 4855 1 1" ,"pydat3 brat 4855 0.00002" ,"pydat3 kfdp 4855 1 445" ,"pydat3 kfdp 4855 2 3212" ,"pydat3 kfdp 4855 3 111"
-#   Ksi_b0 decays
-#   repoint to place 4901, 17 decays including new ones
-           ,"pydat3 mdcy 219 2 4901" ,"pydat3 mdcy 219 3 17" ,"pydat3 mdcy 219 1 1"
-           ,"pydat3 mdme 4901 1 2" ,"pydat3 mdme 4901 2 85" ,"pydat3 brat 4901 0.99992"
-           ,"pydat3 mdme 4902 1 1" ,"pydat3 brat 4902 0.00047" ,"pydat3 kfdp 4902 1 443" ,"pydat3 kfdp 4902 2 3322"
-           ,"pydat3 mdme 4903 1 1" ,"pydat3 brat 4903 0.00047" ,"pydat3 kfdp 4903 1 443" ,"pydat3 kfdp 4903 2 3322" ,"pydat3 kfdp 4903 3 111"
-           ,"pydat3 mdme 4904 1 1" ,"pydat3 brat 4904 0.00024" ,"pydat3 kfdp 4904 1 443" ,"pydat3 kfdp 4904 2 -321" ,"pydat3 kfdp 4904 3 3222"
-           ,"pydat3 mdme 4905 1 1" ,"pydat3 brat 4905 0.00024" ,"pydat3 kfdp 4905 1 443" ,"pydat3 kfdp 4905 2 -311" ,"pydat3 kfdp 4905 3 3212"
-           ,"pydat3 mdme 4906 1 1" ,"pydat3 brat 4906 0.00011" ,"pydat3 kfdp 4906 1 100443" ,"pydat3 kfdp 4906 2 3322"
-           ,"pydat3 mdme 4907 1 1" ,"pydat3 brat 4907 0.00011" ,"pydat3 kfdp 4907 1 100443" ,"pydat3 kfdp 4907 2 3322" ,"pydat3 kfdp 4907 3 111"
-           ,"pydat3 mdme 4908 1 1" ,"pydat3 brat 4908 0.00005" ,"pydat3 kfdp 4908 1 100443" ,"pydat3 kfdp 4908 2 -321" ,"pydat3 kfdp 4908 3 3222"
-           ,"pydat3 mdme 4909 1 1" ,"pydat3 brat 4909 0.00005" ,"pydat3 kfdp 4909 1 100443" ,"pydat3 kfdp 4909 2 -311" ,"pydat3 kfdp 4909 3 3212"
-           ,"pydat3 mdme 4910 1 1" ,"pydat3 brat 4910 0.00006" ,"pydat3 kfdp 4910 1 20443" ,"pydat3 kfdp 4910 2 3322"
-           ,"pydat3 mdme 4911 1 1" ,"pydat3 brat 4911 0.00006" ,"pydat3 kfdp 4911 1 20443" ,"pydat3 kfdp 4911 2 3322" ,"pydat3 kfdp 4911 3 111"
-           ,"pydat3 mdme 4912 1 1" ,"pydat3 brat 4912 0.00003" ,"pydat3 kfdp 4912 1 20443" ,"pydat3 kfdp 4912 2 -321" ,"pydat3 kfdp 4912 3 3222"
-           ,"pydat3 mdme 4913 1 1" ,"pydat3 brat 4913 0.00003" ,"pydat3 kfdp 4913 1 20443" ,"pydat3 kfdp 4913 2 -311" ,"pydat3 kfdp 4913 3 3212"
-           ,"pydat3 mdme 4914 1 1" ,"pydat3 brat 4914 0.00002" ,"pydat3 kfdp 4914 1 445" ,"pydat3 kfdp 4914 2 3322"
-           ,"pydat3 mdme 4915 1 1" ,"pydat3 brat 4915 0.00002" ,"pydat3 kfdp 4915 1 445" ,"pydat3 kfdp 4915 2 3322" ,"pydat3 kfdp 4915 3 111"
-           ,"pydat3 mdme 4916 1 1" ,"pydat3 brat 4916 0.00001" ,"pydat3 kfdp 4916 1 445" ,"pydat3 kfdp 4916 2 -321" ,"pydat3 kfdp 4916 3 3222"
-           ,"pydat3 mdme 4917 1 1" ,"pydat3 brat 4917 0.00001" ,"pydat3 kfdp 4917 1 445" ,"pydat3 kfdp 4917 2 -311" ,"pydat3 kfdp 4917 3 3212"
-#   Ksi_b- decays
-#   repoint to place 4921, 17 decays including new ones
-           ,"pydat3 mdcy 211 2 4921" ,"pydat3 mdcy 211 3 17" ,"pydat3 mdcy 211 1 1"
-           ,"pydat3 mdme 4921 1 2" ,"pydat3 mdme 4921 2 85" ,"pydat3 brat 4921 0.99992"
-           ,"pydat3 mdme 4922 1 1" ,"pydat3 brat 4922 0.00047" ,"pydat3 kfdp 4922 1 443" ,"pydat3 kfdp 4922 2 3312"
-           ,"pydat3 mdme 4923 1 1" ,"pydat3 brat 4923 0.00047" ,"pydat3 kfdp 4923 1 443" ,"pydat3 kfdp 4923 2 3312" ,"pydat3 kfdp 4923 3 111"
-           ,"pydat3 mdme 4924 1 1" ,"pydat3 brat 4924 0.00024" ,"pydat3 kfdp 4924 1 443" ,"pydat3 kfdp 4924 2 -321" ,"pydat3 kfdp 4924 3 3212"
-           ,"pydat3 mdme 4925 1 1" ,"pydat3 brat 4925 0.00024" ,"pydat3 kfdp 4925 1 443" ,"pydat3 kfdp 4925 2 -311" ,"pydat3 kfdp 4925 3 3112"
-           ,"pydat3 mdme 4926 1 1" ,"pydat3 brat 4926 0.00011" ,"pydat3 kfdp 4926 1 100443" ,"pydat3 kfdp 4926 2 3312"
-           ,"pydat3 mdme 4927 1 1" ,"pydat3 brat 4927 0.00011" ,"pydat3 kfdp 4927 1 100443" ,"pydat3 kfdp 4927 2 3312" ,"pydat3 kfdp 4927 3 111"
-           ,"pydat3 mdme 4928 1 1" ,"pydat3 brat 4928 0.00005" ,"pydat3 kfdp 4928 1 100443" ,"pydat3 kfdp 4928 2 -321" ,"pydat3 kfdp 4928 3 3212"
-           ,"pydat3 mdme 4929 1 1" ,"pydat3 brat 4929 0.00005" ,"pydat3 kfdp 4929 1 100443" ,"pydat3 kfdp 4929 2 -311" ,"pydat3 kfdp 4929 3 3112"
-           ,"pydat3 mdme 4930 1 1" ,"pydat3 brat 4930 0.00006" ,"pydat3 kfdp 4930 1 20443" ,"pydat3 kfdp 4930 2 3312"
-           ,"pydat3 mdme 4931 1 1" ,"pydat3 brat 4931 0.00006" ,"pydat3 kfdp 4931 1 20443" ,"pydat3 kfdp 4931 2 3312" ,"pydat3 kfdp 4931 3 111"
-           ,"pydat3 mdme 4932 1 1" ,"pydat3 brat 4932 0.00003" ,"pydat3 kfdp 4932 1 20443" ,"pydat3 kfdp 4932 2 -321" ,"pydat3 kfdp 4932 3 3212"
-           ,"pydat3 mdme 4933 1 1" ,"pydat3 brat 4933 0.00003" ,"pydat3 kfdp 4933 1 20443" ,"pydat3 kfdp 4933 2 -311" ,"pydat3 kfdp 4933 3 3112"
-           ,"pydat3 mdme 4934 1 1" ,"pydat3 brat 4934 0.00002" ,"pydat3 kfdp 4934 1 445" ,"pydat3 kfdp 4934 2 3312"
-           ,"pydat3 mdme 4935 1 1" ,"pydat3 brat 4935 0.00002" ,"pydat3 kfdp 4935 1 445" ,"pydat3 kfdp 4935 2 3312" ,"pydat3 kfdp 4935 3 111"
-           ,"pydat3 mdme 4936 1 1" ,"pydat3 brat 4936 0.00001" ,"pydat3 kfdp 4936 1 445" ,"pydat3 kfdp 4936 2 -321" ,"pydat3 kfdp 4936 3 3212"
-           ,"pydat3 mdme 4937 1 1" ,"pydat3 brat 4937 0.00001" ,"pydat3 kfdp 4937 1 445" ,"pydat3 kfdp 4937 2 -311" ,"pydat3 kfdp 4937 3 3112"
-#   Omega_b- decays
-#   repoint to place 4941, 17 decays including new ones
-           ,"pydat3 mdcy 227 2 4941" ,"pydat3 mdcy 227 3 17" ,"pydat3 mdcy 227 1 1"
-           ,"pydat3 mdme 4941 1 2" ,"pydat3 mdme 4941 2 85" ,"pydat3 brat 4941 0.99992"
-           ,"pydat3 mdme 4942 1 1" ,"pydat3 brat 4942 0.00047" ,"pydat3 kfdp 4942 1 443" ,"pydat3 kfdp 4942 2 3334"
-           ,"pydat3 mdme 4943 1 1" ,"pydat3 brat 4943 0.00047" ,"pydat3 kfdp 4943 1 443" ,"pydat3 kfdp 4943 2 3334" ,"pydat3 kfdp 4943 3 111"
-           ,"pydat3 mdme 4944 1 1" ,"pydat3 brat 4944 0.00024" ,"pydat3 kfdp 4944 1 443" ,"pydat3 kfdp 4944 2 -321" ,"pydat3 kfdp 4944 3 3322"
-           ,"pydat3 mdme 4945 1 1" ,"pydat3 brat 4945 0.00024" ,"pydat3 kfdp 4945 1 443" ,"pydat3 kfdp 4945 2 -311" ,"pydat3 kfdp 4945 3 3312"
-           ,"pydat3 mdme 4946 1 1" ,"pydat3 brat 4946 0.00011" ,"pydat3 kfdp 4946 1 100443" ,"pydat3 kfdp 4946 2 3334"
-           ,"pydat3 mdme 4947 1 1" ,"pydat3 brat 4947 0.00011" ,"pydat3 kfdp 4947 1 100443" ,"pydat3 kfdp 4947 2 3334" ,"pydat3 kfdp 4947 3 111"
-           ,"pydat3 mdme 4948 1 1" ,"pydat3 brat 4948 0.00005" ,"pydat3 kfdp 4948 1 100443" ,"pydat3 kfdp 4948 2 -321" ,"pydat3 kfdp 4948 3 3322"
-           ,"pydat3 mdme 4949 1 1" ,"pydat3 brat 4949 0.00005" ,"pydat3 kfdp 4949 1 100443" ,"pydat3 kfdp 4949 2 -311" ,"pydat3 kfdp 4949 3 3312"
-           ,"pydat3 mdme 4950 1 1" ,"pydat3 brat 4950 0.00006" ,"pydat3 kfdp 4950 1 20443" ,"pydat3 kfdp 4950 2 3334"
-           ,"pydat3 mdme 4951 1 1" ,"pydat3 brat 4951 0.00006" ,"pydat3 kfdp 4951 1 20443" ,"pydat3 kfdp 4951 2 3334" ,"pydat3 kfdp 4951 3 111"
-           ,"pydat3 mdme 4952 1 1" ,"pydat3 brat 4952 0.00003" ,"pydat3 kfdp 4952 1 20443" ,"pydat3 kfdp 4952 2 -321" ,"pydat3 kfdp 4952 3 3322"
-           ,"pydat3 mdme 4953 1 1" ,"pydat3 brat 4953 0.00003" ,"pydat3 kfdp 4953 1 20443" ,"pydat3 kfdp 4953 2 -311" ,"pydat3 kfdp 4953 3 3312"
-           ,"pydat3 mdme 4954 1 1" ,"pydat3 brat 4954 0.00002" ,"pydat3 kfdp 4954 1 445" ,"pydat3 kfdp 4954 2 3334"
-           ,"pydat3 mdme 4955 1 1" ,"pydat3 brat 4955 0.00002" ,"pydat3 kfdp 4955 1 445" ,"pydat3 kfdp 4955 2 3334" ,"pydat3 kfdp 4955 3 111"
-           ,"pydat3 mdme 4956 1 1" ,"pydat3 brat 4956 0.00001" ,"pydat3 kfdp 4956 1 445" ,"pydat3 kfdp 4956 2 -321" ,"pydat3 kfdp 4956 3 3322"
-           ,"pydat3 mdme 4957 1 1" ,"pydat3 brat 4957 0.00001" ,"pydat3 kfdp 4957 1 445" ,"pydat3 kfdp 4957 2 -311" ,"pydat3 kfdp 4957 3 3312"
-#
-#   The above assumes that psi', chi_0c, chi_1c and chi_2c are forced to J/psi
-#   switch off other psi' channels
-           ,"pydat3 mdme 1567 1 0"
-           ,"pydat3 mdme 1568 1 0"
-           ,"pydat3 mdme 1569 1 0"
-           ,"pydat3 mdme 1577 1 0"
-#   switch off other chi_0c channels
-           ,"pydat3 mdme 1502 1 0"
-#   switch off other chi_1c channels
-           ,"pydat3 mdme 1556 1 0"
-#   switch off other chi_2c channels
-           ,"pydat3 mdme 862 1 0" 
-                                         ]   
diff --git a/Generators/PythiaB/share/MC11.108424.PythiaB_Bs_Jpsi_mu0mu0_phi_KK_nopTcuts_PhysAngles.py b/Generators/PythiaB/share/MC11.108424.PythiaB_Bs_Jpsi_mu0mu0_phi_KK_nopTcuts_PhysAngles.py
deleted file mode 100644
index 9bc83e112f789c111df1ebca3733c2fe0cf0513e..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/MC11.108424.PythiaB_Bs_Jpsi_mu0mu0_phi_KK_nopTcuts_PhysAngles.py
+++ /dev/null
@@ -1,95 +0,0 @@
-###############################################################################
-#
-# MC11.108424.PythiaB_Bs_Jpsi_mu0mu0_phi_KK_nopTcuts.py
-# Author: ATLAS B-physics group
-# Generator of Bs -> phi(K+K-) J/psi(mu+mu-) decay
-# PRODUCTION SYSTEM FRAGMENT
-#
-###############################################################################
-
-#------------------------------------------------------------------------------
-# Production driving parameters
-#------------------------------------------------------------------------------
-
-from MC11JobOptions.PythiaBEvgenConfig import evgenConfig
-evgenConfig.minevents = 100
-
-#------------------------------------------------------------------------------
-# Import all needed algorithms (in the proper order)
-#------------------------------------------------------------------------------
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-include( "MC11JobOptions/MC11_PythiaB_Common.py" )
-
-#from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-#topAlg += BSignalFilter()
-#BSignalFilter = topAlg.BSignalFilter
-
-#------------------------------------------------------------------------------
-# PythiaB parameters settings
-#------------------------------------------------------------------------------
-
-PythiaB.ForceCDecay = "no"
-PythiaB.ForceBDecay = "yes"
-
-# Updated B-decays list (changes B-hadron decay tables including mdme line
-# number to start from 4500 - see also ...CloseAntibQuarkNew.py below)
-include( "MC11JobOptions/MC11_PythiaB_Bchannels.py" )
-
-# Clasical PythiaB way of producing exclusive decay channel
-# (close whole the decay and then open only the one requested channel)
-include( "MC11JobOptions/MC11_PythiaB_CloseAntibQuarkNew.py" )
-
-# Open channel for B0s -> phi J/psi and ban other than J/psi->mumu decays
-PythiaB.PythiaCommand += [ "pydat3 mdme 4730 1 1",
-                           "pydat3 mdme 858 1 0",
-                           "pydat3 mdme 860 1 0" ]
-
-# User-finsel to accept only charged phi daughters
-PythiaB.ForceDecayChannel = "BsAngles"
-# Parameter of the finsel: flat(0)/physics(1), pT_L1_mu, pT_L2_mu, eta_mu, kaon pT,eta, Bs pT,eta, (Bs lifetime)
-PythiaB.DecayChannelParameters = [ 1.0, 0.0, 0.0, 100.0, 0.0, 100.0, 0.0, 100.0, 0.0, 0.0 ]
-
-# Correct B0s lifetime as in PDG2010
-PythiaB.PythiaCommand += ["pydat2 pmas 531 4 0.4599"]
-
-# Production settings
-include( "MC11JobOptions/MC11_PythiaB_Btune.py" )
-PythiaB.PythiaCommand += [ "pysubs ckin 3 8.0",
-                           "pysubs ckin 9 -3.0",
-                           "pysubs ckin 10 3.0",
-                           "pysubs ckin 11 -3.0",
-                           "pysubs ckin 12 3.0",
-                           "pysubs msel 1" ]
-
-# Simulate only b-flavour events
-PythiaB.flavour = 5.
-
-# Pythia b-quark cuts
-PythiaB.cutbq = [ "0. 102.5 and 6.0 3.5" ]
-
-# Repeated hadronization
-PythiaB.mhadr = 10.
-
-#------------------------------------------------------------------------------
-# Signal event filtering
-#------------------------------------------------------------------------------
-
-# LVL1: pT_L1, eta_L1
-PythiaB.lvl1cut = [ 1., 0.0, 102.5 ]
-# LVL2: pdg (muon/electron), pT_L2, eta_L2
-PythiaB.lvl2cut = [ 0., 13., 0., 2.5 ]
-# Offline: pT, eta cuts for kaon/pion, muon, electron
-PythiaB.offcut = [ 0., 0.5, 2.5, 2.5, 2.5, 0.5, 2.5 ]
-
-# Ntuple content settings
-#BSignalFilter.SignaltoNtup = 10.0*float(evgenConfig.minevents)/float(evgenConfig.efficiency)
-#BSignalFilter.StoreBQuarks = True
-
-###############################################################################
-#
-# End of job options fragment for B0s -> phi(K+K-) J/psi(mu+mu-)
-#
-###############################################################################
diff --git a/Generators/PythiaB/share/MC8.108424.PythiaB_Bs_Jpsi_mu6mu4_phi_KK.py b/Generators/PythiaB/share/MC8.108424.PythiaB_Bs_Jpsi_mu6mu4_phi_KK.py
deleted file mode 100644
index ed498765966d8e7c5bad0f4346bb80f5c67d2f1d..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/MC8.108424.PythiaB_Bs_Jpsi_mu6mu4_phi_KK.py
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-from EvgenJobOptions.PythiaBEvgenConfig import evgenConfig
-evgenConfig.minevents = 500
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-include ( "EvgenJobOptions/MC8_PythiaB_Common.py" )
-
-#--------------------------------------------------------------	
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------	
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "EvgenJobOptions/MC8_PythiaB_CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T H R E E   E X A M P L E S    T O   O P E N    Y O U R    C H A N N E L 
-#   Decomment one of following examples or create your analogically
-# open your exclusive channel here  Bs -> J/psi(mumu) phi 
-PythiaB.PythiaCommand += ["pydat3 mdme 982 1 1",    
- 				"pydat3 mdme 858 1 0",
- 				"pydat3 mdme 860 1 0"        ]
-# This phis which have originated from Bs to decay into two kaons. Other phis 
-# are left to decay as normal. Comment this line to prevent the phi forcing. 
-# See user_finsel.F (in src directory) for more such forcing options.   
-PythiaB.ForceDecayChannel = "BsAngles"
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-##include "Dsphipi.txt" 
-#PythiaB.PythiaCommand += {"pydat3 mdme 967 1 1",
-#                                "pydat3 mdme 831 1 1"      };
-#PythiaB.ForceCDecay = "yes";                                
-# open your exclusive channel here  Bs -> J/psi(mumu) K0 
-#PythiaB.PythiaCommand += {"pydat3 mdme 889 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        };
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#-------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "EvgenJobOptions/MC8_PythiaB_Btune.py" )
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------	
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 0.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.0, 102.5, 0., 102.5, 0., 102.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  40. 
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
-
diff --git a/Generators/PythiaB/share/PythiaB_B0_DPhiA1_Signal3.py b/Generators/PythiaB/share/PythiaB_B0_DPhiA1_Signal3.py
deleted file mode 100644
index 119ec068a83bfd325f0cb92725c27460d80a8ae9..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_B0_DPhiA1_Signal3.py
+++ /dev/null
@@ -1,209 +0,0 @@
- ###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: B0->D(Phi(K+K-)Pi)A1(Rho(Pi+Pi-)Pi)
-#
-#  Author : W. Walkowiak, 2006-12-11
-#           (adjusted after a template provided by PythiaB)
-#  changed:
-#
-#  $Id: PythiaB_B0_DPhiA1_Signal3.py,v 1.2 2007-03-20 14:21:33 msmizans Exp $
-#
-#==============================================================
-#
-varInit = dir()
-
-# default options (can be overwritten by command line options)
-PythiaBDecayFlags = {
-    'BtuneOptionsFile'     : "Btune.py"
-    }
-
-# set variable to default or from personalized JobOptions
-# if not already set (code taken from RecExCommon)
-for o in [ o for o in PythiaBDecayFlags.keys() if not o in varInit ]:
-        exec '%s = PythiaBDecayFlags["%s"]' % (o,o)
-
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submission script
-#--------------------------------------------------------------
-theApp.EvtMax = 100
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submission script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-AtRndmGenSvc.ReadFromFile = True;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  B0 -> D- a1+ with D->phi pi
-#
-# DXChannel to be set here (close all D- -> phi pi- channels)
-DXChannel = "Dphipi"
-include( "DXphipi.py" )
-#
-# 879: B0 -> D- a1+
-# 715: D- -> Phi Pi-
-#  				 
-PythiaB.PythiaCommand += [ "pydat3 mdme 879 1 1",
-                           "pydat3 mdme 715 1 1"   ];
-PythiaB.ForceCDecay = "yes";                               
-
-#
-# w.w., 2006-12-11 revised:
-# 
-# user_finsel.F decay particle channel
-#
-PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+)
-#                          or (from B0->D-X) or (from B0bar->D+X))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-#
-PythiaB.DecayChannelParameters = [1., 0., 1., 1.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( BtuneOptionsFile )
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-# 
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 100000.
-# 
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 400
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-#--------------------------------------------------------------
-# CBNT output
-#--------------------------------------------------------------
-CBNTAthenaAware=True
-include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" )
-include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-# include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-include( "CBNT_Truth_jobOptions.py" )
-CBNT_Truth.MaxNbParticles = 6000    # maximum number of particles in the ntuple
-CBNT_Truth.MaxNbVertices  = 6000    # maximum number of vertices in the ntuple
-All.Enable = True                   # save ALL particles
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency 
-#--------------------------------------------------------------
-theApp.Dlls                += [ "RootHistCnv" ]
-theApp.HistogramPersistency = "ROOT"
-
-#--------------------------------------------------------------
-# NTuple output file 
-#--------------------------------------------------------------
-RootHistSvc = Service( "RootHistSvc" )
-NtupleSvc = Service( "NtupleSvc" )
-NtupleSvc.Output = ["FILE1 DATAFILE='pythiaB.root' TYP='ROOT' OPT='NEW'"]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = INFO
-
-#----------------------------------------------------------------              # Pool persistency
-#----------------------------------------------------------------
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += ["2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_B0_DPhiPi_Signal3.py b/Generators/PythiaB/share/PythiaB_B0_DPhiPi_Signal3.py
deleted file mode 100644
index 7edf96451b1dff1d37fd5d9c1e4d14068c5fb391..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_B0_DPhiPi_Signal3.py
+++ /dev/null
@@ -1,212 +0,0 @@
-###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: B0->D(Phi(K+K-)Pi)Pi
-#
-#  Author:  W. Walkowiak, 2006-04-02
-#           (adjusted after a template provided by PythiaB)
-#  Changes: BE, 2006-12-11
-#           Adjusted for B0->DPi channel
-#           WW, 2006-12-12
-#           added default options section
-#
-#  $Id: PythiaB_B0_DPhiPi_Signal3.py,v 1.2 2007-03-20 14:21:41 msmizans Exp $
-#
-#==============================================================
-#
-varInit = dir()
-
-# default options (can be overwritten by command line options)
-PythiaBDecayFlags = {
-    'NEventGen'            :  400,
-    'BtuneOptionsFile'     : "Btune.py"
-    }
-
-# set variable to default or from personalized JobOptions
-# if not already set (code taken from RecExCommon)
-for o in [ o for o in PythiaBDecayFlags.keys() if not o in varInit ]:
-        exec '%s = PythiaBDecayFlags["%s"]' % (o,o)
-
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submission script
-#--------------------------------------------------------------
-theApp.EvtMax = NEventGen
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submission script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-AtRndmGenSvc.ReadFromFile = True;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  B0 -> D-pi+ with D->phi pi
-#   				 
-#background channel B0->D-Pi+
-# 877: B0  -> D-Pi+
-# 715: D-  -> PhiPi-
-
-# DXChannel has to be set before DXphipi.py is included
-DXChannel = "Dphipi"
-include( "DXphipi.py" )
-
-PythiaB.PythiaCommand += [ "pydat3 mdme 877 1 1",
-                           "pydat3 mdme 715 1 1"   ];
-PythiaB.ForceCDecay = "yes";                               
-
-#
-# w.w., 2006-04-02 revised:
-# 
-# user_finsel.F decay particle channel
-#
-PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-PythiaB.DecayChannelParameters = [1., 0., 0., 0.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( BtuneOptionsFile )
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-# 
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 50000.
-# 
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = NEventGen
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-#--------------------------------------------------------------
-# CBNT output
-#--------------------------------------------------------------
-CBNTAthenaAware=True
-include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" )
-include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-# include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-include( "CBNT_Truth_jobOptions.py" )
-CBNT_Truth.MaxNbParticles = 6000    # maximum number of particles in the ntuple
-CBNT_Truth.MaxNbVertices  = 6000    # maximum number of vertices in the ntuple
-All.Enable = True                   # save ALL particles
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency 
-#--------------------------------------------------------------
-theApp.Dlls                += [ "RootHistCnv" ]
-theApp.HistogramPersistency = "ROOT"
-
-#--------------------------------------------------------------
-# NTuple output file 
-#--------------------------------------------------------------
-RootHistSvc = Service( "RootHistSvc" )
-NtupleSvc = Service( "NtupleSvc" )
-NtupleSvc.Output = ["FILE1 DATAFILE='pythiaB.root' TYP='ROOT' OPT='NEW'"]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = INFO
-
-#----------------------------------------------------------------              # Pool persistency
-#----------------------------------------------------------------
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += ["2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_B0_DsPhiA1_Signal3.py b/Generators/PythiaB/share/PythiaB_B0_DsPhiA1_Signal3.py
deleted file mode 100644
index 69b5daf9482c3a57936283fb9640dff3aeabcc81..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_B0_DsPhiA1_Signal3.py
+++ /dev/null
@@ -1,215 +0,0 @@
- ###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: B0->Ds(Phi(K+K-)Pi)A1(Rho(Pi+Pi-)Pi)
-#
-#  Author : W. Walkowiak, 2006-12-11
-#           (adjusted after a template provided by PythiaB)
-#  changed:
-#
-#  $Id: PythiaB_B0_DsPhiA1_Signal3.py,v 1.2 2007-03-20 14:21:49 msmizans Exp $
-#
-#==============================================================
-#
-varInit = dir()
-
-# default options (can be overwritten by command line options)
-PythiaBDecayFlags = {
-    'NEventGen'            :  400,
-    'BtuneOptionsFile'     : "Btune.py"
-    }
-
-# set variable to default or from personalized JobOptions
-# if not already set (code taken from RecExCommon)
-for o in [ o for o in PythiaBDecayFlags.keys() if not o in varInit ]:
-        exec '%s = PythiaBDecayFlags["%s"]' % (o,o)
-
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submission script
-#--------------------------------------------------------------
-theApp.EvtMax = NEventGen
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submission script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-AtRndmGenSvc.ReadFromFile = True;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  B0 -> Ds+a1- with Ds->phi pi
-# (charge conjugated)
-#
-# DXChannel to be set here (close all Ds- -> phi pi- decays)
-DXChannel = "Dsbarphipi"
-include( "DXphipi.py" )
-#
-# 898: B0 -> Ds+ a1-
-#  				 
-PythiaB.PythiaCommand += [ "pydat3 mdme 898 1 2",
-                           "pydat3 mdme 898 2 0",
-                           "pydat3 kfdp 898 1 431",
-                           "pydat3 kfdp 898 2 -20213",
-                           "pydat3 kfdp 898 3 0",
-                           "pydat3 kfdp 898 4 0",
-                           "pydat3 mdme 831 1 1"];
-PythiaB.ForceCDecay = "yes";                               
-
-#
-# w.w., 2006-12-11 revised:
-# 
-# user_finsel.F decay particle channel
-#
-PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:x
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+)
-#                          or (from B0->D-X) or (from B0bar->D+X))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-#
-PythiaB.DecayChannelParameters = [1., 0., 1., 1.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( BtuneOptionsFile )
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-# 
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 100000.
-# 
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = NEventGen
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-#--------------------------------------------------------------
-# CBNT output
-#--------------------------------------------------------------
-CBNTAthenaAware=True
-include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" )
-include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-# include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-include( "CBNT_Truth_jobOptions.py" )
-CBNT_Truth.MaxNbParticles = 6000    # maximum number of particles in the ntuple
-CBNT_Truth.MaxNbVertices  = 6000    # maximum number of vertices in the ntuple
-All.Enable = True                   # save ALL particles
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency 
-#--------------------------------------------------------------
-theApp.Dlls                += [ "RootHistCnv" ]
-theApp.HistogramPersistency = "ROOT"
-
-#--------------------------------------------------------------
-# NTuple output file 
-#--------------------------------------------------------------
-RootHistSvc = Service( "RootHistSvc" )
-NtupleSvc = Service( "NtupleSvc" )
-NtupleSvc.Output = ["FILE1 DATAFILE='pythiaB.root' TYP='ROOT' OPT='NEW'"]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = INFO
-
-#----------------------------------------------------------------              # Pool persistency
-#----------------------------------------------------------------
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += ["2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_B0_DsPhiPi_Signal3.py b/Generators/PythiaB/share/PythiaB_B0_DsPhiPi_Signal3.py
deleted file mode 100644
index 54e51fa4d91104588e3fd7d20aaec4140cd2989c..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_B0_DsPhiPi_Signal3.py
+++ /dev/null
@@ -1,217 +0,0 @@
-###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: B0->Ds(Phi(K+K-)Pi)Pi
-#
-#  Author:  W. Walkowiak, 2006-04-02
-#           (adjusted after a template provided by PythiaB)
-#  Changes: BE, 2006-12-11
-#           Adjusted for B0->DsPi channel
-#           WW, 2006-12-12
-#           added default options section
-#
-#  $Id: PythiaB_B0_DsPhiPi_Signal3.py,v 1.2 2007-03-20 14:21:56 msmizans Exp $
-#
-#==============================================================
-#
-varInit = dir()
-
-# default options (can be overwritten by command line options)
-PythiaBDecayFlags = {
-    'NEventGen'            :  400,
-    'BtuneOptionsFile'     : "Btune.py"
-    }
-
-# set variable to default or from personalized JobOptions
-# if not already set (code taken from RecExCommon)
-for o in [ o for o in PythiaBDecayFlags.keys() if not o in varInit ]:
-        exec '%s = PythiaBDecayFlags["%s"]' % (o,o)
-
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submission script
-#--------------------------------------------------------------
-theApp.EvtMax = NEventGen
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submission script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-AtRndmGenSvc.ReadFromFile = True;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-MessageSvc.defaultLimit = 9999999  # all messages
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  B0 -> Ds pi with Ds->phi pi
-#
-# background channel B0->Ds+(phiPi+)Pi-  is c.c.
-# 898: B0  -> Ds+Pi-  has to be created from B0 -> csbar
-
-# DXChannel has to be set before DXphipi.py is included
-DXChannel = "Dsbarphipi"
-include( "DXphipi.py" )
-
-PythiaB.PythiaCommand += [ "pydat3 mdme 898 1 2",
-                           "pydat3 mdme 898 2 0",
-                           "pydat3 kfdp 898 1 431",
-                           "pydat3 kfdp 898 2 -211",
-                           "pydat3 kfdp 898 3 0",
-                           "pydat3 kfdp 898 4 0",
-                           "pydat3 mdme 831 1 1"   ];
-PythiaB.ForceCDecay = "yes";                               
-
-#
-# w.w., 2006-04-02 revised:
-# 
-# user_finsel.F decay particle channel
-#
-PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-PythiaB.DecayChannelParameters = [1., 0., 0., 0.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( BtuneOptionsFile )
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-# 
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 50000.
-# 
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = NEventGen
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-#--------------------------------------------------------------
-# CBNT output
-#--------------------------------------------------------------
-CBNTAthenaAware=True
-include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" )
-include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-# include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-include( "CBNT_Truth_jobOptions.py" )
-CBNT_Truth.MaxNbParticles = 6000    # maximum number of particles in the ntuple
-CBNT_Truth.MaxNbVertices  = 6000    # maximum number of vertices in the ntuple
-All.Enable = True                   # save ALL particles
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency 
-#--------------------------------------------------------------
-theApp.Dlls                += [ "RootHistCnv" ]
-theApp.HistogramPersistency = "ROOT"
-
-#--------------------------------------------------------------
-# NTuple output file 
-#--------------------------------------------------------------
-RootHistSvc = Service( "RootHistSvc" )
-NtupleSvc = Service( "NtupleSvc" )
-NtupleSvc.Output = ["FILE1 DATAFILE='pythiaB.root' TYP='ROOT' OPT='NEW'"]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = INFO
-
-#----------------------------------------------------------------              # Pool persistency
-#----------------------------------------------------------------
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += ["2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_Bp_D0MuNu_Signal3.py b/Generators/PythiaB/share/PythiaB_Bp_D0MuNu_Signal3.py
deleted file mode 100644
index 07ac577f9427dca5eb2ec3144d355d5cabfab0e0..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_Bp_D0MuNu_Signal3.py
+++ /dev/null
@@ -1,237 +0,0 @@
-###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: Bp->D0 mu nu
-#
-#  Author : W. Walkowiak, 2006-04-02
-#           (adjusted after a template provided by PythiaB)
-#  changed: 2006-09-07, w.w. -- added Btune options
-#           2006-11-10, w.w. -- adjusted for release 12
-#
-#  $Id: PythiaB_Bp_D0MuNu_Signal3.py,v 1.2 2007-03-20 14:22:12 msmizans Exp $
-#
-#==============================================================
-#
-varInit = dir()
-
-# default options (can be overwritten by command line options)
-PythiaBDecayFlags = {
-    'BtuneOptionsFile'     : "Btune.py"
-    }
-
-# set variable to default or from personalized JobOptions
-# if not already set (code taken from RecExCommon)
-for o in [ o for o in PythiaBDecayFlags.keys() if not o in varInit ]:
-        exec '%s = PythiaBDecayFlags["%s"]' % (o,o)
-
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submission script
-#--------------------------------------------------------------
-theApp.EvtMax = 100
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submission script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-AtRndmGenSvc.ReadFromFile = True;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  Bs -> D0bar mu+ nu with 
-#
-# close all D0bar decay channels here
-# include( "CloseD0bar.py" )
-
-# 831: Ds+  -> PhiPi+
-# 851: D*s+ -> Ds+gam
-# 852: D*s+ -> Ds+pi0
-# 953: Bs   -> Ds-e+nu
-# 954: Bs   -> D*s-e+nu
-# 959: Bs   -> Ds-mu+nu
-# 960: Bs   -> D*s-mu+nu
-# 965: Bs   -> Ds-tau+nu
-# 966: Bs   -> D*s-tau+nu
-# 967: Bs   -> Ds-Pi+
-# 968: Bs   -> Ds-rho+
-# 969: Bs   -> Ds-a1+
-# 970: Bs   -> D*s-Pi+
-# 971: Bs   -> D*s-rho+
-# 972: Bs   -> D*s-a1+
-# 973: Bs   -> Ds-Ds+
-# 974  Bs   -> Ds-D*s+
-# 975  Bs   -> D*s-Ds+
-# 976  Bs   -> D*s-D*s+
-#
-# 914  B+   -> D0bar mu+ nu_mu
-	 
-PythiaB.PythiaCommand += [ "pydat3 mdme 914 1 1"
-                           ];
-
-PythiaB.ForceCDecay = "yes";                               
-#
-# w.w., 2006-04-02 revised:
-# 
-# user_finsel.F decay particle channel
-#
-## PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-#
-PythiaB.DecayChannelParameters = [0., 0., 0., 0.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( BtuneOptionsFile )
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 1.,  13.,     5.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-# 
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 100000.
-# 
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 400
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-#--------------------------------------------------------------
-# CBNT output
-#--------------------------------------------------------------
-# include( "CBNT_Athena/CBNT_Athena_jobOptions.py" )
-# include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-# include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-# CBNT_Truth.MaxNbParticles = 6000    # maximum number of particles in the ntuple
-# CBNT_Truth.MaxNbVertices  = 6000    # maximum number of vertices in the ntuple
-# CBNT_Athena.NtupleLocID = "/FILE1/CBNT/t3333" # name of the tree
-# All.Enable = True                   # save ALL particles
-
-CBNTAthenaAware=True
-include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" )
-include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-# include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-include( "CBNT_Truth_jobOptions.py" )
-CBNT_Truth.MaxNbParticles = 6000    # maximum number of particles in the ntuple
-CBNT_Truth.MaxNbVertices  = 6000    # maximum number of vertices in the ntuple
-# CBNT_AthenaAware.NtupleLocID = "/FILE1/CBNT/t3333" # name of the tree
-All.Enable = True                   # save ALL particles
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency 
-#--------------------------------------------------------------
-theApp.Dlls                += [ "RootHistCnv" ]
-theApp.HistogramPersistency = "ROOT"
-
-#--------------------------------------------------------------
-# NTuple output file 
-#--------------------------------------------------------------
-RootHistSvc = Service( "RootHistSvc" )
-NtupleSvc = Service( "NtupleSvc" )
-NtupleSvc.Output = ["FILE1 DATAFILE='pythiaB.root' TYP='ROOT' OPT='NEW'"]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = INFO
-
-#----------------------------------------------------------------              # Pool persistency
-#----------------------------------------------------------------
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += ["2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_Bs_DsPhiMuNu_Signal3.py b/Generators/PythiaB/share/PythiaB_Bs_DsPhiMuNu_Signal3.py
deleted file mode 100644
index 07e0457aecaf738b544e861e17ad8651b6d9e48a..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_Bs_DsPhiMuNu_Signal3.py
+++ /dev/null
@@ -1,184 +0,0 @@
-###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: B0s->Ds(Phi(K+K-)Pi)A1MuNu
-#
-#  Author:  W. Walkowiak, 2006-04-02
-#           (adjusted after a template provided by PythiaB)
-#  Changes: WW, 2006-04-13
-#           Removed CBNT_ lines; added RootHistSvc again 
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submission script
-#--------------------------------------------------------------
-theApp.EvtMax = 100
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submission script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-AtRndmGenSvc.ReadFromFile = True;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  Bs -> Ds mu nu with Ds->phi pi
-#
-include( "Dsphipi.py" )
-# 959: Bs  -> Ds-mu+nu
-# 967: Bs  -> Ds-Pi+
-# 969: Bs  -> Ds-a1+
-# 831: Ds- -> PhiPi-
-   				 
-PythiaB.PythiaCommand += [ "pydat3 mdme 959 1 1",
-                           "pydat3 mdme 831 1 1"   ];
-PythiaB.ForceCDecay = "yes";                               
-
-#
-# w.w., 2006-04-02 revised:
-# 
-# user_finsel.F decay particle channel
-#
-PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-#
-PythiaB.DecayChannelParameters = [1., 0., 0., 0.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "Btune.py" )
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-# PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-PythiaB.lvl2cut = [ 1.,  13.,     5.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 500000.
-#
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 50
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency 
-#--------------------------------------------------------------
-#theApp.Dlls                += [ "RootHistCnv" ]
-#theApp.HistogramPersistency = "ROOT"
-
-#--------------------------------------------------------------
-# NTuple output file 
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-#NtupleSvc = Service( "NtupleSvc" )
-#NtupleSvc.Output = ["FILE1 DATAFILE='pythiaB.root' TYP='ROOT' OPT='NEW'"]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-
-#----------------------------------------------------------------              # Pool persistency
-#----------------------------------------------------------------
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += ["2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_Bs_DsStDsPhiA1_Signal3.py b/Generators/PythiaB/share/PythiaB_Bs_DsStDsPhiA1_Signal3.py
deleted file mode 100644
index 87f02a859fc22f6c6800fbb2abf8fac95557d7c2..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_Bs_DsStDsPhiA1_Signal3.py
+++ /dev/null
@@ -1,235 +0,0 @@
-###############################################################
-#
-#  Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#  Decay channel: B0s->DsSt(Ds(Phi(K+K-)Pi)X)A1(Rho(Pi+Pi-)Pi)
-#
-#  Author : W. Walkowiak, 2006-04-02
-#           (adjusted after a template provided by PythiaB)
-#  changed: 2006-09-07, w.w. -- added Btune options
-#           2006-11-10, w.w. -- adjusted for release 12
-#
-#  $Id: PythiaB_Bs_DsStDsPhiA1_Signal3.py,v 1.2 2007-03-20 14:22:55 msmizans Exp $
-#
-#==============================================================
-#
-varInit = dir()
-
-# default options (can be overwritten by command line options)
-PythiaBDecayFlags = {
-    'BtuneOptionsFile'     : "Btune.py"
-    }
-
-# set variable to default or from personalized JobOptions
-# if not already set (code taken from RecExCommon)
-for o in [ o for o in PythiaBDecayFlags.keys() if not o in varInit ]:
-        exec '%s = PythiaBDecayFlags["%s"]' % (o,o)
-
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submission script
-#--------------------------------------------------------------
-theApp.EvtMax = 100
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submission script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-AtRndmGenSvc.ReadFromFile = True;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-PythiaB.ForceBDecay = "yes"
-#
-# open your exclusive channel here  Bs -> Ds* a1 with Ds* -> Ds X, Ds->phi pi
-#
-include( "Dsphipi.py" )
-
-# 831: Ds+  -> PhiPi+
-# 851: D*s+ -> Ds+gam
-# 852: D*s+ -> Ds+pi0
-# 953: Bs   -> Ds-e+nu
-# 954: Bs   -> D*s-e+nu
-# 959: Bs   -> Ds-mu+nu
-# 960: Bs   -> D*s-mu+nu
-# 965: Bs   -> Ds-tau+nu
-# 966: Bs   -> D*s-tau+nu
-# 967: Bs   -> Ds-Pi+
-# 968: Bs   -> Ds-rho+
-# 969: Bs   -> Ds-a1+
-# 970: Bs   -> D*s-Pi+
-# 971: Bs   -> D*s-rho+
-# 972: Bs   -> D*s-a1+
-# 973: Bs   -> Ds-Ds+
-# 974  Bs   -> Ds-D*s+
-# 975  Bs   -> D*s-Ds+
-# 976  Bs   -> D*s-D*s+
-   				 
-PythiaB.PythiaCommand += [ "pydat3 mdme 972 1 1",
-                           "pydat3 mdme 851 1 1",
-                           "pydat3 mdme 852 1 1",
-                           "pydat3 mdme 831 1 1"   ];
-PythiaB.ForceCDecay = "yes";                               
-#
-# w.w., 2006-04-02 revised:
-# 
-# user_finsel.F decay particle channel
-#
-PythiaB.ForceDecayChannel = "DsPhiX";
-#
-# Decay particle selection for DsPhiX: 
-#   0. (off)/ 1. (on) -- ordered as follows:
-#     1 : PhiKK   decay -- Phi -> K+K- 
-#                          ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     2 : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K- 
-#                          (from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-#     3 : A1RhoPi decay -- a1 -> RhoPi   (from B0s)
-#     4 : RhoPiPi decay -- Rho -> Pi+Pi- (from B0s)
-#
-PythiaB.DecayChannelParameters = [0., 1., 1., 1.];
- 
-#
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-# 'msel 5' is only for fast tests! 
-#  for correct b-production you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( BtuneOptionsFile )
-
-# PythiaB.PythiaCommand += ["pysubs ckin 3 6.",
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-                          "pysubs ckin 9 -3.5",
-                          "pysubs ckin 10 3.5",
-                          "pysubs ckin 11 -3.5",
-                          "pysubs ckin 12 3.5",
-                          "pysubs msel 1"]
-
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["6.0 2.5 and 6.0 2.5"]
-# PythiaB.cutbq = ["6.0 4.5 and 6.0 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-# 
-#  ------------- Maximum number of tries for hard process -------------
-PythiaB.maxTriesHard = 100000.
-# 
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  100.
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 400
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-#--------------------------------------------------------------
-# CBNT output
-#--------------------------------------------------------------
-# include( "CBNT_Athena/CBNT_Athena_jobOptions.py" )
-# include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-# include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-# CBNT_Truth.MaxNbParticles = 6000    # maximum number of particles in the ntuple
-# CBNT_Truth.MaxNbVertices  = 6000    # maximum number of vertices in the ntuple
-# CBNT_Athena.NtupleLocID = "/FILE1/CBNT/t3333" # name of the tree
-# All.Enable = True                   # save ALL particles
-
-CBNTAthenaAware=True
-include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" )
-include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-# include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-include( "CBNT_Truth_jobOptions.py" )
-CBNT_Truth.MaxNbParticles = 6000    # maximum number of particles in the ntuple
-CBNT_Truth.MaxNbVertices  = 6000    # maximum number of vertices in the ntuple
-# CBNT_AthenaAware.NtupleLocID = "/FILE1/CBNT/t3333" # name of the tree
-All.Enable = True                   # save ALL particles
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency 
-#--------------------------------------------------------------
-theApp.Dlls                += [ "RootHistCnv" ]
-theApp.HistogramPersistency = "ROOT"
-
-#--------------------------------------------------------------
-# NTuple output file 
-#--------------------------------------------------------------
-RootHistSvc = Service( "RootHistSvc" )
-NtupleSvc = Service( "NtupleSvc" )
-NtupleSvc.Output = ["FILE1 DATAFILE='pythiaB.root' TYP='ROOT' OPT='NEW'"]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = INFO
-
-#----------------------------------------------------------------              # Pool persistency
-#----------------------------------------------------------------
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += ["2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_Bs_GammaMuMu_Signal.py b/Generators/PythiaB/share/PythiaB_Bs_GammaMuMu_Signal.py
deleted file mode 100644
index b3458eb19ecc135d656c95ac3584b6d7c61ba085..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_Bs_GammaMuMu_Signal.py
+++ /dev/null
@@ -1,166 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submition script
-#--------------------------------------------------------------
-theApp.EvtMax = 50
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submition script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T O   O P E N    T H E   U S E R   C H A N N E L 				 
-#   Bs -> gamma mu+ mu- 				 
-PythiaB.PythiaCommand += ["pydat3 mdme 965 1 1",
-                                "pydat3 kfdp 965 1 13",
-                                "pydat3 kfdp 965 2 -13",
-                                "pydat3 kfdp 965 3 22",
-                                "pydat3 kfdp 965 4 0",
-                                "pydat3 kfdp 965 5 0",
-                                "pydat3 brat 965 0.000000001"     ]
-                                                                                                                                                                                                                                
-
-PythiaB.ForceDecayChannel = "BsGammaMuMu"
-# lvl1 and lvl2 cuts pt_L1 eta_L1 pt_L2 eta_L2
-PythiaB.DecayChannelParameters = [1., 5.8, 2.5, 1., 5.8, 2.5] ;
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "Btune.py" )
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-# for BsPhiMuMu, BdKstarMuMu BsGammaMuMu lvl1,lvl2 must be OFF
-PythiaB.lvl1cut = [ 0.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-# ???  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  6. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 50
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  50.
-
-
-
-###############################################################
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency
-#--------------------------------------------------------------
-# Change the following line to "RootHistCnv" for ROOT persistency
-#theApp.Dlls                += [ "RootHistCnv" ]
-# Change the following line to "ROOT" for ROOT persistency
-#theApp.HistogramPersistency = "ROOT"
-#--------------------------------------------------------------
-# NTuple output file
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-#HbookHistSvc.NPAWC = 1500000
-#HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-#HistogramPersistencySvc.OutputFile  = "histo.root"
-#NTupleSvc = Service( "NTupleSvc" )
-#NTupleSvc.Output = [ "FILE1  DATAFILE='pythiaB.root'  OPT='NEW'  TYP='ROOT'" ]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-
-
-###############################################################
-# Add POOL persistency
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-          
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_Master.py b/Generators/PythiaB/share/PythiaB_Master.py
deleted file mode 100644
index 3bd5da789a20ed92eedb923e54d3a6aec7c88939..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_Master.py
+++ /dev/null
@@ -1,68 +0,0 @@
-###############################################################################
-#
-# PythiaB_Master.py
-# Author: ATLAS B-physics group
-# Use this script to execute standard production job options.
-#
-###############################################################################
-
-#------------------------------------------------------------------------------
-# General Application Configuration options
-#------------------------------------------------------------------------------
-
-import AthenaCommon.AtlasUnixGeneratorJob
-include( "PartPropSvc/PartPropSvc.py" )
-from AthenaCommon.AppMgr import theApp
-from AthenaCommon.AppMgr import ServiceMgr
-
-#------------------------------------------------------------------------------
-# Events to execute
-#------------------------------------------------------------------------------
-
-theApp.EvtMax = 100
-ServiceMgr.EventSelector.RunNumber  = 108524
-ServiceMgr.EventSelector.FirstEvent = 1
-
-#------------------------------------------------------------------------------
-# Random seeds initialization
-#------------------------------------------------------------------------------
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-AtRndmGenSvc = AtRndmGenSvc()
-ServiceMgr  += AtRndmGenSvc
-
-# See EvgenJobTransforms/Evgen_randomseeds.py
-AtRndmGenSvc.Seeds = ['PYTHIA 47898993 0', 'PYTHIA_INIT 820021 2347532']
-
-#------------------------------------------------------------------------------
-# Output level threshold: 1=VERBOSE 2=DEBUG 3=INFO 4=WARNING 5=ERROR 6=FATAL
-#------------------------------------------------------------------------------
-
-ServiceMgr.MessageSvc.OutputLevel  = INFO
-ServiceMgr.MessageSvc.defaultLimit = 9999999 # all messages
-
-#------------------------------------------------------------------------------
-# HERE INCLUDE THE PRODUCTION JOB-OPTIONS FRAGMENT
-#------------------------------------------------------------------------------
-
-include( "MC11.108424.PythiaB_Bs_Jpsi_mu0mu0_phi_KK_nopTcuts_PhysAngles.py" )
-
-# Set CMS energy
-PythiaB.PythiaCommand += [ "pyinit win 7000"]
-
-#------------------------------------------------------------------------------
-# POOL persistency
-#------------------------------------------------------------------------------
-
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-
-# 2101 = EventInfo, 133273 = MCTruth (HepMC)
-Stream1.ItemList  += [ "2101#*", "133273#*" ]
-Stream1.OutputFile = "evgen.pool.root"
-
-###############################################################################
-#
-# End of PythiaB_Master.py job-options
-#
-###############################################################################
diff --git a/Generators/PythiaB/share/PythiaB_Signal.py b/Generators/PythiaB/share/PythiaB_Signal.py
deleted file mode 100644
index 5152bff9f706c78a06ff3b2058170a754b6c8657..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_Signal.py
+++ /dev/null
@@ -1,166 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B-events 
-#  in user selected exclusive channel
-#
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submition script
-#--------------------------------------------------------------
-theApp.EvtMax = 5
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submition script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIAB
-#--------------------------------------------------------------
-#PythiaB.ForceBDecay = "no";
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------				 
-# -------------  FORCE   YOUR  B CHANNEL  HERE -------------
-#--------------------------------------------------------------
-# To force your B-decay channels decomment following 2 lines:
-include( "CloseAntibQuark.py" )
-
-PythiaB.ForceBDecay = "yes"
-#   T H R E E   E X A M P L E S    T O   O P E N    Y O U R    C H A N N E L 				 
-#   Decomment one of following examples or create your analogically
-# open your exclusive channel here  Bs -> J/psi(mumu) phi 				 
-PythiaB.PythiaCommand += ["pydat3 mdme 982 1 1",    
-				"pydat3 mdme 858 1 0",
-				"pydat3 mdme 860 1 0"        ]
-# open your exclusive channel here  Bs -> Ds pi with Ds->phi pi
-##include "Dsphipi.txt" 				 
-#PythiaB.PythiaCommand += {"pydat3 mdme 967 1 1",
-#                                "pydat3 mdme 831 1 1"      };
-#PythiaB.ForceCDecay = "yes";                                
-# open your exclusive channel here  Bs -> J/psi(mumu) K0 
-#PythiaB.PythiaCommand += {"pydat3 mdme 889 1 1",    
-#				"pydat3 mdme 858 1 0",
-#				"pydat3 mdme 860 1 0"        };
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "Btune.py" )
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 15.",
-                                "pysubs ckin 9 -3.5",
-				"pysubs ckin 10 3.5",
-				"pysubs ckin 11 -3.5",
-				"pysubs ckin 12 3.5",
-          "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-#  ------------- Selections on b  quarks   -------------
-# simulate  only b-flavour events
-PythiaB.flavour =  5.
-# PythiaB force exclusive decay channels only on b=-5 side 
-# ------------------- b=5  --- and/or ---  b=-5 --------
-PythiaB.cutbq = ["0. 102.5 and 10. 2.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 1., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  14. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 50
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  50.
-
-
-
-###############################################################
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency
-#--------------------------------------------------------------
-# Change the following line to "RootHistCnv" for ROOT persistency
-#theApp.Dlls                += [ "RootHistCnv" ]
-## Change the following line to "ROOT" for ROOT persistency
-#theApp.HistogramPersistency = "ROOT"
-#--------------------------------------------------------------
-# NTuple output file
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-##HbookHistSvc.NPAWC = 1500000
-##HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-##HistogramPersistencySvc.OutputFile  = "histo.root"
-#NTupleSvc = Service( "NTupleSvc" )
-#NTupleSvc.Output = [ "FILE1  DATAFILE='pythiaB.root'  OPT='NEW'  TYP='ROOT'" ]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-
-
-###############################################################
-# Add POOL persistency
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-          
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_bbe10X.py b/Generators/PythiaB/share/PythiaB_bbe10X.py
deleted file mode 100644
index 99fe9f3f2ddab0981fc870af304ede6920bf6a9b..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_bbe10X.py
+++ /dev/null
@@ -1,137 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B events 
-# no decay channel is specified.
-# Only events containing at least one muon  
-# with pT>6GeV |eta|<2.5 are written to output
-# Selection criteria can be changed by datacards
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submition script
-#--------------------------------------------------------------
-theApp.EvtMax = 10
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submition script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "Btune.py" )
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-				 "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  5.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["7. 4.5 or 7. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 0.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-#PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.5]
-PythiaB.lvl2cut = [ 1.,  11.,     10.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0., 102.5, 0., 102.5, 0., 102.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  9. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 10
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-###############################################################
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency
-#--------------------------------------------------------------
-# Change the following line to "RootHistCnv" for ROOT persistency
-#theApp.Dlls                += [ "RootHistCnv" ]
-# Change the following line to "ROOT" for ROOT persistency
-#theApp.HistogramPersistency = "ROOT"
-#--------------------------------------------------------------
-# NTuple output file
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-#HbookHistSvc.NPAWC = 1500000
-#HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-#HistogramPersistencySvc.OutputFile  = "histo.root"
-#NTupleSvc = Service( "NTupleSvc" )
-#NTupleSvc.Output = [ "FILE1  DATAFILE='pythiaB.root'  OPT='NEW'  TYP='ROOT'" ]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-
-
-###############################################################
-# Add POOL persistency
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_bbmu12mu12X.py b/Generators/PythiaB/share/PythiaB_bbmu12mu12X.py
deleted file mode 100644
index ad08d333bf61b0dad5b48534307999276a53ea7e..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_bbmu12mu12X.py
+++ /dev/null
@@ -1,136 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B events 
-# no decay channel is specified.
-# Only events containing at least one muon  
-# with pT>6GeV |eta|<2.5 are written to output
-# Selection criteria can be changed by datacards
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submition script
-#--------------------------------------------------------------
-theApp.EvtMax = 10
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submition script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "Btune.py" )
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 12.",
-				 "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  5.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["12. 4.5 or 12. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  12., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 1.,  13.,     12.,   2.5]
-#PythiaB.lvl2cut = { 0.,  11.,     6.,   2.5};
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0., 102.5, 0., 102.5, 0., 102.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  20. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 10
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-###############################################################
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency
-#--------------------------------------------------------------
-# Change the following line to "RootHistCnv" for ROOT persistency
-#theApp.Dlls                += [ "RootHistCnv" ]
-# Change the following line to "ROOT" for ROOT persistency
-#theApp.HistogramPersistency = "ROOT"
-#--------------------------------------------------------------
-# NTuple output file
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-##HbookHistSvc.NPAWC = 1500000
-##HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-##HistogramPersistencySvc.OutputFile  = "histo.root"
-#NTupleSvc = Service( "NTupleSvc" )
-#NTupleSvc.Output = [ "FILE1  DATAFILE='pythiaB.root'  OPT='NEW'  TYP='ROOT'" ]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-
-###############################################################
-# Add POOL persistency
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_bbmu4_ChHadr.py b/Generators/PythiaB/share/PythiaB_bbmu4_ChHadr.py
deleted file mode 100644
index 16dace2b6218609670a057c8a245909cd21a54c7..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_bbmu4_ChHadr.py
+++ /dev/null
@@ -1,113 +0,0 @@
-###############################################################
-# PRODUCTION FRAGMENT
-#
-# Job options file for generation of bb events, 
-#
-# Only events containing at least one muon  
-# with pT>4GeV |eta|<2.8
-# and at least one Charm Hadron in the decay of interest
-# are written to output.
-#
-# Author : Leonid Gladilin (gladilin@mail.cern.ch), 2008-0004-14
-#
-# Selection criteria can be changed by datacards
-#==============================================================
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = topAlg.PythiaB
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#
-PythiaB.ForceDecayChannel = "CharmHadrons"
-# lvl1 and lvl2 cuts pt_L1 eta_L1 pt_L2 eta_L2
-#                                  D+-  Ds+- Lc+- D*(2)pi D*mu D*el D0(2) D0mu D0el |eta|
-PythiaB.DecayChannelParameters = [ 4.5, 4.5, -4.5, 4.5,   4.5, 0.0, 0.0,  0.0, 0.0,  2.8]
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 7 -4.",
-    "pysubs ckin 8 4.",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 5.",
-				 "pysubs msel 1"]
-
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  5.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["4. 4.5 or 4. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  4., 2.8]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.8]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  10
-#==============================================================
-#
-# End of job options file
-#
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-#--------------------------------------------------------------
-#
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.OutputFile = "pythia.bbmu4ch.pool.root"
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]
-###############################################################
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_bbmu6e4X.py b/Generators/PythiaB/share/PythiaB_bbmu6e4X.py
deleted file mode 100644
index 861f5185fd382da996000697984e13e1d5e0366e..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_bbmu6e4X.py
+++ /dev/null
@@ -1,136 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B events 
-# no decay channel is specified.
-# Only events containing at least one muon  
-# with pT>6GeV |eta|<2.5 are written to output
-# Selection criteria can be changed by datacards
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submition script
-#--------------------------------------------------------------
-theApp.EvtMax = 5
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submition script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "Btune.py" )
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-				 "pysubs msel 1"]
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  5.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["7. 4.5 or 7. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-#PythiaB.lvl2cut = [ 1.,  13.,     4.,   2.5]
-PythiaB.lvl2cut = [ 1.,  11.,     4.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0., 102.5, 0., 102.5, 0., 102.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  20. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 10
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-###############################################################
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency
-#--------------------------------------------------------------
-# Change the following line to "RootHistCnv" for ROOT persistency
-#theApp.Dlls                += [ "RootHistCnv" ]
-# Change the following line to "ROOT" for ROOT persistency
-#theApp.HistogramPersistency = "ROOT"
-#--------------------------------------------------------------
-# NTuple output file
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-#HbookHistSvc.NPAWC = 1500000
-#HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-#HistogramPersistencySvc.OutputFile  = "histo.root"
-#NTupleSvc = Service( "NTupleSvc" )
-#NTupleSvc.Output = [ "FILE1  DATAFILE='pythiaB.root'  OPT='NEW'  TYP='ROOT'" ]
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-
-###############################################################
-# Add POOL persistency
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_bbmu6mu4_massX.py b/Generators/PythiaB/share/PythiaB_bbmu6mu4_massX.py
deleted file mode 100644
index 2c23716a030649afe318476b40cbacc6ee3fe495..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_bbmu6mu4_massX.py
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################
-#
-# Job options file for generation of B events 
-# no decay channel is specified.
-# Only events containing at least one muon  
-# with pT>6GeV |eta|<2.5 are written to output
-# Selection criteria can be changed by datacards
-#==============================================================
-#--------------------------------------------------------------
-# General Application Configuration options
-#--------------------------------------------------------------
-#theApp.setup( MONTECARLO )
-include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" ) 
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-theApp.Dlls += [ "GaudiAlg" ]
-theApp.Dlls += [ "TruthExamples", "PythiaB" ]
-theApp.Dlls += [ "GaudiAud" ]
-theApp.Dlls += [ "HbookCnv" ]
-theApp.Dlls += [ "GeneratorFilters" ]
-theAuditorSvc = AuditorSvc()
-theAuditorSvc.Auditors  = [ "ChronoAuditor" ]
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-theApp.TopAlg = ["PythiaB" ,  "BSignalFilter"]
-theApp.ExtSvc += ["AtRndmGenSvc"]
-#--------------------------------------------------------------
-# Number of events to be accepted !! (default is 10)
-# re-written if use B job submition script
-# RunNumber, FirstEvent re-written if use B job submition script
-#--------------------------------------------------------------
-theApp.EvtMax = 5
-EventSelector.RunNumber   = 1
-EventSelector.FirstEvent  = 1
-#--------------------------------------------------------------
-#User random number seeds - re-written if use B job submition script
-#--------------------------------------------------------------
-AtRndmGenSvc = Service( "AtRndmGenSvc" )
-AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512", "PYTHIA_INIT 820021 2347532"]
-# AtRndmGenSvc.ReadFromFile = true;
-# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-MessageSvc.OutputLevel               = 3
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = Algorithm( "PythiaB" )
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-include( "Btune.py" )
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 10.",
-				 "pysubs msel 1"]
-
-#
-# Select user_finsel.F decay channel and parameters
-# 
-PythiaB.ForceDecayChannel = "bbmumu"
-
-PythiaB.DecayChannelParameters = [8.0]
-
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  5.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["7. 4.5 or 7. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  6., 2.5]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 1.,  13.,     4.,   2.5]
-#PythiaB.lvl2cut = [ 1.,  11.,     4.,   2.5]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0., 102.5, 0., 102.5, 0., 102.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  20. 
-#  ------------- For how many events store B-chain in NTUPLE -------------
-BSignalFilter = Algorithm( "BSignalFilter" )
-BSignalFilter.SignaltoNtup = 10
-#  ------------- For how many events store B-chain in ascii -------------
-PythiaB.SignalDumptoAscii =  10.
-
-###############################################################
-
-#--------------------------------------------------------------
-# Histogram & Ntuple Persistency
-#--------------------------------------------------------------
-# Change the following line to "RootHistCnv" for ROOT persistency
-#theApp.Dlls                += [ "RootHistCnv" ]
-# Change the following line to "ROOT" for ROOT persistency
-#theApp.HistogramPersistency = "ROOT"
-#--------------------------------------------------------------
-# NTuple output file
-#--------------------------------------------------------------
-#RootHistSvc = Service( "RootHistSvc" )
-#HbookHistSvc.NPAWC = 1500000
-#HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
-#HistogramPersistencySvc.OutputFile  = "histo.root"
-#NTupleSvc = Service( "NTupleSvc" )
-#NTupleSvc.Output = [ "FILE1  DATAFILE='pythiaB.root'  OPT='NEW'  TYP='ROOT'" ]
-
-
-# Change since 12.0.3
-theApp.Dlls += [ "AnalysisTools" ]
-THistSvc = Service ( "THistSvc" )
-THistSvc.Output = ["AANT DATAFILE='pythiaB.root' OPT='NEW'"]
-theApp.TopAlg += [ "AANTupleStream" ]
-AANTupleStream = Algorithm( "AANTupleStream" )
-AANTupleStream.ExtraRefNames = [ "" ]
-AANTupleStream.OutputName = 'pythiaB.root'
-AANTupleStream.ExistDataHeader = False
-AANTupleStream.OutputLevel = VERBOSE
-
-
-###############################################################
-# Add POOL persistency
-include( "AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py" )
-include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" )
-# 2101 = EventInfo
-# 133273 = MCTruth (HepMC)
-Stream1.ItemList += [ "2101#*", "133273#*" ]
-include("AthenaServices/AthenaSealSvc_joboptions.py" )
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythiaB.pool.root"
-
-
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaB/share/PythiaB_ccmu4_ChHadr.py b/Generators/PythiaB/share/PythiaB_ccmu4_ChHadr.py
deleted file mode 100644
index 0e0711a4f7b48576fac8151ee6305a28e2203647..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/PythiaB_ccmu4_ChHadr.py
+++ /dev/null
@@ -1,113 +0,0 @@
-###############################################################
-# PRODUCTION FRAGMENT
-#
-# Job options file for generation of cc events, 
-#
-# Only events containing at least one muon  
-# with pT>4GeV |eta|<2.8
-# and at least one Charm Hadron in the decay of interest
-# are written to output.
-#
-# Author : Leonid Gladilin (gladilin@mail.cern.ch), 2008-0004-14
-#
-# Selection criteria can be changed by datacards
-#==============================================================
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaB.PythiaBConf import PythiaB
-topAlg += PythiaB()
-
-#--------------------------------------------------------------
-# Algorithms 
-#--------------------------------------------------------------
-#--------------------------------------------------------------				 
-#              PARAMETERS  SPECIFIC  TO   PYTHIABMODULE
-#--------------------------------------------------------------
-PythiaB = topAlg.PythiaB
-PythiaB.ForceBDecay = "no"
-PythiaB.ForceCDecay = "no"
-#
-PythiaB.ForceDecayChannel = "CharmHadrons"
-# lvl1 and lvl2 cuts pt_L1 eta_L1 pt_L2 eta_L2
-#                                  D+-  Ds+- Lc+- D*(2)pi D*mu D*el D0(2) D0mu D0el |eta|
-PythiaB.DecayChannelParameters = [ 4.5, 4.5, -4.5, 4.5,   4.5, 0.0, 0.0,  0.0, 0.0,  2.8]
-#--------------------------------------------------------------
-# --------  PYTHIA PARAMETERS OPTIMAL FOR BEAUTY PRODUCTION  --
-#--------------------------------------------------------------
-#  'msel 5' is only for fast tests! 
-#  for correct b-producion you should use 'msel 1'
-# 'mstj 26 0' = no mixing was defined in Btune as default
-# 'mstj 22 2' = no K0S, Lambda0 decays in Pythia - defined in Btune as default
-
-PythiaB.PythiaCommand += [
-    "pysubs ckin 7 -4.",
-    "pysubs ckin 8 4.",
-    "pydat1 mstj 26 0",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 13 0.65",
-    "pydat1 parj 14 0.12",
-    "pydat1 parj 15 0.04",
-    "pydat1 parj 16 0.12",
-    "pydat1 parj 17 0.2",
-    "pydat1 parj 55 -0.006",
-    ]
-
-PythiaB.PythiaCommand += [
-                   "pypars mstp 70 2",
-                   "pypars mstp 72 0",
-                   "pypars mstp 81 21",
-                   "pypars mstp 82 4",
-                   "pypars mstp 84 1",
-                   "pypars mstp 85 1",
-                   "pypars mstp 86 2",
-                   "pypars mstp 87 4",
-                   "pypars mstp 88 0",
-                   "pypars mstp 89 1",
-                   "pypars mstp 90 1",
-                   "pypars mstp 95 1",
-                   "pypars parp 78 0.2",
-                   "pypars parp 80 0.01",
-                   "pypars parp 82 1.9",
-                   "pypars parp 83 0.3",
-                   "pypars parp 84 0.5",
-                   "pypars parp 89 1800",
-                   "pypars parp 90 0.22",
-                   "pydat1 parj 81 0.14"]
-
-PythiaB.PythiaCommand += ["pysubs ckin 3 5.",
-				 "pysubs msel 1"]
-
-#--------------------------------------------------------------
-# -------------  DEFINE SELECTION CUTS  -------------
-#--------------------------------------------------------------				
-PythiaB.flavour =  4.				
-#  ------------- Selections on b  quarks   -------------
-PythiaB.cutbq = ["4. 4.5 or 4. 4.5"]
-#  ------------- LVL1 muon cuts 0=OFF 1=ON -------------
-PythiaB.lvl1cut = [ 1.,  4., 2.8]
-#  ------------- LVL2 muon/electron cuts  0=OFF 1=ON-------------
-PythiaB.lvl2cut = [ 0.,  13.,     6.,   2.8]
-#  ------------- Offline cuts 0=OFF 1=ON -------------
-PythiaB.offcut = [ 0., 0.5, 2.5, 3., 2.5, 0.5, 2.5]
-#  ------------- Number of repeated hadronization mhadr -------------
-PythiaB.mhadr =  10
-#==============================================================
-#
-# End of job options file
-#
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-#--------------------------------------------------------------
-#
-#---------------------------------------------------------------
-# Pool Persistency
-#---------------------------------------------------------------
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.OutputFile = "pythia.ccmu4ch.pool.root"
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]
-###############################################################
-#
-###############################################################
diff --git a/Generators/PythiaB/share/ReadGen.py b/Generators/PythiaB/share/ReadGen.py
deleted file mode 100644
index b3a9b8633f0b2b61a0355e79afa3eb2d711c7a53..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/share/ReadGen.py
+++ /dev/null
@@ -1,284 +0,0 @@
-###############################################################################
-#
-# ReadGen.py
-# Author: Pavel Reznicek (Pavel.Reznicek@cern.ch)
-# Reads the Hep-MC record and eventually dumps it to screen or an ntuple.
-# Supports b-quark chains ntuple storage and CBNT.
-# Allows also to rerun EvtGen (inclusive) over the MC collection.
-#
-###############################################################################
-
-#------------------------------------------------------------------------------
-# Global job-driving options
-#------------------------------------------------------------------------------
-
-# Dump Hep-MC on the screen
-if not 'doPrintMC'     in locals(): doPrintMC     = True
-# Create B-chains ntuple
-if not 'doBphysNtuple' in locals(): doBphysNtuple = True
-# Create CBNT
-if not 'doCBNT'        in locals(): doCBNT        = True
-# Rerun EvtGen
-if not 'doEvtGen'      in locals(): doEvtGen      = False
-
-# Messages level for the analysis algorithm
-if not 'outputLevel'   in locals(): outputLevel   = INFO
-#maxEvents     = MYNOEVENTS
-if not 'maxEvents'     in locals(): maxEvents     = 1000
-#skipEvents    = MYSKIP
-if not 'skipEvents'    in locals(): skipEvents    = 0
-# Mostly for the POOL convertors and configurables
-if not 'usedRelease'   in locals(): usedRelease   = 16
-# Hep-MC event key in the data file (GEN_EVENT, GEN_AOD, TruthEvent)
-if not 'mcEventKey'    in locals(): mcEventKey    = "GEN_EVENT"
-# Input datafile(s)
-if not 'inputData'     in locals():
-  inputData = [ "evgen.pool.root" ]
-
-#------------------------------------------------------------------------------
-# General Application Configuration options
-#------------------------------------------------------------------------------
-
-if usedRelease >= 13:
-  from AthenaCommon.AppMgr      import theApp
-  from AthenaCommon.AppMgr      import ServiceMgr
-  from AthenaCommon.AlgSequence import AlgSequence
-  topSequence = AlgSequence()
-
-#------------------------------------------------------------------------------
-# To read out Athena POOL files
-#------------------------------------------------------------------------------
-
-if usedRelease >= 13:
-  import AthenaPoolCnvSvc.ReadAthenaPool
-else:
-  include( "AthenaPoolCnvSvc/ReadAthenaPool_jobOptions.py" )
-
-#------------------------------------------------------------------------------
-# Particle properties
-#------------------------------------------------------------------------------
-
-include( "PartPropSvc/PartPropSvc.py" )
-
-#------------------------------------------------------------------------------
-# The POOL converters
-#------------------------------------------------------------------------------
-
-if usedRelease <= 11:
-  include( "ParticleEventAthenaPool/AOD_PoolCnv_jobOptions.py" )
-
-if usedRelease >= 12:
-  include( "ParticleBuilderOptions/ESD_PoolCnv_jobOptions.py" )
-  include( "ParticleBuilderOptions/AOD_PoolCnv_jobOptions.py" )
-  include( "ParticleBuilderOptions/McAOD_PoolCnv_jobOptions.py" )
-  include( "EventAthenaPool/EventAthenaPool_joboptions.py" )
-
-#------------------------------------------------------------------------------
-# Output level threshold: 1=VERBOSE 2=DEBUG 3=INFO 4=WARNING 5=ERROR 6=FATAL
-#------------------------------------------------------------------------------
-
-if usedRelease >= 13:
-  if not hasattr( ServiceMgr , "MessageSvc" ):
-    from GaudiSvc.GaudiSvcConf import MessageSvc
-    ServiceMgr += MessageSvc()
-  MessageSvc = ServiceMgr.MessageSvc
-else:
-  MessageSvc = Service( "MessageSvc" )
-
-MessageSvc.OutputLevel  = outputLevel
-MessageSvc.defaultLimit = 9999999 # all messages
-
-#------------------------------------------------------------------------------
-# Event related parameters
-#------------------------------------------------------------------------------
-
-if usedRelease >= 13:
-  # The import and registration with ServiceMgr is done in AthenaPoolCnvSvc.ReadAthenaPool
-  EventSelector = ServiceMgr.EventSelector
-else:
-  EventSelector = Service( "EventSelector" )
-
-EventSelector.InputCollections = inputData
-
-#------------------------------------------------------------------------------
-# Number of events to be processed and skipped
-#------------------------------------------------------------------------------
-
-theApp.EvtMax            = maxEvents
-EventSelector.SkipEvents = skipEvents
-
-#------------------------------------------------------------------------------
-# Rerun EvtGen on the input data file
-#------------------------------------------------------------------------------
-
-if doEvtGen:
-
-  # Copy the orignal events collection and make it writeable
-  if usedRelease >= 13:
-    from HepMCTools.HepMCToolsConf import CopyMcCollection
-    topSequence     += CopyMcCollection()
-    CopyMcCollection = topSequence.CopyMcCollection
-  else:
-    theApp.Dlls     += [ "HepMCTools" ]
-    theApp.TopAlg   += [ "CopyMcCollection" ]
-    CopyMcCollection = Algorithm( "CopyMcCollection" )
-
-  # Replace the collection in place
-  CopyMcCollection.oldCollectionKey    = mcEventKey
-  CopyMcCollection.newCollectionKey    = mcEventKey
-  CopyMcCollection.deleteOldCollection = True
-
-  # Run EvtGen on that new copy of the collection
-  # TODO - translate particle codes service
-  if usedRelease >= 13:
-    from EvtGen_i.EvtGen_iConf import EvtInclusiveDecay
-    topSequence      += EvtInclusiveDecay()
-    EvtInclusiveDecay = topSequence.EvtInclusiveDecay
-  else:
-    theApp.Dlls      += [ "EvtGen_i" ]
-    theApp.TopAlg    += [ "EvtInclusiveDecay" ]
-    EvtInclusiveDecay = Algorithm( "EvtInclusiveDecay" )
-
-#------------------------------------------------------------------------------
-# Dump Hep-MC to the screen (or log file)
-#------------------------------------------------------------------------------
-
-if doPrintMC:
-
-  if usedRelease >= 13:
-    from TruthExamples.TruthExamplesConf import PrintMC
-    topSequence += PrintMC()
-    PrintMC = topSequence.PrintMC
-  else:
-    theApp.Dlls  += [ "TruthExamples" ]
-    theApp.TopAlg += [ "PrintMC" ]
-    PrintMC = Algorithm( "PrintMC" )
-
-  # Hep-MC event key in pool file
-  PrintMC.McEventKey    = mcEventKey
-  # Do you want output at all? TRUE/FALSE
-  PrintMC.VerboseOutput = True
-  # Event print style Vertex(traditional)/Barcode(barcode ordered)
-  PrintMC.PrintStyle    = "Barcode"
-  # Vertex infomration
-  PrintMC.VertexInfo    = False
-  # First and last event to print, if no last events => job end are printed
-  PrintMC.FirstEvent    = 0
-  PrintMC.LastEvent     = 100000000
-
-#------------------------------------------------------------------------------
-# Store the b-quark chains
-#------------------------------------------------------------------------------
-
-if doBphysNtuple:
-
-  if usedRelease >= 13:
-    from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-    topSequence  += BSignalFilter()
-    BSignalFilter = topSequence.BSignalFilter
-  else:
-    theApp.Dlls   += [ "GeneratorFilters" ]
-    theApp.TopAlg += [ "BSignalFilter" ]
-    BSignalFilter  = Algorithm( "BSignalFilter" )
-
-  # Hep-MC event key in pool file
-  BSignalFilter.McEventKey   = mcEventKey
-  # No. events to be written to b-chains ntuple
-  BSignalFilter.SignaltoNtup = maxEvents
-  # Store also the b-quarks properties
-  BSignalFilter.StoreBQuarks = True
-
-#------------------------------------------------------------------------------
-# CBNT configuration
-#------------------------------------------------------------------------------
-
-if doCBNT:
-
-  if usedRelease >= 12:
-    include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" )
-    CBNT_AthenaAware.TreeName = "t3333"
-  else:
-    include( "CBNT_Athena/CBNT_Athena_jobOptions.py" )
-    CBNT_Athena.NtupleLocID = "/FILE1/CBNT/t3333"
-  include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" )
-  include( "RecExCommon/CBNT_Truth_jobOptions.py" )
-  if usedRelease >= 13:
-    CBNT_Truth = theCBNTAA_Truth
-
-  # Maximum number of particles in the ntuple
-  CBNT_Truth.MaxNbParticles = 10000
-  # Maximum number of vertices in the ntuple
-  CBNT_Truth.MaxNbVertices  = 10000
-  CBNT_Truth.McEventsName   = mcEventKey
-  # Save ALL particles
-  All.Enable = True
-
-#------------------------------------------------------------------------------
-# Ntuple configuration
-#------------------------------------------------------------------------------
-
-if doBphysNtuple or doCBNT:
-
-  if usedRelease >= 12:
-
-    if usedRelease >= 13:
-      if not hasattr( ServiceMgr, "THistSvc" ):
-        from GaudiSvc.GaudiSvcConf import THistSvc
-        ServiceMgr += THistSvc()
-      THistSvc = ServiceMgr.THistSvc
-    else:
-      theApp.Dlls += [ "AnalysisTools" ]
-      THistSvc     = Service ( "THistSvc" )
-    THistSvc.Output = [ "AANT DATAFILE='ntuple.root' TYP='ROOT' OPT='NEW'" ]
-
-    if doBphysNtuple:
-      if usedRelease >= 13:
-        if not hasattr( topSequence, "AANTStreamBchains" ):
-          if usedRelease >= 16:
-            from AnalysisTools.AthAnalysisToolsConf import AANTupleStream
-          else:
-            from AnalysisTools.AnalysisToolsConf import AANTupleStream
-          topSequence += AANTupleStream( "AANTStreamBchains" )
-        AANTStreamBchains = getattr( topSequence, "AANTStreamBchains" )
-      else:
-        theApp.TopAlg += [ "AANTupleStream/AANTStreamBchains" ]
-        AANTStreamBchains = Algorithm( "AANTStreamBchains" )
-      AANTStreamBchains.ExtraRefNames        = [ "StreamESD", "Stream1" ]
-      AANTStreamBchains.WriteInputDataHeader = True
-      AANTStreamBchains.OutputName           = "ntuple.root"
-
-    if doCBNT:
-      if usedRelease >= 13:
-        if not hasattr( topSequence, "AANTStreamCBNT" ):
-          if usedRelease >= 16:
-            from AnalysisTools.AthAnalysisToolsConf import AANTupleStream
-          else:
-            from AnalysisTools.AnalysisToolsConf import AANTupleStream
-          topSequence += AANTupleStream( "AANTStreamCBNT" )
-        AANTStreamCBNT = getattr( topSequence, "AANTStreamCBNT" )
-      else:
-        theApp.TopAlg += [ "AANTupleStream/AANTStreamCBNT" ]
-        AANTStreamCBNT = Algorithm( "AANTStreamCBNT" )
-      AANTStreamCBNT.ExtraRefNames        = [ "StreamESD", "Stream1" ]
-      AANTStreamCBNT.WriteInputDataHeader = True
-      AANTStreamCBNT.OutputName           = "ntuple.root"
-      AANTStreamCBNT.TreeName             = "t3333"
-
-  else:
-
-    HistogramPersistencySvc            = Service( "HistogramPersistencySvc" )
-    HistogramPersistencySvc.OutputFile = "histo.root"
-    theApp.Dlls                       += [ "RootHistCnv" ]
-    theApp.HistogramPersistency        = "ROOT"
-    #theApp.DLLs                       += [ "HbookCnv" ]
-    #theApp.HistogramPersistency        = "HBOOK"
-    #HbookHistSvc                       = Service( "HbookHistSvc")
-    #HbookHistSvc.NPAWC                 = 1500000
-    NTupleSvc                          = Service( "NTupleSvc" )
-    NTupleSvc.Output                   = [ "FILE1 DATAFILE='ntuple.root' TYP='ROOT' OPT='NEW'" ]
-
-###############################################################################
-#
-# End of ReadGen.py job-options
-#
-###############################################################################
diff --git a/Generators/PythiaB/src/PythiaB.cxx b/Generators/PythiaB/src/PythiaB.cxx
deleted file mode 100644
index 7f2e05c06f142755047ad39e75436c828f7d3dc4..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/PythiaB.cxx
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// ------------------------------------------------------------- File:
-// GeneratorModules/PythiaB.cxx 
-// Description: Allows the user
-// to generate pythia events and store the result in the
-// Transient Store.
-// adapted for use by the B group.
-// This should not be used in the same job as PythiaGenerator
-//
-// AuthorList:U
-//         Ian Hinchliffe:  Initial Code June: 2000
-//         Modeled after the CDF code by Stan Thompson
-// parsing added August 2000
-// more switches added Feb 2001
-// B version by Maria Smizanska (March 2002)
-// Modified and Incorporated into Generator Modules by IH (March 2002)
-// Update on repeated hadronization by Malte Muller and M.Smizanska (August 2002)
-// New: PythiaB::storeBEvent PythiaB::fillEvt by Malte Muller(August 2002)
-// Special treatment for bbbb, bbcc events if forced channels, M.Smizanska (August 2002)
-// Changes due to re-organization of Generators by G. Stavropoulos and I.Hinchliffe (August 2003)
-//  W.Walkowiak, 2006-04-02 added m_maxTriesHard, m_forceDecayChannel
-//                          and m_decayChannelParameters 
-//                          (for user_finsel.F reorganization) 
-// 2006-04-09, W. Walkowiak                                             
-//    added uf_BsJpsimumuphiKK() -- code by James Catmore               
-// 2006-04-17, W. Walkowiak                           
-//    added uf_bbmumu() -- code by Sergey Sivoklokov  
-// 2006-09-02, S.Sivoklokov                           
-//    added uf_kstarmumu() -- code by Sergey Sivoklokov  
-//    added uf_phimumu() -- code by Sergey Sivoklokov  
-//    added uf_gammamumu() -- code by Sergey Sivoklokov  
-// 2008-05-09, L. Gladilin
-//    added uf_ChHadr() -- code by Leonid Gladilin
-// 2010-08-26, P. Reznicek
-//    added uf_BdJpsimumuK0starKpi() -- code by Pavel Reznicek
-//
-
-// Header for this module:-
-
-#include "Pythia_i/Pythia.h"
-#include "PythiaB/PythiaB.h"
-
-// Framework Related Headers:-
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Algorithm.h"
-
-#include "GeneratorObjects/McEventCollection.h"
-#include "StoreGate/StoreGateSvc.h"
-
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "TruthUtils/GeneratorName.h"
-
-// Other classes used by this class:-
-#include "GeneratorUtils/StringParse.h"
-#include <stdlib.h>
-//-------------------------------
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-// calls to fortran routines
-extern "C" {
-  void initpyblock_(int*, const char*);
-  void pyinit_(const char*,
-               const char*, 
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference) 
-               int  
-               );
-//  void pyevnt_();
-    void pyevnw_();
-    void pyexec_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pydocu_();
-//  void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void parsel_(int*,int*,int*);
-  void multi_flav_luexec_();
-  void finsel_(int*);
-//  void comons_( double*,const char*, double*,double*,double*, double*, double*, double*);
-  void comons_( double*,double*, double*,double*,double*, double*, double*, double*,int*,double*);
-  void bcopy_(int*);
-  void xsect_(int*);
-  void wri_ludat3_(int*); void copy_pydat3_();
-}
-//-----------------------------------
-// File scope declarations:-
-
-//--------------------------------------------------------------------------
-PythiaB::PythiaB(const std::string& name, 
-      ISvcLocator* pSvcLocator)
-  : Pythia(name,pSvcLocator),
-    m_cutbqp(0.), m_cutbqe(0.), m_cutabqp(0.), m_cutabqe(0.),
-    m_xhad(0.)
-{
-//--------------------------------------------------------------------------  
-  declareProperty("cutbq", m_cutbqVector);
-  declareProperty("lvl1cut", m_lvl1cut );
-  declareProperty("lvl2cut", m_lvl2cut);
-  declareProperty("offcut", m_offcut);
-  declareProperty("mhadr",m_mhad = 1);
-  declareProperty("flavour", m_fla = 5);
-  declareProperty("SignalDumptoAscii", m_Ntup = 50);
-  declareProperty("ForceBDecay", m_forceb = "no");
-  declareProperty("ForceCDecay", m_forcec = "no");
-  
-  declareProperty("maxTriesHard", m_maxTriesHard = 50000);
-  declareProperty("ForceDecayChannel", m_forceDecayChannel = "none");
-  declareProperty("DecayChannelParameters", m_decayChannelParameters );
-}
-
-
-//--------------------------------------------------------------------------
- PythiaB::~PythiaB(){
-//--------------------------------------------------------------------------
-}
-
-//---------------------------------------------------------------------------
-StatusCode PythiaB::genuserInitialize() {
-  //---------------------------------------------------------------------------
-  // Initialise the listing output, parameter and decay data input streams
-  //
-  ATH_MSG_INFO( " PYTHIAB INITIALISING.  \n" );
-
-  // Define default input parameter values (stored in vectors ), 
-  // can be overwritten by users datacards
-  m_cutbqVector.push_back("0. 100. or 0. 100.");
-  m_lvl1cut.push_back(0.); m_lvl1cut.push_back(0.); m_lvl1cut.push_back(100.);
-  m_lvl2cut.push_back(0.);  m_lvl2cut.push_back(13.);m_lvl2cut.push_back(0.);m_lvl2cut.push_back(100.);
-  m_offcut.push_back(0.);
-  m_offcut.push_back(0.);m_offcut.push_back(100.);
-  m_offcut.push_back(0.);m_offcut.push_back(100.);
-  m_offcut.push_back(0.);m_offcut.push_back(100.);
-
-  // Preset values for decay channel parameters to be used in 
-  // user_finsel.F extensions  (10 parameters total)
-  for (int i=0; i<10; i++) {
-    m_decayChannelParameters.push_back(0.);
-  }
-
-// store decay tables default and users defined in memory to allow later manipulations
-//      int ii=1;
-//   wri_ludat3_(&ii);  // writes out file with defaul pydat3 - use only ones with unbiased b.txt 
-      copy_pydat3_();  
-  
-  
-  // set up the input parameters additional to Pythia
-  double c0[4], c1[3], c2[4], c3[7];
-      unsigned int i = 0;
-      ATH_MSG_DEBUG( " Command is: " << m_cutbqVector[i] );
-    StringParse mystring(m_cutbqVector[i]);
-      ATH_MSG_DEBUG( " I am after StringParse mystring i=" );
-      ATH_MSG_DEBUG( " mystring.numpiece(1)=" << mystring.numpiece(1) );
-      ATH_MSG_DEBUG( " mystring.numpiece(4)=" << mystring.numpiece(4) );
-      ATH_MSG_DEBUG( " mystring.piece(5)=" << mystring.piece(5) );
-    c0[0]=mystring.numpiece(1);
-    c0[1]=mystring.numpiece(2);
-    c0[2]=mystring.numpiece(4);
-    c0[3]=mystring.numpiece(5);
-    
-    m_cutbqp=c0[0];
-    m_cutbqe=c0[1];
-    m_cutabqp=c0[2];
-    m_cutabqe=c0[3];
-    m_cutbqandor=mystring.piece(3) ;  
-    ATH_MSG_DEBUG( " m_cutbqandor=" << m_cutbqandor );
-
-//    double c0[4], c1[3], c2[4], c3[7];
-    for ( int ii=0; ii<= 6; ii++ )  
-      { 
-      
-        if(ii<=2)  c1[ii]=m_lvl1cut[ii];
-        if(ii<=3)  c2[ii]=m_lvl2cut[ii];
-        if(ii<=6)  c3[ii]=m_offcut[ii];
-       }
-       
-      
-       double cutbqao= 1. ;
-       
-       if(m_cutbqandor=="and" ) cutbqao = 1. ;
-       if(m_cutbqandor=="AND" ) cutbqao = 1. ;
-       if(m_cutbqandor=="or" ) cutbqao = -1. ;
-       if(m_cutbqandor=="OR" ) cutbqao = -1. ;
-      
-//    user_finsel.F decay channel number and parameters
-//    New channels need to have a number assigned here!
-       int idc = -1;
-       if ( m_forceDecayChannel == "none" ) {
-	 idc = -1;
-       } else if ( m_forceDecayChannel == "Skeleton" ) {
-	 idc = 0;
-       } else if ( m_forceDecayChannel == "DsPhiX" ) {
-	 idc = 1;
-       } else if ( m_forceDecayChannel == "LambdabmumuLambda" ) {
-	 idc = 2;
-       } else if ( m_forceDecayChannel == "LambdabJpsimumuLambda" ) {
-	 idc = 3;
-       } else if ( m_forceDecayChannel == "BsJpsimumuphiKK" ) {
-	 idc = 4;
-       } else if ( m_forceDecayChannel == "bbmumu" ) {
-	 idc = 5;
-       } else if ( m_forceDecayChannel == "BdKstarMuMu" ) {
-	 idc = 6;
-       } else if ( m_forceDecayChannel == "BsPhiMuMu" ) {
-	 idc = 7;
-       } else if ( m_forceDecayChannel == "BsGammaMuMu" ) {
-	 idc = 8;
-       } else if ( m_forceDecayChannel == "CharmHadrons" ) {
-	 idc = 9;
-       } else if ( m_forceDecayChannel == "BsAngles" ) {
-	 idc = 10;
-       } else if ( m_forceDecayChannel == "BdJpsimumuK0starKpi" ) {
-	 idc = 11;
-       } else if ( m_forceDecayChannel == "BsAnglesCDF" ) {
-	 idc = 12;
-       } else if ( m_forceDecayChannel == "BdAnglesCDF" ) {
-	 idc = 13;
-       } else {
-	 ATH_MSG_WARNING( "Decay channel " << m_forceDecayChannel << " is not defined!" );
-       }
-
-       // parameters for user defined decay channels
-       double cdcp[10];
-       for ( int ii=0; ii<10; ii++ ) {
-	 cdcp[ii] = m_decayChannelParameters[ii];
-       }
-       
-       ATH_MSG_DEBUG( "m_cutbqandor =" << m_cutbqandor << m_cutbqandor );      
-       ATH_MSG_DEBUG( "  m_forceb= " << m_forceb << m_forceb );
-       ATH_MSG_DEBUG( " idc = " << idc << " for channel " << m_forceDecayChannel );
-      
-       comons_(c0,&cutbqao,c1,c2,c3,&m_mhad,&m_fla,&m_Ntup,&idc,
-	       cdcp);
-
-       m_xhad=0.;
-     
-//  check decay table  after initialization   
-     int ilist;
-     ilist=12;
-     pylist_(&ilist);
-	 
-     m_BEventBuffer.erase( m_BEventBuffer.begin(), m_BEventBuffer.end() );
-
-     Pythia::pythia_stream = "PYTHIA";
-	 
-     // Should follow what is in Pythia_i genInitialize
-     HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-     HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-     HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-     return StatusCode::SUCCESS;  
- } 
-
-
-//---------------------------------------------------------------------------
-StatusCode PythiaB::callGenerator() {
-//---------------------------------------------------------------------------
-	ATH_MSG_DEBUG( " PYTHIA generating." );
-	
-	if( !m_BEventBuffer.empty() )   {
-		ATH_MSG_DEBUG( "PythiaB skipped - still events in buffer" );
-		return StatusCode::SUCCESS;   // there are still buffered events.
-	};
-  
-	// Save the random number seeds in the event
-	CLHEP::HepRandomEngine*	engine	=	Pythia::p_AtRndmGenSvc->GetEngine(Pythia::pythia_stream);
-	const long*		s	=	engine->getSeeds();
-	m_seeds.clear();
-	m_seeds.push_back(s[0]);
-	m_seeds.push_back(s[1]);
-
-//////////////////////////////// 
-// Generate partonic part of event
-////////////////////////////////
-
-	int rejectSecondary = 2;
-	bool eventsAccepted  = false;
-	int iiloop=0;
-	
-	while (!eventsAccepted)   {
-		
-		++iiloop;
-		if(iiloop>=m_maxTriesHard)   { 
-			ATH_MSG_ERROR( " PYTHIA generating inefficiently:  Check your cuts. \n  " );
-			ATH_MSG_ERROR( " PYTHIA generating inefficiently:  The cross section at the output may be wrong. \n" );
-			break;
-		};
-		
-		// Stop hadronization
-		int ip1=111;
-		int ip2=0;
-		this->pypars().mstp(ip1)=ip2;
-     
-		int rejectPrimary=2; // reject event as dafault
-		
-//		pyevnt_(); // create event
-     pyevnw_(); // create event
-/////////////////////////////////////////////////////////  
-//  First Event selection after hard process  
-/////////////////////////////////////////////////////////
-                int ibq=0; int icq=0; // count number of b and c pair-of-quarks in event
-		bool hardok  = false;
-		parsel_(&rejectPrimary, &ibq, &icq);
-		double mhad_inter = m_mhad;
-		if (m_forceb=="yes" && ibq>1 ) mhad_inter = 2 * m_mhad;
-		// cout << "PythiaB: after 1st cut rejectPrimary = "<< rejectPrimary <<endl;
-
-		if (rejectPrimary==0)   {  // passed first cut
-/////////////////////////////////////////////////////////  
-//  Haronization mhad times
-/////////////////////////////////////////////////////////
-
-			int icopy=1;
-			bcopy_(&icopy);    // Remember partonic part of pyjets
-		
-			// Allow hadronization
-			ip2=1;
-			this->pypars().mstp(ip1)=ip2;
-			
-			
-			for ( int ihad=1; ihad<=mhad_inter ; ihad++ )   {   // Repeat hadronization 
-				
-				icopy=2;
-				bcopy_(&icopy);     // Put back parton part removing all hadronization from pyjets
-				
-                         //  Execute event now
-			 //  Normal regime: for  bb, cc, cccc    or   if no forced channel   
-                         //  If forced channel:  special multiflav treatment for bbbb, bbcc(m_forcec=yes) , bbbbcc, bbbbcccc
-                         
-	      
-	                       if(m_forceb=="no"  || (ibq==1 && icq==0) || (ibq==0 && icq>=1) ) pyexec_(); 
-	                       if(m_forceb=="yes" &&  ibq==1 && m_forcec =="no"   && icq>=1 )     pyexec_();
-	                       if(m_forceb=="yes" &&  ibq==1 && m_forcec =="yes"  && icq>=1 )     multi_flav_luexec_();
-	                       if(m_forceb=="yes" &&  ibq>1 )    multi_flav_luexec_();
-  
-///////////////////////////////////////////////////////////////
-//  Event selections after hadronization  
-//  Statistics, cross sections, listings, coversion to HEPEVT
-///////////////////////////////////////////////////////////////  
-				
-				finsel_(&rejectSecondary);
-
-				//cout << "PythiaB: outer loop index = " << iiloop
-				//		<< " ,  repeat hadro ihad = " << ihad
-				//		<< " out of "<< m_mhad
-				//		<< " ,  status rejectSecondary = " << rejectSecondary << endl;
-
-				if(rejectSecondary==0)   {
-					
-					hardok = true;
-					eventsAccepted = true;
-					++m_events;
-					
-					ATH_MSG_INFO( "PythiaB: event number m_events accepted : "<< m_events );  
-
-					// cout << "PythiaB: before conversion to HEPEVT" <<endl;
-					int mconv=1;     // convert from PYJETS to HEPEVT,
-					//lunhep_(&mconv); // using STDHEP translation routine 1999/01/27 CG
-					pyhepc_(&mconv);
-					HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-					StatusCode sc = this->storeBEvent();
-					if ( sc.isFailure() ) return sc; // should newer happen (see storeBEvent())
-					
-				};
-			}; // end of repeat hadronization loop
-			
-			    // calculate number of accepted hard processes for which at least one event was accepted after hadronization
-			    if(hardok) m_xhad=m_xhad+1. ;
-		}; 	   // end of if(rejectPrimary==0) after First cut
-	};		   // end of while(!eventsAccepted) 
-
-	ATH_MSG_DEBUG( " PYTHIA generating done" );
-
-  return StatusCode::SUCCESS;  
-  
-} // end call Generator
-
-
-//---------------------------------------------------------------------------
-StatusCode PythiaB::storeBEvent()   {
-//---------------------------------------------------------------------------
-
-//	HepMC::HEPEVT_Wrapper::print_hepevt();
-	
-        HepMC::GenEvent* evt = new HepMC::GenEvent(1,1);
-	
-	HepMC::IO_HEPEVT hepio;
-	hepio.fill_next_event(evt);
-	evt->set_random_states(m_seeds);
-	
-	/*
-	cout << endl
-		 << "***********************************************************" << endl
-		 << "PythiaB::storeBEvent => Print evt after conversion   " << endl
-		 << "***********************************************************" << endl
-		 << endl;		 
-	evt->print();
-	*/
-
-	m_BEventBuffer.push_back(evt);
-
-	return StatusCode::SUCCESS;
-}
-
-
-long PythiaB::pCounter(HepMC::GenEvent* myEvt) const
-{
-	HepMC::GenEvent::particle_iterator pitr;
-	long n = 0; 
-	for( pitr=myEvt->particles_begin(); pitr!=myEvt->particles_end(); ++pitr )   { n++; };
-	return n;
-}
-
-
-//---------------------------------------------------------------------------
-StatusCode PythiaB::fillEvt(HepMC::GenEvent* evt) {
-//---------------------------------------------------------------------------
-	
-	if( m_BEventBuffer.empty() )   {
-		ATH_MSG_ERROR( "PythiaB: No events in buffer" );
-		return StatusCode::FAILURE;
-	};
-	
-	// Not sure if this is really needed and whether it works correctly,
-	// but following the Pythia_i code. Should have only effect if using
-	// PythiaB in conjunction with Tauola_i
-	store_Atlas_HEPEVT();
-
-	/*
-	cout << endl
-		 << "****************************************************" << endl
-		 << "PythiaB::fillEvt => Print event from Buffer" << endl
-		 << "****************************************************" << endl
-		 << endl;		 
-	m_BEventBuffer.back()->pGenEvt()->print();
-	*/
-	
-// 	*evt = *(m_BEventBuffer.back()->pGenEvt());
-// 	McEvent* mcevt = m_BEventBuffer.back();
-// 	evt = mcevt->pGenEvt();
-//	evt = m_BEventBuffer.back();
-	*evt = *(m_BEventBuffer.back());	
-
-	// Should follow Pythia_i fillEvt as closely as possible
-	int pr_id = PYTHIA + m_ExternalProcess + this->pyint1().mint(1);
-	if (m_ExternalProcess > 0) pr_id = PYTHIA + m_ExternalProcess;
-	evt->set_signal_process_id(pr_id);
-	evt->set_random_states(m_seeds);
-	evt->weights().push_back(this->pypars().pari(7));
-	evt->weights().push_back(this->pypars().pari(9));
-	evt->weights().push_back(this->pypars().pari(10));
-	//PDF WEIGHTS - using Pdf Info object.. 
-	//pdf_id x_1, x_1, Q2, f_1, f_2 
-	int id1=this->pypars().msti(15);
-	int id2=this->pypars().msti(16);
-	double x1=this->pypars().pari(33);
-	double x2=this->pypars().pari(34);
-	double q=this->pypars().pari(23);
-	double pdf1=(double)this->pypars().mstp(51); //pdg id - awkward but..
-	double pdf2=0.; //dummy 
-	HepMC::PdfInfo tmp_pdi(id1,id2,x1,x2,q,pdf1,pdf2);
-	evt->set_pdf_info(tmp_pdi);
-
-  // Convert cm->mm and GeV->MeV
-//   cmTomm(evt);
-  GeVToMeV(evt);
-  
-
-
-
-	/*
-	cout << endl
-		 << "****************************************************" << endl
-		 << "PythiaB::fillEvt => Print evt after copy" << endl
-		 << "****************************************************" << endl
-		 << endl;		 
-	evt->print();
-	*/
-	
-	m_BEventBuffer.pop_back();
-	
-	ATH_MSG_DEBUG( "PythiaB using event from buffer (" << m_BEventBuffer.size() << " left) \n" );
-	
-	return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-StatusCode PythiaB::genFinalize() {
-  //---------------------------------------------------------------------------
-  ATH_MSG_INFO( " PYTHIABModule  Ending.  \n" );
-  int mstat = 1;
-  
-  ATH_MSG_INFO( "Call PYSTAT at endRun" );
-  ATH_MSG_INFO( "PythiaB::genFinalize  m_events accepted "<< m_events );
-  pystat_(&mstat);
-  
-  float bx[1]; float cx[1];
-  bx[0]=this->pyint5().xsec(0,3)*m_events/this->pyint5().ngen(0,2)/m_mhad;
-  cx[0]=(1.*m_events)/m_xhad;
-
-  ATH_MSG_ALWAYS( " I===================================================================================== " );
-  ATH_MSG_ALWAYS( " I   CROSSSECTION OF YOUR B-CHANNEL IS                   I    " );
-  ATH_MSG_ALWAYS( " I                       BX= PX*NB/AC/MHAD=              I    " << bx[0] << " mbarn" );
-  ATH_MSG_ALWAYS( " I                                                       I    " );
-  ATH_MSG_ALWAYS( " I   IN CASE YOU FORCED ANY DECAY YOU SHOULD             I    " );
-  ATH_MSG_ALWAYS( " I   CORRECT CROSS SECTION BX FURTHER, MULTIPLYING       I    " );
-  ATH_MSG_ALWAYS( " I   BX BY BRANCHING RATIO(S) OF YOUR FORCED             I    " );
-  ATH_MSG_ALWAYS( " I   DECAY(S) AND BY A FACTOR OF 2 FOR SYMMETRY          I    " );
-  ATH_MSG_ALWAYS( " I                                                       I    " );  
-  ATH_MSG_ALWAYS( " I   MORE DETAILS ON CROSS SECTION                       I    " ); 
-  ATH_MSG_ALWAYS( " I   PYTHIA MSEL=1     CROSS SECTION IS    PX=           I    " <<  this->pyint5().xsec(0,3)<<" mbarn" );
-  ATH_MSG_ALWAYS( " I   NUMBER OF   ACCEPTED  MSEL=1 EVENTS   AC=           I    " <<  this->pyint5().ngen(0,2) );
-  ATH_MSG_ALWAYS( " I   NUMBER OF   ACCEPTED    B-EVENTS   IS NB=           I    " << m_events );
-  ATH_MSG_ALWAYS( " I   REPEATED HADRONIZATIONS IN EACH EVENT MHAD=         I    " << m_mhad );
-  ATH_MSG_ALWAYS( " I   AVERAGE NUM OF ACCEPTED EVTS IN HADRONIZATION LOOP  I    " << cx[0] );
-  ATH_MSG_ALWAYS( " I   IN CASE YOU FORCED ANY DECAY YOU SHOULD             I    " );
-  ATH_MSG_ALWAYS( " I   CORRECT CROSS SECTION BX FURTHER, MULTIPLYING       I    " );
-  ATH_MSG_ALWAYS( " I   BX BY BRANCHING RATIO(S) OF YOUR FORCED             I    " );
-  ATH_MSG_ALWAYS( " I   DECAY(S) AND BY A FACTOR OF 2 FOR SYMMETRY          I    " );
-  ATH_MSG_ALWAYS( " I                                                       I    " );
-  ATH_MSG_ALWAYS( " I===================================================================================== " );
-  
-  ATH_MSG_ALWAYS( "                                                                                        " );
-  ATH_MSG_ALWAYS( " I===================================================================================== " );
-  ATH_MSG_ALWAYS( " I          YOUR  MAIN SIMULATION PARAMETERS AND CUTS                                   " );
-  ATH_MSG_ALWAYS( " I===================================================================================== " );
-  ATH_MSG_ALWAYS( " I   HARD SCATTERING  CUT  pysubs().ckin(3)             PT      I      " << this->pysubs().ckin(3) );
-  ATH_MSG_ALWAYS( " I   STRUCTURE FCN (1=CTEQ3 7=CTEQ5) pypars().mstp(51)          I      " << this->pypars().mstp(51) );
-  ATH_MSG_ALWAYS( " I   CUTS ON b and/or anti b QUARK                              I      " << m_cutbqp << " ; " << m_cutbqe << " ; " << m_cutbqandor <<" ; " <<m_cutabqp << " ; " << m_cutabqe );
-  ATH_MSG_ALWAYS( " I   LVL1 MUON CUTS:                               PT AND ETA   I      " << m_lvl1cut[1] << " ;  "  << m_lvl1cut[2] );
-  ATH_MSG_ALWAYS( " I   LVL2 CUTS:         ON(1)/OFF(0); PARTICLE-ID; PT AND ETA   I      " << m_lvl2cut[0] << " ;  "  << m_lvl2cut[1] << " ;  " << m_lvl2cut[2] << " ;  "  << m_lvl2cut[3] );
-  ATH_MSG_ALWAYS( " I   CUTS FOR STABLE PARTICLES IN B-DECAY:         ON(1)/OFF(0) I      " << m_offcut[0] );
-  ATH_MSG_ALWAYS( " I    CHARGED HADRONS:                             PT AND ETA   I      " <<  m_offcut[1]<< " ;  "  << m_offcut[2] );
-  ATH_MSG_ALWAYS( " I    MUONS:                                       PT AND ETA   I      " <<  m_offcut[3]<< " ;  "  << m_offcut[4] );
-  ATH_MSG_ALWAYS( " I    ELECTRONS:                                   PT AND ETA   I      " <<  m_offcut[5]<< " ;  "  << m_offcut[6] );
-  ATH_MSG_ALWAYS( " I===================================================================================== " );
-
-  std::cout << "MetaData: cross-section (nb)= " << bx[0]*1000000. << std::endl;
-
-  return StatusCode::SUCCESS;
-}
diff --git a/Generators/PythiaB/src/README.user_finsel b/Generators/PythiaB/src/README.user_finsel
deleted file mode 100644
index a3ad6dcbf477f884550f821fb42c943edfa84418..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/README.user_finsel
+++ /dev/null
@@ -1,144 +0,0 @@
-
-README.user_finsel: README file for re-organized user_finsel.F 
-                    and it's extensions
-
-Author : W. Walkowiak, 2006-04-04
-Changes: w.w., 2006-04-09 -- added uf_BsJpsimumuphiKK.F
-         p.r., 2010-08-26 -- added uf_BdJpsimumuK0starKpi.F
-
------------------------------------------------------------------------------
-
-  I. Introduction
- II. Status of implemented uf_XXXXX.F files
-III. Instructions for users
- IV. Instructions for experts
-
-I. INTRODUCTION
-===============
-Now, the FORTRAN subroutine user_finsel() should only provide switching 
-to the appropriate uf_XXXXX() subroutine which is located in the 
-appropriate uf_XXXXX.F file.  For selecting the choosen uf_XXXX() the 
-jobOption switch 
-   PythiaB.ForceDecayChannel = "XXXXX" 
-has been provided.
-In addition, up to ten parameters (type double) may be passed to the
-uf_XXXXX() subroutine via the jobOption 
-   PythiaB.DecayChannelParameters = [0.0, 0.0, ..., 0.0] .
-The meaning of the parameters is defined by the author of the uf_XXXXX.F file.
-A skeleton file (uf_Skeleton.F) has been provided for code development.
-
-
-II. STATUS OF IMPLEMENTED uf_XXXXX.F FILES
-==========================================
-uf_Skeleton.F:
-   Skeleton provided for user development and testing of 
-   user_finsel code.  
-   See below for instructions on how to use it.
-
-uf_DsPhiX.F:
-   user_finsel code for the decays B0s->Ds(PhiPi)Pi, B0s->Ds(PhiPi)A1
-   and B0s->Ds(PhiPi)MuNu.  
-   See the example jobOptions files for sample settings and use
-   of parameters to select the wanted decays.  
-   This code has been tested.
-
-uf_LambdabmumuLambda.F:
-   Code provided by Pavel R.  
-   Compiles but hasn't been tested.
-
-uf_LambdabJpsimumuLambda.F:
-   Code provided by Michigan group.
-   Compiles but hasn't been tested.
-
-uf_BsJpsimumuphiKK.F:
-   Code provided by James Catmore.
-   Compiles but hasn't been tested. 
-
-uf_bbmumu.F
-   Code provided by Sergey Sivoklokov.
-   compiles but hasn't been tested.
-
-uf_ChHadr.F
-   Code provided by Leonid Gladilin
-   for selection 9 charm hadron decays with backgrounds.
-   This code has been tested.
-
-uf_BdJpsimumuK0starKpi.F:
-   Code provided by Pavel Reznicek (but based on James's BsJpsimumuphiKK)
-   This code has been tested.
-
-
-III. INSTRUCTIONS FOR USERS
-===========================
-The integration of code for a new (signal) decay chain in user_finsel
-should proceed according to the following steps:
-1) Edit uf_Skeleton.F and add your code there.  
-   Note, that you may access the ten double precision parameters
-   which are set by PythiaB.DecayChannelParameters =[]
-   via the double precision array cufdcp(i).  
-   These parameters are simply passed through from the jobOptions
-   to uf_Skeleton.F.
-2) Add 
-     PythiaB.ForceDecayChannel = "Skeleton"
-     PythiaB.DecayChannelParameters = [0.0, 0.0, ..., 0.0]
-   to your jobOptions file.
-   It is helpful to document the meaning of your parameters
-   in uf_Skeleton.F as well as the jobOptions file.
-3) Run and test your code.
-4) Once you are satisfied, please email the code, ie your 
-   modified version of uf_Skeleton.F and an example jobOptions file
-   together with your suggestion for naming the decay ("XXXXX") to
-     Maria Smizanska <Maria.Smizanska@cern.ch> and
-     Wolfgang Walkowiak <walkowiak@hep.physik.uni-siegen.de>
-   who will take care of the integration of your code into PythiaB as 
-   a new uf_XXXXXX() subroutine using your naming suggestion if appropriate.
-
-
-IV. INSTRUCTIONS FOR EXPERTS
-=============================
-The integration of new uf_XXXXX() subroutines is simple:
-1) Decide upon the name, e.g. XXXXX = NewDecaySelection
-2) Rename the user supplied uf_Skeleton.F to uf_XXXXX, e.g. 
-   uf_NewDecaySelection.F and edit the file accordingly 
-   to adjust the subroutine name to uf_XXXXX(IRET), 
-   e.g. uf_NewDecaySelection(IRET).
-3) Edit user_finsel.F and add a call to uf_XXXXX() to
-   the following section, e.g.:
-     c
-     c select user defined decay channel
-     c
-     c  0: decay channel skeleton
-           if ( iufdc .eq. 0 ) call uf_Skeleton(iret)
-     ...
-     c
-     c  4: NewDecaySelection (provided by NewAnalysisGroup)
-           if ( iufdc .eq. 4 ) call uf_NewDecaySelection(iret)
-     c
-   Please choose the next free integer label for the decay
-   (4 in this example), take note of it.
-4) Edit PythiaB.cxx and add a new switch for XXXXX to the following 
-   section (e.g.):
-     //    New channels need to have a number assigned here!
-       int idc = -1;
-       if ( m_forceDecayChannel == "none" ) {
-         idc = -1;
-       } else if ( m_forceDecayChannel == "Skeleton" ) {
-         idc = 0;
-       ...
-       } else if ( m_forceDecayChannel == "NewDecayChannel" ) {
-         idc = 4;   // Add the integer label here!
-       } else {
-       ...
-   Make sure you add the correct integer label here and choose
-   the character string for the jobOption switch accordingly.
-5) Check the user supplied jobOptions example file and modify the line 
-     PythiaB.ForceDecayChannel = "Skeleton"
-   to 
-     PythiaB.ForceDecayChannel = "NewDecayChannel" 
-   and copy the file to the PythiaB/share/ directory.
-
-
-
- 
- 
- 
diff --git a/Generators/PythiaB/src/anti_beauty.F b/Generators/PythiaB/src/anti_beauty.F
deleted file mode 100644
index 524d54cdc057fb13c78ce1790676df9a576f6a6a..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/anti_beauty.F
+++ /dev/null
@@ -1,64 +0,0 @@
-*CMZ :          02/08/2001  11.40.22  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/09/96
-      FUNCTION anti_beauty(I)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : anti_beauty                                                   *
-*        (module)                                                      *
-*                                                                      *
-* Description :   Is it anti_beauty hadron ? Selects only hadrons with *
-*                 b quark (B-, Baryons ...)                            *
-* Arguments   :  I particle line # in LUJETS                           *
-*                                                                      *
-*                                                                      *
-* Banks/Tables:                                                        *
-*          LUJETS    used                                              *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-c +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-       integer anti_beauty
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-      anti_beauty=0
-
-      if(name_self(I).eq.-511.or.name_self(I).eq.-521.or.
-     +   name_self(I).eq.-531.or.name_self(I).eq.-541.or.
-     +   name_self(I).eq.5122.or.name_self(I).eq.5132.or.
-     +   name_self(I).eq.5232.or.name_self(I).eq.5332)
-     +anti_beauty=1
-
-
-      return
-*
-      END          ! BEAUTY
diff --git a/Generators/PythiaB/src/anti_charm.F b/Generators/PythiaB/src/anti_charm.F
deleted file mode 100644
index 927147e685a11d223a160ddbde92bfd360ca0983..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/anti_charm.F
+++ /dev/null
@@ -1,67 +0,0 @@
-*CMZ :          02/08/2001  11.40.55  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/09/96
-      FUNCTION anti_charm(I)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : anti_charm                                                    *
-*        (module)                                                      *
-*                                                                      *
-* Description :   Is it anti_charm hadron ? Selects only hadrons with  *
-*                 c quark (D+, Baryons Lambdac+)                       *
-* Arguments   :  I particle line # in LUJETS                           *
-*                                                                      *
-*                                                                      *
-* Banks/Tables:                                                        *
-*          LUJETS    used                                              *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-c +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-       integer anti_charm
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-      anti_charm=0
-c      if((name_self(I).ge.400.and.name_self(I).lt.500).or.
-c     +   (name_self(I).gt.4000.and.name_self(I).le.5000))
-c     +anti_charm=1
-
-      if(name_self(I).eq.411.or.name_self(I).eq.421.or.
-     +   name_self(I).eq.431.or.
-     +   name_self(I).eq.4122.or.name_self(I).eq.4132.or.
-     +   name_self(I).eq.4232.or.name_self(I).eq.4332)
-     +anti_charm=1
-
-
-      return
-*
-      END          ! anti_charm
diff --git a/Generators/PythiaB/src/bbbb_luexec.F b/Generators/PythiaB/src/bbbb_luexec.F
deleted file mode 100644
index cf1cca7dbf85dfb750e294169fc7598e252d0ae7..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/bbbb_luexec.F
+++ /dev/null
@@ -1,211 +0,0 @@
-*CMZ :          02/08/2001  11.41.18  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/07/2000
-
-
-
-      subroutine bbbb_luexec(INPAR)
-c -----------------------------------------------------------------------
-c
-c  bbbb  special
-c
-c if NOFORCED decays:  normal regime, call luexec.
-c if FORCED decay and INPAR=1 decay one B+antiB, and stop decay other B-aB  
-c if FORCED decay and INPAR=2 then decay the other pair with noforce table
-c                Hadronization is reapeated twice.
-c
-c -----------------------------------------------------------------------
-
-
-c INPUT PARAMETERS: input  selects two functions of this subroutine
-
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE
-      INTEGER PYCOMP
-*KEEP,HEAVYFLAV.
-* store info about  multiple heavy flavour  produced in event
-       common/multif/ibq,icq
-* remeber links of  B and antiB chosen to decay free in bbbb
-       common/fixedB/is1,is2
-
-*KEEP,LUDAT3.
-       COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,BBMOD.
-* internal number to recognise bb decay regime
-       common/bbmod/IBBMOD
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-       integer beauty
-       integer anti_beauty
-
-       idebug=0
-
-
-
-
-c -----------------------------------------------------------------
-
-       if(ibq.le.1)  return
-
-
-
-
-       if(INPAR.eq.1) then  
-
-C ALL OTHER CASES
-11     continue
-
-
-
-
-c
-c  First call provides forced decays of one B and anti B
-c
-
-c close all B-hadron weak decays (this is what we force)
-
-      mdcy(pycomp(511),1)=0
-      mdcy(pycomp(521),1)=0
-      mdcy(pycomp(531),1)=0
-      mdcy(pycomp(541),1)=0
-      mdcy(pycomp(5122),1)=0
-      mdcy(pycomp(5132),1)=0
-      mdcy(pycomp(5232),1)=0
-      mdcy(pycomp(5332),1)=0
-
-c performe event
-
-       call pyexec
-       if(idebug.ne.0) print *,'bbbb_luexec: called pylist1'
-       if(idebug.ne.0) call pylist(1)
-
-c
-c find 4 beauty hadrons and select B and antiB  that will remain stable
-c in next pyexec call  while allowing to decay the rest two according to
-c forced  decay table defined by user
-c
-
-      mdcy(pycomp(511),1)=1
-      mdcy(pycomp(521),1)=1
-      mdcy(pycomp(531),1)=1
-      mdcy(pycomp(541),1)=1
-      mdcy(pycomp(5122),1)=1
-      mdcy(pycomp(5132),1)=1
-      mdcy(pycomp(5232),1)=1
-      mdcy(pycomp(5332),1)=1
-
-
-c       i1=rndm(0.)+1.5
-c	i2=rndm(0.)+1.5
-        i1=PYR(0.)+1.5
-	i2=PYR(0.)+1.5
-	i1b=0
-	i2b=0
-	
-	
-	do ii=1,N
-	if(beauty(ii).eq.1) then
-	i1b=i1b+1
-	        if(i1.eq.i1b) then
-	        K(ii,1)=16
-	        go to 1
-	        endif
-	endif
-	enddo
-1       continue
-
-        do jj=1,N
-	if(anti_beauty(jj).eq.1) then
-	i2b=i2b+1
-	        if(i2.eq.i2b) then
-	        K(jj,1)=16
-	        go to 2
-	        endif
-	endif
-	enddo
-2       continue
-
-        is1=ii
-	is2=jj
-
-       if(idebug.ne.0) print *,'bbbb_luexec: called pylist12-0'
-       if(idebug.ne.0) call pylist(12)
-       if(idebug.ne.0) then
-       do ii=1,N
-	if(beauty(ii).eq.1.or.anti_beauty(ii).eq.1)
-     +  print *,'bbbb_luexec:  B hadron',ii, name_self(ii),K(ii,1)
-	enddo
-       print *,'bbbb_luexec: particles remain stable',is1,
-     +        name_self(is1),K(is1,1),is2,name_self(is2),K(is2,1)
-       endif
-
-              call pyexec
-       if(idebug.ne.0) print *,'bbbb_luexec: called pylist1-2'
-       if(idebug.ne.0) call pylist(1)
-
-       endif ! INPAR=1
-       
-       if(INPAR.eq.2) then
-
-
-c -----------------------------------------------------------------
-c
-c   decays remaining B and anti B with free decay table
-c   this is called after finsel selects the event
-
-
-
-c
-c swap to free decay table
-c
-
-12      call SWOP_LUDAT3(1)
-       if(idebug.ne.0) print *,'bbbb_luexec: called pylist12-1'
-       if(idebug.ne.0) call pylist(12)
-
-c
-c     now  decay undecayed B-hadrons,
-c     
-
-	do ii=1,N
-	if(beauty(ii).eq.1.and.K(ii,1).eq.16) K(ii,1)=1
-	if(anti_beauty(ii).eq.1.and.K(ii,1).eq.16) K(ii,1)=1
-	enddo
-
-              call pyexec
-       if(idebug.ne.0) print *,'bbbb_luexec: called pylist1-3'
-       if(idebug.ne.0) call pylist(1)
-
-c
-c swap back to user decay table
-c
-
-      call SWOP_LUDAT3(2)
-
-       if(idebug.ne.0) print *,'bbbb_luexec: called pylist12-2'
-       if(idebug.ne.0) call pylist(12)
-
-        endif  ! INPAR=2
-
-c ------------------------------------------------------------
-       return
-       end
-
-
-
diff --git a/Generators/PythiaB/src/bbcc_luexec.F b/Generators/PythiaB/src/bbcc_luexec.F
deleted file mode 100644
index fb4ce07103f524cac47ec551c6467d214cc74ef5..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/bbcc_luexec.F
+++ /dev/null
@@ -1,202 +0,0 @@
-*CMZ :          02/08/2001  11.41.41  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/07/2000
-
-
-
-      subroutine bbcc_luexec
-c -----------------------------------------------------------------------
-c
-c bbcc  special: prevent that directly produced charm hadron
-c is not forced to decay as the one from B-hadron (if so)
-c example: Bs->Ds->phipi.
-c if NOFORCED decays:  normal regime, call luexec.
-c if B-FORCED    decay:  first close all charm decays then
-c decay  B+antiB, then find charm hadrons coming from forced B-decay
-c and decay them, then  decay table and decay rest of charm.
-c
-c -----------------------------------------------------------------------
-
-
-c INPUT PARAMETERS: input  selects two functions of this subroutine
-
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYCOMP
-*KEEP,HEAVYFLAV.
-* store info about  multiple heavy flavour  produced in event
-       common/multif/ibq,icq
-* remeber links of  B and antiB chosen to decay free in bbbb
-       common/fixedB/is1,is2
-
-*KEEP,LUDAT3.
-       COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,BBMOD.
-* internal number to recognise bb decay regime
-       common/bbmod/IBBMOD
-*KEND.
-        dimension ic2(4)
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-       integer beauty
-       integer charm
-       integer anti_charm
-
-       idebug=0
-
-       if(idebug.ne.0)
-     + print *,'bbcc_luexec: begin ibq, icq',ibq,icq
-
-
-c -----------------------------------------------------------------
-
-
-       if(ibq.le.0.or.icq.le.0)  return
-
-
-
-
-
-C ALL OTHER bbcc CASES when B-was forced
-
-
- 
-
-
-c
-c  First call provides forced decays of B and anti B
-c
-
-c close all C-hadrons - weak decays
-
-      mdcy(pycomp(411),1)=0
-      mdcy(pycomp(421),1)=0
-      mdcy(pycomp(431),1)=0
-      mdcy(pycomp(4122),1)=0
-      mdcy(pycomp(4132),1)=0
-      mdcy(pycomp(4232),1)=0
-      mdcy(pycomp(4332),1)=0
-
-c performe event
-
-       call pyexec
-       if(idebug.ne.0) print *,'bbcc_luexec: called pylist1'
-       if(idebug.ne.0) call pylist(1)
-
-c
-c find 3 charm hadrons: 2 not coming from B-decays
-c and one coming from B- (etc.) hadrons where we do not require forcing
-c
-
-      mdcy(pycomp(411),1)=1
-      mdcy(pycomp(421),1)=1
-      mdcy(pycomp(431),1)=1
-      mdcy(pycomp(4122),1)=1
-      mdcy(pycomp(4132),1)=1
-      mdcy(pycomp(4232),1)=1
-      mdcy(pycomp(4332),1)=1
-
-	ic1=0
-c	call vzero(ic2,4)
-        do ii=1,4
-          ic2(ii)=0
-        enddo
-	
-	
-	do 100 ii=1,N
-	if(charm(ii).eq.0.and.anti_charm(ii).eq.0) go to 100
-        if(idebug.ne.0)	print *,'bbcc_luexec:  C-hadron',
-     + 	ii,name_self(ii),name_father(ii),name_grandpa(ii)
-	iii=ii
-	kk=0
-11      continue	
-	jj=link_father(iii)
-	if(beauty(jj).eq.1) go to 100
-	iii=jj
-	kk=kk+1
-	if(kk.gt.100) then
-	print *,'bbcc_luexec: trapped in loop, forced to finish'
-	go to 100
-	endif
-	if(name_selv(jj).ge.400) go to 11
-	K(ii,1)=16
-        ic1=ic1 + 1
-	if(ic1.le.4) ic2(ic1)=ii
-100      continue
-
-
-
-       if(idebug.ne.0) then
-       print *,'bbcc_luexec: direct C-hadrons'
-       print *,'bbcc_luexec: links',ic2
-       print *,'bbcc_luexec: names',
-     + name_self(ic2(1)),name_father(ic2(1)),name_grandpa(ic2(1)),
-     + name_self(ic2(2)),name_father(ic2(2)),name_grandpa(ic2(2)),
-     + name_self(ic2(3)),name_father(ic2(2)),name_grandpa(ic2(3))
-       endif
-
-              call pyexec
-       if(idebug.ne.0) print *,'bbcc_luexec: called pylist1-2'
-       if(idebug.ne.0) call pylist(1)
-
-
-
-
-c -----------------------------------------------------------------
-c
-c   decays remaining C and anti C with free decay table
-c  but before close the decay of B-hadron(B+, etc.) that was not required
-c  by user to decay
-
-
-c
-c swap to free decay table
-c
-
-12      call SWOP_LUDAT3(1)
-
-
-c
-c     now  decay undecayed C-hadrons
-c
-	do ii=1,N
-	if(charm(ii).eq.1.and.K(ii,1).eq.16) K(ii,1)=1
-	if(anti_charm(ii).eq.1.and.K(ii,1).eq.16) K(ii,1)=1
-	if(beauty(ii).eq.1.and.K(ii,1).eq.1) K(ii,1)=16	
-	enddo
-
-              call pyexec
-       if(idebug.ne.0) print *,'bbcc_luexec: called pylist1-3'
-       if(idebug.ne.0) call pylist(1)
-
-c
-c swap back to user decay table
-c
-
-      call SWOP_LUDAT3(2)
-
-
-
-
-
-c ------------------------------------------------------------
-       return
-       end
-
-
-
diff --git a/Generators/PythiaB/src/bcopy.F b/Generators/PythiaB/src/bcopy.F
deleted file mode 100644
index 65d0690a643e07d1a6dff7af84fc15a3ea4f07dd..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/bcopy.F
+++ /dev/null
@@ -1,40 +0,0 @@
-       subroutine bcopy(ic)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-c      COMMON/COPYJET/NN,NNPAD,KK(4000,5),PP(4000,5),VV(4000,5)
-
-      COMMON/PYJETS/INT(20002),REA(40000)
-      COMMON/COPYJET/INTC(20002),REAC(40000)
-      
-      if(ic.eq.1) then
-c store PYJETS to COPYJET after hard process
-      do ii=1,20002
-      INTC(ii)=INT(ii)
-      enddo
-      do ii=1,40000
-      REAC(ii)=REA(ii)
-      enddo 
-      endif
-      
-      if(ic.eq.2) then
-c store COPYJET to PYJETS before repeated fragmentation
-      do ii=1,20002
-      INT(ii)=INTC(ii)
-      enddo
-      do ii=1,40000
-      REA(ii)=REAC(ii)
-      enddo       
-      
-      
-      endif
-      
-      if(ic.ne.1.and.ic.ne.2) 
-     +      print *,'COPY: error, input should be 1 or 2 '
-      
-      return
-      end
-      
-
-      return
-      end
diff --git a/Generators/PythiaB/src/beauty.F b/Generators/PythiaB/src/beauty.F
deleted file mode 100644
index 86b44bd07ce1a3cbb74004758fc80e91c0d0a07c..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/beauty.F
+++ /dev/null
@@ -1,69 +0,0 @@
-*CMZ :          02/08/2001  11.42.13  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/09/96
-      FUNCTION BEAUTY(I)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : BEAUTY                                                        *
-*        (module)                                                      *
-*                                                                      *
-* Description :   Is it beauty hadron ? Selects only hadrons with      *
-*                 anti_b quark (B+, antiBaryons ...)                   *
-*                 because  exclusive signal channels are forced        *
-*                 for these hadrons                                    *
-* Arguments   :  I particle line # in LUJETS                           *
-*                                                                      *
-*                                                                      *
-* Banks/Tables:                                                        *
-*          LUJETS    used                                              *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-c +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-       integer beauty
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-      beauty=0
-c      if((name_self(I).ge.500.and.name_self(I).lt.600).or.
-c     +   (name_self(I).gt.-6000.and.name_self(I).le.-5000))
-c     +beauty=1
-
-      if(name_self(I).eq.511.or.name_self(I).eq.521.or.
-     +   name_self(I).eq.531.or.name_self(I).eq.541.or.
-     +   name_self(I).eq.-5122.or.name_self(I).eq.-5132.or.
-     +   name_self(I).eq.-5232.or.name_self(I).eq.-5332)
-     +beauty=1
-
-
-      return
-*
-      END          ! BEAUTY
diff --git a/Generators/PythiaB/src/btreedel.F b/Generators/PythiaB/src/btreedel.F
deleted file mode 100644
index 8be30a833e229e4e649b71d10e208349b97a2c5f..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/btreedel.F
+++ /dev/null
@@ -1,393 +0,0 @@
-c       *******************************************************************
-c       *                                                                 *
-c       *               subroutines TREEDEL_v103                          *
-c       *                 (for PYTHIA 6.207)                              *
-c       *                                                                 *
-c       *       For delete the tree of the partical dotted                *
-c       *                                                                 *
-c       *           The last modification:   18.02.2004                   *
-c       *                                                                 *
-c       *      Author: Nickolay Nikitin, nik679@monet.npi.msu.su          *
-c       *                                                                 *
-c       *******************************************************************
-
-      subroutine TREEDEL (ijkl)
-      
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs                                                                          
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                    
-                                                                                                                     
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-
-           
-c      print *, '     '     
-c      print *,'Level 0'
-c      print *, '   KF code =', k(ijkl,2)
-c      print *,ijkl,'  dotted strings:',k(ijkl,4),
-c     #' - ',k(ijkl,5)
-c      print *,'    '
-      
-      jkm=0
-      do jkm=k(ijkl,4),k(ijkl,5)
-
-        if(k(jkm,4).NE.0) then
-          call treedel1(jkm)
-        endif
-
-c        print *,jkm,'  treedel -OK!'
-        do i=1,5
-         k(jkm,i)=0
-c         print *,'  k(',jkm,',',i,') =', k(jkm,i)
-        enddo
-        
-        do i=1,5
-         p(jkm,i)=0.D0
-c         print *,'  p(',jkm,',',i,') =', p(jkm,i)
-        enddo
-
-        do i=1,5
-         v(jkm,i)=0.D0
-c         print *,'  v(',jkm,',',i,') =', v(jkm,i)
-        enddo
-c        print *,'   '
-
-      enddo
-
-      return
-
-      end
-
-
-
-      subroutine TREEDEL1 (ijkl)
-      
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs                                                                   
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                                                                                   
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-            
-c      print *,'Level 1'
-c      print *, '   KF code =', k(ijkl,2) 
-c      print *,ijkl,'  dotted strings:',k(ijkl,4),
-c     #' - ',k(ijkl,5)
-c      print *,'  '
-     
-      do jkm=k(ijkl,4),k(ijkl,5)
-        if(k(jkm,4).NE.0) then
-          call treedel2(jkm)
-        endif
-
-c        print *,jkm,'  treedel -OK!'
-        do i=1,5
-         k(jkm,i)=0
-c         print *,'  k(',jkm,',',i,') =', k(jkm,i)
-        enddo
-        
-        do i=1,5
-         p(jkm,i)=0.D0
-c         print *,'  p(',jkm,',',i,') =', p(jkm,i)
-        enddo
-
-        do i=1,5
-         v(jkm,i)=0.D0
-c         print *,'  v(',jkm,',',i,') =', v(jkm,i)
-        enddo
-c        print *,'   '
-
-      enddo
-
-      return 
-
-      end
-
-
-
-      subroutine TREEDEL2 (ijkl)
-      
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs                                                                  
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)      
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                                                                                 
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-      
-c      print *,'Level 2'      
-c      print *, '   KF code =', k(ijkl,2)
-c      print *,ijkl,'  dotted strings:',k(ijkl,4),
-c     #' - ',k(ijkl,5)
-c      print *,'    '
-     
-      do jkm=k(ijkl,4),k(ijkl,5)
-        if(k(jkm,4).NE.0) then
-          call treedel3(jkm)
-        endif
-       
-c        print *,jkm,'  treedel -OK!'
-        do i=1,5
-         k(jkm,i)=0
-c         print *,'  k(',jkm,',',i,') =', k(jkm,i)
-        enddo
-        
-        do i=1,5
-         p(jkm,i)=0.D0
-c         print *,'  p(',jkm,',',i,') =', p(jkm,i)
-        enddo
-
-        do i=1,5
-         v(jkm,i)=0.D0
-c         print *,'  v(',jkm,',',i,') =', v(jkm,i)
-        enddo
-c        print *,'   '
-     
-      enddo
-
-      return 
-
-      end
-
-
-
-      subroutine TREEDEL3 (ijkl)
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs                                                             
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                                                                                  
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/              
-      
-c      print *,'Level 3'
-c      print *,ijkl,'  dotted strings:',k(ijkl,4),
-c     #' - ',k(ijkl,5)
-c      print *,'   '
-
-      do jkm=k(ijkl,4),k(ijkl,5)
-        if(k(jkm,4).NE.0) then
-          call treedel4(jkm)
-        endif
-        
-c	print *,jkm,'  treedel -OK!'
-        do i=1,5
-         k(jkm,i)=0
-c         print *,'  k(',jkm,',',i,') =', k(jkm,i)
-        enddo
-        
-        do i=1,5
-         p(jkm,i)=0.D0
-c         print *,'  p(',jkm,',',i,') =', p(jkm,i)
-        enddo
-
-        do i=1,5
-         v(jkm,i)=0.D0
-c         print *,'  v(',jkm,',',i,') =', v(jkm,i)
-        enddo
-c        print *,'   '        
-      
-      enddo
-      return 
-
-      end
-
-
-      subroutine TREEDEL4 (ijkl)
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs                                                            
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)       
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                                                                                                                                         
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/     
-      
-c      print *,'Level 4'      
-c      print *,ijkl,'  dotted strings:',k(ijkl,4),
-c     #' - ',k(ijkl,5)
-c      print *,'   '
-
-      do jkm=k(ijkl,4),k(ijkl,5)
-        if(k(jkm,4).NE.0) then
-          call treedel5(jkm)
-        endif
-	
-c	print *,jkm,'  treedel -OK!'
-        do i=1,5
-         k(jkm,i)=0
-c         print *,'  k(',jkm,',',i,') =', k(jkm,i)
-        enddo
-        
-        do i=1,5
-         p(jkm,i)=0.D0
-c         print *,'  p(',jkm,',',i,') =', p(jkm,i)
-        enddo
-
-        do i=1,5
-         v(jkm,i)=0.D0
-c         print *,'  v(',jkm,',',i,') =', v(jkm,i)
-        enddo
-c        print *,'   '    
-
-      enddo
-      return 
-
-      end
-
-
-      subroutine TREEDEL5 (ijkl)
-      
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs                                                                    
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                                                                                                                                                                                                                
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/   
-      
-c      print *,'Level 5'
-c      print *,ijkl,'  dotted strings:',k(ijkl,4),
-c     #' - ',k(ijkl,5)
-c      print *,'   '
-
-      do jkm=k(ijkl,4),k(ijkl,5)
-        if(k(jkm,4).NE.0) then
-          call treedel6(jkm)
-        endif
-                                         
-c	print *,jkm,'  treedel -OK!'
-        do i=1,5
-         k(jkm,i)=0
-c         print *,'  k(',jkm,',',i,') =', k(jkm,i)
-        enddo
-        
-        do i=1,5
-         p(jkm,i)=0.D0
-c         print *,'  p(',jkm,',',i,') =', p(jkm,i)
-        enddo
-
-        do i=1,5
-         v(jkm,i)=0.D0
-c         print *,'  v(',jkm,',',i,') =', v(jkm,i)
-        enddo
-c        print *,'   '   
-      
-      enddo
-      return 
-
-      end
-
-
-      subroutine TREEDEL6 (ijkl)
-      
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs                                                                   
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                                                                                                                                                                                                                  
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-      
-c      print *,'Level 6'      
-c      print *,ijkl,'  dotted strings:',k(ijkl,4),
-c     #' - ',k(ijkl,5)
-c      print *,'       '
-                                                         
-      do jkm=k(ijkl,4),k(ijkl,5)
-      
-c	print *,jkm,'  treedel -OK!'
-        do i=1,5
-         k(jkm,i)=0
-c         print *,'  k(',jkm,',',i,') =', k(jkm,i)
-        enddo
-        
-        do i=1,5
-         p(jkm,i)=0.D0
-c         print *,'  p(',jkm,',',i,') =', p(jkm,i)
-        enddo
-
-        do i=1,5
-         v(jkm,i)=0.D0
-c         print *,'  v(',jkm,',',i,') =', v(jkm,i)
-        enddo
-c        print *,'   '   
-      
-      enddo                                                    
-      return                                                  
-      end
-
diff --git a/Generators/PythiaB/src/charm.F b/Generators/PythiaB/src/charm.F
deleted file mode 100644
index f36da521baa74f3c0679ecd9fa992f55c6e5d489..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/charm.F
+++ /dev/null
@@ -1,70 +0,0 @@
-*CMZ :          02/08/2001  11.42.47  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/09/96
-      FUNCTION charm(I)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : charm                                                        *
-*        (module)                                                      *
-*                                                                      *
-* Description :   Is it charm hadron ? Selects only hadrons with      *
-*                 anti_c quark (D-, antiBaryons Lambdac-)              *
-*                 because  exclusive signal channels are forced        *
-*                 for these hadrons                                    *
-* Arguments   :  I particle line # in LUJETS                           *
-*                                                                      *
-*                                                                      *
-* Banks/Tables:                                                        *
-*          LUJETS    used                                              *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-c +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-       integer charm
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-      charm=0
-c      if((name_self(I).ge.400.and.name_self(I).lt.500).or.
-c     +   (name_self(I).gt.4000.and.name_self(I).le.5000))
-c     +charm=1
-
-      if(name_self(I).eq.-411.or.name_self(I).eq.-421.or.
-     +   name_self(I).eq.-431.or.
-     +   name_self(I).eq.-4122.or.name_self(I).eq.-4132.or.
-     +   name_self(I).eq.-4232.or.name_self(I).eq.-4332)
-     +charm=1
-
-
-      return
-*
-      END          ! charm
diff --git a/Generators/PythiaB/src/children.F b/Generators/PythiaB/src/children.F
deleted file mode 100644
index 69fc83e01d4ba878f295a95980cbf80eebadbc59..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/children.F
+++ /dev/null
@@ -1,51 +0,0 @@
-*CMZ :          02/08/2001  11.43.16  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/09/96
-
-
-      FUNCTION CHILDREN(I)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : CHILDREN                                                      *
-*        (module)                                                      *
-*                                                                      *
-* Description :                                                        *
-*        [description]                                                 *
-*                                                                      *
-* Arguments   :                                                        *
-*        [name]  ([in | out | in/out])      [description]              *
-*                                                                      *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 22/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-C +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEND.
-      integer children
-
-C ----------- end CDE --------------------------------------------------
-*
-      idebug=0
-      children=abs(K(I,5)-K(I,4))+1
-      if(K(I,4).eq.0) children=0
-
-         return
-*
-      END          ! CHILDREN
diff --git a/Generators/PythiaB/src/coef.F b/Generators/PythiaB/src/coef.F
deleted file mode 100644
index acf213aa4bfba1f0ee5cb26a0695c4ab1bae90de..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/coef.F
+++ /dev/null
@@ -1,1382 +0,0 @@
-c   28.10.2002;  29.10.2002;  07.04.2003;  08.04.2003            
-c   09.04.2003;  13.04.2003;  14.04.2003;  15.04.2003
-c   13.05.2003;  17.05.2003;  21.05.2003;  30.06.2003
-c   08.07.2003;
-                                                   
-                    
-                 
-c   *     The strong running coupling constant by PDG            * 
-c   *                                                            * 
-c   * mu - the scale parameter  ( in GeV );                      * 
-c   * Nf - number of "effective" flavours ( Nf=5 for b-quark);   * 
-c   * the number of the collors = 3;                             * 
-c   * ias - the number for Lms[]:                                * 
-c   *     = 0              Lms=min Lms,                          * 
-c   *     = 1              the mean value,                       * 
-c   *     = 2              Lms=max Lms.                          * 
-                   
-      subroutine myAs(mu,Nf,ias)
-            
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-      
-      dimension PLms(3)
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-      	                           
-      real mu
-      integer Nf, ias
-      real as, ass, las, mm
-      real b0, b1, b2
-      real pi
-c   * the Lms - parametr, which represented the experimental   * 
-c   * value of the As(Mz) in the \bar {MS}-schime              *
-      real PLms
-      
-      n_as=0.0
-      
-c      print *, ' BEGIN of the subroutine myAs(...)'
-                                              
-      pi=3.1415927
-                                           
-      PLms(1)=185.0    ! MeV
-      PLms(2)=208.0    ! MeV
-      PLms(3)=233.0    ! MeV 
-                                    
-      b0=11.-2.*(float(Nf))/3. 
-      b1=51.-19.*(float(Nf))/3. 
-      b2=2857.-5033.*(float(Nf))/9.+325.*(float(Nf**2))/27.      
-                             
-      mm=(mu*1000.0/PLms(ias+1))**2   
-                  
-c   * the running coupling constant *
-      las=alog(alog(mm))
-      ass=(las-0.5)**2+b2*b0/(8.*b1*b1)-5./4.
-      ass=ass/((b0**4)*(alog(mm)**2))
-      as=1.0-2.0*b1*las/((b0**2)*alog(mm))
-      as=as+4.0*b1*b1*ass 
-      as=4.0*pi*as/(b0*alog(mm))
-              
-      n_as=as      
-	         
-      return          
-      end
-      
-      
-      
-                                            
-c  *********************************************************************                                                              
-c  *********************************************************************
-c  **     BEGIN THE CALCULATION OF THE WILSON COEFFICIENTS            ** 
-c  *********************************************************************
-c  ********************************************************************* 
-       
-           
-c    *                  Spenser function                        * 
-c    *              in serial representation                    * 
-c    *                    ( w <= 1.0 )                          * 
-c    *                                                          *                                                
-      subroutine myLi2(w,Lii) 
-                           
-      real w 
-      real Lii 
-      integer k
-                           
-      Lii=0.0	
-                   
-      do k=1,10
-        Lii=Lii+w**k/k**2 
-      enddo
-          	                
-      return
-      end 
-                     
-                             
-c   *                Coefficient myC1(mu)                      * 
-c   *       by A.J.Buras and M.Munz, Phys.Rev. D52, 186.       * 
-      subroutine myC1(mu, Mw, Nf, ias)
-      
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-      
-      dimension a(8), ak1(8)
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-	 
-      real mu, Mw 
-      integer Nf, ias      	 
-      real CC1 
-      real eta 
-      real asW  ! the strong coupling constant at the scale Mw  
-      real asmu ! the strong coupling constant at the scale mu  
-      integer i 
-           
-      real a
-      real ak1 
-      
-      n_c1=0.0
-           
-      call myAs(Mw,Nf,ias)
-      asW=n_as 
-      call myAs(mu,Nf,ias)
-      asmu=n_as
-       
-      eta=asW/asmu 
- 
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456
-                       
-      ak1(1) = 0.0
-      ak1(2) = 0.0
-      ak1(3) = 0.5
-      ak1(4) = -0.5
-      ak1(5) = 0.0
-      ak1(6) = 0.0
-      ak1(7) = 0.0
-      ak1(8) = 0.0
-                              
-      CC1=0.0 
-      do i=1,8
-        CC1=CC1+ak1(i)*eta**a(i) 
-      enddo
-      
-      n_c1=CC1
-         
-      return
-      end 
-                              
-			      
-c   *                Coefficient myC2(mu)                      * 
-c   *       by A.J.Buras and M.Munz, Phys.Rev. D52, 186.       * 
-      subroutine myC2(mu, Mw, Nf, ias) 
-      
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-      
-      dimension a(8), ak2(8)
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-       
-      real mu, Mw 
-      integer Nf, ias      	 
-      real CC2 
-      real eta 
-      real asW  ! the strong coupling constant at the scale Mw  
-      real asmu ! the strong coupling constant at the scale mu  
-      integer i 
-                   
-      real a
-      real ak2
-      
-      n_c2=0.0 
-                           
-      call myAs(Mw,Nf,ias)
-      asW=n_as 
-      call myAs(mu,Nf,ias)
-      asmu=n_as
-       
-      eta=asW/asmu 
- 
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456
-                       
-      ak2(1) = 0.0
-      ak2(2) = 0.0
-      ak2(3) = 0.5
-      ak2(4) = 0.5
-      ak2(5) = 0.0
-      ak2(6) = 0.0
-      ak2(7) = 0.0
-      ak2(8) = 0.0
-                              
-      CC2=0.0 
-      do i=1,8
-        CC2=CC2+ak2(i)*eta**a(i) 
-      enddo
-      
-      n_c2=CC2
-         
-      return
-      end 			      
-      
-      
-      
-c   *                Coefficient myC3(mu)                      * 
-c   *       by A.J.Buras and M.Munz, Phys.Rev. D52, 186.       * 
-      subroutine myC3(mu, Mw, Nf, ias)
-      
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-
-      dimension a(8), ak3(8)
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 
-	 
-      real mu, Mw 
-      integer Nf, ias      	 
-      real CC3 
-      real eta 
-      real asW  ! the strong coupling constant at the scale Mw  
-      real asmu ! the strong coupling constant at the scale mu  
-      integer i 
-                   
-      real a
-      real ak3
-      
-      n_c3=0.0 
-                           
-      call myAs(Mw,Nf,ias)
-      asW=n_as 
-      call myAs(mu,Nf,ias)
-      asmu=n_as
-       
-      eta=asW/asmu 
- 
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456                      
-
-      ak3(1) = 0.0 
-      ak3(2) = 0.0 
-      ak3(3) = (-1.0)/14.0
-      ak3(4) = 1.0/6.0
-      ak3(5) = 0.0510
-      ak3(6) = -0.1403
-      ak3(7) = -0.0113
-      ak3(8) = 0.0054
-                              
-      CC3=0.0 
-      do i=1,8
-        CC3=CC3+ak3(i)*eta**a(i) 
-      enddo
-      
-      n_c3=CC3
-         
-      return
-      end 	      
-      
-      
-      
-c   *                Coefficient myC4(mu)                      * 
-c   *       by A.J.Buras and M.Munz, Phys.Rev. D52, 186.       * 
-      subroutine myC4(mu, Mw, Nf, ias) 
-
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-      
-      dimension a(8), ak4(8)
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 
- 
-      real mu, Mw 
-      integer Nf, ias      	 
-      real CC4 
-      real eta 
-      real asW  ! the strong coupling constant at the scale Mw  
-      real asmu ! the strong coupling constant at the scale mu  
-      integer i 
-                   
-      real a
-      real ak4
-      
-      n_c4=0.0 
-      
-      call myAs(Mw,Nf,ias)
-      asW=n_as 
-      call myAs(mu,Nf,ias)
-      asmu=n_as
-       
-      eta=asW/asmu                      
-                     
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456                       
-                
-      ak4(1) = 0.0
-      ak4(2) = 0.0
-      ak4(3) = (-1.0)/14.0
-      ak4(4) = (-1.0)/6.0
-      ak4(5) = 0.0984
-      ak4(6) = 0.1214
-      ak4(7) = 0.0156
-      ak4(8) = 0.0026
-                              
-      CC4=0.0 
-      do i=1,8
-        CC4=CC4+ak4(i)*eta**a(i) 
-      enddo
-      
-      n_c4=CC4
-         
-      return
-      end       
-      
-      
-      
-c   *                Coefficient myC5(mu)                      * 
-c   *       by A.J.Buras and M.Munz, Phys.Rev. D52, 186.       * 
-      subroutine myC5(mu, Mw, Nf, ias)
-      
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-
-      dimension a(8), ak5(8)
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/  
-             
-      real mu, Mw 
-      integer Nf, ias      	 
-      real CC5 
-      real eta 
-      real asW  ! the strong coupling constant at the scale Mw  
-      real asmu ! the strong coupling constant at the scale mu  
-      integer i 
-                   
-      real a
-      real ak5
-      
-      n_c5=0.0 
-                           
-      call myAs(Mw,Nf,ias)
-      asW=n_as 
-      call myAs(mu,Nf,ias)
-      asmu=n_as
-       
-      eta=asW/asmu  
-               
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456                       
-                 
-      ak5(1) = 0.0
-      ak5(2) = 0.0
-      ak5(3) = 0.0
-      ak5(4) = 0.0
-      ak5(5) = -0.0397
-      ak5(6) = 0.0117
-      ak5(7) = -0.0025
-      ak5(8) = 0.0304
-                              
-      CC5=0.0 
-      do i=1,8
-        CC5=CC5+ak5(i)*eta**a(i) 
-      enddo
-      
-      n_c5=CC5
-         
-      return
-      end       
-      
-      
-      
-c   *                Coefficient myC6(mu)                      * 
-c   *       by A.J.Buras and M.Munz, Phys.Rev. D52, 186.       * 
-      subroutine myC6(mu, Mw, Nf, ias) 
-      
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-      
-      dimension a(8), ak6(8)
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/  
-	 
-      real mu, Mw 
-      integer Nf, ias      	 
-      real CC6 
-      real eta 
-      real asW  ! the strong coupling constant at the scale Mw  
-      real asmu ! the strong coupling constant at the scale mu  
-      integer i 
-                   
-      real a
-      real ak6
-      
-      n_c6=0.0 
-                           
-      call myAs(Mw,Nf,ias)
-      asW=n_as 
-      call myAs(mu,Nf,ias)
-      asmu=n_as
-       
-      eta=asW/asmu 
-               
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456                       
-            
-      ak6(1) = 0.0
-      ak6(2) = 0.0
-      ak6(3) = 0.0
-      ak6(4) = 0.0
-      ak6(5) = 0.0335
-      ak6(6) = 0.0239
-      ak6(7) = -0.0462
-      ak6(8) = -0.0112
-                                        
-      CC6=0.0 
-      do i=1,8
-        CC6=CC6+ak6(i)*eta**a(i) 
-      enddo
-      
-      n_c6=CC6
-                      
-      return
-      end       
-                        
-                  
-              
-c   * by A.J.Buras and M.Munz, Phys.Rev. D52, 186.  * 
-      subroutine myA(z,AA)
-                             
-      real z, AA 
-              
-      AA=z*(8.0*z**2+5.0*z-7.0)/(12.0*(z-1.0)**3) 
-      AA=AA+z**2*(2.0-3.0*z)*alog(z)/(2.0*(z-1.0)**4.0) 
-
-      return
-      end 
-                                    
-                      
-                     	    	      
-c   * by A.J.Buras and M.Munz, Phys.Rev. D52, 186.  */ 
-      subroutine myB(z,BB) 
-	
-      real z, BB 
- 
-      BB=z/(4.0*(1.0-z))+z*alog(z)/(4.0*(1.0-z)**2)
-      
-      return
-      end 
-                   
-            
-              
-c     .by A.J.Buras and M.Munz, Phys.Rev. D52, 186.   
-      subroutine myC_Bur(z,CC)
-      
-      real z, CC 
- 
-      CC=z*(z-6.0)/(8.0*(z-1.0)) 
-      CC=CC+z*(3.0*z+2.0)*alog(z)/(8.0*(z-1.0)**2) 
-
-      return
-      end	  
-                        
-                           
-                            
-c     .by A.J.Buras and M.Munz, Phys.Rev. D52, 186.   
-      subroutine myD_Bur(z, DD)
-      
-      real z, DD 
- 
-      DD=(25.0*z**2-19.0*z**3.0)/(36.0*(z-1.0)**3) 
-      DD=DD+z**2*(5.0*z**2-2.0*z-6.0)*alog(z)/(18.0*(z-1.0)**4.0) 
-      DD=DD-(4.0/9.0)*alog(z) 
- 
-      return
-      end
-                                 
-                            
-                       
-c     .by A.J.Buras and M.Munz, Phys.Rev. D52, 186.   
-      subroutine myE(z, EE)
-      real z, zlog, EE
-      
-c      print *, '               ' 
-c      print *, ' BEGIN subroutine myE(...)'
-c      print *, '    z =', z
-
-      zlog=alog(z)
-c      print *, ' zlog =', zlog
- 
-      EE=z*(18.0-11.0*z-z*z)/(12.0*(1.0-z)**3.0) 
-c      print *, 'line 1    EE =', EE      
-      EE=EE+z**2*(15.0-16.0*z+4.0*z*z)*zlog/(6.0*(1.0-z)**4)
-c      print *, 'line 2    EE =', EE 
-      EE=EE-(2.0/3.0)*zlog 
-c      print *, 'line 3    EE =', EE
-      
-c      print *, ' END subroutine myE(...)'
-c      print *, '               ' 
-      
-      return
-      end
-      
-      
-      
-c     .by A.J.Buras and M.Munz, Phys.Rev. D52, 186.  
-      subroutine myF_Bur(z, FF) 
-      
-      real z, FF 
- 
-      FF=z*(z**2-5.0*z-2.0)/(4.0*(z-1.0)**3) 
-      FF=FF+3.0*z**2*alog(z)/(2.0*(z-1.0)**4) 
- 
-      return
-      end
-      
-      
-            
-c     .by A.J.Buras and M.Munz, Phys.Rev. D52, 186.
-      subroutine myY(z,YY)
-            
-      real z, YY
-      real BB, CC
-      
-      call myC_Bur(z,CC)
-      call myB(z,BB) 
- 
-      YY=CC-BB
-      
-      return
-      end 
-                      
-                
-                
-c     .by A.J.Buras and M.Munz, Phys.Rev. D52, 186.  */ 
-      subroutine myZ(z, ZZ)
-      
-      real z, ZZ
-      real CC, DD
-      
-      call myC_Bur(z,CC)
-      call myD_Bur(z,DD) 
- 
-      ZZ=CC+0.25*DD 
- 
-      return
-      end 
-      
-      
-
-      
-c   *       Coefficient  myC7gamma(mu) in the SM              * 
-c   *     by A.J.Buras and M.Munz, Phys.Rev. D52, 186.        * 
-      subroutine myC7gamma(mu, Mw, mt, Nf, ias)
-      
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-      
-      dimension a(8), ah(8)
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 
-      
-      real mu, Mw, mt
-      integer Nf, ias 
-
-      real C7, C70, C80, sum
-      real AA, FF 
-      real x, eta 
-      real asW, asmu 
-      integer i
-      real a
-      real ah
-      
-      n_c7=0.0
-      
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456
-                                      	    
-      ah(1) = 2.2996
-      ah(2) = -1.0880
-      ah(3) = (-3.0)/7.0
-      ah(4) = (-1.0)/14.0
-      ah(5) = -0.6494
-      ah(6) = -0.0380
-      ah(7) = -0.0186
-      ah(8) = -0.0057	    
-      
-      C7=0.0
-      asW=0.0
-      asmu=0.0
-                                                                       	    	     
-      x=(mt/Mw)**2 
-      call myAs(Mw,Nf,ias)
-      asW=n_as
-c      print *, '   asW =', asW 
-      call myAs(mu,Nf,ias)
-      asmu=n_as
-c      print *,' asmu =', asmu
-       
-      eta=asW/asmu 
-      
-      call myA(x,AA)
-      call myF_Bur(x,FF)
-      
-c      print *, '   x =', x
-c      print *, ' eta =', eta
-c      print *, '  AA =', AA
-c      print *, '  FF =', FF 
-                             
-      C70=(-0.5)*AA 
-      C80=(-0.5)*FF 
-                        
-      C7=eta**0.7*C70 
-      C7=C7+(8.0/3.0)*(eta**0.61-eta**0.7)*C80 
-                         
-      sum=0.0
-      do i=1,8 	    
-        sum=sum+ah(i)*eta**a(i)
-c	print *, i, '  sum =', sum
-      enddo 
-                      	
-      C7=C7+sum 
-      n_c7=C7
-                 
-      return
-      end
-                                                          
-                                    
-                                                     
-                                                      
-c     *             Coefficient P_E                   * 
-c     * by A.J.Buras and M.Munz, Phys.Rev. D52, 186;  * 
-c     *            see formula (2.12).                * 
-      subroutine myPe(eta, Pee)
-      
-      dimension a(8), q(8)
-      
-      real eta 
-      real sum 
-      real Pee 
-      integer i
-      
-      real a, q
-      
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456       
- 
-      q(1) = 0.0
-      q(2) = 0.0
-      q(3) = 0.0
-      q(4) = 0.0
-      q(5) = 0.0318
-      q(6) = 0.0918
-      q(7) = -0.2700
-      q(8) = 0.0059
-	    
-      sum=0.0
-      do i=1,8 
-        sum=sum+q(i)*eta**(a(i)+1.0) 
-      enddo	
-	
-      Pee=0.1405+sum 
- 
-      return
-      end
-                         
-                          
-                            
-c     *           Coefficient P^{NDR}_0                * 
-c     * by A.J.Buras and M.Munz, Phys.Rev. D52, 186;   * 
-c     *	          see formula (2.11).                  * 
-      subroutine myP0ndr(asW, eta, P00ndr)
-      
-      dimension a(8), p(8), r(8), s(8)
-      
-      real asW, eta 
-      real P00ndr 
-      real sum 
-      integer i 
-      
-      real pi
-      real a, p, r, s
-             
-      pi=3.1415927
-       
-      a(1) = 14.0/23.0
-      a(2) = 16.0/23.0
-      a(3) = 6.0/23.0
-      a(4) = (-12.0)/23.0
-      a(5) = 0.4086
-      a(6) = -0.4230
-      a(7) = -0.8994
-      a(8) = 0.1456          
-                     
-      p(1) = 0.0
-      p(2) = 0.0
-      p(3) = (-80.0)/203.0
-      p(4) = 8.0/33.0
-      p(5) = 0.0433
-      p(6) = 0.1384
-      p(7) = 0.1648
-      p(8) = -0.0073		     
-      		      
-      r(1) = 0.0
-      r(2) = 0.0
-      r(3) = 0.8966
-      r(4) = -0.1960
-      r(5) = -0.2011
-      r(6) = 0.1328
-      r(7) = -0.0292
-      r(8) = -0.1858
-      
-      s(1) = 0.0
-      s(2) = 0.0
-      s(3) = -0.2009
-      s(4) = -0.3579
-      s(5) = 0.0490
-      s(6) = -0.3616
-      s(7) = -0.3554
-      s(8) = 0.0072
-      
-      sum=0.0
-      do i=1,8
-        sum=sum+p(i)*eta**(a(i)+1.0)
-      enddo 
-      P00ndr=pi*(-0.1875+sum)/asW 
-      P00ndr=P00ndr+1.2468 
-		
-      sum=0.0
-      do i=1,8 
-         sum=sum+(r(i)+s(i)*eta)*eta**a(i)
-      enddo 
-      P00ndr=P00ndr+sum 
- 
-      return
-      end
-      
-
-      
-c     *     Coefficient  C_{9V} (in the NDR schime)      * 
-c     *   by A.J.Buras and M.Munz, Phys.Rev. D52, 186;   * 
-c     *	           see formula (2.10).                   * 
-      subroutine myC9v(mu, Mw, mt, Nf, ias, C9)
-      
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7  
-      SAVE /nikwc/
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 
-                                                      
-      real mu, Mw, mt
-      integer Nf, ias   
-                              
-      real C9 
-      real x, eta 
-      real asW, asmu 
-      real sin2W        ! the square of the weak angle 
-      real P00ndr, YY, ZZ, Pee, EE 
-                                     
-      sin2W=0.224
-                          
-      x=(mt/Mw)**2 
-      call myAs(Mw,Nf,ias)
-      asW=n_as 
-      call myAs(mu,Nf,ias)
-      asmu=n_as 
-      eta=asW/asmu 
-      
-c      print *, '                         '
-c      print *, 'BEGIN Subroutine myC9v(...)'
-      
-c      print *,'   asW =', asW
-c      print *,'  asmu =', asmu
-c      print *,'   eta =', eta       
-             
-      call myP0ndr(asW,eta,P00ndr)
-      call myY(x,YY)
-      call myZ(x,ZZ)
-      call myPe(eta,Pee)
-      call myE(x,EE)      
-      
-c      print *,' P00nd =', P00ndr
-c      print *,'     YY =', YY
-c      print *,'     ZZ =', ZZ
-c      print *,'    Pee =', Pee
-c      print *,'     EE =', EE
-                                                     
-      C9=P00ndr+(YY/sin2W)-4.0*ZZ+Pee*EE 
-      
-c      print *, '     C9 =', C9
-c      print *, 'END Subroutine myC9v(...)'
-c      print *, '                         '
-                                                                         
-      return
-      end
-                                                
-                                                         
-                                          
-c     *                Coefficient C_{10A}               * 
-c     *   by A.J.Buras and M.Munz, Phys.Rev. D52, 186;   * 
-c     *	                see formula (2.8).               */ 
-      subroutine myC10a(mt,Mw,C10)
-                                                   
-      real mt, Mw  
-      real C10 
-      real x 
-      real sin2W
-      real YY
-                                              
-      sin2W=0.224     ! the square of the weak angle  
-                                
-      x=(mt/Mw)**2 
-                  
-      call myY(x,YY)	         
-      C10=(-YY)/sin2W 
- 
-      return
-      end
-                  
-                                  
-                                       
-c     *          Re(h(z,\hat s)) by Buras           * 
-      subroutine Reh(mu,m2,z,s,rreh)
-      
-      real mu, m2, z, s 
-      real rreh, swh 
-      real x             ! Buras variable "x" in (2.29)  
-	   
-      x=4.0*z**2/s 
- 
-      rreh=(-8.0)*alog(m2/mu)/9.0-8.0*alog(z)/9.0 
-      rreh=rreh+8.0/27.0+4.0*x/9.0 
- 
-      swh=2.0*(2.0+x)*sqrt(abs(1.0-x))/9.0 
-      
-      if(x.LE.1.0) then
-         swh=swh*alog(abs((sqrt(1.0-x)+1.0)/(sqrt(1.0-x)-1.0)))  
-      else 
-	 swh=swh*2.0*atan(1.0/sqrt(x-1.0)) 
-      endif
- 
-      rreh=rreh-swh 
- 
-      return
-      end 
-      
-      
-      
-c     *     Im(h(z,\hat s)) by Buras       * 
-      subroutine Imh(z,s,iimh)
-      
-      real z, s  
-      real x         ! Buras variable "x" in (2.29)  
-      real iimh 
-      real pi
-                                                
-      pi=3.141593
-                             
-      x=4.0*z**2/s
-                               
-      if(x.LE.1.0) then 
-	 iimh=2.0*pi*(2.0+x)*sqrt(abs(1.0-x))/9.0 
-      else 
-         iimh=0.0 
-      endif	   
-                                         
-      return
-      end
-                                       
-                                                 
-                                                              
-c     *     Re(h(0,\hat s)) by Buras       * 
-      subroutine Reh0(mu, m2, s, rreh0)
-      
-      real mu, m2,s 
-      real rreh0
-       
-      rreh0=8.0/27.0-8.0*alog(m2/mu)/9.0-4.0*alog(s)/9.0
-      
-      return
-      end
-                                                      	    			   
-                   
-                     
-c     *     Im(h(0,\hat s)) by Buras	   * 
-      subroutine Imh0(iimh0) 
-                        
-      real iimh0 
-      real pi 
-                    
-      pi=3.141593 
-                      
-      iimh0=4.0*pi/9.0 
-          
-      return
-      end					   
-                 
-      
-
-c     *******************************************************************
-c     *                                                                 *      
-c     *                        REAL PART                                * 
-c     * of the resonant hadronic contribution to the C_{9V} coefficient * 
-c     *                                                                 * 
-c     *       res_swch=0 -- switch OFF for the resonant contribution;   * 
-c     *       res_swch=1 -- switch ON for the resonant contribution.    * 
-c     *                                                                 *
-c     *******************************************************************
-      subroutine ReHadd(res_swch, q2, ml, RReHadd)
-      
-      dimension RGamma_ll(2), RGamma(2), RGamma_ll_e_mu(2),
-     #RGamma_ll_tau(2), RM(2)
-      
-      integer res_swch 
-      real q2, ml
-      
-      integer i
-      real RReHadd 
-      real a,b,Znam 
-      real RGamma_ll
- 
-      real alpha_ked 
-      real pi 
- 
-c     .Total branching ratios of J/\psi and \psi^{'}--mesons in GeV-s 
-      real RGamma 
-
-c     .The branching fractions for decays V->l^+l^-, i={e,\mu} in GeV--s 
-      real RGamma_ll_e_mu 
-
-c     .The branching fractions for decays V->tau^+tau^- in GeV--s 
-      real RGamma_ll_tau 
-
-c     .Masses of J/\psi and \psi^{'}--mesons */ 
-      real RM 
-	  
-      RReHadd=0.0
-      alpha_ked=1.0/137.0
-      pi=3.141593
-      
-      RGamma(1) = 0.000088   ! GeV
-      RGamma(2) = 0.000277   ! GeV
-      
-      RGamma_ll_e_mu(1) = 0.000005  ! GeV
-      RGamma_ll_e_mu(2) = 0.000002  ! GeV
-      
-      RGamma_ll_tau(1) = 0.0        ! GeV
-      RGamma_ll_tau(2) = 0.000002   ! GeV
-      
-      RM(1) = 3.09688
-      RM(2) = 3.686
-                      
-                    	  
-      if(ml.LE.1.0) then 
-	 do i=1,2 
-     	    RGamma_ll(i)=RGamma_ll_e_mu(i)
-     	 enddo 
-      else 
-	 do i=1,2
-	    RGamma_ll(i)=RGamma_ll_tau(i) 
-	 enddo
-      endif
-      
-      if(res_swch.EQ.0) then
-         RReHadd=0.0
-      endif
-      
-      if(res_swch.EQ.1) then
-         RReHadd=0.0
-	 do i=1,2
-	    a=RM(i)**2-q2 
-	    b=RM(i)*RGamma(i) 
-	    Znam=a**2+b**2 
-	    Znam=RGamma_ll(i)*RM(i)*a/Znam 
-	    RReHadd=RReHadd+Znam
-	 enddo
-      endif
- 
-c     .plus is the consequence of relation:  
-c     .       \kappa*(3C_1+C_2)=1            
-c     .    with sign of Wilson coefficien    
-c     .      C_2(M_W)=+1 as at work          
-c     .        A.J.Buras and M.Munz,         
-c     .         Phys.Rev. D52, 186             
-      RReHadd=RReHadd*3.0*pi/alpha_ked**2 
- 
-      return
-      end 
-
-
-
-c    *****************************************************************
-c    *                                                               *
-c    *                   IMAGINARY PART                              * 
-c    * of the resonant hadronic contribution to the C_9V coefficient * 
-c    *                                                               * 
-c    *  res_swch -- switching parametr:                              * 
-c    *       res_swch=0 -- switch OFF for the resonant contribution; * 
-c    *       res_swch=1 -- switch ON for the resonant contribution.  * 
-c    *                                                               *
-c    *****************************************************************
-      subroutine ImHadd(res_swch, q2, ml, IImHadd) 
-      
-      dimension RGamma_ll(2), RGamma(2), RGamma_ll_e_mu(2), 
-     #RGamma_ll_tau(2), RM(2)
-             
-      integer res_swch 
-      real q2, ml
-                          
-      integer i
-      real IImHadd 
-      real a,b,Znam 
-      real RGamma_ll
-                  
-      real alpha_ked 
-      real pi 
-                         
-c     .Total branching ratios of J/\psi and \psi^{'}--mesons in GeV-s 
-      real RGamma 
-                 
-c     .The branching fractions for decays V->l^+l^-, i={e,\mu} in GeV--s 
-      real RGamma_ll_e_mu 
-                
-c     .The branching fractions for decays V->tau^+tau^- in GeV--s 
-      real RGamma_ll_tau 
-                
-c     .Masses of J/\psi and \psi^{'}--mesons */ 
-      real RM 
-                               	  
-      IImHadd=0.0
-      alpha_ked=1.0/137.0
-      pi=3.141593
-      
-      RGamma(1) = 0.000088   ! GeV
-      RGamma(2) = 0.000277   ! GeV
-      
-      RGamma_ll_e_mu(1) = 0.000005  ! GeV
-      RGamma_ll_e_mu(2) = 0.000002  ! GeV
-      
-      RGamma_ll_tau(1) = 0.0        ! GeV
-      RGamma_ll_tau(2) = 0.000002   ! GeV
-      
-      RM(1) = 3.09688
-      RM(2) = 3.686 
-            
-      if(ml.LE.1.0) then 
-        do i=1,2 
-          RGamma_ll(i)=RGamma_ll_e_mu(i) 
-        enddo 
-      else 
-        do i=1,2
-          RGamma_ll(i)=RGamma_ll_tau(i) 
-        enddo
-      endif  
-            
-      if(res_swch.EQ.0) then
-         IImHadd=0.0
-      endif
-      
-      if(res_swch.EQ.1) then
-         IImHadd=0.0
-	 do i=1,2
-            a=RM(i)**2-q2 
-            b=RM(i)*RGamma(i) 
-            Znam=a**2+b**2 
-            Znam=RGamma_ll(i)*RM(i)*b/Znam 
-            IImHadd=IImHadd+Znam
-	 enddo
-      endif	    
-                              	
-                 
-              
-c     . plus is the consequence of relation:  
-c     .       \kappa*(3C_1+C_2)=1             
-c     .   with sign of Wilson coefficien      
-c     .      C_2(M_W)=+1 as at work           
-c     .        A.J.Buras and M.Munz,          
-c     .         Phys.Rev. D52, 186            
-      IImHadd=IImHadd*3.0*pi/alpha_ked**2 
-           
-      return
-      end 
-                
-                      
-
-c     *****************************************************
-c     *                                                   * 
-c     *            Function omega(s)                      * 
-c     * by  A.J.Buras, M.Munz, Phys.Rev.D52 (1995), p189. *
-c     *                                                   *
-c     ***************************************************** 
-      subroutine omega(s,oomega)
-      
-      real s 
-      real oomega 
-      real pi
-      real Lii
-       
-      pi=3.141593
-      
-      call myLi2(s,Lii)
-      oomega=(-2.0)*pi**2/9.0-4.0*Lii/3.0 
-      oomega=oomega-2.0*alog(s)*alog(1.0-s)/3.0 
-      oomega=oomega-(5.0+4.0*s)*alog(1.0-s)/(3.0*(1.0+2.0*s)) 
-      oomega=oomega-2.0*s*(1.0+s)*(1.0-2.0*s)*alog(s)/
-     #      (3.0*(1.0-s)**2*(1.0+2.0*s)) 
-      oomega=oomega+(5.0+9.0*s-6.0*s*s)/(6.0*(1.0-s)*(1.0+2.0*s))
-      
-      return
-      end
-                             
-
-c     *************************************************************                  
-c     *                                                           *             
-c     *         REAL PART of the coefficient C_9V:                * 
-c     *           C9 -> C9eff=ReC9eff+i*ImC9eff                   * 
-c     *  by  A.J.Buras, M.Munz, Phys.Rev.D52 (1995), p189         * 
-c     *                                                           * 
-c     *   res_swch -- switching parametr:                         * 
-c     * res_swch=0 -- switch OFF for the resonant contribution,   * 
-c     * res_swch=1 -- switch ON for the resonant contribution;    * 
-c     *                                                           * 
-c     *         q2 -- the square of transition 4-momentum;        * 
-c     *         m2 -- b-quark mass (in the heavy meson M1), GeV;  * 
-c     *         mu -- scale parameter, GeV;                       * 
-c     *         mc -- c-quark mass, GeV;                          * 
-c     *         mt -- t-quark mass, GeV;                          * 
-c     *         Mw -- mass of the W--meson, GeV;                  * 
-c     *         ml -- leptonic mass, GeV;                         * 
-c     *         Nf -- number of "effective" flavors               * 
-c     *                          (for b-quark Nf=5);              * 
-c     *        ias -- switching parametr for Lms[]                * 
-c     *                          in the myAs(..) subroutine.      * 
-c     *                                                           *
-c     ************************************************************* 
-      subroutine ReC9eff(q2,m2,mu,mc,RReC9eff)
-     
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml  
-      SAVE /nikwc/,/nik1/,/nik2/
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-	       
-      real q2, m2, mu, mc, mt, Mw, ml, M1
-      integer res_swch, Nf, ias
-
-      real s          ! Buras variable "\hat s" in (2.26)      
-      real z          ! Buras variable "z"      in (2.26)
-      real tilde_eta  ! Buras variable " \tilde\eta" in (2.33)  
-      real c1,c2,c3,c4,c5,c6,c9,RReC9eff
-      real as, oomega, RReHadd, RReh 
- 
-      real pi
-      
-      pi=3.141593
-      
-      res_swch=n_res_swch
-      Nf=n_Nf
-      ias=n_ias
-      
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
- 
-c      print *, '                      '
-c      print *, ' BEGIN subroutine ReC9eff(...) '
-c      print *, '  mu =', mu
-c      print *, '  Mw =', Mw 
-c      print *, '  mt =', mt
-c      print *, '  Nf =', Nf 
-c      print *, ' ias =', ias
-
-      s=q2/(M1**2) 
-      z=mc/m2
-      call myAs(mu,Nf,ias)
-      as=n_as
-      
-      if(s.GE.1.0) then
-        s=0.99999999
-      endif
-            
-      call omega(s,oomega) 
-      tilde_eta=1.0+as*oomega/pi 
-      
-c      print *, '         s =', s
-c      print *, '         z =', z 
-c      print *, '        as =', as
-c      print *, '    oomega =', oomega 
-c      print *, ' tilde_eta =', tilde_eta
- 
-c     .Initialisation of the Wilson coefficients  
-      call myC1(mu,Mw,Nf,ias)
-      c1=n_c1 
-      call myC2(mu,Mw,Nf,ias)
-      c2=n_c2 
-      call myC3(mu,Mw,Nf,ias)
-      c3=n_c3 
-      call myC4(mu,Mw,Nf,ias)
-      c4=n_c4 
-      call myC5(mu,Mw,Nf,ias)
-      c5=n_c5 
-      call myC6(mu,Mw,Nf,ias)
-      c6=n_c6 
-      call myC9v(mu,Mw,mt,Nf,ias,c9)
-      
-c      print *, '  c1 =', c1
-c      print *, '  c2 =', c2 
-c      print *, '  c3 =', c3
-c      print *, '  c4 =', c4 
-c      print *, '  c5 =', c5
-c      print *, '  c6 =', c6
-c      print *, '  c9 =', c9 
- 
-      RReC9eff=c9*tilde_eta
-
-      RReh=0.0
-      call Reh(mu,m2,z,s,RReh) 
-      RReC9eff=RReC9eff+(3.0*c1+c2+3.0*c3+c4+3.0*c5+c6)*RReh
-c      print *, ' Reh(mu,m2,z,s) =', RReh
-
-      RReh=0.0
-      call Reh(mu,m2,1.0,s,RReh) 
-      RReC9eff=RReC9eff-0.5*(4.0*c3+4.0*c4+3.0*c5+c6)*RReh
-c      print *, ' Reh(mu,m2,1.0,s) =', RReh
-
-      RReh=0.0
-      call Reh0(mu,m2,s,RReh) 
-c      print *, ' Reh0(mu,m2,s) =', RReh
-
-      RReC9eff=RReC9eff-0.5*(c3+3.0*c4)*RReh 
-      RReC9eff=RReC9eff+2.0*(3.0*c3+c4+3.0*c5+c6)/9.0 
- 
-      call ReHadd(res_swch,q2,ml,RReHadd)
-c      print *,' ReHadd(res_swch,q2,ml) =', RReHadd
-      RReC9eff=RReC9eff+RReHadd 
-      
-c      print *, ' RReC9eff =', RReC9eff
-c      print *, ' END subroutine ReC9eff(...) '
-c      print *, '                      '
-                 
-      return
-      end 
-                
-                                          
-					  
-c     *************************************************************  
-c     *                                                           *             
-c     *       IMAGINARY PART of the coefficient C_9V:             * 
-c     *           C9 -> C9eff=ReC9eff+i*ImC9eff                   * 
-c     *  by  A.J.Buras, M.Munz, Phys.Rev.D52 (1995), p189         * 
-c     *                                                           * 
-c     *   res_swch -- switching parametr:                         * 
-c     * res_swch=0 -- switch OFF for the resonant contribution;   * 
-c     * res_swch=1 -- switch ON for the resonant contribution;    * 
-c     *                                                           * 
-c     *         q2 -- the square of transition 4-momentum;        * 
-c     *         m2 -- b-quark mass ( in the heavy meson M1), GeV; * 
-c     *         mu -- scale parameter, GeV;                       * 
-c     *         mc -- c-quark mass, GeV;                          * 
-c     *         Mw -- mass of the W--meson, GeV;                  * 
-c     *         ml -- leptonic mass, GeV;                         * 
-c     *         Nf -- number of "effective" flavors               * 
-c     *                          (for b-quark Nf=5);              * 
-c     *        ias -- switching parametr for Lms[]                * 
-c     *                          in the myAs(..) subroutine.      * 
-c     *                                                           *
-c     ************************************************************* 
-      subroutine ImC9eff(q2,m2,mu,mc,IImC9eff)
-     
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml 
-      SAVE /nikwc/,/nik1/,/nik2/
-      
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-                     	       
-      integer res_swch, Nf, ias  
-      real q2, m2, mu, mc, Mw, ml   	        
-                                           
-      real s      ! Buras variable "\hat s"in (2.26) 
-      real z      ! Buras variable "z" in (2.26)
-      real c1,c2,c3,c4,c5,c6,IImC9eff
-      real IImh, IImhadd 
-      
-      res_swch=n_res_swch
-      Nf=n_Nf
-      ias=n_ias
-      
-      Mw=n_Mw
-      ml=n_ml
-                                      
-      s=q2/m2**2 
-      z=mc/m2 
-                                     
-c     .Initialisation of the Wilson coefficients  
-      call myC1(mu,Mw,Nf,ias)
-      c1=n_c1 
-      call myC2(mu,Mw,Nf,ias)
-      c2=n_c2 
-      call myC3(mu,Mw,Nf,ias)
-      c3=n_c3 
-      call myC4(mu,Mw,Nf,ias)
-      c4=n_c4 
-      call myC5(mu,Mw,Nf,ias)
-      c5=n_c5 
-      call myC6(mu,Mw,Nf,ias)
-      c6=n_c6 
-       
-      call Imh(z,s,IImh)                           
-      IImC9eff=(3.0*c1+c2+3.0*c3+c4+3.0*c5+c6)*IImh
-      call Imh(1.0,s,IImh)
-      IImC9eff=IImC9eff-0.5*(4.0*c3+4.0*c4+3.0*c5+c6)*IImh
-      call Imh0(IImh) 
-      IImC9eff=IImC9eff-0.5*(c3+3.0*c4)*IImh 
-                        
-      call ImHadd(res_swch,q2,ml,IImhadd)		  
-      IImC9eff=IImC9eff+IImHadd 
-                 
-      return
-      end 
-               
- 
-             		                          
-		             		   
-			   
-
-
-
-
-
-
-
-            
diff --git a/Generators/PythiaB/src/comfunc.F b/Generators/PythiaB/src/comfunc.F
deleted file mode 100644
index 7951cd20565c3e4b82427d43c14d2cad3133f90a..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/comfunc.F
+++ /dev/null
@@ -1,98 +0,0 @@
-c  **************************************************
-c  *                                                *
-c  *  Breit-Wigner function for intermediate mesons *
-c  *                                                *
-c  **************************************************
-      function BW(s2,Gamma) 
-
-      real s2, Gamma
-
-c......My COMMON bloc
-      COMMON /nik2/ M1, M2, mt, Mw, ml
-      SAVE /nik2/
-
-c......The nik2 COMMON bloc parameters
-      real M1, M2, mt, Mw, ml
-      
-c......Additional variables      
-      real w, wmax
-      real BW
-
-      wmax=(M2*Gamma)**2
-      
-      w=(s2-M2**2)**2+wmax
-      w=1.0/w
-      w=w*wmax
-         
-      if(w.GT.1.0) then
-        print *,' In function BW(s2,Gamma)'
-        print *,' Fatal ERROR!!! w(S2)>1.0'
-        print *,' s2 =', s2,'     w =', w
-	print *,' M2 =', M2,' Gamma =', Gamma
-        STOP
-      endif
-
-      BW=w
-      return 
-
-      end
-
-
-c     *********************************************
-c     *                                           *
-c     *    Tringular function  \lambda (a,b,c)    *
-c     *      (for semileptonic decays matrix      * 
-c     *           elements calculations)          *
-c     *                                           *
-c     *********************************************
-      subroutine myLambda(a,b,c,L)
-
-      real a, b, c, L
-
-      L=a**2+b**2+c**2
-      L=L-2.0*a*b-2.0*b*c-2.0*a*c
-
-      return
-      end
-
-
-c     **********************************************
-c     *                                            *
-c     *             Function \hat\Pi               *
-c     *   by D.Melikhov, N.Nikitin and S.Simula,   *
-c     *        Phys.Rev. D57, p.6814 (1998).       *
-c     *                                            *
-c     **********************************************
-      subroutine myPi(a, b, c, d, PPi)
-
-      real a, b, c, d, PPi
-
-      PPi=(b-1.0)*(b-c)+a*b+d*(1.0+c+d-a-2.0*b)
-
-      return
-      end
-
-
-
-c
-c      ****************************************************************
-c      *                                                              *
-c      *                 Basic kinematics function                    *
-c      *                                                              *
-c      *   30.06.2003                                                 *
-c      *                                                              *
-c      *   Author: Nickolai Nikitine,  Nikolai.Nikitine@cern.ch       *
-c      *                                                              *
-c      ****************************************************************
-c
-      function gf(x,y,z,u,v,w)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      DOUBLE PRECISION gf 
-
-      gf=x*z*w+x*u*v+y*z*v+y*u*w
-     #-x*y*(z+u+v+w-x-y)-z*u*(x+y+v+w-z-u)-v*w*(x+y+z+u-v-w)
-
-      return
-      end
-
diff --git a/Generators/PythiaB/src/comons.F b/Generators/PythiaB/src/comons.F
deleted file mode 100644
index 2fb92036a820eec75dea4443191e8946ee95ec46..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/comons.F
+++ /dev/null
@@ -1,86 +0,0 @@
-*
-* modifications:
-* 2006-04-02, W.Walkowiak
-*    added common block ufdecay to tunnel iufdc and cufdcp(10)
-*    to user_finsel.F
-* 
-        subroutine comons(cc0,andors,cc1,cc2,cc3,cc4,cc5,cc6,idc,cdcp)
-C...Reject events without b(c) quark within pT cuts 
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      common/cutbq/cut0(4),andor
-      CHARACTER*(2) andor
-      common/lvl1/cut1(3)
-      common/lvl2/cut2(4)
-      common/cutoff/cut3(7)
-      common/repeat/NTB
-      common/flavour/flav
-      common/nt5000/ntup_5000
-*KEEP,PRIVEVN.
-* numbering of accepted b-events
-       common/bevent/ieve,keve
-       SAVE/bevent/      
-       
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-      dimension cc0(4),cc1(3),cc2(4),cc3(7)
-      dimension cdcp(10)
- 
-      DATA IFIRST /1/
-C ----------- end CDE --------------------------------------------------
-      
-      idebug=0
-      if(idebug.ne.0) print *,'comons: starts'
-      
-      IF(IFIRST.EQ.1) THEN
-      call uinit
-      if(idebug.ne.0) 
-     +      print *,' comons: first time IFIRST =',IFIRST
-        IFIRST =0
-	    if(idebug.ne.0) print *,' comons: cc0', cc0
-      call dcopy(cc0,cut0,4)
-      call dcopy(cc1,cut1,3)
-      call dcopy(cc2,cut2,4)
-      call dcopy(cc3,cut3,7)
-      NTB=cc4
-      flav=cc5
-      ntup_5000=cc6
-      andor='an'
-      if(andors.eq.1.) andor='an'
-      if(andors.eq.-1.) andor='or'
-      ieve=0
-      
-c     user_finsel.F decay channel number and parameters
-      iufdc = idc
-      call dcopy(cdcp, cufdcp,10)
-
-c       print *,' comons: cut0', cut0
-c       print *,' comons: andors',andors
-c       print *,' comons: andor',andor
-c       print *,' comons: cut1', cut1
-c       print *,' comons: cut2', cut2
-c       print *,' comons: cut3', cut3
-c       print *,' comons: ntb flav ntup',NTB,flav,ntup_5000 
-      
-      
-      else 
-c       if(idebug.ne.0) print *,'comons:return IFIRST =',IFIRST
-      return
-      
-      
-      ENDIF
-      return
-      end
-      
-      subroutine dcopy(a,b,N)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      DIMENSION a(*),b(*)
-      IF (N.EQ.0) RETURN
-         DO 21 I=1,N
-   21 B(I)=A(I)
-      return 
-      end
-      
diff --git a/Generators/PythiaB/src/components/PythiaB_entries.cxx b/Generators/PythiaB/src/components/PythiaB_entries.cxx
deleted file mode 100644
index f65ec9e087ce33ebb3960ac4721abf3885974a2d..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/components/PythiaB_entries.cxx
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "PythiaB/PythiaB.h"
-
-DECLARE_COMPONENT( PythiaB )
-
diff --git a/Generators/PythiaB/src/copy_ludat3.F b/Generators/PythiaB/src/copy_ludat3.F
deleted file mode 100644
index 331a5e7e44d18eb8ecd83dac632dfeb7ae47abb5..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/copy_ludat3.F
+++ /dev/null
@@ -1,61 +0,0 @@
-*CMZ :          02/08/2001  11.43.38  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/07/2000
-
-      SUBROUTINE copy_ludat3(in)
-c
-c   make a copy ludat3 of default (in=1) decays
-c   make a copy ludat3 of users defined (in=2) decays
-c   MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
-c
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,COLUDAT3.
-
-       common /CLUDAT3/MDCYbi(500,3),MDMEbi(4000,2),
-     *                       BRATbi(4000),KFDPbi(4000,5),
-     *                       MDCYun(500,3),MDMEun(4000,2),
-     *                       BRATun(4000),KFDPun(4000,5)
-
-*KEEP,LUDAT3.
-       COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
-*KEND.
-      
-
-      idebug=0
-      if(idebug.ne.0) print *,'copy_ludat3: is called'
-      if(in.eq.1) then
-*      call ucopy(xludat3,xludat3_unbiased,n_ludat3)
-      call ucopy(MDCY,MDCYun,1500)
-      call ucopy(MDME,MDMEun,8000)
-      call ucopy(BRAT,BRATun,1500)      
-      call ucopy(KFDP,KFDPun,20000)
-
-
-      endif
-
-      if(in.eq.2) then
-*      call ucopy(xludat3,xludat3_biased,n_ludat3)
-      call ucopy(MDCY,MDCYbi,1500)
-      call ucopy(MDME,MDMEbi,8000)
-      call ucopy(BRAT,BRATbi,1500)      
-      call ucopy(KFDP,KFDPbi,20000)      
-
-      endif
-
-
-      if(idebug.ne.0) then
-      print *,'copy_ludat3: unbiased 1 biased 2',in
-      print *,'copy_ludat3: mdme(524-559,1)',(mdme(ii,1),ii=524,559)
-      endif
-      return
-      end
-
-
-
-
-
-
-
diff --git a/Generators/PythiaB/src/copy_pydat3.F b/Generators/PythiaB/src/copy_pydat3.F
deleted file mode 100644
index 974b0c6b1b9f37bddcc4dbb594587ae810735db4..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/copy_pydat3.F
+++ /dev/null
@@ -1,53 +0,0 @@
-*CMZ :          02/08/2001  11.43.38  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/07/2000
-
-      SUBROUTINE copy_pydat3
-c
-c   read  ludat3 of default  decays
-c   make a copy ludat3 of users defined  decays
-c
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,COLUDAT3.
-
-       common /CLUDAT3/MDCYbi(500,3),MDMEbi(8000,2),
-     *                       BRATbi(8000),KFDPbi(8000,5),
-     *                       MDCYun(500,3),MDMEun(8000,2),
-     *                       BRATun(8000),KFDPun(8000,5)
-
-*KEEP,LUDAT3.
-       COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-       DATA IFIRST /1/
-*KEND.
-      
-      IF(IFIRST.EQ.1) THEN
-      OPEN(60,FILE='Bdecays0.dat',STATUS='OLD',FORM='UNFORMATTED')
-        IFIRST =0
-      ENDIF
-      
-      idebug=0
-      read (60) MDCYun,MDMEun,BRATun,KFDPun
-      
-      call icopy(MDCY,MDCYbi,1500)
-      call icopy(MDME,MDMEbi,16000)
-      call dcopy(BRAT,BRATbi,8000)      
-      call icopy(KFDP,KFDPbi,40000)      
-
-      
-      
-
-      if(idebug.ne.0) then
-      print *,'copy_pydat3: mdmeun(981-9,1)',(mdmeun(ii,1),ii=981,989)
-      print *,'copy_pydat3: mdmebi(981-9,1)',(mdmebi(ii,1),ii=981,989)
-      endif
-      return
-      end
-
-
-
-
-
-
-
diff --git a/Generators/PythiaB/src/daughterline.F b/Generators/PythiaB/src/daughterline.F
deleted file mode 100644
index aa71dc5cf1be429bb6b486ebd87cee21cbe06ae2..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/daughterline.F
+++ /dev/null
@@ -1,312 +0,0 @@
-c
-c Funkciya vidayot nomer stroki docherney chastici if OK
-c Inache ona vidayot 0
-c
-c NKF - KF kod iskomoy docherney chastici
-c LM - nomer stroki materinskoy chastici
-c
-      function niklenedote(NKF,LM)
-
-c.......Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)      
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer NKF,LM,i,count
-      integer niklenedote
- 
-      count=0
-      niklenedote=0
-      
-      do i=k(LM,4),k(LM,5)
-         if(k(i,2).eq.NKF) then       
-            niklenedote=i
-            count=count+1
-         endif
-      enddo
-      
-      if(count.EQ.0) niklenedote=0
-      
-c      print *,'     '
-c      print *,' NKF =', NKF, '   LM =', LM
-c      print *,' doteline =', niklenedote
-      
-      return
-      end
-
-
-
-c
-c Funkciya vidayot pT docherney chastici if OK
-c Inache ona vidayot -1000000.D0
-c
-c NKF - KF kod iskomoy docherney chastici
-c LM - nomer stroki materinskoy chastici
-c
-      function zzzptdote(NKF,LM)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer NKF,LM, myline
-      double precision zzzptdote
-
-      myline=niklenedote(NKF,LM)
-      if(myline.EQ.0) then
-         zzzptdote=-1000000.D0
-      else
-         zzzptdote=dsqrt(p(myline,1)**2+p(myline,2)**2)
-      endif
-      
-      return
-      end
-
-c
-c Funkciya vidayot p_x docherney chastici if OK
-c Inache ona vidayot -1000000.D0
-c
-c NKF - KF kod iskomoy docherney chastici
-c LM - nomer stroki materinskoy chastici
-c
-      function zzzpxdote(NKF,LM)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer NKF,LM, myline
-      double precision zzzpxdote
-
-      myline=niklenedote(NKF,LM)
-      if(myline.EQ.0) then
-         zzzpxdote=-1000000.D0
-      else
-         zzzpxdote=p(myline,1)
-      endif
-      
-      return
-      end
-
-
-c
-c Funkciya vidayot p_y docherney chastici if OK
-c Inache ona vidayot -1000000.D0
-c
-c NKF - KF kod iskomoy docherney chastici
-c LM - nomer stroki materinskoy chastici
-c
-      function zzzpydote(NKF,LM)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer NKF,LM, myline
-      double precision zzzpydote
-      
-      myline=niklenedote(NKF,LM)
-      if(myline.EQ.0) then
-         zzzpydote=-1000000.D0
-      else
-         zzzpydote=p(myline,2)
-      endif
-      
-      return
-      end
-
-c
-c Funkciya vidayot p_z docherney chastici if OK
-c Inache ona vidayot -1000000.D0
-c
-c NKF - KF kod iskomoy docherney chastici
-c LM - nomer stroki materinskoy chastici
-c
-      function zzzpzdote(NKF,LM)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer NKF,LM, myline
-      double precision zzzpzdot
-      
-      myline=niklenedote(NKF,LM)
-      if(myline.EQ.0) then
-         zzzpzdote=-1000000.D0
-      else
-         zzzpzdote=p(myline,3)
-      endif
-      
-      return
-      end
-
-
-c
-c Funkciya vidayot E docherney chastici if OK
-c Inache ona vidayot -1000000.D0
-c
-c NKF - KF kod iskomoy docherney chastici
-c LM - nomer stroki materinskoy chastici
-c
-      function zzzedote(NKF,LM)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer NKF,LM, myline
-      double precision zzzedote
-      
-      myline=niklenedote(NKF,LM)
-      if(myline.EQ.0) then
-         zzzedote=-1000000.D0
-      else
-         zzzedote=p(myline,4)
-      endif
-      
-      return
-      end
-
-
-c
-c Funkciya vidayot pseudorapidity docherney chastici if OK
-c Inache ona vidayot -1000000.D0
-c
-c NKF - KF kod iskomoy docherney chastici
-c LM - nomer stroki materinskoy chastici
-c
-      function zzzprapdote(NKF,LM)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer NKF,LM, myline
-      double precision theta, npz, npt
-      double precision zzzprapdote
-      
-      myline=niklenedote(NKF,LM)
-      if(myline.EQ.0) then
-         zzzprapdote=-1000000.D0
-      else
-         npz=zzzpzdote(NKF,LM)
-	 npt=zzzptdote(NKF,LM)
-         theta=DATAN(npt/npz)
-         zzzprapdote=-DLOG(MAX(0.0001,DABS(DTAN(theta/2.D0))))
-      endif
-      
-      print *,'     '
-      print *,' doteline =', myline 
-      print *,'       pz =', npz
-      print *,'       pt =', npt
-      print *,'      eta =', zzzprapdote 
-      
-      return
-      end
-      
-c
-c Funkciya vidayot ugol phi docherney chastici if OK
-c Inache ona vidayot -1000000.D0
-c
-c NKF - KF kod iskomoy docherney chastici
-c LM - nomer stroki materinskoy chastici
-c
-      function zzzphidote(NKF,LM)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N) 
-      
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer NKF,LM, myline
-c      double precision phi, npx, npy
-      double precision npx, npy
-      double precision zzzphidote
-      
-      myline=niklenedote(NKF,LM)
-      if(myline.EQ.0) then
-         zzzphidote=-1000000.D0
-      else
-         npx=zzzpxdote(NKF,LM)
-	 npy=zzzpydote(NKF,LM)
-         zzzphidote=DATAN(npy/npx)
-      endif    
-      
-c      print *,'     '
-c      print *,' doteline =', myline 
-c      print *,'       px =', npx
-c      print *,'       py =', npy
-c      print *,'      phi =', zzzphidote      
-            
-      return
-      end           
-
-
-c
-c Funkciya vidayot dlinu probega chastici if OK
-c Inache ona vidayot -1000000.D0
-c
-c LM - nomer stroki chastici
-c
-c (x,y,z) in mm!!!!!
-      function zzzLprobeg(LM)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer LM, line1, line2
-      double precision zzzLprobeg
-      
-      line1=k(LM,4)
-      line2=k(LM,5) 
-      
-      if(line1.EQ.0) then
-         zzzLprobeg=-1000000.D0
-         return
-      endif
-      
-      if(line2.EQ.0) then
-         zzzLprobeg=-1000000.D0
-         return
-      endif
-      
-      zzzLprobeg=DSQRT((V(line1,1)-V(LM,1))**2+
-     #                 (V(line1,2)-V(LM,2))**2+
-     #                 (V(line1,3)-V(LM,3))**2)
-      	     
-      return
-      end
-      
-      
-      
-      
-c
-c Funkciya vidayot effektivnuyu massu dvuh chastic iz
-c strok LM1 and LM2.
-c
-c Inache ona vidayot -1000000.D0
-c
-      function zzzmeff(LM1, LM2)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      integer LM1, LM2, line1, line2
-      double precision px, py, pz, e
-      double precision zzzmeff
-      
-      line1=LM1
-      line2=LM2 
-      
-      if(line1.EQ.0) then
-         zzzmeff=-1000000.D0
-         return
-      endif
-      
-      if(line2.EQ.0) then
-         zzzmeff=-1000000.D0
-         return
-      endif
-      
-       e=P(line1,4)+P(line2,4)
-      px=P(line1,1)+P(line2,1)
-      py=P(line1,2)+P(line2,2)
-      pz=P(line1,3)+P(line2,3)
-      
-      zzzmeff=DSQRT(e**2-px**2-py**2-pz**2)
-      	     
-      return
-      end     
diff --git a/Generators/PythiaB/src/fill_ntup.F b/Generators/PythiaB/src/fill_ntup.F
deleted file mode 100644
index 8c2b4ef2e914f69586d96f3fd95420e01fff2e9e..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/fill_ntup.F
+++ /dev/null
@@ -1,311 +0,0 @@
-*CMZ :          02/08/2001  13.11.14  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/09/96
-
-      SUBROUTINE FILL_NTUP(ITB)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : FILL_NTUP                                                     *
-*        (module)                                                      *
-*                                                                      *
-* Description :  store B-decay tree in XNTUP                           *
-*                                                                      *
-*                                                                      *
-* Arguments   :                                                        *
-*                    ITB  # of events hadronized to get this one       *
-*                                                                      *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 21/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-C +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,NNTUPLE.
-*      DECLARATION FOR NTUPLE 5000
-       PARAMETER(NDIM = 20)
-       COMMON/NNICK/XNTUP(NDIM)
-       SAVE/NNICK/
-
-*      DECLARATION FOR NTUPLE 5001
-       PARAMETER(NDIM1 = 13)
-       COMMON/HARD/XNTUP1(NDIM1)
-       SAVE/HARD/
-
-*      DECLARATION FOR NTUPLE 5002
-       PARAMETER(NDIM2 = 12)
-       COMMON/MUON/XNTUP2(NDIM2)
-       SAVE/MUON/
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEEP,LVL1.
-*  LVL1 muon cuts
-      common/lvl1/tr1,pt_trig1, etha_trig1
-      common/trg1/i_muon_trig1
-      SAVE/lvl1/
-      SAVE/trg1/
-      dimension cut1(3)
-      equivalence (cut1(1),tr1)
-*KEEP,CUTOFF.
-*  cuts on stable particles to select event
-      common/cutoff/tr4,pt_pikp,eta_pikp,
-     +              pt_muon,eta_muon,
-     +              pt_ele,eta_ele
-      SAVE/cutoff/
-      dimension cut3(7)
-      equivalence (cut3(1),tr4)
-*KEEP,NT5000.
-*   users choice to fill  NTUPLE 5000 or to call user_fill
-       common/nt5000/ntup_5000
-       SAVE/nt5000/
-
-
-*KEEP,PRIVEVN.
-* numbering of accepted b-events
-       common/bevent/ieve,keve
-       SAVE/bevent/
-
-*KEND.
-           dimension xntup3(7)
-           DATA IFIRST /1/
-           SAVE IFIRST
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-
-C ----------- end CDE --------------------------------------------------
-
-          idebug=0
-
-
-          if(IFIRST.eq.1) IFIRST=0
-
-
-       if(idebug.ne.0) print *,'FILL_NTUP:ieve',ieve
-
-        DO NN=1,NDIM
-        XNTUP(NN) = 0
-        ENDDO
-        DO NN=1,NDIM2
-        XNTUP2(NN) = 0
-        ENDDO
-
-
-
-
-c -------------------------------------------------------------------
-c First finish filling XNTUP1 after PYDOCU was called
-c fill ntuple for first ntup_5000 events
-c write out XNTUP1 formated output for all events
-c -------------------------------------------------------------------
-
-       XNTUP1(1)=float(MSTI(1))
-       XNTUP1(2)=PARI(1)
-       XNTUP1(3)=ITB
-       XNTUP1(4)=PARI(17)
-       XNTUP1(5)=PARI(37)
-
-       if (ntup_5000.ge.ieve) then
-       if(idebug.eq.1)
-     +     print *,'FILL_NTUP: hard process filled'
-c       call HFN(5001,XNTUP1)
-       WRITE (53,1070) float(ieve),xntup1
-       endif
- 1070  FORMAT(14f12.5)
-
-
-c -------------------------------------------------------------------
-c   if LVL1-required and satisfied and off-line not required
-c   store only muons from this event
-c -------------------------------------------------------------------
-
-          if(tr1.ne.0.and.i_muon_trig1.ne.0.and.tr4.eq.0) then
-
-          nmuon=0
-          do  I=1,N
-          if(name_selv(I).eq.13) then
-          nmuon=nmuon+1
-          endif
-          enddo
-
-          imuon=0
-          do  I=1,N
-
-          if(name_selv(I).eq.13) then
-          imuon=imuon+1
-
-           xntup2(1)=float(ieve)    ! this accepted ev number
-           xntup2(2)=float(ITB)    ! # of events hadronised to get this one
-           xntup2(3)=float(nmuon)
-           xntup2(4)=float(imuon)
-
-           xntup2(5)=float(name_self(I))
-           father=float(name_father(I))
-           xntup2(6)=father
-
-           pt=sqrt(P(I,1)**2+P(I,2)**2)
-           TH = ACOS(P(I,3)/SQRT(PT**2+P(I,3)**2))
-           ETA = -LOG(MAX(.0001,ABS(TAN(.5*TH))))
-           phi=atan2(P(I,1),P(I,2))
-
-           xntup2(7)=pt
-           xntup2(8)=eta
-           xntup2(9)=phi
-
-           xntup2(10)=V(I,1)
-           xntup2(11)=V(I,2)
-           xntup2(12)=V(I,3)
-
-
-           xntup3(1)=xntup2(1)
-           xntup3(2)=xntup2(3)
-           xntup3(3)=xntup2(4)
-           xntup3(4)=xntup2(6)
-           xntup3(5)=xntup2(7)
-           xntup3(6)=xntup2(8)
-           xntup3(7)=xntup2(9)
-
-           if (ntup_5000.ge.ieve) then
-           if(idebug.eq.1)
-     +     print *,'FILL_NTUP: all muons are filled',
-     +     K(I,2),K(I,1)
-c            call HFN(5002,XNTUP2)
-	   WRITE (52,1071) xntup3,float(link_father(I)) 
-           endif
-
-           
-
-1071       FORMAT(F10.1,2F5.1,F8.1,3F8.3,F8.1)
-           endif
-           enddo
-           endif
-
-c -------------------------------------------------------------------
-c   if LVL1-required and satisfied and off-line is required and satisfied
-c    store trigger muon and signal tree
-c -------------------------------------------------------------------
-
-c is signal tree inside off-line cuts? if not return
-          if(tr4.ne.0) then
-          ntree=0
-          do  ii=1,N
-          if(tree(ii).eq.-1) return
-          if(tree(ii).gt.0) ntree=ntree+1
-          enddo
-          endif
-
-          if(tr1.ne.0.and.tr4.ne.0.and.i_muon_trig1.ne.0.and.
-     +       ntree.gt.0) then
-
-
-           xntup(1)=float(ieve)    ! this accepted ev number
-           xntup(2)=float(ITB)    ! # of events hadronised to get this one
-           xntup(3)=float(0)
-           xntup(4)=float(0)
-           xntup(5)=float(i_muon_trig1)
-
-
-           xntup(6)=float(K(i_muon_trig1,1))
-           xntup(7)=float(K(i_muon_trig1,2))
-           xntup(8)=float(K(i_muon_trig1,3))
-           xntup(9)=float(K(i_muon_trig1,4))
-           xntup(10)=float(K(i_muon_trig1,5))
-
-           xntup(11)=P(i_muon_trig1,1)
-           xntup(12)=P(i_muon_trig1,2)
-           xntup(13)=P(i_muon_trig1,3)
-           xntup(14)=P(i_muon_trig1,4)
-           xntup(15)=P(i_muon_trig1,5)
-
-
-           xntup(16)=V(i_muon_trig1,1)
-           xntup(17)=V(i_muon_trig1,2)
-           xntup(18)=V(i_muon_trig1,3)
-           xntup(19)=V(i_muon_trig1,4)
-           xntup(20)=V(i_muon_trig1,5)
-c          if (ntup_5000.ge.ieve) call HFN(5000,XNTUP)
-          if (ntup_5000.ge.ieve) 
-     +	  WRITE (50,1072) xntup 
-1072       FORMAT(20F14.6)
-
-
-
-          itree=0
-          do  I=1,N
-          if(tree(I).ne.0) then
-          itree=itree+1
-           xntup(1)=float(ieve)    ! this accepted ev number
-           xntup(2)=float(ITB)    ! # of events hadronised to get this one
-           xntup(3)=float(ntree)
-           xntup(4)=float(itree)
-           xntup(5)=float(I)
-
-
-           xntup(6)=float(K(I,1))
-           xntup(7)=float(K(I,2))
-           xntup(8)=float(K(I,3))
-           xntup(9)=float(K(I,4))
-           xntup(10)=float(K(I,5))
-
-           xntup(11)=P(I,1)
-           xntup(12)=P(I,2)
-           xntup(13)=P(I,3)
-           xntup(14)=P(I,4)
-           xntup(15)=P(I,5)
-
-
-           xntup(16)=V(I,1)
-           xntup(17)=V(I,2)
-           xntup(18)=V(I,3)
-           xntup(19)=V(I,4)
-           xntup(20)=V(I,5)
-
-
-
-           if (ntup_5000.ge.ieve) then
-           if(idebug.eq.1)
-     +     print *,'FILL_NTUP: fill ntuple for tree ',
-     +     K(I,2),K(I,1)
-c           call HFN(5000,XNTUP)
-	   WRITE (50,1072) xntup
-           endif
-              endif
-              enddo
-
-              endif
-
-              return
-*
-*
-      END          ! FILL_NTUP
diff --git a/Generators/PythiaB/src/find_children.F b/Generators/PythiaB/src/find_children.F
deleted file mode 100644
index cfefc9199b7d32fe842363bde971327586cdd8c1..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/find_children.F
+++ /dev/null
@@ -1,178 +0,0 @@
-*CMZ :          20/09/2001  18.42.30  by  Unknown
-*-- Author :    Maria Smizanska   22/09/96
-
-      SUBROUTINE FIND_CHILDREN(I)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : FIND_CHILDREN                                                 *
-*        (module)                                                      *
-*                                                                      *
-* Description : find full decay tree  of initial particle descendants  *
-*               and check if each one fullfills requirements defined   *
-*               by FUNCTION QUALIFY according to user datacard CUTOFF  *
-*               This subroutine has recursive call                     *
-* Arguments   :                                                        *
-*                input:    I               particle line # in LUJETS   *
-*               output:   inside   =0      B-hadron chain rejected     *
-*                                  =1      B-hadron chain accepted     *
-*                                                                      *
-* Banks/Tables:                                                        *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :  Chafik Driouichi                               *
-*        [name]                               Date : 15/09/ 2001       *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*                                                                       
-c +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree       
-      SAVE /btree/
-*KEND.
-       INTEGER inside,I,NCHI
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-       integer qualify
-       integer children
-C ----------- end CDE --------------------------------------------------
-C ----------- end CDE --------------------------------------------------
-
-c local debugging control (inactive for idebug=0)
-      idebug=0
-
-
-c is particle inside cuts?
-      inside=qualify(I)
-
-      if(inside.ne.0) then
-c  store  particle number
-
-      tree(I)=1
-
-
-c   find children  of particle I
-
-      NCHI=children(I) 
-      if(NCHI.ne.0) then
-       l1=link_daughter1(I)   
-       do i1=1,NCHI
-        il1=l1+i1-1
-        inside=qualify(il1)
-        tree(il1)=-1
-        if(qualify(il1).eq.1) then
-         tree(il1)=1
-         inside=qualify(il1)  
-      
-         nchi2=children(il1)
-         if(nchi2.ne.0) then
-          l2=link_daughter1(il1)
-          do i2=1,nchi2
-           il2=l2+i2-1  
-           inside=qualify(il2)
-           tree(il2)=-1
-           if(qualify(il2).eq.1) then
-            tree(il2)=1
-            inside=qualify(il2)
-        
-            nchi3=children(il2)
-            if(nchi3.ne.0)then
-             l3=link_daughter1(il2)
-             do i3=1,nchi3  
-              il3=l3+i3-1
-              inside=qualify(il3)
-              tree(il3)=-1
-              if(qualify(il3).eq.1) then
-               tree(il3)=1
-               inside=qualify(il3)   
-           
-               nchi4=children(il3)
-               if(nchi4.ne.0) then
-                l4=link_daughter1(il3)
-                do i4=1,nchi4  
-                 il4=l4+i4-1  
-                 inside=qualify(il4)
-                 tree(il4)=-1
-                 if(qualify(il4).eq.1) then
-                  tree(il4)=1
-                  inside=qualify(il4)
-              
-                  nchi5=children(il4)
-                  if(nchi5.ne.0) then
-                   l5=link_daughter1(il4)
-                   do i5=1,nchi5  
-                    il5=l5+i5-1   
-                    inside=qualify(il5)
-                    tree(il5)=-1
-                    if(qualify(il5).eq.1) then
-                     tree(il5)=1
-                     inside=qualify(il5)
-                 
-                     nchi6=children(il5)
-                     if(nchi5.ne.0) then
-                      l6=link_daughter1(il5)
-                      do i6=1,nchi6  
-                       il6=l6+i6-1   
-                       inside=qualify(il6)
-                       tree(il6)=-1
-                       if(qualify(il6).eq.1) then
-                        tree(il6)=1
-                        inside=qualify(il6)
-                       endif
-                      enddo
-                     endif
-                 
-                    endif
-                   enddo
-                  endif
-                      
-                 endif
-                enddo
-               endif
-                       
-              endif
-             enddo
-            endif
-
-           endif
-          enddo
-         endif
-                   
-        endif
-       enddo
-      endif   ! if inside=0
-           
-      else
-                       
-      tree(I)=-1   
-             
-      endif
-      return
-           
-      END          ! FIND_CHILDREN
-
diff --git a/Generators/PythiaB/src/finsel.F b/Generators/PythiaB/src/finsel.F
deleted file mode 100644
index 532ab5337688e19698f1737e6bb868c670b630e5..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/finsel.F
+++ /dev/null
@@ -1,234 +0,0 @@
-*CMZ :          02/08/2001  11.45.06  by  Maria Smizanska
-*-- Author :    Nick Ellis   13/07/95
-
-      SUBROUTINE FINSEL(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : FINSEL                                                        *
-*        (module)                                                      *
-*                                                                      *
-* Description :  Accepting/rejecting event after hadronization is made *
-*                in  5 steps:                                          *
-*                0.  reject event if undecayed quarks found
-*                1.  LVL1CUTS                                          *
-*                2.  LVL2CUTS                                          *
-*                3.  OFFLCUTS                                          *
-*                4.  'user_finsel'                                     *
-*                                                                      *
-*                User wishing completely control accepting/rejecting   *
-*                by himself can switch off                             *
-*                steps LVL1CUTS, LVL2CUTS and OFFLCUTS                 *
-*                by defining  datacards                                *
-*       LVL1CUTS 1=0    (default is 1=1)
-*       LVL2CUTS 1=0    (default is 1=0)
-*       OFFLCUTS 1=0    (default is 1=0 for inclusive muon events
-*                                   1=1 for inclusive forced decays)
-*
-*                Subroutine user_finsel is called as empty routine     *
-*                can be filled by user.                                *
-*                                                                      *
-*                                                                      *
-*      fill_ntup fills    NTUPLE with trigger muon and signal tree     *
-*      number of events written into NTUPLE is controled by            *
-*          user datacard NT5000                                        *
-*                                                                      *
-* Arguments   :                                                        *
-*         ITB (in) # of hadronisations before this event               *
-*         IRET (out)  flag for keep/reject event                       *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Nick Ellis                         Date : 13/07/95          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-
-*KEEP,NNTUPLE.
-*      DECLARATION FOR NTUPLE 5000
-       PARAMETER(NDIM = 20)
-       COMMON/NNICK/XNTUP(NDIM)
-       SAVE/NNICK/
-
-*      DECLARATION FOR NTUPLE 5001
-       PARAMETER(NDIM1 = 13)
-       COMMON/HARD/XNTUP1(NDIM1)
-       SAVE/HARD/
-
-*      DECLARATION FOR NTUPLE 5002
-       PARAMETER(NDIM2 = 12)
-       COMMON/MUON/XNTUP2(NDIM2)
-       SAVE/MUON/
-*KEEP,PRIVEVN.
-* numbering of accepted b-events
-       common/bevent/ieve,keve
-*       SAVE/ieve/
-       SAVE/bevent/
-
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-C      DATA IEVE   /0/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEEP,HEAVYFLAV.
-* store info about  multiple heavy flavour  produced in event
-       common/multif/ibq,icq     
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-
-
-
-C ----------- end CDE --------------------------------------------------
-c  debug control for this subroutine (non active for idebug=0)
-      idebug=0
-
-*...DEFINE NUMBER OF SELECTED EVENTS TO PRINT OUT
-      NNPRNT = 1
-
-*...INITIALIZE
-      IF(IFIRST.EQ.1) THEN
-c        call pylist(12)
-
-
-        IFIRST =0
-      ENDIF
-
-
-
-c
-c accept  event unless explicitely vetoed
-c
-      iret=0
-
-c
-c decide if it is worth keeping event
-c
-
-c -------------------------------------------------
-c  Check for undecayed quarks and reject event if any
-c ------------------------------------------------------
-      DO 1700 I=1,N
-      if(name_selv(I).ge.1.and.name_selv(I).le.6
-     +      .and.K(I,1).eq.1) iret=1
-        
-      if(iret.eq.1) print*,'FINSEL: undecayed quark event rejected'
-         if(iret.eq.1) return
- 1700  continue     
-c ------------------------------------------------------------------
-c 1. check LVL1 with any muon in event
-c ------------------------------------------------------------------
-        call trig1(iret)
-        if(iret.eq.1) return
-      if(idebug.ne.0) print*,'FINSEL: trig1 passed'
-
-c ----------------------------------------------------------------------
-c 2. quasi LVL2 finds second muon or tagging electron
-c    normally  subroutine trig2 is inactive
-c    only if demanded explicitly by user - LVL2CUTS datacard
-c ----------------------------------------------------------------------
-        call trig2(iret)
-        if(iret.eq.1) return
-      if(idebug.ne.0) print*,'FINSEL: trig2 passed'
-
-c ----------------------------------------------------------------------
-c 3. for forced channels finds B-decay tree and check
-c    if whole tree is inside cuts defined by OFFLCUTS
-c ----------------------------------------------------------------------
-      call off_line(iret)
-        if(iret.eq.1) return
-      if(idebug.ne.0) print*,'FINSEL: off_line passed'
-
-c ----------------------------------------------------------------------
-c 4. users routine of additional demands on this event
-c ----------------------------------------------------------------------
-
-       call user_finsel(iret)
-        if(iret.eq.1) return
-      if(idebug.ne.0) print*,'FINSEL: user_finsel passed'
-
-       if(iret.ne.0) return
-
-       ieve=ieve+1
-       if(idebug.ne.0)
-     +     print *,'FINSEL: eve',ieve,' accepted with ',N,' particles'
-
-c ----------------------------------------------------------------------
-c 5. if bbbb call again pyexec and decay undecaied events
-c ----------------------------------------------------------------------
-       if(iret.eq.0.and.ibq.gt.1) call bbbb_luexec(2)
-
-
-       
-c ----------------------------------------------------------------------
-c  6. Store LVL1 muon and signal chain in NTUPLE
-c     number of events to be stored is controled by user datacard NT5000
-c ----------------------------------------------------------------------
-        call fill_ntup(0)
-
-c         call hfill(1,float(N),1.,1.)
-c...Print  NNPRNT events that  passed cuts
-c        IF(IIPRNT.LT.NNPRNT) THEN
-c        print *,'FINSEL: eve',ieve,' accepted with ',N,' particles'
-c          CALL PYLIST(1)
-c          IIPRNT = IIPRNT+1
-c        ENDIF
-
-      RETURN
-
-*
-      END          ! FINSEL
diff --git a/Generators/PythiaB/src/forced.F b/Generators/PythiaB/src/forced.F
deleted file mode 100644
index ea979de822f83abbda074eabbfc381fab473532b..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/forced.F
+++ /dev/null
@@ -1,79 +0,0 @@
-*CMZ :          02/08/2001  11.45.28  by  Maria Smizanska
-*-- Author :    Maria Smizanska   24/09/96
-
-      FUNCTION FORCED(I)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : FORCED                                                        *
-*
-*        Confirm  particles that have
-*        been forced not to decay - by user                            *
-*        This function is to be used by function QUALIFY               *
-* Description :                                                        *
-*        [description]                                                 *
-*                                                                      *
-* Arguments   :                                                        *
-*        [name]  ([in | out | in/out])      [description]              *
-*                                                                      *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 24/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-C+CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEND.
-        INTEGER ISTAB(15)
-         data ISTAB/11,12,13,14,16,18,22,211,321,2212,5*0/
-       integer forced
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-
-C ----------- end CDE --------------------------------------------------
-*
-*
-          idebug=0
-          forced=0
-           if(idebug.ne.0) print *,'FORCED: particle tested',
-     +          K(I,2),K(I,1)
-c not take decaying particles (stable or forced not to decay)
-          if(K(I,1).ne.1) return
-
-c look if it is forced or really stable and choose forced
-          do ii=1,15
-          if(name_selv(I).eq.ISTAB(ii))  return
-          enddo
-          if(idebug.ne.0) print *,'FORCED: particle recognized',
-     +          K(I,2),K(I,1)
-          forced=1
-
-
-      END          ! FORCED
diff --git a/Generators/PythiaB/src/formfactors_KstMuMu.F b/Generators/PythiaB/src/formfactors_KstMuMu.F
deleted file mode 100644
index 78ebb7646b69c2347dba894f8c34bd848fc73ca8..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/formfactors_KstMuMu.F
+++ /dev/null
@@ -1,917 +0,0 @@
-c     29.10.2002    30.10.2002    31.10.2002
-c     01.11.2002    13.05.2003    21.05.2003
-c     17.06.2003    02.07.2003    01.09.2006
-                        
-c     ********************************************************
-c     ********************************************************
-c     **                                                    ** 
-c     **           THE FORM FACTORS CALCULATIONS            **
-c     **                                                    **
-c     **  for B^0_d\to K^{*0}\mu^+\mu^- decay in 3 models   **
-c     **                                                    ** 
-c     ********************************************************
-c     ******************************************************** 
-                                 
-                                      
-                                             
-c     ***************************************************************
-c     *                                                             *            
-c     *               The form factors parametrisation              *
-c     *  by D.Melikhov and B.Stech, Phys.Rev.D62, p.014006 (2000);  * 
-c     *                     see the formula (9).                    *
-c     *                                                             *
-c     ***************************************************************           
-      subroutine cqm9_KstMuMu(q2,M,i)
-      
-      dimension  sf0(7), s1(7), s2(7)
-      
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10
-      SAVE /nik5/
-      
-      real n_ffs_cqm, n_cqm9, n_cqm10 
-      
-      real q2, M
-      integer i 
-      real cqm 
-      real sf0, s1, s2 
-                      	    	    
-      sf0(1) = 0.36
-      sf0(2) = 0.32
-      sf0(3) = 0.45
-      sf0(4) = 0.44
-      sf0(5) = 0.39	    
-      sf0(6) = 0.39    
-      sf0(7) = 0.27
-      
-      s1(1) = 0.64
-      s1(2) = 1.23
-      s1(3) = 0.46
-      s1(4) = 0.45
-      s1(5) = 0.45
-      s1(6) = 0.72
-      s1(7) = 1.31
-      
-      s2(1) = 0.36
-      s2(2) = 0.38
-      s2(3) = 0.0
-      s2(4) = 0.0
-      s2(5) = 0.0
-      s2(6) = 0.62
-      s2(7) = 0.41
-                     
-      cqm=sf0(i)/(1.0-s1(i)*q2/(M**2)+s2(i)*(q2**2)/M**4) 
-      cqm=cqm/(1.0-q2/(M**2)) 
-      
-      n_cqm9=cqm
-      
-c      print *,' n_cqm9 =', n_cqm9
-                         
-      return
-      end
-      
-      
-                                       
-c     ***************************************************************
-c     *                                                             *         
-c     *              The form factors parametrisation               * 
-c     *  by D.Melikhov and B.Stech, Phys.Rev.D62, p.014006 (2000);  * 
-c     *                    see the formula (10).                    *
-c     *                                                             *
-c     *************************************************************** 
-      subroutine cqm10_KstMuMu(q2, M, i) 
-      
-      dimension sf0(7), s1(7), s2(7)
-      
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nik5/
-      
-      real n_ffs_cqm, n_cqm9, n_cqm10
-                
-      real q2, M
-      integer i
-      real cqm       
-      real sf0, s1, s2 
-               	   	   
-      sf0(1) = 0.36
-      sf0(2) = 0.32
-      sf0(3) = 0.45
-      sf0(4) = 0.44
-      sf0(5) = 0.39	    
-      sf0(6) = 0.39    
-      sf0(7) = 0.27
-      
-      s1(1) = 0.64
-      s1(2) = 1.23
-      s1(3) = 0.46
-      s1(4) = 0.45
-      s1(5) = 0.45
-      s1(6) = 0.72
-      s1(7) = 1.31
-      
-      s2(1) = 0.36
-      s2(2) = 0.38
-      s2(3) = 0.0
-      s2(4) = 0.0
-      s2(5) = 0.0
-      s2(6) = 0.62
-      s2(7) = 0.41   
-                         
-      cqm=sf0(i)/(1.0-s1(i)*q2/M**2+s2(i)*q2**2/M**4.0) 
-      
-      n_cqm10=cqm
-                      
-      return
-      end
-      
-      
-
-c     ***************************************************************
-c     *                                                             *      
-c     *              Form factors aproximation formula              * 
-c     *               in the constituent quark model                * 
-c     *              for the decay B\to K^*\ell^+\ell^-             * 
-c     *                                                             * 
-c     *  by D.Melikhov and B.Stech, Phys.Rev.D62, p.014006 (2000).  * 
-c     *                                                             * 
-c     *    q2    -- the square of transition 4-momentum;            * 
-c     *    index -- the index of form factors:                      * 
-c     *             index=1 -- A_1(q^2);                            * 
-c     *             index=2 -- A_2(q^2);                            * 
-c     *             index=3 -- A_0(q^2);                            * 
-c     *             index=4 -- V(q^2);                              * 
-c     *             index=5 -- T_1(q^2);                            * 
-c     *             index=6 -- T_2(q^2);                            * 
-c     *             index=7 -- T_3(q^2).                            * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine ffs_cqm_KstMuMu(q2,index)
-      
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10
-      SAVE /nik5/
-      
-      real n_ffs_cqm, n_cqm9, n_cqm10
-      
-      real q2
-      integer index
-      real ff
-      real M_P
-      real M_V
-       
-      ff=0.0 
-      M_P=5.37   ! GeV -- the mass of the B_s-meson   
-      M_V=5.42   ! GeV -- the mass of the B^*_s-meson  
-               
-             
-c      print *,'                '
-c      print *,' BEGIN subroutine ffs_cqm'
-c      print *,'    q2 =', q2
-c      print *,' index =', index 
-       
-      if(index.EQ.1) then
-        call cqm10_KstMuMu(q2,M_V,index)
-	ff=n_cqm10
-      endif
-      
-      if(index.EQ.2) then
-        call cqm10_KstMuMu(q2,M_V,index)
-	ff=n_cqm10
-      endif
-      
-      if(index.EQ.3) then
-        call cqm9_KstMuMu(q2,M_P,index)
-	ff=n_cqm9
-      endif
-      
-      if(index.EQ.4) then
-        call cqm9_KstMuMu(q2,M_V,index)
-	ff=n_cqm9
-      endif
-      
-      if(index.EQ.5) then
-        call cqm9_KstMuMu(q2,M_V,index)
-	ff=n_cqm9
-      endif	
-      
-      if(index.EQ.6) then
-        call cqm10_KstMuMu(q2,M_V,index)
-	ff=n_cqm10
-      endif			
-
-      if(index.EQ.7) then
-        call cqm10_KstMuMu(q2,M_V,index)
-	ff=n_cqm10
-      endif
-
-      if(index.GT.7) then
-        print *,'         '
-        print *,' subroutine ffs_cqm_KstMuMu '
-        print *, 'Fatal ERROR: index > 7!'
-	print *,' index =', index
-	print *,'         '
-	STOP
-      endif
-      
-      if(index.LT.1) then
-        print *,'         '
-        print *,' subroutine ffs_cqm_KstMuMu '
-        print *, 'Fatal ERROR: index < 1!'
-	print *,' index =', index
-	print *,'         '
-	STOP
-      endif	
-	    
-      n_ffs_cqm=ff	    
-	    	                      
-      return 
-      end     
-      
-      
-      
-c     ************************************************************       
-c     *                                                          *      
-c     *            Form factors aproximation formula             * 
-c     *                 in light-cone sum-rule                   * 
-c     *            for the decay B\to\K^*\ell^+\ell^-            * 
-c     *                                                          * 
-c     *    by P.Ball, V.M.Braun, Phys.Rev. D58, p.094016 (1998)  * 
-c     *                   or hep-ph/9805422 v2.                  * 
-c     *                                                          * 
-c     *  q2    -- the square of transition 4-momentum;           * 
-c     *  M1    -- the mass of the B -- meson;                    * 
-c     *  M2    -- the mass of the K^* -- meson;                  * 
-c     *  index -- the index of form factors:                     * 
-c     *           index=1 -- A_1(q^2);                           * 
-c     *           index=2 -- A_2(q^2);                           * 
-c     *           index=3 -- A_0(q^2);                           * 
-c     *           index=4 -- V(q^2);                             * 
-c     *           index=5 -- T_1(q^2);                           * 
-c     *           index=6 -- T_2(q^2);                           * 
-c     *           index=7 -- T_3(q^2);                           * 
-c     *                                                          *
-c     ************************************************************ 
-      subroutine ffs_lcsr_KstMuMu(q2,M1,index,ff)
-      
-      dimension sf0(7), aF(7), bF(7)
-      
-      real q2, M1
-      integer index 
-      real ff
-      real sf0, aF, bF	   
-                 
-      sf0(1) = 0.337
-      sf0(2) = 0.283
-      sf0(3) = 0.470
-      sf0(4) = 0.458
-      sf0(5) = 0.379
-      sf0(6) = 0.379
-      sf0(7) = 0.261
-      
-      aF(1) = 0.6
-      aF(2) = 1.18
-      aF(3) = 1.55
-      aF(4) = 1.55
-      aF(5) = 1.59
-      aF(6) = 0.49
-      aF(7) = 1.2
-      
-      bF(1) = -0.023
-      bF(2) = 0.281
-      bF(3) = 0.68
-      bF(4) = 0.575
-      bF(5) = 0.615
-      bF(6) = -0.241
-      bF(7) = 0.098
-      	
-      aF(index)=aF(index)*q2/M1**2 
-      bF(index)=bF(index)*q2**2.0/M1**4 
-      ff=sf0(index)/(1.0-aF(index)+bF(index)) 
-
-      return 
-      end 
-       
-      
-c     ********************************************************************
-c     *                                                                  *      
-c     *              Form factors aproximation formula                   * 
-c     *               in the constituent quark model                     * 
-c     *              for the decay B\to\K^*\ell^+\ell^-                  * 
-c     *                                                                  * 
-c     * by D.Melikhov, N.Nikitin, S.Simula, Phys.Rev. D57, p.6814 (1998) * 
-c     *                                                                  * 
-c     *    q2    -- the square of transition 4-momentum;                 * 
-c     *    M1    -- the mass of the B -- meson;                          * 
-c     *    M2    -- the mass of the K^* -- meson;                        * 
-c     *    index -- the index of form factors:                           * 
-c     *             index=1 -- g(q_2);                                   * 
-c     *             index=2 -- f(q_2);                                   * 
-c     *             index=3 -- a_+(q^2);                                 * 
-c     *             index=4 -- a_-(q^2);                                 * 
-c     *             index=5 -- g_+(q^2);                                 * 
-c     *             index=6 -- g_-(q^2);                                 * 
-c     *             index=7 -- g_0=h(q^2).                               * 
-c     *                                                                  *
-c     ******************************************************************** 
-      subroutine ffs_mns_KstMuMu (q2, i, mns)
-      
-      dimension sf0(7), s1(7), s2(7)
-      
-      real q2
-      integer i 
-      real mns 
-      real sf0, s1, s2
-                                  
-      sf0(1) = 0.063
-      sf0(2) = 2.01
-      sf0(3) = -0.0454
-      sf0(4) = 0.053
-      sf0(5) = -0.354
-      sf0(6) = 0.313
-      sf0(7) = 0.0056
-      
-      s1(1) = 0.0523
-      s1(2) = 0.0212
-      s1(3) = 0.039	    
-      s1(4) = 0.044
-      s1(5) = 0.0523
-      s1(6) = 0.053
-      s1(7) = 0.0657
-      
-      s2(1) = 0.00066
-      s2(2) = 0.00009
-      s2(3) = 0.00004
-      s2(4) = 0.00023
-      s2(5) = 0.0007
-      s2(6) = 0.00067
-      s2(7) = 0.001
-                      	     
-      mns=sf0(i)/(1.0-s1(i)*q2+s2(i)*q2**2.0) 
-                 
-      return 
-      end
-                          
-                           
-c     ***************************************************************
-c     *                                                             *         
-c     *                    Form factor g.                           * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1  CQM-MS (Phys.Rev.D62);                   * 
-c     *           model=2  LCSR (Phys.Rev.D58);                     * 
-c     *           model=3  CQM-MNS (Phys.Rev.D57);                  * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B -- meson;                           * 
-c     *  M2    -- the mass of K^* -- meson.                         * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine myg_KstMuMu(model,q2,M1,M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus   ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus       ! /nikff/
-      real n_ffs_cqm, n_cqm9, n_cqm10         ! /nik5/
-       
-      real q2, M1, M2
-      integer model
-      real gg
-                      
-      gg=0.0
-            
-c      print *,'                 '
-c      print *,' BEGIN subroutine myg '
-c      print *,' model =',model 
-c      print *,' M1 =', M1
-c      print *,' M2 =', M2
-c      print *,' q2 =', q2   
-	        
-      if(model.EQ.1) then
-         call ffs_cqm_KstMuMu(q2,4)
-	 gg=n_ffs_cqm
-         gg=gg/(M1+M2)
-      endif 
-           
-      if(model.EQ.2) then
-         call ffs_lcsr_KstMuMu(q2,M1,4,gg)
-	 gg=gg/(M1+M2)
-      endif
-             
-      if(model.EQ.3) then
-         call ffs_mns_KstMuMu(q2,1,gg)
-      endif
-       
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myg_KstMuMu' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-	 STOP
-      endif
-      
-      n_g=gg
-      
-      return
-      end
-      
-      
-              
-c     **************************************************************
-c     *                                                            *      
-c     *                    Form factor f.                          * 
-c     *              For definishion see the paper:                * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814. * 
-c     *                                                            * 
-c     *  model -- model for form factor calculations:              * 
-c     *           model=1  CQM-MS (Phys.Rev.D62);                  * 
-c     *           model=2  LCSR (Phys.Rev.D58);                    * 
-c     *           model=3  CQM-MNS (Phys.Rev.D57);                 * 
-c     *  q2    -- the square of transition 4-momentum;             * 
-c     *  M1    -- the mass of B -- meson;      	                  * 
-c     *  M2    -- the mass of K^* -- meson.                        * 
-c     *                                                            *
-c     ************************************************************** 
-      subroutine myf_KstMuMu(model, q2, M1, M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-           
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10
-      
-      real q2, M1, M2, ff
-      integer model 
-
-      ff=0.0
-      
-      if(model.EQ.1) then
-         call ffs_cqm_KstMuMu(q2,1)
-	 ff=n_ffs_cqm
-	 ff=ff*(M1+M2)
-      endif
-      
-      if(model.EQ.2) then
-         call ffs_lcsr_KstMuMu(q2,M1,1,ff)
-	 ff=ff*(M1+M2)
-      endif 
-	     
-      if(model.EQ.3) then     
-	 call ffs_mns_KstMuMu(q2,2,ff)
-      endif
-                                 
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myf_KstMuMu ' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-	 STOP
-      endif
-      
-      n_f = ff
-      
-      return
-      end 
-      
-      
-      
-c     ***************************************************************      
-c     *                                                             *      
-c     *                    Form factor a_+.                         * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1  CQM-MS (Phys.Rev.D62);                   * 
-c     *           model=2  LCSR (Phys.Rev.D58);                     * 
-c     *           model=3  CQM-MNS (Phys.Rev.D57);                  * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B -- meson;                           * 
-c     *  M2    -- the mass of K^* -- meson.                         * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine myaplus_KstMuMu(model,q2,M1,M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10
-      
-      real q2, M1, M2, aaplus
-      integer model 
-              
-      aaplus=0.0
-      
-      if(model.EQ.1) then
-         call ffs_cqm_KstMuMu(q2,2)
-	 aaplus=n_ffs_cqm
-	 aaplus=(-aaplus)/(M1+M2)
-      endif
-      
-      if(model.EQ.2) then
-         call ffs_lcsr_KstMuMu(q2,M1,2,aaplus)
-	 aaplus=(-aaplus)/(M1+M2)
-      endif 
-             
-      if(model.EQ.3) then
-         call ffs_mns_KstMuMu(q2,3,aaplus)
-      endif
-      
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myaplus_KstMuMu ' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-      
-      n_aplus=aaplus
-                    
-      return
-      end
-                  
-                
-
-c     ***************************************************************
-c     *                                                             *    
-c     *                    Form factor a_-.                         * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1  CQM-MS (Phys.Rev.D62);                   * 
-c     *           model=2  LCSR (Phys.Rev.D58);                     * 
-c     *           model=3  CQM-MNS (Phys.Rev.D57);                  * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B -- meson;                           * 
-c     *  M2    -- the mass of K^* -- meson.                         * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine myaminus_KstMuMu(model,q2,M1,M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10
-      
-      real q2, M1, M2
-      integer model
-      real aaminus, a1, a2, a3 
-	
-      aaminus=0.0
-      
-      if(model.EQ.1) then
-         call ffs_cqm_KstMuMu(q2,3)
-	 a1=n_ffs_cqm
-	 call ffs_cqm_KstMuMu(q2,1)
-	 a2=n_ffs_cqm
-	 call ffs_cqm_KstMuMu(q2,2)
-	 a3=n_ffs_cqm
-	 aaminus=2.0*M2*a1-(M1+M2)*a2
-	 aaminus=aaminus+(M1-M2)*a3
-	 aaminus=aaminus/q2
-      endif 
-                   
-      if(model.EQ.2) then
-         call ffs_lcsr_KstMuMu(q2,M1,3,a1)
-	 call ffs_lcsr_KstMuMu(q2,M1,1,a2)
-	 call ffs_lcsr_KstMuMu(q2,M1,2,a3)
-	 aaminus=2.0*M2*a1 
-         aaminus=aaminus-(M1+M2)*a2 
-	 aaminus=aaminus+(M1-M2)*a3 
-	 aaminus=aaminus/q2
-      endif
-              
-      if(model.EQ.3) then
-	 call ffs_mns_KstMuMu(q2,4,aaminus) 
-      endif	
-      
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myaminus_KstMuMu ' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-      
-      n_aminus=aaminus
-           
-      return
-      end 	   
-      
-      
-      
-c     ***************************************************************
-c     *                                                             *
-c     *                    Form factor g_+.                         * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1  CQM-MS (Phys.Rev.D62);                   * 
-c     *           model=2  LCSR (Phys.Rev.D58);                     * 
-c     *           model=3  CQM-MNS (Phys.Rev.D57);                  * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B -- meson;                           * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine mygplus_KstMuMu(model,q2,M1)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10 
-      
-      real q2, M1, ggplus 
-      integer model
-	
-      ggplus=0.0
-      
-      if(model.EQ.1) then
-         call ffs_cqm_KstMuMu(q2,5)
-	 ggplus=-n_ffs_cqm
-      endif
-                              
-      if(model.EQ.2) then
-         call ffs_lcsr_KstMuMu(q2,M1,5,ggplus)
-	 ggplus=-ggplus
-      endif 
-                           
-      if(model.EQ.3) then
-         call ffs_mns_KstMuMu(q2,5,ggplus)
-      endif
-                       
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine mygplus_KstMuMu ' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-      
-      n_gplus=ggplus
-           
-      return
-      end
-      
-      
-
-c     ***************************************************************
-c     *                                                             *      
-c     *                    Form factor g_-.                         * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1  CQM-MS (Phys.Rev.D62);                   * 
-c     *           model=2  LCSR (Phys.Rev.D58);                     * 
-c     *           model=3  CQM-MNS (Phys.Rev.D57);                  * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B -- meson;                           * 
-c     *  M2    -- the mass of K^* -- meson.                         * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine mygminus_KstMuMu(model,q2,M1,M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10 
-      
-      real q2, M1, M2, ggminus 
-      integer model
-      real gm1, gm2 
-      
-      ggminus=0.0
-      
-      if(model.EQ.1) then
-         call ffs_cqm_KstMuMu(q2,5)
-	 gm1=n_ffs_cqm
-	 call ffs_cqm_KstMuMu(q2,6)
-	 gm2=n_ffs_cqm
-	 ggminus=gm1-gm2 
-         ggminus=ggminus*(M1**2-M2**2)/q2
-      endif
-      
-      if(model.EQ.2) then
-         call ffs_lcsr_KstMuMu(q2,M1,5,gm1)
-	 call ffs_lcsr_KstMuMu(q2,M1,6,gm2)
-	 ggminus=gm1-gm2 
-         ggminus=ggminus*(M1**2-M2**2)/q2
-      endif  
-                           
-      if(model.EQ.3) then
-         call ffs_mns_KstMuMu(q2,6,ggminus)
-      endif
-                   
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine mygminus_KstMuMu' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-      
-      n_gminus=ggminus
-           
-      return
-      end
-      
-      
-      
-c     ****************************************************************
-c     *                                                              *
-c     *                   Form factor h=g_0.                         * 
-c     *              For definishion see the paper:                  * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.   * 
-c     *                                                              * 
-c     *  model -- model for form factor calculations:                * 
-c     *           model=1  CQM-MS (Phys.Rev.D62);                    * 
-c     *           model=2  LCSR (Phys.Rev.D58);                      * 
-c     *           model=3  CQM-MNS (Phys.Rev.D57);                   * 
-c     *  q2    -- the square of transition 4-momentum;               * 
-c     *  M1    -- the mass of B -- meson;                            * 
-c     *  M2    -- the mass of K^* -- meson.                          * 
-c     *                                                              *
-c     **************************************************************** 
-      subroutine myh_KstMuMu(model, q2, M1, M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10 
-      
-      real q2, M1, M2, gg0 
-      integer model
-      real gg01, gg02, gg03
-       
-      gg0=0.0
-      
-      if(model.EQ.1) then
-         call ffs_cqm_KstMuMu(q2,5)
-	 gg01=n_ffs_cqm
-	 call ffs_cqm_KstMuMu(q2,6)
-	 gg02=n_ffs_cqm
-	 call ffs_cqm_KstMuMu(q2,7)
-	 gg03=n_ffs_cqm
-	 gg0=(gg01-gg02)/q2 
-	 gg0=gg0-gg03/(M1**2-M2**2) 
-	 gg0=2.0*gg0      
-      endif
-       
-      if(model.EQ.2) then
-         call ffs_lcsr_KstMuMu(q2,M1,5,gg01)
-	 call ffs_lcsr_KstMuMu(q2,M1,6,gg02)
-	 call ffs_lcsr_KstMuMu(q2,M1,7,gg03)
-	 gg0=(gg01-gg02)/q2 
-         gg0=gg0-gg03/(M1**2-M2**2) 
-	 gg0=2.0*gg0
-      endif
-               
-      if(model.EQ.3) then      
-	 call ffs_mns_KstMuMu(q2,7,gg0) 
-      endif	
- 
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myh_KstMuMu ' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-           
-      n_g0=gg0	   
-	   
-      return
-      end   
-	
- 
-
-c     ****************************************************************
-c     *                                                              *
-c     *      Combination of the different form factors B_0.          * 
-c     *              For definishion see the paper:                  * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.   * 
-c     *                                                              * 
-c     *  model -- model for form factor calculations:                * 
-c     *           model=1  CQM;                                      * 
-c     *           model=2  LCSR;                                     * 
-c     *  q2    -- the square of transition 4-momentum;               * 
-c     *  M1    -- the mass of B_s - meson;                           * 
-c     *  M2    -- the mass of \phi - meson.                          * 
-c     *                                                              *
-c     ****************************************************************
-      subroutine myB0_KstMuMu(model, q2, M1, M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      SAVE /nikff/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      
-      real q2, M1, M2, BB0  
-      integer model   
-      real hat_s, hat_r
-      real BB01, BB02 
- 
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2
-      
-      call mygplus_KstMuMu(model,q2,M1)
-      BB01=n_gplus
-      call mygminus_KstMuMu(model,q2,M1,M2)
-      BB02=n_gminus 
-                                    
-      BB0=BB01+hat_s*BB02/(1.0-hat_r) 
-                        
-      n_B0=BB0
-                    
-      return
-      end 
-
-
-
-
-c     ****************************************************************
-c     *                                                              *
-c     *       Combination of the different form factors B_+.         * 
-c     *              For definishion see the paper:                  * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.   * 
-c     *                                                              * 
-c     *  model -- model for form factor calculations:                * 
-c     *           model=1  CQM;                                      * 
-c     *           model=2  LCSR;                                     * 
-c     *  q2    -- the square of transition 4-momentum;               * 
-c     *  M1    -- the mass of B_s - meson;                           * 
-c     *  M2    -- the mass of \phi - meson.                          * 
-c     *                                                              *
-c     **************************************************************** 
-      subroutine myBplus_KstMuMu(model, q2, M1, M2) 
-
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      SAVE /nikff/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
- 
-      real q2, M1, M2, BBplus
-      real BBplus1, BBplus2
-      integer model
-      real hat_s 
- 
-      hat_s=q2/M1**2
-      call myh_KstMuMu(model,q2,M1,M2)
-      BBplus1=n_g0
-      call mygplus_KstMuMu(model,q2,M1)
-      BBplus2=n_gplus 
-              
-      BBplus=0.5*hat_s*(M1**2)*BBplus1 
-      BBplus=BBplus+BBplus2 
-      BBplus=-BBplus 
-      
-      n_Bplus=BBplus
-      
-      return
-      end 
-   
diff --git a/Generators/PythiaB/src/formfactors_PhiMuMu.F b/Generators/PythiaB/src/formfactors_PhiMuMu.F
deleted file mode 100644
index c367cc6ea6673ec8218483ef0bf7b194499dd580..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/formfactors_PhiMuMu.F
+++ /dev/null
@@ -1,685 +0,0 @@
-c     09.03.2005   01.09.2006
-                        
-c     ********************************************************
-c     ********************************************************
-c     **                                                    ** 
-c     **           THE FORM FACTORS CALCULATIONS            **
-c     **                                                    **
-c     **   for B^0_s\to\phi\mu^+\mu^- decay in 1 model      **
-c     **                                                    ** 
-c     ********************************************************
-c     ******************************************************** 
-                                 
-                                      
-                                             
-c     ***************************************************************
-c     *                                                             *            
-c     *               The form factors parametrisation              *
-c     *  by D.Melikhov and B.Stech, Phys.Rev.D62, p.014006 (2000);  * 
-c     *                     see the formula (9).                    *
-c     *                                                             *
-c     ***************************************************************           
-      subroutine cqm9_PhiMuMu(q2,M,i)
-      
-      dimension  sf0(7), s1(7), s2(7)
-      
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10
-      SAVE /nik5/
-      
-      real n_ffs_cqm, n_cqm9, n_cqm10 
-      
-      real q2, M
-      integer i 
-      real cqm 
-      real sf0, s1, s2 
-                      	    	    
-      sf0(1) = 0.34
-      sf0(2) = 0.31
-      sf0(3) = 0.42
-      sf0(4) = 0.44
-      sf0(5) = 0.38	    
-      sf0(6) = 0.38    
-      sf0(7) = 0.26
-      
-      s1(1) = 0.73
-      s1(2) = 1.30
-      s1(3) = 0.55
-      s1(4) = 0.44
-      s1(5) = 0.62
-      s1(6) = 0.83
-      s1(7) = 1.41
-      
-      s2(1) = 0.42
-      s2(2) = 0.52
-      s2(3) = 0.12
-      s2(4) = 0.20
-      s2(5) = 0.20
-      s2(6) = 0.71
-      s2(7) = 0.57
-                     
-      cqm=sf0(i)/(1.0-s1(i)*q2/(M**2)+s2(i)*(q2**2)/M**4) 
-      cqm=cqm/(1.0-q2/(M**2)) 
-      
-      n_cqm9=cqm
-      
-c      print *,' n_cqm9 =', n_cqm9
-                         
-      return
-      end
-      
-      
-                                       
-c     ***************************************************************
-c     *                                                             *         
-c     *              The form factors parametrisation               * 
-c     *  by D.Melikhov and B.Stech, Phys.Rev.D62, p.014006 (2000);  * 
-c     *                    see the formula (10).                    *
-c     *                                                             *
-c     *************************************************************** 
-      subroutine cqm10_PhiMuMu(q2, M, i) 
-      
-      dimension sf0(7), s1(7), s2(7)
-      
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nik5/
-      
-      real n_ffs_cqm, n_cqm9, n_cqm10
-                
-      real q2, M
-      integer i
-      real cqm       
-      real sf0, s1, s2 
-               	   	   
-      sf0(1) = 0.34
-      sf0(2) = 0.31
-      sf0(3) = 0.42
-      sf0(4) = 0.44
-      sf0(5) = 0.38	    
-      sf0(6) = 0.38    
-      sf0(7) = 0.26
-      
-      s1(1) = 0.73
-      s1(2) = 1.30
-      s1(3) = 0.55
-      s1(4) = 0.44
-      s1(5) = 0.62
-      s1(6) = 0.83
-      s1(7) = 1.41
-      
-      s2(1) = 0.42
-      s2(2) = 0.52
-      s2(3) = 0.12
-      s2(4) = 0.20
-      s2(5) = 0.20
-      s2(6) = 0.71
-      s2(7) = 0.57
-                         
-      cqm=sf0(i)/(1.0-s1(i)*q2/M**2+s2(i)*q2**2/M**4.0) 
-      
-      n_cqm10=cqm
-                      
-      return
-      end
-      
-      
-
-c     ***************************************************************
-c     *                                                             *      
-c     *              Form factors aproximation formula              * 
-c     *               in the constituent quark model                * 
-c     *          for the decay B^0_s\to\phi^0\ell^+\ell^-           * 
-c     *                                                             * 
-c     *  by D.Melikhov and B.Stech, Phys.Rev.D62, p.014006 (2000).  * 
-c     *                                                             * 
-c     *    q2    -- the square of transition 4-momentum;            * 
-c     *    index -- the index of form factors:                      * 
-c     *             index=1 -- A_1(q^2);                            * 
-c     *             index=2 -- A_2(q^2);                            * 
-c     *             index=3 -- A_0(q^2);                            * 
-c     *             index=4 -- V(q^2);                              * 
-c     *             index=5 -- T_1(q^2);                            * 
-c     *             index=6 -- T_2(q^2);                            * 
-c     *             index=7 -- T_3(q^2).                            * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine ffs_cqm_PhiMuMu(q2,index)
-      
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10
-      SAVE /nik5/
-      
-      real n_ffs_cqm, n_cqm9, n_cqm10
-      
-      real q2
-      integer index
-      real ff
-      real M_P
-      real M_V
-       
-      ff=0.0 
-      M_P=5.37   ! GeV -- the mass of the B_s-meson   
-      M_V=5.42   ! GeV -- the mass of the B^*_s-meson  
-               
-             
-c      print *,'                '
-c      print *,' BEGIN subroutine ffs_cqm_PhiMuMu'
-c      print *,'    q2 =', q2
-c      print *,' index =', index 
-       
-      if(index.EQ.1) then
-        call cqm10_PhiMuMu(q2,M_V,index)
-	ff=n_cqm10
-      endif
-      
-      if(index.EQ.2) then
-        call cqm10_PhiMuMu(q2,M_V,index)
-	ff=n_cqm10
-      endif
-      
-      if(index.EQ.3) then
-        call cqm9_PhiMuMu(q2,M_P,index)
-	ff=n_cqm9
-      endif
-      
-      if(index.EQ.4) then
-        call cqm9_PhiMuMu(q2,M_V,index)
-	ff=n_cqm9
-      endif
-      
-      if(index.EQ.5) then
-        call cqm9_PhiMuMu(q2,M_V,index)
-	ff=n_cqm9
-      endif	
-      
-      if(index.EQ.6) then
-        call cqm10_PhiMuMu(q2,M_V,index)
-	ff=n_cqm10
-      endif			
-
-      if(index.EQ.7) then
-        call cqm10_PhiMuMu(q2,M_V,index)
-	ff=n_cqm10
-      endif
-
-      if(index.GT.7) then
-        print *,'         '
-        print *,' subroutine ffs_cqm_PhiMuMu '
-        print *, 'Fatal ERROR: index > 7!'
-	print *,' index =', index
-	print *,'         '
-	STOP
-      endif
-      
-      if(index.LT.1) then
-        print *,'         '
-        print *,' subroutine ffs_cqm_PhiMuMu '
-        print *, 'Fatal ERROR: index < 1!'
-	print *,' index =', index
-	print *,'         '
-	STOP
-      endif	
-	    
-      n_ffs_cqm=ff	    
-	    	                      
-      return 
-      end     
-                                
-                           
-c     ***************************************************************
-c     *                                                             *         
-c     *                    Form factor g.                           * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1-3  CQM-MS (Phys.Rev.D62);                 * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B^0_s -- meson;                       * 
-c     *  M2    -- the mass of \phi^0 -- meson.                      * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine myg_PhiMuMu(model,q2,M1,M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus   ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus       ! /nikff/
-      real n_ffs_cqm, n_cqm9, n_cqm10         ! /nik5/
-       
-      real q2, M1, M2
-      integer model
-      real gg
-                      
-      gg=0.0
-            
-      call ffs_cqm_PhiMuMu(q2,4)
-      gg=n_ffs_cqm
-      gg=gg/(M1+M2)
-	               
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myg_PhiMuMu' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-	 STOP
-      endif
-      
-      n_g=gg
-      
-c      print *,'  gg =', gg
-c      print *,' n_g =', n_g
-c      print *,' END subroutine myg '
-c      print *,'            '
-       
-      return
-      end
-      
-      
-              
-c     **************************************************************
-c     *                                                            *      
-c     *                    Form factor f.                          * 
-c     *              For definishion see the paper:                * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814. * 
-c     *                                                            * 
-c     *  model -- model for form factor calculations:              * 
-c     *           model=1-3  CQM-MS (Phys.Rev.D62);                * 
-c     *  q2    -- the square of transition 4-momentum;             * 
-c     *  M1    -- the mass of B^0_s -- meson;      	           * 
-c     *  M2    -- the mass of \phi^0 -- meson.                     * 
-c     *                                                            *
-c     ************************************************************** 
-      subroutine myf_PhiMuMu(model, q2, M1, M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-           
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10
-      
-      real q2, M1, M2, ff
-      integer model 
-
-      ff=0.0
-      
-      call ffs_cqm_PhiMuMu(q2,1)
-      ff=n_ffs_cqm
-      ff=ff*(M1+M2)
-                                 
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myf_PhiMuMu' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-	 STOP
-      endif
-      
-      n_f = ff
-      
-      return
-      end 
-      
-      
-      
-c     ***************************************************************      
-c     *                                                             *      
-c     *                    Form factor a_+.                         * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1-3  CQM-MS (Phys.Rev.D62);                 * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B^0_s -- meson;                       * 
-c     *  M2    -- the mass of \phi^0 -- meson.                      * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine myaplus_PhiMuMu(model,q2,M1,M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10
-      
-      real q2, M1, M2, aaplus
-      integer model 
-              
-      aaplus=0.0
-      
-      call ffs_cqm_PhiMuMu(q2,2)
-      aaplus=n_ffs_cqm
-      aaplus=(-aaplus)/(M1+M2)
-      
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myaplus_PhiMuMu ' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-      
-      n_aplus=aaplus
-                    
-      return
-      end
-                  
-                
-
-c     ***************************************************************
-c     *                                                             *    
-c     *                    Form factor a_-.                         * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1-3  CQM-MS (Phys.Rev.D62);                 * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B^0_s -- meson;                       * 
-c     *  M2    -- the mass of \phi^0 -- meson.                      * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine myaminus_PhiMuMu(model,q2,M1,M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10
-      
-      real q2, M1, M2
-      integer model
-      real aaminus, a1, a2, a3 
-	
-      aaminus=0.0
-      
-      call ffs_cqm_PhiMuMu(q2,3)
-      a1=n_ffs_cqm
-      call ffs_cqm_PhiMuMu(q2,1)
-      a2=n_ffs_cqm
-      call ffs_cqm_PhiMuMu(q2,2)
-      a3=n_ffs_cqm
-      aaminus=2.0*M2*a1-(M1+M2)*a2
-      aaminus=aaminus+(M1-M2)*a3
-      aaminus=aaminus/q2
-                         
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myaminus_PhiMuMu ' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-      
-      n_aminus=aaminus
-           
-      return
-      end 	   
-      
-      
-      
-c     ***************************************************************
-c     *                                                             *
-c     *                    Form factor g_+.                         * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1-3  CQM-MS (Phys.Rev.D62);                 * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B^0_s -- meson;                       * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine mygplus_PhiMuMu(model,q2,M1)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10 
-      
-      real q2, M1, ggplus 
-      integer model
-	
-      ggplus=0.0
-      
-      call ffs_cqm_PhiMuMu(q2,5)
-      ggplus=-n_ffs_cqm
-                                                     
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine mygplus_PhiMuMu ' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-      
-      n_gplus=ggplus
-           
-      return
-      end
-      
-      
-
-c     ***************************************************************
-c     *                                                             *      
-c     *                    Form factor g_-.                         * 
-c     *              For definishion see the paper:                 * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.  * 
-c     *                                                             * 
-c     *  model -- model for form factor calculations:               * 
-c     *           model=1-3  CQM-MS (Phys.Rev.D62);                 * 
-c     *  q2    -- the square of transition 4-momentum;              * 
-c     *  M1    -- the mass of B^0_s -- meson;                       * 
-c     *  M2    -- the mass of \phi^0 -- meson.                      * 
-c     *                                                             *
-c     *************************************************************** 
-      subroutine mygminus_PhiMuMu(model,q2,M1,M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10 
-      
-      real q2, M1, M2, ggminus 
-      integer model
-      real gm1, gm2 
-      
-      ggminus=0.0
-      
-      call ffs_cqm_PhiMuMu(q2,5)
-      gm1=n_ffs_cqm
-      call ffs_cqm_PhiMuMu(q2,6)
-      gm2=n_ffs_cqm
-      ggminus=gm1-gm2 
-      ggminus=ggminus*(M1**2-M2**2)/q2
-                         
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine mygminus_PhiMuMu' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-      
-      n_gminus=ggminus
-           
-      return
-      end
-      
-      
-      
-c     ****************************************************************
-c     *                                                              *
-c     *                   Form factor h=g_0.                         * 
-c     *              For definishion see the paper:                  * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.   * 
-c     *                                                              * 
-c     *  model -- model for form factor calculations:                * 
-c     *           model=1-3  CQM-MS (Phys.Rev.D62);                  * 
-c     *  q2    -- the square of transition 4-momentum;               * 
-c     *  M1    -- the mass of B_s -- meson;                          * 
-c     *  M2    -- the mass of \phi^0 -- meson.                       * 
-c     *                                                              *
-c     **************************************************************** 
-      subroutine myh_PhiMuMu(model, q2, M1, M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-     
-      COMMON /nik5/ n_ffs_cqm, n_cqm9, n_cqm10 
-      SAVE /nikff/,/nik5/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      real n_ffs_cqm, n_cqm9, n_cqm10 
-      
-      real q2, M1, M2, gg0 
-      integer model
-      real gg01, gg02, gg03
-       
-      gg0=0.0
-      
-      call ffs_cqm_PhiMuMu(q2,5)
-      gg01=n_ffs_cqm
-      call ffs_cqm_PhiMuMu(q2,6)
-      gg02=n_ffs_cqm
-      call ffs_cqm_PhiMuMu(q2,7)
-      gg03=n_ffs_cqm
-      gg0=(gg01-gg02)/q2 
-      gg0=gg0-gg03/(M1**2-M2**2) 
-      gg0=2.0*gg0      
-        
-      if(model.NE.1.AND.model.NE.2.AND.model.NE.3) then
-         print *,'            '
-         print *,' subroutine myh_PhiMuMu' 
-         print *,' Fatal ERROR: model not all the same 1,2 or 3!'
-         print *,' model =', model
-         print *,'            '
-         STOP
-      endif 
-           
-      n_g0=gg0	   
-	   
-      return
-      end   
-	
- 
-
-c     ****************************************************************
-c     *                                                              *
-c     *      Combination of the different form factors B_0.          * 
-c     *              For definishion see the paper:                  * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.   * 
-c     *                                                              * 
-c     *  model -- model for form factor calculations:                * 
-c     *           model=1-3  CQM-MS (Phys.Rev.D62);                  * 
-c     *  q2    -- the square of transition 4-momentum;               * 
-c     *  M1    -- the mass of B_s - meson;                           * 
-c     *  M2    -- the mass of \phi^0 - meson.                        * 
-c     *                                                              *
-c     ****************************************************************
-      subroutine myB0_PhiMuMu(model, q2, M1, M2)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      SAVE /nikff/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
-      
-      real q2, M1, M2, BB0  
-      integer model   
-      real hat_s, hat_r
-      real BB01, BB02 
- 
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2
-      
-      call mygplus_PhiMuMu(model,q2,M1)
-      BB01=n_gplus
-      call mygminus_PhiMuMu(model,q2,M1,M2)
-      BB02=n_gminus 
-                                    
-      BB0=BB01+hat_s*BB02/(1.0-hat_r) 
-                        
-      n_B0=BB0
-                    
-      return
-      end 
-
-
-
-
-c     ****************************************************************
-c     *                                                              *
-c     *       Combination of the different form factors B_+.         * 
-c     *              For definishion see the paper:                  * 
-c     *  D.Melikhov, N.Nikitin and S.Simula, Phys.Rev.D57, p.6814.   * 
-c     *                                                              * 
-c     *  model -- model for form factor calculations:                * 
-c     *           model=1-3 CQM-MS (Phys.Rev.D62);                   * 
-c     *  q2    -- the square of transition 4-momentum;               * 
-c     *  M1    -- the mass of B_s - meson;                           * 
-c     *  M2    -- the mass of \phi^0 - meson.                        * 
-c     *                                                              *
-c     **************************************************************** 
-      subroutine myBplus_PhiMuMu(model, q2, M1, M2) 
-
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      SAVE /nikff/
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus
-      real n_gminus, n_g0,n_B0, n_Bplus
- 
-      real q2, M1, M2, BBplus
-      real BBplus1, BBplus2
-      integer model
-      real hat_s 
- 
-      hat_s=q2/M1**2
-      call myh_PhiMuMu(model,q2,M1,M2)
-      BBplus1=n_g0
-      call mygplus_PhiMuMu(model,q2,M1)
-      BBplus2=n_gplus 
-              
-      BBplus=0.5*hat_s*(M1**2)*BBplus1 
-      BBplus=BBplus+BBplus2 
-      BBplus=-BBplus 
-      
-      n_Bplus=BBplus
-      
-      return
-      end 
-   
diff --git a/Generators/PythiaB/src/formfactors_b2gmm.F b/Generators/PythiaB/src/formfactors_b2gmm.F
deleted file mode 100644
index b18fe8b21707982c5a963be8c56c67224a71fd2c..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/formfactors_b2gmm.F
+++ /dev/null
@@ -1,488 +0,0 @@
-c     02.07.2003   08.07.2003   09.12.2003
-c     17.02.2004   19.02.2004   28.03.2004
-c     29.03.2004   30.03.2004   06.05.2004
-c     17.05.2004   07.06.2004   08.06.2004 
-c     03.08.2004   13.08.2004 
-                
-            
-c     *********************************************************************
-c     *********************************************************************
-c     **                                                                 ** 
-c     **  THE FORM FACTORS FOR B^0_{d,s}\to\gamma\mu^+\mu^- CALCULATIONS **
-c     **                                                                 **
-c     **                                                                 **
-c     **                      Version 1.06                               **
-c     **                                                                 ** 
-c     *********************************************************************
-c     *********************************************************************
-                                        
-                  
-                            
-c     ***************************************************************
-c     *                                                             *
-c     *  From q^2 to E_{\gamma} in B-meson rest frame recalculation *
-c     *                                                             *
-c     *   by F.Kruger and D.Melikhov, Phys.rev.D67, 034002 (2003);  *
-c     *                   see the formula (14)                      * 
-c     *                                                             *
-c     ***************************************************************
-      subroutine q2toEg(q2)
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real q2, Eg, M1
-      
-      M1=n_M1
-      
-      Eg=M1*(1.0-q2/(M1**2))/2.0
-      
-      n_Eg=Eg
-          
-      return
-      end
-                                      
-                                             
-c     ***************************************************************
-c     *                                                             *            
-c     *               The form factors parametrisation              *
-c     *   by F.Kruger and D.Melikhov, Phys.rev.D67, 034002 (2003);  * 
-c     *               see the aproximation formula (28).            *
-c     *                                                             *
-c     *                                                             *
-c     *    q2    - the square of transition 4-momentum;             *
-c     *    index - the index of form factors:                       *
-c     *            index=0 - f_B;                                   *
-c     *            index=1 - F_V;                                   *
-c     *            index=2 - F_{TV};                                *
-c     *            index=3 - F_A;                                   *
-c     *            index=4 - F_{TA}.                                *
-c     *                                                             *
-c     *************************************************************** 
-      subroutine ffs_cqm_km_gmm(q2,index)
-      
-      dimension kmbeta(4), kmdelta(4)
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/    
-      real q2, Eg, cqm_km
-      real fB, MB
-      real kmbeta, kmdelta
-      integer index
-      
-      kmbeta(1)=0.28
-      kmbeta(2)=0.30
-      kmbeta(3)=0.26
-      kmbeta(4)=0.33
-      
-      kmdelta(1)=0.04
-      kmdelta(2)=0.04
-      kmdelta(3)=0.30
-      kmdelta(4)=0.30
-      
-      fB=0.2     ! GeV
-      MB=5.28    ! GeV
-      
-      call q2toEg(q2)
-      Eg=n_Eg
-      
-      if(index.EQ.0) then
-        n_ffs_cqm=fB        ! f_B > 0 !!!!
-      else      
-        cqm_km=kmbeta(index)*fB*MB/(kmdelta(index)+Eg)
-        n_ffs_cqm=cqm_km
-      endif
-      
-      return
-      end
-                         
-                                    
-c     ***************************************************************
-c     *                                                             *
-c     *      frho - the constant of the decay \rho^0\to e^+e^-      *
-c     *                                                             *
-c     ***************************************************************
-      subroutine subfrho()
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/
-      real alpha_em, pi, Mrho, Gam 
-      
-      alpha_em=1.0/137.0
-      pi=3.1415
-      Mrho=770000.0  ! KeV - the mass of the \rho^0-meson
-      Gam=6.77       ! KeV the width of the decay \rho\to e^+e^-
-      
-      n_ffs_cqm=sqrt(4.0*pi*Mrho*(alpha_em**2)/(3.0*Gam))
-            
-c      print *,' f_{rho} =', n_ffs_cqm
-          
-      return
-      end
-      
-c     ***************************************************************
-c     *                                                             *
-c     *      fomg - the constant of the decay \omega\to e^+e^-      *
-c     *                                                             *
-c     ***************************************************************
-      subroutine subfomg()
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/
-      real alpha_em, pi, Momg, Gam 
-      
-      alpha_em=1.0/137.0
-      pi=3.1415
-      Momg=782000.0  ! KeV - the mass of the \omega-meson
-      Gam=0.60       ! KeV the width of the decay \rho\to e^+e^-
-      
-      n_ffs_cqm=alpha_em*sqrt(4.0*pi*Momg/(3.0*Gam))
-            
-c      print *,' f_{rho} =', n_ffs_cqm
-          
-      return
-      end      
-      
-      
-c     ***************************************************************
-c     *                                                             *
-c     *       fphi - the constant of the decay \phi\to e^+e^-       *
-c     *                                                             *
-c     ***************************************************************
-      subroutine subfphi()
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/
-      real alpha_em, pi, Mphi, Gam 
-      
-      alpha_em=1.0/137.0
-      pi=3.1415
-      Mphi=1019.4           ! MeV - the mass of the \phi-meson
-      Gam=4.46*2.9/10000.0  ! MeV the width of the decay \phi\to e^+e^-
-      
-      n_ffs_cqm=alpha_em*sqrt(4.0*pi*Mphi/(3.0*Gam))
-      
-c      print *,' f_{phi} =', n_ffs_cqm
-          
-      return
-      end
-
-
-
-c     ***************************************************************
-c     *                                                             *
-c     *            The REAL part of F_{TV} form-factor              *
-c     *                                                             *
-c     ***************************************************************                  
-      subroutine SubReTildeFtv(q2,qm2)
-      
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nikffreim/ n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7      
-      SAVE /nik1/,/nik2/,/nikff2/,/nikffreim/,/nikwc/
-      
-      integer n_model, n_res_swch, n_ias, n_Nf                      ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml                             ! /nik2/
-      real n_Eg, n_ffs_cqm                                          ! /nikff2/
-      real n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta   ! /nikffreim/
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7           ! /nikwc/ 
-      
-      integer ias, Nf
-      real mt, Mw, mu, M1
-      real q2, qm2
-      real c1, c2, a2, c7, RR, RRes
-      real Ftv, Ftv0, Mres, fres, Gres, Wres, fB, gplus, Qu, WA
-      
-c      print *, ' In  subroutine SubReTildeFtv(q2,qm2) '
-      
-      M1=n_M1     ! GeV the mass of the B-meson (B^0_d or B^0_s)
-      mu=qm2      ! Gev the mass of the b-quark
-      Mw=n_Mw
-      mt=n_mt
-      Nf=n_Nf
-      ias=n_ias
-      
-      RR=0.0
-      RRes=0.0
-                  
-      if(M1.EQ.5.28) then 
-c        print *,'B^0_d - meson decay '
-        call ffs_cqm_km_gmm(q2,0)
-        fB=-n_ffs_cqm   ! t.k. v formulah predpolagaetsia, chto fB < 0 !!!
-c       print *, ' fB =', fB
-            
-        gplus=-0.27    ! g_+ = -T1, sm. PRD62, 014006, 2000, p.014006-8
-c       print *, ' gplus =', gplus
-
-        Qu=2./3.    ! zarad u-quarka
-            
-c........\rho^0	
-        Mres=0.77           ! Gev the mass of rho^0-meson
-        Gres=0.151          ! GeV Polnaya shirina raspada \rho^0-mesona
-	Wres=(-1.0)/sqrt(2.0) ! izotopicheskiy ves d\bar d v \rho^0-mezone
-	call subfrho()
-        fres=n_ffs_cqm 
-        RR=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)
-	RRes=gplus*Wres*q2*(q2-Mres**2)*RR/fres
-c	print *, ' fres =', fres, '   RRes =', RRes
-
-c........\omega	
-	Mres=0.782         ! Gev the mass of \omega-meson
-        Gres=0.00844       ! GeV Polnaya shirina raspada \omega-mesona
-	Wres=1.0/sqrt(2.0) ! izotopicheskiy ves d\bar d v \omega-mezone
-	call subfomg()
-        fres=n_ffs_cqm
-        RR=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)
-	RRes=RRes+gplus*Wres*q2*(q2-Mres**2)*RR/fres
-c	print *, ' fres =', fres, '   RRes =', RRes		
-      endif
-      
-      if(M1.EQ.5.37) then 
-c        print *,'B^0_s - meson decay '
-        call ffs_cqm_km_gmm(q2,0)
-        fB=-n_ffs_cqm   ! t.k. v formulah predpolagaetsia, chto fB < 0 !!!
-c       print *, ' fB =', fB
-      
-        gplus=-0.38   ! g_+ = -T1, sm. PRD62, 014006, 2000, p.014006-11
-c       print *, ' gplus =', gplus
-
-        Qu=0.0    ! zarad u-quarka, t.e. vklad otsutstvuet!!!
-	
-        Mres=1.020   ! Gev the mass of \phi-meson
-        Gres=0.0045  ! GeV Polnaya shirina raspada \phi-mesona
-	Wres=-1.0    ! izotopicheskiy ves s\bar s v \phi-mezone
-	call subfphi()
-        fres=n_ffs_cqm
-	RR=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)
-	RRes=gplus*Wres*q2*(q2-Mres**2)*RR/fres	
-      endif      
-
-c......F_{TV}(q^2)      
-      call ffs_cqm_km_gmm(q2,2)
-      Ftv=n_ffs_cqm
-c......F_{TV}(0)      
-      call ffs_cqm_km_gmm(0.0,2)
-      Ftv0=n_ffs_cqm
-      
-      call myC1(mu,Mw,Nf,ias)
-      c1=n_c1
-      call myC2(mu,Mw,Nf,ias)
-      c2=n_c2
-      a2=c1+c2/3.0  ! t.k. v programme scheta koefficientov opr.: c1=-0,24, c2=1,1       
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7
-c      print *, ' c1 =', c1, '   c2 =', c2, '   a2 =', a2, '   c7 =', c7
-      
-c      weak annihilation
-      WA=4.0*3.0*a2*(Qu**2)*fB/(c7*qm2)
-                             
-c      prinato, chto dlia B^0_d\to\ro^0: V_{ub}V^*_{ud}/V_{tb}V^*_{td}=1
-c      print *,'     '	          
-      n_ReTildeFtv=Ftv+Ftv0+WA-2.0*RRes   
-c      print *, '  n_ReTildeFtv =', n_ReTildeFtv
-c      print *,'     '
-      
-      return
-      end
-
-      
-c     ***************************************************************
-c     *                                                             *
-c     *         The IMAGINARY part of F_{TV} form-factor            *
-c     *                                                             *
-c     ***************************************************************             
-      subroutine SubImTildeFtv(q2,qm2)
-      
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nikffreim/ n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta
-      SAVE /nik2/,/nikff2/,/nikffreim/ 
-      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml                             ! /nik2/
-      real n_Eg, n_ffs_cqm                                          ! /nikff2/
-      real n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta   ! /nikffreim/
-
-      
-      real q2, qm2
-      real II
-      real Mres, fres, Wres, gplus, Gres, M1
-      
-c      print *,' subroutine SubImTildeFtv(q2,qm2) '
-      
-      M1=n_M1
-      
-      if(M1.EQ.5.28) then 
-c        print *,'B^0_d - meson decay '
-      
-        call ffs_cqm_km_gmm(q2,0)
-        fB=-n_ffs_cqm   ! t.k. v formulah predpolagaetsia, chto fB < 0 !!!
-c       print *, ' fB =', fB
-      
-        gplus=-0.27    ! g_+ = -T1, sm. PRD62, 014006, 2000, p.014006-8
-c       print *, ' gplus =', gplus
-
-c........\rho^0
-        Mres=0.77           ! Gev the mass of rho^0-meson
-        Gres=0.151          ! GeV Polnaya shirina raspada \rho^0-mesona
-	Wres=(-1.0)/sqrt(2.0) ! izotopicheskiy ves d\bar d v \rho^0-mezone
-	call subfrho()
-        fres=n_ffs_cqm
-c       print *, ' fres =', fres  
-        II=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)
-        n_ImTildeFtv=2.0*gplus*Wres*q2*Mres*Gres*II/fres
-
-c........\omega
-	Mres=0.782         ! Gev the mass of \omega-meson
-        Gres=0.00844       ! GeV Polnaya shirina raspada \omega-mesona
-	Wres=1.0/sqrt(2.0) ! izotopicheskiy ves d\bar d v \omega-mezone
-	call subfomg()
-        fres=n_ffs_cqm
-c       print *, ' fres =', fres  
-        II=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)
-        n_ImTildeFtv=n_ImTildeFtv+2.0*gplus*Wres*q2*Mres*Gres*II/fres
-      endif
-      
-      if(M1.EQ.5.37) then 
-c        print *,'B^0_s - meson decay '
-        Mres=1.020   ! Gev the mass of phi-meson
-        Gres=0.0045  ! GeV Polnaya shirina raspada \rho^0-mesona
-	Wres=-1.0    ! izotopicheskiy ves s\bar s v \phi-mezone
-      
-        call ffs_cqm_km_gmm(q2,0)
-        fB=-n_ffs_cqm   ! t.k. v formulah predpolagaetsia, chto fB < 0 !!!
-c       print *, ' fB =', fB
-      
-        call subfphi()
-        fres=n_ffs_cqm
-c       print *, ' fres =', fres  
-      
-        gplus=-0.38  ! g_+ = -T1, sm. PRD62, 014006, 2000, p.014006-11
-c       print *, ' gplus =', gplus
-      
-        II=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)         
-        n_ImTildeFtv=2.0*gplus*Wres*q2*Mres*Gres*II/fres
-      endif          
-            
-c      print *, q2, II, Mres, Gres, gplus, fres
-      
-c      print *,' SubImTildeFtv(q2,qm2) =', n_ImTildeFtv
-      
-      return
-      end      
-      
-
-c     ***************************************************************
-c     *                                                             *
-c     *            The REAL part of F_{TA} form-factor              *
-c     *                                                             *
-c     ***************************************************************  
-      subroutine SubReTildeFta(q2,qm2)
-      
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml             
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nikffreim/ n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta      
-      SAVE /nik2/,/nikff2/,/nikffreim/ 
-      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml                             ! /nik2/      
-      real n_Eg, n_ffs_cqm                                          ! /nikff2/
-      real n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta   ! /nikffreim/
-
-      
-      real q2, qm2
-      real Fta, Fta0, RR, RRes
-      real Mres, fres, Wres, gplus, Gres, M1
-      
-      M1=n_M1     ! GeV the mass of the B-meson (B^0_d or B^0_s)
-
-      if(M1.EQ.5.28) then 
-c        print *,'B^0_d - meson decay '
-        call ffs_cqm_km_gmm(q2,0)
-        fB=-n_ffs_cqm   ! t.k. v formulah predpolagaetsia, chto fB < 0 !!!
-c       print *, ' fB =', fB
-            
-        gplus=-0.27    ! g_+ = -T1, sm. PRD62, 014006, 2000, p.014006-8
-c       print *, ' gplus =', gplus
-	
-        Mres=0.77           ! Gev the mass of rho^0-meson
-        Gres=0.151          ! GeV Polnaya shirina raspada \rho^0-mesona
-	Wres=(-1.0)/sqrt(2.0) ! izotopicheskiy ves d\bar d v \rho^0-mezone
-	call subfrho()
-        fres=n_ffs_cqm
-c       print *, ' fres =', fres  
-        RR=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)
-	RRes=gplus*Wres*q2*(q2-Mres**2)*RR/fres
-	
-	Mres=0.782         ! Gev the mass of \omega-meson
-        Gres=0.00844       ! GeV Polnaya shirina raspada \omega-mesona
-	Wres=1.0/sqrt(2.0) ! izotopicheskiy ves d\bar d v \omega-mezone
-	call subfomg()
-        fres=n_ffs_cqm
-c       print *, ' fres =', fres  
-        RR=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)
-	RRes=RRes+gplus*Wres*q2*(q2-Mres**2)*RR/fres		
-      endif
-      
-      if(M1.EQ.5.37) then 
-c        print *,'B^0_s - meson decay '
-        call ffs_cqm_km_gmm(q2,0)
-        fB=-n_ffs_cqm   ! t.k. v formulah predpolagaetsia, chto fB < 0 !!!
-c       print *, ' fB =', fB
-      
-        call subfphi()
-        fres=n_ffs_cqm
-c       print *, ' fres =', fres  
-      
-        gplus=-0.38   ! g_+ = -T1, sm. PRD62, 014006, 2000, p.014006-11
-c       print *, ' gplus =', gplus
-	
-        Mres=1.020   ! Gev the mass of \phi-meson
-        Gres=0.0045  ! GeV Polnaya shirina raspada \phi-mesona
-	Wres=-1.0    ! izotopicheskiy ves s\bar s v \phi-mezone
-	RR=1.0/((q2-Mres**2)**2+(Mres*Gres)**2)
-	RRes=gplus*Wres*q2*(q2-Mres**2)*RR/fres	
-      endif 
-      
-c......F_{TA}(q^2)                 
-      call ffs_cqm_km_gmm(q2,4)
-      Fta=n_ffs_cqm
-c......F_{TA}(0)                 
-      call ffs_cqm_km_gmm(0.0,4)
-      Fta0=n_ffs_cqm         
-             
-      n_ReTildeFta=Fta+Fta0-2.0*RRes
-      
-c      print *, ' n_ReTildeFta =', n_ReTildeFta
-      
-      return
-      end      
-      
-
-c     ***************************************************************
-c     *                                                             *
-c     *         The IMAGINARY part of F_{TA} form-factor            *
-c     *                                                             *
-c     ***************************************************************     
-      subroutine SubImTildeFta(q2,qm2)
-            
-      COMMON /nikffreim/ n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta
-      SAVE /nikffreim/ 
-      
-      real n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta   ! /nikffreim/      
-      real q2, qm2
-      
-      call SubImTildeFtv(q2,qm2)
-    
-      n_ImTildeFta=n_ImTildeFtv
-      
-c      print *, '  n_ImTildeFta =', n_ImTildeFta
-      
-      return
-      end           
diff --git a/Generators/PythiaB/src/matrix_and_kinematics_KstMuMu.F b/Generators/PythiaB/src/matrix_and_kinematics_KstMuMu.F
deleted file mode 100644
index e033dd9755627394fa2261896ac793c35887ff76..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/matrix_and_kinematics_KstMuMu.F
+++ /dev/null
@@ -1,791 +0,0 @@
-c     *************************************************************************
-c     *************************************************************************
-c     **                                                                     **
-c     **          The Monte-Karlo PYTHIA generator for the decay             **
-c     **                                                                     **
-c     **              B^0\to (K^{*0}\to K^+\pi^-)\mu^+\mu^-                  **
-c     **                                                                     **
-c     **                for Athena 12.0.4 PythiaBModule                      **
-c     **                                                                     **
-c     **        V JobOptions - file trebuetsia nastroyka:                    **
-c     ** c...... 887 channel replaced to the decay B^0_d\to K^{0*}\mu^+\mu^- **
-c     **      mdme(887,1) = 1                                                **
-c     **      kfdp(887,1) = 13   ! \mu^-                                     **
-c     **      kfdp(887,2) = -13  ! \mu^+                                     **
-c     **      kfdp(887,3) = 313  ! K^{0*}                                    **
-c     **      kfdp(887,4) = 0                                                **
-c     **      kfdp(887,5) = 0                                                **
-c     **      brat(887)   = DBLE(1.0)                                        **
-c     **                                                                     **
-c     **              The last modification:   10.10.2006                    **
-c     **                                                                     **
-c     **         Authors: Nickolai Nikitine, nnikit@mail.cern.ch             **
-c     **                                                                     **
-c     *************************************************************************
-c     *************************************************************************
-c                                                                                
-c       *******************************************************************  
-c       *                                                                 *  
-c       *         subroutine MATRIX_and_KINEMATICS_KstMuMu                * 
-c       *                      Version 1.05f                              * 
-c       *                                                                 *  
-c       *    For the calculation the decay kinematic according to the     *  
-c       *        decay matrix element M2fortran(...) in FORTRAN           *
-c       *              file matrix_for_fortran_v103.F                     *  
-c       *                                                                 *  
-c       *                                                                 *  
-c       *         The parameters of the MATRIX_and_KINEMATICS:            *  
-c       *                                                                 *  
-c       *     jkf - line number of B-meson in the common block PYJETS.    *
-c       *                                                                 *
-c       *******************************************************************
-                   
-      subroutine MATRIX_and_KINEMATICS_KstMuMu (jkf)
-            
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-        
-c......Standard COMMON blocs
-                              
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-       COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-       COMMON/PYINT1/MINT(400),VINT(400)
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                                                                           
-                                                               
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c           SAVE IFIRST,IIPRNT
-c      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.         
-                
-c......My COMMON blocs
-         
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2
-      SAVE /nik1/,/nik2/,/nik4/
-           
-c......Begine of the variables declaration
-               
-c......double precision velocity ov B-meson in LS
-       double precision vxb, vyb, vzb       	    
-       	    
-c......The value of the returned matrix elemet for
-c     .the m2fortran_KstMuMu(...) function
-      real Matrix_element
-          
-c......The COMMON blocs parameters
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      integer model, res_swch, ias, Nf
-      real M1, M2, mt, Mw, ml
-      real  n_beta1, n_beta2, n_dV, n_Matrix2  ! /nik4/         
-                           
-c......Decay weight and random mass for VIRTUAL K^* meson (in GeV)
-      real MM2, sm2min, sm2max, bwmm2
-               
-c......The Mandelstam variables
-      real s, t  
-      
-c......The Mandelstam variables/M_1^2
-      real hat_s, hat_t
-      
-c......The boundary of the mandelstam variables
-      real s_min, s_max 
-         
-c......Kinematics weight of the accepted event
-       double precision weight
-         
-c......The kinematical variables
-c     .
-c     .PB - B-meson
-c     .P1 - \ell^+
-c     .P2 - \ell^-
-c     .P3 - K^*
-c     .
-c...... (E, p_x, p_y, p_z)
-      double precision PB(4), P1(4), P2(4), P3(4)
-      
-c......The angle between K^* and \ell^- directions in RF of B-meson:
-c     .\cos\theta_{23}
-      double precision cos23
-      
-c......The absolute values for 3-momentum of K^* and \ell^{pm}
-      double precision modP1, modP2, modP3  
-         
-c......Tthe rotation angles
-      real phi2, theta1, phi1
-          
-c......The rotation matrix
-      double precision M(4,4)
-        
-c......The randomase variable
-      real rend
-         
-c......Numbers of the lines for K^*, \mu^+ and \mu^-
-      integer kline, mpline, mmline
-      
-c......For vertex sconservetion after "call pyrobo(...)"      	 
-      double precision vk(5), vmp(5), vmm(5)    
-      
-c......The counters for the accept/reject
-c     .of the matrix element    
-      integer me_tot, me_accept
-        
-c......End of the variable declarations
-c     .and start of the simulation program
-      
-      go to 100
-                     
-c......The errors information and program terminate
-110   print *,'Fatal ERROR: Matrix_element < 0 or
-     #  Matrix_element > 1 '
-      print *,'Matrix_element =', Matrix_element
-      print *,'hat_t_min =', t_min/M1**2,
-     #'   hat_t =', hat_t,
-     #'   hat_t_max =', t_max/M1**2,
-     #'   hat_s =', hat_s,
-     #'   hat_s_min =', s_min/M1**2,
-     #'   hat_s_max =', s_max/M1**2,
-     #'           G =', weight,
-     #'   M1 =', M1,'   M2 =', M2,
-     #'   MM2 =', MM2, '   ml =', ml
-      print *, 'By!'
-      STOP
-120   print *,'Fatal ERROR: s_min > s_max'
-      print *,'s_min =', s_min, '   s_max =', s_max
-      print *,'   M1 =', M1, '   M2 =', M2,
-     #'   MM2 =', MM2,'   ml =', ml
-      print *, 'By!'
-      STOP
-130   print *,'Fatal ERROR: t_min > t_max'
-      print *,'t_min =', t_min, '   t_max =', t_max
-      print *,'   M1 =', M1, '   M2 =', M2, 
-     #'   MM2 =', MM2,'   ml =', ml
-      print *, 'By!'
-      STOP
-150   print *,'Fatal ERROR: modPi^2 < 0'  
-      print *,'modP1 =', modP1, '   modP2 =', modP2,
-     #'   modP3 =', modP3
-      print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2,'   MM2 =', MM2, '   ml =', ml
-      print *, 'By!'
-      STOP
-160   print *,'Fatal ERROR: abs(cos23) > 1'
-      print *,'cos23 =', cos23
-      print *,'modP1 =', modP1, '   modP2 =', modP2,
-     #'   modP3 =', modP3
-      print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2,'   MM2 =', MM2, '   ml =', ml
-      print *, 'By!'
-      STOP
-180   print *,'Fatal ERROR: modP2**2-P2(2)**2) < 0'
-       print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2,'   MM2 =', MM2, '   ml =', ml
-      print *, 'By!'
-      STOP     
-500   print *,'  '
-      print *,'********************************************'
-      print *,'**                                        **'
-      print *,'**         NO B-MESON DECAY !!!           **'
-      print *,'**                                        **'
-      print *,'********************************************'
-      print *,'   '
-      print *,'jkf =', jkf
-      print *,'KF = k(jkf,2) =',k(jkf,2)
-      print *,'k(jkf,3) =',k(jkf,3)
-      print *,'k(jkf,4) =',k(jkf,4)
-      print *,'k(jkf,5) =',k(jkf,5)
-      print *,'   ' 
-      print *,'PxB=p(jkf,1) =',p(jkf,1)
-      print *,'PyB=p(jkf,2) =',p(jkf,2)
-      print *,'PzB=p(jkf,3) =',p(jkf,3)
-      print *,' EB=p(jkf,4) =',p(jkf,4)
-      print *,' MB=p(jkf,5) =',p(jkf,5)
-      print *,'   '
-      go to 600
-      
-c......Start of the generation procedure
-100   continue
-c      print *,'      '
-c      print *,' In MATRIX_and_KINEMATICS_KstMuMu '
-c      print *,'      '      
-      
-      model=n_model 
-      res_swch=n_res_swch
-      ias=n_ias
-      Nf=n_Nf
-      M1=n_M1 
-      M2=n_M2
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-            
-      me_tot=0
-      me_accept=0
-      
-10    continue
-c      print *,' 10    continue '
-      
-c      print *,' Nf =', Nf
-c      print *,' M1 =', M1
-c      print *,' M2 =', M2
-c      print *,' mt =', mt
-c      print *,' Mw =', Mw
-c      print *,' ml =', ml
-      
-      
-c      print *,' n_Nf =', n_Nf
-c      print *,' n_M1 =', n_M1
-c      print *,' n_M2 =', n_M2
-c      print *,' n_mt =', n_mt
-c      print *,' n_Mw =', n_Mw
-c      print *,' n_ml =', n_ml
-c      print *,'             '
-      
-      
-c      .random virtual K^*-meson mass
-c      .
-      sm2min=(M2-5.*0.051)**2
-      sm2max=(M2+5.*0.051)**2
-20    continue
-      rend=PYR(0)
-      MM2=(sm2max-sm2min)*rend+sm2min
-      
-      bwmm2=BW(MM2, 0.051)
-      rend=PYR(0)
-c      print *,' before bwmm2:  rend =', rend
-c      print *,'               bwmm2 =', bwmm2 
-      if(rend.GT.bwmm2) goto 20
-      MM2=sqrt(MM2)
-       
-c      print *,'               '
-c      print *,' bwmm2 =', bwmm2
-c      print *,'  rend =', rend    
-c      print *,'    M2 =', M2, ' GeV'
-c      print *,'   MM2 =', MM2, ' GeV'
-c      print *,'                '      
-c     .End the virtual K^*-meson mass generation     
-      
-      s_min=4.*(ml**2)
-      s_max=(M1-MM2)**2
-      if(s_min.GT.s_max) go to 120
-      
-c......Chose of the random "s"
-      rend=PYR(0)   
-      s=(s_max-s_min)*rend+s_min
-      hat_s=s/M1**2   
-      
-      t_min=(MM2+ml)**2
-      t_max=(M1-ml)**2
-      if(t_min.GT.t_max) go to 130
-                  
-c......Chose of the random "t"
-      rend=PYR(0)
-      t=(t_max-t_min)*rend+t_min
-      hat_t=t/M1**2
-        
-      me_tot=me_tot+1      
-        
-c......Accept or reject this case in (s,t)-plane?
-      weight=gf(DBLE(s),DBLE(t),DBLE(M1**2),
-     #DBLE(ml**2),DBLE(ml**2),DBLE(MM2**2))
-      if(weight.GT.0.D0) then
-c         print *,' s =', s, '   t =', t
-c         print *,'  weight =', weight
-         go to 10
-      endif
-            
-          
-         
-c ...........................................................................
-c     .......................................................................
-c     ..                                                                   ..
-c     ..              THE NORMALISE MATRIX ELEMENT                         ..
-c     ..	      for B\to K^* ell^+ell^- decay			   ..
-c     ..								   ..
-c     ..           See the file matrix_for_fortran_v103.F 	           ..
-c     ..								   ..
-c     .......................................................................
-c     .......................................................................
-c     ..                                                                   ..
-c     ..     model   -  switching parametr of the model for form factor    ..
-c     ..                calculations:                                      ..
-c     ..     model=1 - CQM-MS (D.Melikhov, B.Stech, Phys.Rev.D62,          ..
-c     ..                                       p.014006, 2000 ),           ..
-c     ..     model=2 - LCSR (P.Ball,V.M.Braun, Phys.Rev.D58,               ..
-c     ..                                          p.094016, 1998),         ..
-c     ..     model=3 - CQM-MNS (D.Melikhov, N.Nikitin and S.Simula,        ..
-c     ..                              Phys.Rev.D57, p.6814, 1998);         ..
-c     ..                                                                   ..
-c     .. res_swch --  switching parametr:                                  ..
-c     ..          res_swch=0 -- switch OFF the resonant contribution,      ..
-c     ..          res_swch=1 -- switch ON the resonant contribution;       ..
-c     ..                                                                   ..
-c     ..      ias -- switching parametr for for Lms[]                      ..
-c     ..                                   in the function As(...):        ..
-c     ..          ias = 0   --  Lms=min Lms,                               ..
-c     ..          ias = 1   --  the mean value,                            ..
-c     ..          ias = 2   --  Lms=max Lms;                               ..
-c     ..							           ..
-c     ..   hat_s --  q^{2}/M1^{2}=s/M1^{2};				   ..
-c     ..   hat_t --  t/M1^{2};  					   ..
-c     ..      M1 --  mass of the B -- meson, GeV;			   ..
-c     ..      MM2 --  mass of the VIRTUAL K^* - meson, GeV;		   ..
-c     ..      mt --  the mass of t-quark, GeV;  			   ..
-c     ..      Mw --  the mass of W-meson, GeV;  			   ..
-c     ..      ml --  the lepton mass, GeV;				   ..
-c     ..      Nf --  number of "effective" flavours ( Nf=5 for b-quark);   ..
-c     ..             the number of the collors = 3;			   ..
-c     .. 								   ..
-c     .......................................................................
-c............................................................................
-      call m2fortran_KstMuMu(hat_s, hat_t, MM2)
-      Matrix_element=n_Matrix2
-c......The errors control
-      if(Matrix_element.LT.0.0) go to 110
-      if(Matrix_element.GT.1.0) go to 110
-        
-c......Accept or reject this case according matrix element?
-      rend=PYR(0)
-      if(rend.GT.Matrix_element) then
-c        print *,'  Matrix_element =', Matrix_element
-c        print *,'  PYR(0) =', rend
-c        print *,'  s =', s, '   t =', t
-c        print *,'  weight =', weight     
-        go to 10
-      endif	
-      me_accept=me_accept+1
-         
-c      print *,'         ' 
-c      print *,'         '
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'**                                             **'
-c      print *,'**   THE ACCSEPTION OF THE MATRIX ELEMENT      **'
-c      print *,'**                                             **'
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'          '
-c      print *,'M1 =', M1,'   M2 =', M2,'   MM2 =', MM2,
-c     #'   ml =', ml
-c      print *,'          '
-c      print *,'s =', s,'   t =', t
-c      print *,'s_min =', s_min,'   s_max =', s_max
-c      print *,'t_min(s) =', t_min,'   t_max(s) =', t_max
-c      print *,'          '      
-c      print *,'bwmm2          =', bwmm2
-c      print *,'weight         =', weight
-c      print *,'Matrix_element =', Matrix_element
-c      print *,'          '
-c      print *,'The number of the total events    =', me_tot
-c      print *,'The number of the accepted events =', me_accept   
-c      print *,'The mumber of the rejected events =', me_tot-me_accept
-c      print *,'           '
-      
-c......***********************************************************************
-c      *                                                                     *
-c      *                  Start of the kinematics bloc                       *
-c      *                                                                     *
-c......***********************************************************************
-      
-c.......Initial configuration in the (X,Y) plane
-      
-c      . for B - meson
-      PB(1)=DBLE(M1)
-      PB(2)=0.D0
-      PB(3)=0.D0
-      PB(4)=0.D0
-      
-c      . for K^* - meson
-
-      P3(1)=DBLE((M1**2+MM2**2-s)/(2.*M1))
-      P3(2)=DSQRT(P3(1)**2-DBLE(MM2**2))
-      P3(3)=0.D0
-      P3(4)=0.D0
-      modP3=P3(2)
-        
-c      . for \ell^+ and \ell^-
-      P1(1)=DBLE((M1**2+ml**2-t)/(2.*M1))
-      P2(1)=DBLE((s+t-MM2**2-ml**2)/(2.*M1))
-      
-      if((P1(1)**2-DBLE(ml**2)).LT.0.D0) go to 150
-      if((P2(1)**2-DBLE(ml**2)).LT.0.D0) go to 150
-      if((P3(1)**2-DBLE(MM2**2)).LT.0.D0) go to 150
-      
-      modP1=DSQRT(P1(1)**2-DBLE(ml**2))
-      modP2=DSQRT(P2(1)**2-DBLE(ml**2))        
-      
-c      . \cos\theta_{23}
-      cos23=DBLE(MM2**2+ml**2+2.*P2(1)*P3(1)-t)/(2.D0*modP2*modP3)
-      if(DABS(cos23).GT.1.D0) go to 160
-        
-c      . for \ell^-
-      P2(2)=modP2*cos23
-      if((modP2**2-P2(2)**2).LT.0.D0) go to 180
-      P2(3)=-DSQRT(modP2**2-P2(2)**2) 
-      P2(4)=0.D0
-      
-c      . for \ell^+
-      P1(2)=-P2(2)-P3(2)
-      P1(3)=-P2(3)
-      P1(4)=0.D0
-      
-c......Rotations
-      
-c     .\phi2
-
-      phi2=2.0*3.1415*PYR(0)
-      
-      call Mzero(M)
-      M(1,1)=1.D0
-      M(2,2)=1.D0
-      M(3,3)=DBLE(cos(phi2))
-      M(3,4)=-DBLE(sin(phi2)) 
-      M(4,3)=DBLE(sin(phi2))
-      M(4,4)=DBLE(cos(phi2))
-
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)     
-      
-        
-c     .\theta1
-      
-      theta1=3.1415*PYR(0)
-      
-      call Mzero(M)   
-      M(1,1)=1.D0
-      M(2,2)=DBLE(cos(theta1))
-      M(2,3)=-DBLE(sin(theta1))
-      M(3,2)=DBLE(sin(theta1))
-      M(3,3)=DBLE(cos(theta1))  
-      M(4,4)=1.D0
-      
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)
-
-c      .\phi1
-      
-      phi1=2.0*3.1415*PYR(0)
-      
-      call Mzero(M)  
-      M(1,1)=1.D0
-      M(2,2)=1.D0
-      M(3,3)=DBLE(cos(phi1)) 
-      M(3,4)=-DBLE(sin(phi1))
-      M(4,3)=DBLE(sin(phi1)) 
-      M(4,4)=DBLE(cos(phi1))
-      
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)
-      
-c      print *,'          '
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' after rotations'
-c      print *, 'EB =', pb(1),'  Etot =', p1(1)+p2(1)+p3(1)
-c      print *, 'pxB =', pb(2),'   pxtot =', p1(2)+p2(2)+p3(2)
-c      print *, 'pyB =', pb(3),'   pytot =', p1(3)+p2(3)+p3(3)
-c      print *, 'pzB =', pb(4),'   pztot =', p1(4)+p2(4)+p3(4)
-c      print *, '              '
-      
-c......*********************************************************
-c      *                                                       *
-c      *                   The PYTHIA part                     *
-c      *                                                       *
-c .....*********************************************************
-      
-c      print *,'       '
-c      print *,' B-meson caracteristics '
-c      print *,jkf,'  KF =',k(jkf,2)
-c      print *,jkf,'  B-vertex: V =', (v(jkf,i),i = 1,5)
-c      print *,'     '
-       
-c......the verifikation of the B-meson decay
-      if(k(jkf,4).EQ.k(jkf,5)) go to 500
-
-
-c......Moderniziruem zapis' raspada B^0_d\to K^{*0}\mu^+\mu^-
-      do jd = k(jkf,4), k(jkf,5)
-          	     
-c.........K^{*0} - meson (313) 
-         if(k(jd,2).eq.313)  then   
-	   
-	   kline = jd
-c	   print *,'kline ident =', kline 
-	     
-c	   print *,jd,'  KF_old =',k(jd,2)  
-	   
-           k(jd,1)=1
-           k(jd,2)=313
-	   k(jd,3)=k(jd,3)
-	   	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0
-	   
-           do i=1,3
-             p(jd,i) = P3(i+1)
-c	     print *,'        i =', i
-c	     print *,'       jd =', jd
-c	     print *,'  P3(i+1) =', P3(i+1)
-c	     print *,'  p(jd,i) =', p(jd,i)
-           enddo
-           p(jd,4) = P3(1)
-           p(jd,5) = DBLE(MM2)
-	          
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo
-	     	   
-c...........Calculation metod:
-c          . MeV^{-1} = 6.58 * 10^{-19} s;
-c          . \tau (K^{*0}) = 1/51 MeV^{-1} = 1.29 * 10^{-20} s;
-c          . \tau (B^0) = 1.55 * 10^{-12} s
-c          . or \tau (B^0)= pmas(pycomp(511),4) mm/s;
-c          . that is \tau (K^{*0}) in mm/s equal:
-c          . pmas(pycomp(511),4)[\tau (K^{*0}) s]/[\tau (B^0) s]	   
-	   v(jd,5)=pmas(pycomp(511),4)*1.29D0/1.55D0
-	   v(jd,5)=v(jd,5)/10**8
-c	   print *,' tau =', v(jd,5), ' mm/s'
-              	   	   
-           do i=1,5
-	     vk(i)=v(jd,i)
-	   enddo		   
-           
-c           print *,jd,'  KF_new =',k(jd,2)	      		   
-c           print *,jd,'  K^*-vertex: =', (v(jd,i),i = 1,5)	   	   	              
-c           print *,'     '
-	   
-         endif
-                         
-             
-c.........\mu^+ (-13) 
-         if(k(jd,2).eq.(-13))   then
-	 	   
-           mpline = jd
-c           print *,'mpline ident =', mpline 
-                      
-c           print *,jd,'  KF_old =',k(jd,2)
-           k(jd,1)=1
-           k(jd,2)=-13
-           k(jd,3)=k(jd,3)
-	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0 
-           
-	   do i=1,3
-             p(jd,i) = P1(i+1)
-           enddo
-           p(jd,4) = P1(1)
-           p(jd,5) = DBLE(ml)
-	   
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo
-	   v(jd,5)=0.D0
-	   
-	   do i=1,5
-	     vmp(i)=v(jd,i)
-	   enddo 
-	   
-c           print *,jd,'  KF_new =',k(jd,2)
-c           print *,jd,'  mu^+ vertex: =', (v(jd,i),i = 1,5)                        
-c           print *,'     '
-	   
-         endif
-               
-c.........\mu^- (13) 
-         if(k(jd,2).eq.13)   then
-	 
-	   mmline = jd
-c           print *,'mmline ident =', mmline
-                	         
-c           print *,jd,'  KF_old =',k(jd,2)
-           k(jd,1)=1
-           k(jd,2)=13
-           k(jd,3)=k(jd,3)
-	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0 
-           
-	   do i=1,3
-             p(jd,i) = P2(i+1)
-           enddo
-           p(jd,4) = P2(1)
-           p(jd,5) = DBLE(ml)
-	   
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo
-	   v(jd,5)=0.D0
-	   
-	   do i=1,5
-	     vmm(i)=v(jd,i)
-	   enddo
-	   
-c           print *,jd,'  KF_new =',k(jd,2) 
-c           print *,jd,'  mu^- vertex: =', (v(jd,i),i = 1,5)                        
-c           print *,'     '
-	   
-         endif
-                 	                     	  
-      enddo
-      
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' BEFORE the Lorentz boost'
-c      print *, 'EB =',  pb(1),
-c     #'  Etot =',       p(k(jkf,4),4)+p(k(jkf,4)+1,4)+p(k(jkf,4)+2,4)
-c      print *, 'pxB =', pb(2),
-c     #'   pxtot =',     p(k(jkf,4),1)+p(k(jkf,4)+1,1)+p(k(jkf,4)+2,1)
-c      print *, 'pyB =', pb(3),
-c     #'   pytot =',     p(k(jkf,4),2)+p(k(jkf,4)+1,2)+p(k(jkf,4)+2,2)
-c      print *, 'pzB =', pb(4),
-c     #'   pztot =',     p(k(jkf,4),3)+p(k(jkf,4)+1,3)+p(k(jkf,4)+2,3)
-c      print *, '               '
-            
-	    
-c......perform Lorentz boost in the direction
-c     .of B - meson momentum (EB,PxB,PyB,PzB);
-c     .only for final K^{*}-meson and leptons !!!
-
-      vxb = p(jkf,1)/p(jkf,4)
-      vyb = p(jkf,2)/p(jkf,4)
-      vzb = p(jkf,3)/p(jkf,4)
-c      print *,'  vxb =', vxb
-c      print *,'  vyb =', vyb
-c      print *,'  vzb =', vzb
-      
-      call pyrobo(k(jkf,4),k(jkf,5),0D0,0D0,vxb,vyb,vzb)
-      
-
-c......vertexes determination after "call pyrobo(...)"
-c     .K^*
-      do i=1,5
-        v(kline,i)=vk(i)
-      enddo
-c     .\mu^+
-      do i=1,5
-        v(mpline,i)=vmp(i)
-      enddo
-c     .\mu^-
-      do i=1,5
-        v(mmline,i)=vmm(i)
-      enddo            
-                        
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' AFTER Lorentz boost'
-c      print *, 'EB =',  p(jkf,4),
-c     #'  Etot =',       p(k(jkf,4),4)+p(k(jkf,4)+1,4)+p(k(jkf,4)+2,4)
-c      print *, 'pxB =', p(jkf,1),
-c     #'   pxtot =',     p(k(jkf,4),1)+p(k(jkf,4)+1,1)+p(k(jkf,4)+2,1)
-c      print *, 'pyB =', p(jkf,2),
-c     #'   pytot =',     p(k(jkf,4),2)+p(k(jkf,4)+1,2)+p(k(jkf,4)+2,2)
-c      print *, 'pzB =', p(jkf,3),
-c     #'   pztot =',     p(k(jkf,4),3)+p(k(jkf,4)+1,3)+p(k(jkf,4)+2,3)
-c      print *, '              '
- 
-c      print *, '            ***         '
-c      print *, '                        '
-c      print *,'The decay of the K^{*0}-meson'
-c......Perform the K^{*0}-meson decay
-c     .on the only charged particles;
-c.    .K^{*0}-meson have in "PYTHIA" only 3 decay channels:
-c     .IDC=617 corresponds to the decay channel K^{*0}\to K^{+}\pi^{-}
-c     .IDC=618 corresponds to the decay channel K^{*0}\to K^0\pi^0   
-c     .IDC=619 corresponds to the decay channel K^{*0}\to K^0\gamma
-
-      do i=617,619
-        mdme(i,1) = 3      ! switched off the current decay channel
-      enddo
-      mdme(617,1) = 1      ! switched on K^*\to K^+\pi^- decay      
-      call pydecy(kline)   ! perform decay only on the K^{+}\pi^{-}
-      do i=617,619
-        mdme(i,1) = 1      ! switched on the current decay channel
-      enddo
-       
-c      print *, 'The vertex examinaton after K^*-decay'
-c      print *,kline,     '  K^*-vertex: =', (v(kline,i),i = 1,5)
-c      print *,p(k(kline,4),5),
-c     #'    1-vertex: =', (v(k(kline,4),i),i = 1,5)
-c      print *,p(k(kline,5),5),
-c     #'    2-vertex: =', (v(k(kline,5),i),i = 1,5)
-c      print *,p(mpline,5),
-c     #'  mu^+ vertex: =', (v(mpline,i),i = 1,5)
-c      print *,p(mmline,5),
-c     #'  mu^- vertex: =', (v(mmline,i),i = 1,5)
-c      print *,'        '
-      
-                
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' after K^{*0}-decay'
-
-c      print *, ' EK^* =', p(kline,4),
-c     #'   EKpitot =',      p(k(kline,4),4)+p(k(kline,5),4)
-c      print *, 'pxK^* =', p(kline,1),
-c     #'   pxKpitot =',     p(k(kline,4),1)+p(k(kline,5),1)
-c      print *, 'pyK^* =', p(kline,2),
-c     #'   pyKpitot =',     p(k(kline,4),2)+p(k(kline,5),2)
-c      print *, 'pzK^* =', p(kline,3),
-c     #'   pzKpitot =',     p(k(kline,4),3)+p(k(kline,5),3)
-c      print *, '              '
-
-
-c      call pylist(2)      
-     
-600   continue 
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'**                                             **'
-c      print *,'**   THE END OF THE ACCEPTED INFORMATION       **'
-c      print *,'**                                             **'
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-      
-      end
-           
-          
-       
diff --git a/Generators/PythiaB/src/matrix_and_kinematics_PhiMuMu.F b/Generators/PythiaB/src/matrix_and_kinematics_PhiMuMu.F
deleted file mode 100644
index 8f1e120b7cd334005e6400ab6f5d329eae615c72..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/matrix_and_kinematics_PhiMuMu.F
+++ /dev/null
@@ -1,740 +0,0 @@
-c     ***********************************************************************
-c     ***********************************************************************
-c     **                                                                   **
-c     **          The Monte-Karlo PYTHIA generator for the decay           **
-c     **                                                                   **
-c     **                B^0_s\to(\phi\to K^+K^-)\mu^+\mu^-                 **
-c     **                                                                   **
-c     **                    for Athena 7.7.0 PythiaB                       **
-c     **                                                                   **
-c     **                  Last modification:   01.09.2006                  **
-c     **                                                                   **
-c     **         Author: Nikolai Nikitine, nnikit@mail.cern.ch             **
-c     **                                                                   **
-c     ***********************************************************************
-c     ***********************************************************************
-                                                                                
-c       *******************************************************************  
-c       *                                                                 *  
-c       *          subroutine MATRIX_and_KINEMATICS_PhiMuMu               * 
-c       *                      Version 1.00f                              * 
-c       *                                                                 *   
-c       *         Parameters of the MATRIX_and_KINEMATICS_PhiMuMu:        *  
-c       *                                                                 *  
-c       *     jkf - number of B_s-meson line in the common block PYJETS.  *
-c       *                                                                 *
-c       *******************************************************************
-                   
-      subroutine MATRIX_and_KINEMATICS_PhiMuMu(jkf)
-            
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs
-                                                                         
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-                                                                                                                                                                       
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/
-                
-c......My COMMON blocks
-         
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2
-      SAVE /nik1/,/nik2/,/nik4/
-           
-c......Begine of the variables declaration
-               
-c......double precision velocity ov B-meson in LS
-      double precision vxb, vyb, vzb       	    
-       	    
-c......The value of the returned matrix elemet for
-c     .the m2fortran_PhiMuMu(...) function
-      real Matrix_element
-                
-c......The COMMON blocs parameters
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real  n_beta1, n_beta2, n_dV, n_Matrix2  ! /nik4/
-      integer model, res_swch, ias, Nf      
-      real M1, M2, MM2, mt, Mw, ml
-
-c......The variables for virtual phi-meson mass      
-      real weightm, sm2min, sm2max
-                           
-c......The Mandelstam variables
-      real s, t  
-      
-c......The Mandelstam variables/M_1^2
-      real hat_s, hat_t
-      
-c......The boundary of the mandelstam variables
-      real s_min, s_max 
-      
-      real t_plus, t_minus, lambda, tt
-               
-c......Kinematics weight of the accepted event
-       double precision weight
-         
-c......The kinematical variables
-c     .
-c     .PB - B-meson
-c     .P1 - \ell^+
-c     .P2 - \ell^-
-c     .P3 - \phi
-c     .
-c...... (E, p_x, p_y, p_z)
-      double precision PB(4), P1(4), P2(4), P3(4)
-      
-c......The angle between \gamma and \ell^- directions in Rest Frame of Bs-meson:
-c     .\cos\theta_{23}
-      double precision cos23
-      
-c......The absolute values for 3-momentum of \gamma and \ell^{pm}
-      double precision modP1, modP2, modP3  
-         
-c......Tthe rotation angles
-      real phi2, theta1, phi1
-          
-c......The rotation matrix
-      double precision M(4,4)
-        
-c......The randomase variable
-      real rend
-         
-c......Numbers of the lines for \phi, \mu^+ and \mu^-
-      integer kline, mpline, mmline
-      
-c......For vertex sconservetion after "call pyrobo(...)"      	 
-      double precision vk(5), vmp(5), vmm(5)  
-
-c......The components of the kaons 4-momentum after phi-meson decay
-c      double precision E_of_KK, Px_of_KK, Py_of_KK, Pz_of_KK
-      
-c......The counters for the accept/reject
-c     .of the matrix element    
-      integer me_tot, me_accept
-               
-c......End of the variable declarations
-c     .and start of the simulation program
-      
-      go to 100
-                     
-c......The errors information and program terminate
-110   print *,'Fatal ERROR: Matrix_element < 0 or 
-     #  Matrix_element > 1 '
-      print *,'Matrix_element =', Matrix_element
-      print *,'t_min =', t_min,
-     #     '       t =', t,
-     #'        t_max =', t_max
-      tt=(M1**2+M2**2+2.*ml**2-s)/2.
-      lambda=(M1**2+M2**2-s)**2-4.*M1**2*M2**2
-      lambda=SQRT(1.-4.*(ml**2)/s)*SQRT(lambda)/2.      
-      t_plus=tt+lambda
-      t_minus=tt-lambda
-      print *,'t_min(s) =', t_minus,
-     #     '          t =', t,
-     #'        t_max(s) =', t_plus
-      print *,'s_min =', s_min,
-     #     '       s =', s,
-     #'        s_max =', s_max
-      print *,'    G =', weight,
-     #'   M1 =', M1,'   M2 =', M2, '   ml =', ml      
-      print *, 'By!'
-      STOP
-120   print *,'Fatal ERROR: s_min > s_max'
-      print *,'s_min =', s_min, '   s_max =', s_max
-      print *,'   M1 =', M1, '   M2 =', M2,'   ml =', ml
-      print *, 'By!'
-      STOP
-130   print *,'Fatal ERROR: t_min > t_max'
-      print *,'t_min =', t_min, '   t_max =', t_max
-      print *,'   M1 =', M1, '   M2 =', M2,'   ml =', ml
-      print *, 'By!'
-      STOP
-150   print *,'Fatal ERROR: modPi^2 < 0'  
-      print *,'modP1 =', modP1, '   modP2 =', modP2,
-     #'   modP3 =', modP3
-      print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2, '   ml =', ml
-      print *, 'By!'
-      STOP
-160   print *,'Fatal ERROR: abs(cos23) > 1'
-      print *,'cos23 =', cos23
-      print *,'modP1 =', modP1, '   modP2 =', modP2,
-     #'   modP3 =', modP3
-      print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2, '   ml =', ml
-      print *, 'By!'
-      STOP
-180   print *,'Fatal ERROR: modP2**2-P2(2)**2) < 0'
-       print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2, '   ml =', ml
-      print *, 'By!'
-      STOP     
-500   print *,'  '
-      print *,'********************************************'
-      print *,'**                                        **'
-      print *,'**         NO B-MESON DECAY !!!           **'
-      print *,'**                                        **'
-      print *,'********************************************'
-      print *,'   '
-      print *,'jkf =', jkf
-      print *,'KF = k(jkf,2) =',k(jkf,2)
-      print *,'k(jkf,3) =',k(jkf,3)
-      print *,'k(jkf,4) =',k(jkf,4)
-      print *,'k(jkf,5) =',k(jkf,5)
-      print *,'   ' 
-      print *,'PxB=p(jkf,1) =',p(jkf,1)
-      print *,'PyB=p(jkf,2) =',p(jkf,2)
-      print *,'PzB=p(jkf,3) =',p(jkf,3)
-      print *,' EB=p(jkf,4) =',p(jkf,4)
-      print *,' MB=p(jkf,5) =',p(jkf,5)
-      print *,'   '
-      go to 600
-      
-c......Start of the generation procedure
-100   continue
-c      print *,'      '
-c      print *,' In MATRIX_and_KINEMATICS_PhiMuMu '
-c      print *,'      '      
-      
-      model=n_model
-      res_swch=n_res_swch
-      ias=n_ias
-      Nf=n_Nf
-      M1=n_M1   ! M_{Bs}  in GeV
-      M2=n_M2   ! M_{phi} in GeV       
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml   
-            
-      me_tot=0
-      me_accept=0
-      
-10    continue
-c      print *,' 10    continue '
-      
-c      print *,' Nf =', Nf
-c      print *,' M1 =', M1
-c      print *,' M2 =', M2
-c      print *,' mt =', mt
-c      print *,' Mw =', Mw
-c      print *,' ml =', ml
-      
-c.......Preparation the mass for virtual phy-meson
-c
-c     RUS: Neobhodimoye poyasneniye sostoit v tom, chto dalee nam pridetsia
-c          rassmatrivat' raspad \phi\to K^+K^-, t.e phi-meson iznachal'no
-c          neobhodimo delat' virtual'nim and razigrivat' ego virtual'nuyu massu
-c          po Breyt-Wigneru v intervale M2\pm 5*\Gamma;
-c          \Gamma (\phi) = 4.5 MeV = 0.0045 GeV     
-c       .
-      sm2min=(M2-5.*0.0045)**2
-      sm2max=(M2+5.*0.0045)**2
-20    continue
-      rend=PYR(0)
-      M2=(sm2max-sm2min)*rend+sm2min
-      weightm=BW(M2,0.0045)
-      rend=PYR(0)
-      
-c      print *,' before:   rend =', rend
-c      print *,'        weightm =', weightm
-      if(rend.GT.weightm) goto 20
-      M2=sqrt(M2)
-      MM2=M2
-
-c      print *,'               '
-c      print *,' after: weightm =', weightm
-c      print *,'           rend =', rend
-c      print *,'             M2 =', M2, ' GeV'
-c      print *,'            MM2 =', MM2, ' GeV'
-c      print *,'                '
-c     .End the virtual \phi-meson mass generation
-
-      s_min=4.*(ml**2)
-      s_max=(M1-MM2)**2
-      if(s_min.GT.s_max) go to 120
-
-c......Chose of the random "s"
-      rend=PYR(0)
-      s=(s_max-s_min)*rend+s_min
-      hat_s=s/M1**2
-
-      t_min=(MM2+ml)**2
-      t_max=(M1-ml)**2
-      if(t_min.GT.t_max) go to 130
-
-c......Chose of the random "t"
-      rend=PYR(0)
-      t=(t_max-t_min)*rend+t_min
-      hat_t=t/M1**2
-
-      me_tot=me_tot+1
-
-c......Accept or reject this case in (s,t)-plane?
-      weight=gf(DBLE(s),DBLE(t),DBLE(M1**2),
-     #DBLE(ml**2),DBLE(ml**2),DBLE(MM2**2))
-      if(weight.GT.0.D0) then
-c         print *,' s =', s, '   t =', t
-c         print *,'  weight =', weight
-         go to 10
-      endif
-
-
-            
-          
-         
-c ....***********************************************************************
-c     *.....................................................................*
-c     *.                                                                   .*
-c     *.              THE NORMALISE MATRIX ELEMENT                         .*
-c     *.	   for B^0_s\to\phi\ell^+\ell^- decay			   .*
-c     *.								   .*
-c     *.     The decay matrix element will see in the file m202phi.c 	   .*
-c     *.								   .*
-c     *.....................................................................*
-c     *.....................................................................*
-c     *.                                                                   .*
-c     *.    model --  NOT use in this matrix element                       .*
-c     *.          model = 1 --CQM-MS (D.Melikhov, B.Stech,                 .*
-c     *.                              Phys.Rev.D62, p.014006, 2000 );      .*
-c     *.                                                                   .*
-c     *. res_swch --  switching parametr:                                  .*
-c     *.          res_swch=0 -- switch OFF the resonant contribution,      .*
-c     *.          res_swch=1 -- switch ON the resonant contribution;       .*
-c     *.                                                                   .*
-c     *.      ias -- switching parametr for for Lms[]                      .*
-c     *.                                   in the function As(...):        .*
-c     *.          ias = 0   --  Lms=min Lms,                               .*
-c     *.          ias = 1   --  the mean value,                            .*
-c     *.          ias = 2   --  Lms=max Lms;                               .*
-c     *.							           .*
-c     *.   hat_s --  q^{2}/M1^{2}=s/M1^{2};				   .*
-c     *.   hat_t --  t/M1^{2};  					   .*
-c     *.      M1 --  mass of the B_s - meson, GeV;			   .*
-c     *.      M2 --  mass of phi - meson, GeV;		                   .*
-c     *.      mt --  the mass of t-quark, GeV;  			   .*
-c     *.      Mw --  the mass of W-meson, GeV;  			   .*
-c     *.      ml --  the lepton mass, GeV;				   .*
-c     *.      Nf --  number of "effective" flavours ( Nf=5 for b-quark);   .*
-c     *.             the number of the collors = 3;			   .*
-c     *. 								   .*
-c     *.....................................................................*
-c.....***********************************************************************
-      call m2fortran_PhiMuMu(hat_s, hat_t, MM2)
-      Matrix_element=n_Matrix2
-            
-c......The errors control
-      if(Matrix_element.LT.0.0) go to 110
-      if(Matrix_element.GT.1.0) go to 110
-        
-c......Accept or reject this case according matrix element?
-c      rend=RNDM(-1)
-      rend=PYR(0)
-
-      if(rend.GT.Matrix_element) then
-c         print *,'          PYR(0) =', rend
-c	 print *,'  Matrix_element =', Matrix_element
-         go to 10
-      endif
-      me_accept=me_accept+1
-         
-c      print *,'         ' 
-c      print *,'         '
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'**                                             **'
-c      print *,'**   THE ACCSEPTION OF THE MATRIX ELEMENT      **'
-c      print *,'**                                             **'
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'          '
-c      print *,'M1 =', M1,'   M2 =', M2,'   ml =', ml
-c      print *,'          '
-c      print *,'s =', s,'   t =', t
-c      print *,'s_min =', s_min,'   s_max =', s_max
-c      print *,'t_min(s) =', t_min,'   t_max(s) =', t_max
-c      print *,'          '      
-c      print *,'weight         =', weight
-c      print *,'Matrix_element =', Matrix_element
-c      print *,'          '
-c      print *,'The number of the total events    =', me_tot
-c      print *,'The number of the accepted events =', me_accept   
-c      print *,'The mumber of the rejected events =', me_tot-me_accept
-c      print *,'           '
-c      
-c......***********************************************************************
-c      *                                                                     *
-c      *                  Start of the kinematics bloc                       *
-c      *                                                                     *
-c......***********************************************************************
-      
-c.......Initial configuration in the (X,Y) plane
-      
-c      . for B^0_s - meson
-      PB(1)=DBLE(M1)
-      PB(2)=0.D0
-      PB(3)=0.D0
-      PB(4)=0.D0
-      
-c      . for phi-meson
-
-      P3(1)=DBLE((M1**2+M2**2-s)/(2.*M1))
-      P3(2)=DSQRT(P3(1)**2-DBLE(M2**2))
-      P3(3)=0.D0
-      P3(4)=0.D0
-      modP3=P3(2)
-        
-c      . for \ell^+ and \ell^-
-      P1(1)=DBLE((M1**2+ml**2-t)/(2.*M1))
-      P2(1)=DBLE((s+t-M2**2-ml**2)/(2.*M1))
-      
-      if((P1(1)**2-DBLE(ml**2)).LT.0.D0) go to 150
-      if((P2(1)**2-DBLE(ml**2)).LT.0.D0) go to 150
-      if((P3(1)**2-DBLE(M2**2)).LT.0.D0) go to 150
-      
-      modP1=DSQRT(P1(1)**2-DBLE(ml**2))
-      modP2=DSQRT(P2(1)**2-DBLE(ml**2))        
-      
-c      . \cos\theta_{23}
-      cos23=DBLE(M2**2+ml**2+2.*P2(1)*P3(1)-t)/(2.D0*modP2*modP3)
-      if(DABS(cos23).GT.1.D0) go to 160
-        
-c      . for \ell^-
-      P2(2)=modP2*cos23
-      if((modP2**2-P2(2)**2).LT.0.D0) go to 180
-      P2(3)=-DSQRT(modP2**2-P2(2)**2) 
-      P2(4)=0.D0
-      
-c      . for \ell^+
-      P1(2)=-P2(2)-P3(2)
-      P1(3)=-P2(3)
-      P1(4)=0.D0
-      
-c......Rotations
-      
-c     .\phi2
-
-c      phi2=2.0*3.1415*RNDM(-1)
-      phi2=2.0*3.1415*PYR(0)
-      
-      call Mzero(M)
-      M(1,1)=1.D0
-      M(2,2)=1.D0
-      M(3,3)=DBLE(cos(phi2))
-      M(3,4)=-DBLE(sin(phi2)) 
-      M(4,3)=DBLE(sin(phi2))
-      M(4,4)=DBLE(cos(phi2))
-
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)     
-      
-        
-c     .\theta1
-      
-c      theta1=3.1415*RNDM(-1)
-      theta1=3.1415*PYR(0)
-      
-      call Mzero(M)   
-      M(1,1)=1.D0
-      M(2,2)=DBLE(cos(theta1))
-      M(2,3)=-DBLE(sin(theta1))
-      M(3,2)=DBLE(sin(theta1))
-      M(3,3)=DBLE(cos(theta1))  
-      M(4,4)=1.D0
-      
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)
-
-c      .\phi1
-      
-c      phi1=2.0*3.1415*RNDM(-1)
-      phi1=2.0*3.1415*PYR(0)
-      
-      call Mzero(M)  
-      M(1,1)=1.D0
-      M(2,2)=1.D0
-      M(3,3)=DBLE(cos(phi1)) 
-      M(3,4)=-DBLE(sin(phi1))
-      M(4,3)=DBLE(sin(phi1)) 
-      M(4,4)=DBLE(cos(phi1))
-      
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)
-      
-c      print *,'          '
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' after rotations'
-c      print *, 'EB =', pb(1),'  Etot =', p1(1)+p2(1)+p3(1)
-c      print *, 'pxB =', pb(2),'   pxtot =', p1(2)+p2(2)+p3(2)
-c      print *, 'pyB =', pb(3),'   pytot =', p1(3)+p2(3)+p3(3)
-c      print *, 'pzB =', pb(4),'   pztot =', p1(4)+p2(4)+p3(4)
-c      print *, '              '
-      
-c......*********************************************************
-c      *                                                       *
-c      *                   The PYTHIA part                     *
-c      *                                                       *
-c .....*********************************************************
-      
-c      print *,'       '
-c      print *,' The B^0_s-meson parameters: '
-c      print *,jkf,'  KF =',k(jkf,2)
-c      print *,jkf,'  B-vertex: V =', (v(jkf,i),i = 1,5)
-c      print *,'     '
-       
-c......the verifikation of the B-meson decay
-      if(k(jkf,4).EQ.k(jkf,5)) go to 500
-
-c      print *,'                  '      
-c      print *,' Decay B^0_s -> phi mu^+ mu^- '
-c      do jd = k(jkf,4), k(jkf,5)
-c        print *,jd,'  KF =',k(jd,2)
-c        print *,jd,'  vertex:  V =', (v(jd,i),i = 1,5)
-c      enddo
-c      print *,'                 '
-       
-
-c......rewrite the decay B^0_s\to\phi\mu^+\mu^-
-c     .in the PYTHIA COMMON block PYJETS
-c
-c      RUS: predpolagaetsia, chto kogda vipolnaetsia generaciya
-c           pri pomoschi programmi PYTHIA, to uje zadano, chto tam
-c           imeetsia kanal raspada B^0_\to\phi\mu^+\mu^-. Eto delaetsia,
-c           naprimer, pri pomoschi sleduyuschih komand:
-c           c...... allowed B_s and \bar B_s-decay channel 965
-c           c.    . for convert to B^0_s\to\phi\mu^+\mu^-
-c                 mdme(965,1) = 1
-c                 kfdp(965,1) = 13    ! \mu^-
-c                 kfdp(965,2) = -13   ! \mu^+
-c                 kfdp(965,3) = 333   ! \phi
-c                 kfdp(965,4) = 0
-c                 kfdp(965,5) = 0
-c                 brat(965)   = DBLE(nujniy Br)   
-c
-      do jd = k(jkf,4), k(jkf,5)
-          	     
-c.........\phi - meson (333) 
-         if(k(jd,2).eq.333)  then   
-	   
-	   kline = jd
-	   
-           k(jd,1)=1
-           k(jd,2)=333
-	   k(jd,3)=k(jd,3)
-	   	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0
-	   
-           do i=1,3
-             p(jd,i) = P3(i+1)
-c	     print *,'        i =', i
-c	     print *,'       jd =', jd
-c	     print *,'  P3(i+1) =', P3(i+1)
-c	     print *,'  p(jd,i) =', p(jd,i)
-           enddo
-           p(jd,4) = P3(1)
-           p(jd,5) = DBLE(M2)
-	          
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo	     	   
-	   v(jd,5)=0.D0
-	                 	   	   
-           do i=1,5
-	     vk(i)=v(jd,i)
-	   enddo		   
-           	   
-         endif
-                         
-             
-c.........\mu^+ (-13) 
-         if(k(jd,2).eq.(-13))   then
-	 	   
-           mpline = jd
-
-           k(jd,1)=1
-           k(jd,2)=-13
-           k(jd,3)=k(jd,3)
-	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0 
-           
-	   do i=1,3
-             p(jd,i) = P1(i+1)
-           enddo
-           p(jd,4) = P1(1)
-           p(jd,5) = DBLE(ml)
-	   
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo
-	   v(jd,5)=0.D0
-	   
-	   do i=1,5
-	     vmp(i)=v(jd,i)
-	   enddo 
-	   
-c           print *,jd,'  mu^+ vertex: =', (v(jd,i),i = 1,5)                        
-c           print *,'     '
-	   
-         endif
-               
-c.........\mu^- (13) 
-         if(k(jd,2).eq.13)   then
-	 
-	   mmline = jd
-
-           k(jd,1)=1
-           k(jd,2)=13
-           k(jd,3)=k(jd,3)
-	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0 
-           
-	   do i=1,3
-             p(jd,i) = P2(i+1)
-           enddo
-           p(jd,4) = P2(1)
-           p(jd,5) = DBLE(ml)
-	   
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo
-	   v(jd,5)=0.D0
-	   
-	   do i=1,5
-	     vmm(i)=v(jd,i)
-	   enddo
-	   
-c           print *,jd,'  mu^- vertex: =', (v(jd,i),i = 1,5)                        
-c           print *,'     '
-	   
-         endif
-                 	                     	  
-      enddo
-      
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' BEFORE the Lorentz boost'
-c      print *, 'EB =',  pb(1),
-c     #'  Etot =',       p(k(jkf,4),4)+p(k(jkf,4)+1,4)+p(k(jkf,4)+2,4)
-c      print *, 'pxB =', pb(2),
-c     #'   pxtot =',     p(k(jkf,4),1)+p(k(jkf,4)+1,1)+p(k(jkf,4)+2,1)
-c      print *, 'pyB =', pb(3),
-c     #'   pytot =',     p(k(jkf,4),2)+p(k(jkf,4)+1,2)+p(k(jkf,4)+2,2)
-c      print *, 'pzB =', pb(4),
-c     #'   pztot =',     p(k(jkf,4),3)+p(k(jkf,4)+1,3)+p(k(jkf,4)+2,3)
-c      print *, '               '
-            
-
-c......perform Lorentz boost in the direction
-c     .of B - meson momentum (EB,PxB,PyB,PzB);
-c     .only for final foton and leptons !!!
-      vxb = p(jkf,1)/p(jkf,4)
-      vyb = p(jkf,2)/p(jkf,4)
-      vzb = p(jkf,3)/p(jkf,4)
-
-c      print *,'       N =', N
-c      print *,' mstu(1) =', mstu(1)
-c      print *,' mstu(2) =', mstu(2)
-c      print *,'  vxb =', vxb
-c      print *,'  vyb =', vyb
-c      print *,'  vzb =', vzb
-         
-      call pyrobo(k(jkf,4),k(jkf,5),0.D0,0.D0,vxb,vyb,vzb)
-                                     
-c......vertexes determination after "call pyrobo(...)"
-c     .foton
-      do i=1,5
-        v(kline,i)=vk(i)
-      enddo
-c     .\mu^+
-      do i=1,5
-        v(mpline,i)=vmp(i)
-      enddo
-c     .\mu^-
-      do i=1,5
-        v(mmline,i)=vmm(i)
-      enddo            
-                        
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' AFTER Lorentz boost'
-c      print *, 'EB =',  p(jkf,4),
-c     #'  Etot =',       p(k(jkf,4),4)+p(k(jkf,4)+1,4)+p(k(jkf,4)+2,4)
-c      print *, 'pxB =', p(jkf,1),
-c     #'   pxtot =',     p(k(jkf,4),1)+p(k(jkf,4)+1,1)+p(k(jkf,4)+2,1)
-c      print *, 'pyB =', p(jkf,2),
-c     #'   pytot =',     p(k(jkf,4),2)+p(k(jkf,4)+1,2)+p(k(jkf,4)+2,2)
-c      print *, 'pzB =', p(jkf,3),
-c     #'   pztot =',     p(k(jkf,4),3)+p(k(jkf,4)+1,3)+p(k(jkf,4)+2,3)
-c      print *, '              '
- 
-
-c......To prepare the phi-meson decay on the only charged particles;
-c.    .phi-meson in "PYTHIA 6.207" is have 11 decay channels from IDC=656 to idc=666:
-      do i=656,666
-        mdme(i,1) = 3      ! switched off the current decay channel
-      enddo
-      mdme(656,1) = 1      ! switched on \phi\to K^+\K^- decay
-      call pydecy(kline)   ! perform decay 
-      do i=656,666
-        mdme(i,1) = 1      ! switched on the current decay channel
-      enddo
-
-c......Proverka pravil'nosti raspada phi-mesona
-c      E_of_KK =0.D0
-c      Px_of_KK=0.D0
-c      Py_of_KK=0.D0
-c      Pz_of_KK=0.D0
-c      do ii=k(kline,4),k(kline,5)
-c        print *, ii, ' K-meson KF =', k(ii,2)
-c        e_of_kk=e_of_kk+p(ii,4)
-c        px_of_kk=px_of_kk+p(ii,1)
-c        py_of_kk=py_of_kk+p(ii,2)
-c        pz_of_kk=pz_of_kk+p(ii,3)
-c      enddo
-c      print *,' PHI-line: ', kline, '   PHI KF =', k(kline,2)
-c      print *,'  Mass of PHI in PYTHIA =', PMAS(PYCOMP(333),1)
-c      print *,' Virtual PHI meson mass =', p(kline,5) 
-c      print *,'     invariant KK masse =',
-c     #dsqrt(e_of_kk**2-px_of_kk**2-py_of_kk**2-pz_of_kk**2)
-       
-c      call pylist(2)      
-     
-600   continue
-
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'**                                             **'
-c      print *,'**   THE END OF THE ACCEPTED INFORMATION       **'
-c      print *,'**                                             **'
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-      
-      end
-           
-          
-       
diff --git a/Generators/PythiaB/src/matrix_and_kinematics_b2gmm.F b/Generators/PythiaB/src/matrix_and_kinematics_b2gmm.F
deleted file mode 100644
index 9c7933b2b7ded0e14ab97788a37b1a4a0a3f57b5..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/matrix_and_kinematics_b2gmm.F
+++ /dev/null
@@ -1,664 +0,0 @@
-c     ***********************************************************************
-c     ***********************************************************************
-c     **                                                                   **
-c     **          The Monte-Carlo PYTHIA generator for the decay           **
-c     **                                                                   **
-c     **                    B^0\to\gamma\mu^+\mu^-                         **
-c     **        (vipolnen uchet tormoznogo izlucheniya muonov v            **
-c     **                      konechnom sostoanii)                         **
-c     **                                                                   **
-c     **                        Version 1.03                               **
-c     **                                                                   **
-c     **              The last modification:   15.05.2007                  **
-c     **                                                                   **
-c     **         Author: Nickolai Nikitine, nnikit@mail.cern.ch            **
-c     **                                                                   **
-c     ***********************************************************************
-c     ***********************************************************************
-                                                                                
-c       *******************************************************************  
-c       *                                                                 *  
-c       *             subroutine MATRIX_and_KINEMATICS_GMM                * 
-c       *                                                                 *   
-c       *         The parameters of the MATRIX_and_KINEMATICS_GMM:        *  
-c       *                                                                 *  
-c       *     jkf - line number of B-meson parameters in The common       *
-c       *           bloc PYJETS.                                          *
-c       *                                                                 *
-c       *******************************************************************
-                   
-      subroutine MATRIX_and_KINEMATICS_GMM(jkf)
-            
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-        
-c......Standard COMMON blocs
-                                                                         
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-       COMMON/PYINT1/MINT(400),VINT(400)
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-                                                                                                                                                                       
-      SAVE /PYJETS/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-                
-c......My COMMON blocs
-         
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik4/ n_Matrix2
-      SAVE /nik1/,/nik2/,/nik4/
-           
-c......Begine of the variables declaration
-               
-c......double precision velocity ov B-meson in LS
-       double precision vxb, vyb, vzb       	    
-       	    
-c......The value of the returned matrix elemet for
-c     .the m2fortran(...) function
-      real Matrix_element
-          
-c......The COMMON blocs parameters
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_Matrix2                           ! /nik4/
-c      integer model, res_swch, ias, Nf
-      integer res_swch, ias, Nf
-      real M1, M2, mt, Mw, ml
-                           
-c......The Mandelstam variables
-      real s, t  
-      
-c......The Mandelstam variables/M_1^2
-      real hat_s, hat_t
-      
-c......The boundary of the mandelstam variables
-      real s_min, s_max 
-      
-      real t_plus, t_minus, lambda, tt
-         
-c......Kinematics weight of the accepted event
-       double precision weight
-         
-c......The kinematical variables
-c     .
-c     .PB - B-meson
-c     .P1 - \ell^+
-c     .P2 - \ell^-
-c     .P3 - \gamma
-c     .
-c...... (E, p_x, p_y, p_z)
-      double precision PB(4), P1(4), P2(4), P3(4)
-      
-c......The angle between \gamma and \ell^- directions in RF of B-meson:
-c     .\cos\theta_{23}
-      double precision cos23
-      
-c......The absolute values for 3-momentum of \gamma and \ell^{pm}
-      double precision modP1, modP2, modP3  
-         
-c......Tthe rotation angles
-      real phi2, theta1, phi1
-          
-c......The rotation matrix
-      double precision M(4,4)
-        
-c......The randomase variable
-      real rend
-         
-c......Numbers of the lines for \gamma, \mu^+ and \mu^-
-      integer kline, mpline, mmline
-      
-c......For vertex sconservetion after "call pyrobo(...)"      	 
-      double precision vk(5), vmp(5), vmm(5)    
-      
-c......The counters for the accept/reject
-c     .of the matrix element    
-      integer me_tot, me_accept
-        
-c......End of the variable declarations
-c     .and start of the simulation program
-      
-      go to 100
-                     
-c......The errors information and program terminate
-110   print *,'Fatal ERROR: Matrix_element < 0 or
-     #  Matrix_element > 1 '
-      print *,'Matrix_element =', Matrix_element
-      print *,'t_min =', t_min,
-     #     '       t =', t,
-     #'        t_max =', t_max
-      tt=(M1**2+M2**2+2.*ml**2-s)/2.
-      lambda=(M1**2+M2**2-s)**2-4.*M1**2*M2**2
-      lambda=SQRT(1.-4.*(ml**2)/s)*SQRT(lambda)/2.      
-      t_plus=tt+lambda
-      t_minus=tt-lambda
-      print *,'t_min(s) =', t_minus,
-     #     '          t =', t,
-     #'        t_max(s) =', t_plus
-      print *,'s_min =', s_min,
-     #     '       s =', s,
-     #'        s_max =', s_max
-      print *,'    G =', weight,
-     #'   M1 =', M1,'   M2 =', M2, '   ml =', ml      
-      print *, 'By!'
-      STOP
-120   print *,'Fatal ERROR: s_min > s_max'
-      print *,'s_min =', s_min, '   s_max =', s_max
-      print *,'   M1 =', M1, '   M2 =', M2,'   ml =', ml
-      print *, 'By!'
-      STOP
-130   print *,'Fatal ERROR: t_min > t_max'
-      print *,'t_min =', t_min, '   t_max =', t_max
-      print *,'   M1 =', M1, '   M2 =', M2,'   ml =', ml
-      print *, 'By!'
-      STOP
-150   print *,'Fatal ERROR: modPi^2 < 0'  
-      print *,'modP1 =', modP1, '   modP2 =', modP2,
-     #'   modP3 =', modP3
-      print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2, '   ml =', ml
-      print *, 'By!'
-      STOP
-160   print *,'Fatal ERROR: abs(cos23) > 1'
-      print *,'cos23 =', cos23
-      print *,'modP1 =', modP1, '   modP2 =', modP2,
-     #'   modP3 =', modP3
-      print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2, '   ml =', ml
-      print *, 'By!'
-      STOP
-180   print *,'Fatal ERROR: modP2**2-P2(2)**2) < 0'
-       print *,'s =', s, '   t =', t, '   M1 =', M1,
-     #'   M2 =', M2, '   ml =', ml
-      print *, 'By!'
-      STOP     
-500   print *,'  '
-      print *,'********************************************'
-      print *,'**                                        **'
-      print *,'**         NO B-MESON DECAY !!!           **'
-      print *,'**                                        **'
-      print *,'********************************************'
-      print *,'   '
-      print *,'jkf =', jkf
-      print *,'KF = k(jkf,2) =',k(jkf,2)
-      print *,'k(jkf,3) =',k(jkf,3)
-      print *,'k(jkf,4) =',k(jkf,4)
-      print *,'k(jkf,5) =',k(jkf,5)
-      print *,'   ' 
-      print *,'PxB=p(jkf,1) =',p(jkf,1)
-      print *,'PyB=p(jkf,2) =',p(jkf,2)
-      print *,'PzB=p(jkf,3) =',p(jkf,3)
-      print *,' EB=p(jkf,4) =',p(jkf,4)
-      print *,' MB=p(jkf,5) =',p(jkf,5)
-      print *,'   '
-      go to 600
-      
-c......Start of the generation procedure
-100   continue
-c      print *,'      '
-c      print *,' In MATRIX_and_KINEMATICS '
-c      print *,'      '      
-      
-      res_swch=n_res_swch
-      ias=n_ias
-      Nf=n_Nf
-      M1=n_M1 
-      M2=n_M2   
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-            
-      me_tot=0
-      me_accept=0
-      
-10    continue
-c      print *,' 10    continue '
-      
-c      print *,' Nf =', Nf
-c      print *,' M1 =', M1
-c      print *,' M2 =', M2
-c      print *,' mt =', mt
-c      print *,' Mw =', Mw
-c      print *,' ml =', ml
-      
-      
-      s_min=4.*(ml**2)
-      s_max=(M1-M2)**2
-      if(s_min.GT.s_max) go to 120
-      
-c......Chose of the random "s"
-c      rend=RNDM(-1)
-      rend=PYR(0)   
-      s=(s_max-s_min)*rend+s_min
-      hat_s=s/M1**2   
-      
-      t_min=(M2+ml)**2
-      t_max=(M1-ml)**2
-      if(t_min.GT.t_max) go to 130
-                  
-c......Chose of the random "t"
-c      rend=RNDM(-1)
-      rend=PYR(0)
-      t=(t_max-t_min)*rend+t_min
-      hat_t=t/M1**2
-        
-      me_tot=me_tot+1      
-              
-c......Accept or reject this case in (s,t)-plane?
-      weight=gf(DBLE(s),DBLE(t),DBLE(M1**2),
-     #DBLE(ml**2),DBLE(ml**2),DBLE(M2**2))
-      if(weight.GT.0.D0) go to 10
-            
-          
-         
-c ...........................................................................
-c     .......................................................................
-c     ..                                                                   ..
-c     ..              THE NORMALISE MATRIX ELEMENT                         ..
-c     ..	    for B\to\gamma\ell^+\ell^- decay			   ..
-c     ..								   ..
-c     ..       See the file matrix_for_fortran_b2gmmv101.F 	           ..
-c     ..								   ..
-c     .......................................................................
-c     .......................................................................
-c     ..                                                                   ..
-c     ..    model --  NOT used in this program                             ..
-c     ..                                                                   ..
-c     .. res_swch --  switching parametr:                                  ..
-c     ..          res_swch=0 -- switch OFF the resonant contribution,      ..
-c     ..          res_swch=1 -- switch ON the resonant contribution;       ..
-c     ..                                                                   ..
-c     ..      ias -- switching parametr for for Lms[]                      ..
-c     ..                                   in the function As(...):        ..
-c     ..          ias = 0   --  Lms=min Lms,                               ..
-c     ..          ias = 1   --  the mean value,                            ..
-c     ..          ias = 2   --  Lms=max Lms;                               ..
-c     ..							           ..
-c     ..   hat_s --  q^{2}/M1^{2}=s/M1^{2};				   ..
-c     ..   hat_t --  t/M1^{2};  					   ..
-c     ..      M1 --  mass of the B -- meson, GeV;			   ..
-c     ..      M2 --  mass of foton, GeV;		   ..
-c     ..      mt --  the mass of t-quark, GeV;  			   ..
-c     ..      Mw --  the mass of W-meson, GeV;  			   ..
-c     ..      ml --  the lepton mass, GeV;				   ..
-c     ..      Nf --  number of "effective" flavours ( Nf=5 for b-quark);   ..
-c     ..             the number of the collors = 3;			   ..
-c     .. 								   ..
-c     .......................................................................
-c............................................................................
-      call m2fortran_gmm(hat_s, hat_t)
-      Matrix_element=n_Matrix2
-      
-c......The cut on the foton mass (min. energy)
-      if(Matrix_element.EQ.(-13.0)) go to 10
-      
-c......The errors control
-      if(Matrix_element.LT.0.0) go to 110
-      if(Matrix_element.GT.1.0) go to 110
-        
-c......Accept or reject this case according matrix element?
-c      rend=RNDM(-1)
-      rend=PYR(0)
-      if(rend.GT.Matrix_element) go to 10
-      me_accept=me_accept+1
-         
-c      print *,'         ' 
-c      print *,'         '
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'**                                             **'
-c      print *,'**   THE ACCSEPTION OF THE MATRIX ELEMENT      **'
-c      print *,'**                                             **'
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'          '
-c      print *,'M1 =', M1,'   M2 =', M2,'   ml =', ml
-c      print *,'          '
-c      print *,'s =', s,'   t =', t
-c      print *,'s_min =', s_min,'   s_max =', s_max
-c      print *,'t_min(s) =', t_min,'   t_max(s) =', t_max
-c      print *,'          '      
-      print *,'Matrix_element =', Matrix_element
-c      print *,'          '
-c      print *,'The number of the total events    =', me_tot
-c      print *,'The number of the accepted events =', me_accept   
-c      print *,'The mumber of the rejected events =', me_tot-me_accept
-c      print *,'           '
-      
-c......***********************************************************************
-c      *                                                                     *
-c      *                  Start of the kinematics bloc                       *
-c      *                                                                     *
-c......***********************************************************************
-      
-c.......Initial configuration in the (X,Y) plane
-      
-c      . for B^0_s - meson
-      PB(1)=DBLE(M1)
-      PB(2)=0.D0
-      PB(3)=0.D0
-      PB(4)=0.D0
-      
-c      . for \gamma
-
-      P3(1)=DBLE((M1**2+M2**2-s)/(2.*M1))
-      P3(2)=DSQRT(P3(1)**2-DBLE(M2**2))
-      P3(3)=0.D0
-      P3(4)=0.D0
-      modP3=P3(2)
-        
-c      . for \ell^+ and \ell^-
-      P1(1)=DBLE((M1**2+ml**2-t)/(2.*M1))
-      P2(1)=DBLE((s+t-M2**2-ml**2)/(2.*M1))
-      
-      if((P1(1)**2-DBLE(ml**2)).LT.0.D0) go to 150
-      if((P2(1)**2-DBLE(ml**2)).LT.0.D0) go to 150
-      if((P3(1)**2-DBLE(M2**2)).LT.0.D0) go to 150
-      
-      modP1=DSQRT(P1(1)**2-DBLE(ml**2))
-      modP2=DSQRT(P2(1)**2-DBLE(ml**2))        
-      
-c      . \cos\theta_{23}
-      cos23=DBLE(M2**2+ml**2+2.*P2(1)*P3(1)-t)/(2.D0*modP2*modP3)
-      if(DABS(cos23).GT.1.D0) go to 160
-        
-c      . for \ell^-
-      P2(2)=modP2*cos23
-      if((modP2**2-P2(2)**2).LT.0.D0) go to 180
-      P2(3)=-DSQRT(modP2**2-P2(2)**2) 
-      P2(4)=0.D0
-      
-c      . for \ell^+
-      P1(2)=-P2(2)-P3(2)
-      P1(3)=-P2(3)
-      P1(4)=0.D0
-      
-c......Rotations
-      
-c     .\phi2
-
-c      phi2=2.0*3.1415*RNDM(-1)
-      phi2=2.0*3.1415*PYR(0)
-      
-      call Mzero(M)
-      M(1,1)=1.D0
-      M(2,2)=1.D0
-      M(3,3)=DBLE(cos(phi2))
-      M(3,4)=-DBLE(sin(phi2)) 
-      M(4,3)=DBLE(sin(phi2))
-      M(4,4)=DBLE(cos(phi2))
-
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)     
-      
-        
-c     .\theta1
-      
-c      theta1=3.1415*RNDM(-1)
-      theta1=3.1415*PYR(0)
-      
-      call Mzero(M)   
-      M(1,1)=1.D0
-      M(2,2)=DBLE(cos(theta1))
-      M(2,3)=-DBLE(sin(theta1))
-      M(3,2)=DBLE(sin(theta1))
-      M(3,3)=DBLE(cos(theta1))  
-      M(4,4)=1.D0
-      
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)
-
-c      .\phi1
-      
-c      phi1=2.0*3.1415*RNDM(-1)
-      phi1=2.0*3.1415*PYR(0)
-      
-      call Mzero(M)  
-      M(1,1)=1.D0
-      M(2,2)=1.D0
-      M(3,3)=DBLE(cos(phi1)) 
-      M(3,4)=-DBLE(sin(phi1))
-      M(4,3)=DBLE(sin(phi1)) 
-      M(4,4)=DBLE(cos(phi1))
-      
-      call transforme(P1,M)
-      call transforme(P2,M)
-      call transforme(P3,M)
-      
-c      print *,'          '
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' after rotations'
-c      print *, 'EB =', pb(1),'  Etot =', p1(1)+p2(1)+p3(1)
-c      print *, 'pxB =', pb(2),'   pxtot =', p1(2)+p2(2)+p3(2)
-c      print *, 'pyB =', pb(3),'   pytot =', p1(3)+p2(3)+p3(3)
-c      print *, 'pzB =', pb(4),'   pztot =', p1(4)+p2(4)+p3(4)
-c      print *, '              '
-      
-c......*********************************************************
-c      *                                                       *
-c      *                   The PYTHIA part                     *
-c      *                                                       *
-c .....*********************************************************
-      
-c      print *,'       '
-c      print *,' B-meson caracteristics '
-c      print *,jkf,'  KF =',k(jkf,2)
-c      print *,jkf,'  B-vertex: V =', (v(jkf,i),i = 1,5)
-c      print *,'     '
-       
-c......the verifikation of the B-meson decay
-      if(k(jkf,4).EQ.k(jkf,5)) go to 500
-
-c      print *,'  '      
-c      print *,' Decay B^0_d -> D^- tau^+ nu_{tau} '
-c      do jd = k(jkf,4), k(jkf,5)
-c        print *,jd,'  KF =',k(jd,2)
-c        print *,jd,'  vertex:  V =', (v(jd,i),i = 1,5)
-c      enddo
-c      print *,'  '
-c      print *,' Rewrite to decay B^0_d -> gamma mu^+ mu^- '
-       
-
-c......rewrite the decay B^0_d\to\gamma\mu^+\mu^-
-c     .on the place of the decay B^0_d\to D^- \tau^+ \nu_{\tau}
-c     .in the PYTHIA COMMON bloc PYJETS
-      do jd = k(jkf,4), k(jkf,5)
-          	     
-c.........\gamma (22) 
-         if(k(jd,2).eq.22)  then   
-	   
-	   kline = jd
-c	   print *,'kline ident =', kline 
-	     
-c	   print *,jd,'  KF_old =',k(jd,2)  
-	   
-           k(jd,1)=1
-           k(jd,2)=22
-	   k(jd,3)=k(jd,3)
-	   	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0
-	   
-           do i=1,3
-             p(jd,i) = P3(i+1)
-c	     print *,'        i =', i
-c	     print *,'       jd =', jd
-c	     print *,'  P3(i+1) =', P3(i+1)
-c	     print *,'  p(jd,i) =', p(jd,i)
-           enddo
-           p(jd,4) = P3(1)
-           p(jd,5) = DBLE(M2)
-	          
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo	     	   
-	   v(jd,5)=0.D0
-	                 	   	   
-           do i=1,5
-	     vk(i)=v(jd,i)
-	   enddo		   
-           
-c           print *,jd,'  KF_new =',k(jd,2)	      		   
-c           print *,jd,'  foton-vertex: =', (v(jd,i),i = 1,5)	   	   	              
-c           print *,'     '
-	   
-         endif
-                         
-             
-c.........\mu^+ (-13) 
-         if(k(jd,2).eq.(-13))   then
-	 	   
-           mpline = jd
-c           print *,'mpline ident =', mpline 
-                      
-c           print *,jd,'  KF_old =',k(jd,2)
-           k(jd,1)=1
-           k(jd,2)=-13
-           k(jd,3)=k(jd,3)
-	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0 
-           
-	   do i=1,3
-             p(jd,i) = P1(i+1)
-           enddo
-           p(jd,4) = P1(1)
-           p(jd,5) = DBLE(ml)
-	   
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo
-	   v(jd,5)=0.D0
-	   
-	   do i=1,5
-	     vmp(i)=v(jd,i)
-	   enddo 
-	   
-c           print *,jd,'  KF_new =',k(jd,2)
-c           print *,jd,'  mu^+ vertex: =', (v(jd,i),i = 1,5)                        
-c           print *,'     '
-	   
-         endif
-               
-c.........\mu^- (13) 
-         if(k(jd,2).eq.13)   then
-	 
-	   mmline = jd
-c           print *,'mmline ident =', mmline
-                	         
-c           print *,jd,'  KF_old =',k(jd,2)
-           k(jd,1)=1
-           k(jd,2)=13
-           k(jd,3)=k(jd,3)
-	   
-	   if(k(jd,4).NE.0) then
-             call treedel(jd)
-           endif
-	   k(jd,4)=0 
-           k(jd,5)=0 
-           
-	   do i=1,3
-             p(jd,i) = P2(i+1)
-           enddo
-           p(jd,4) = P2(1)
-           p(jd,5) = DBLE(ml)
-	   
-	   do i=1,4
-	     v(jd,i)=v(jd,i)
-	   enddo
-	   v(jd,5)=0.D0
-	   
-	   do i=1,5
-	     vmm(i)=v(jd,i)
-	   enddo
-	   
-c           print *,jd,'  KF_new =',k(jd,2) 
-c           print *,jd,'  mu^- vertex: =', (v(jd,i),i = 1,5)                        
-c           print *,'     '
-	   
-         endif
-                 	                     	  
-      enddo
-      
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' BEFORE the Lorentz boost'
-c      print *, 'EB =',  pb(1),
-c     #'  Etot =',       p(k(jkf,4),4)+p(k(jkf,4)+1,4)+p(k(jkf,4)+2,4)
-c      print *, 'pxB =', pb(2),
-c     #'   pxtot =',     p(k(jkf,4),1)+p(k(jkf,4)+1,1)+p(k(jkf,4)+2,1)
-c      print *, 'pyB =', pb(3),
-c     #'   pytot =',     p(k(jkf,4),2)+p(k(jkf,4)+1,2)+p(k(jkf,4)+2,2)
-c      print *, 'pzB =', pb(4),
-c     #'   pztot =',     p(k(jkf,4),3)+p(k(jkf,4)+1,3)+p(k(jkf,4)+2,3)
-c      print *, '               '
-            
-	    
-c......perform Lorentz boost in the direction
-c     .of B - meson momentum (EB,PxB,PyB,PzB);
-c     .only for final foton and leptons !!!
-      vxb = p(jkf,1)/p(jkf,4)
-      vyb = p(jkf,2)/p(jkf,4)
-      vzb = p(jkf,3)/p(jkf,4)      
-      call pyrobo(k(jkf,4),k(jkf,5),0D0,0D0,vxb,vyb,vzb)
-                               
-c......vertexes determination after "call pyrobo(...)"
-c     .foton
-      do i=1,5
-        v(kline,i)=vk(i)
-      enddo
-c     .\mu^+
-      do i=1,5
-        v(mpline,i)=vmp(i)
-      enddo
-c     .\mu^-
-      do i=1,5
-        v(mmline,i)=vmm(i)
-      enddo            
-                        
-c      print *, 'The examinaton of the 4-moments conservation',
-c     #' AFTER Lorentz boost'
-c      print *, 'EB =',  p(jkf,4),
-c     #'  Etot =',       p(k(jkf,4),4)+p(k(jkf,4)+1,4)+p(k(jkf,4)+2,4)
-c      print *, 'pxB =', p(jkf,1),
-c     #'   pxtot =',     p(k(jkf,4),1)+p(k(jkf,4)+1,1)+p(k(jkf,4)+2,1)
-c      print *, 'pyB =', p(jkf,2),
-c     #'   pytot =',     p(k(jkf,4),2)+p(k(jkf,4)+1,2)+p(k(jkf,4)+2,2)
-c      print *, 'pzB =', p(jkf,3),
-c     #'   pztot =',     p(k(jkf,4),3)+p(k(jkf,4)+1,3)+p(k(jkf,4)+2,3)
-c      print *, '              '
- 
-c      call pylist(2)      
-     
-600   continue
-
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'**                                             **'
-c      print *,'**   THE END OF THE ACCEPTED INFORMATION       **'
-c      print *,'**                                             **'
-c      print *,'*************************************************'
-c      print *,'*************************************************'
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-c      print *,'           '
-      
-      end
-           
-          
-       
diff --git a/Generators/PythiaB/src/matrix_for_fortran_KstMuMu.F b/Generators/PythiaB/src/matrix_for_fortran_KstMuMu.F
deleted file mode 100644
index e4e68f80c454eb5b0e10f822dbda1f7aa67b1679..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/matrix_for_fortran_KstMuMu.F
+++ /dev/null
@@ -1,746 +0,0 @@
-c     30.10.2002;  31.10.2002;  01.11.2002;  03.04.2003;
-c     06.04.2003;  08.04.2003;  13.05.2003;  21.05.2003;  
-c     30.06.2003;  03.07.2003;  07.07.2003;  01.09.2006;
-                                    
-c     ***********************************************
-c     *********************************************** 
-c     **     THE MATRIX ELEMENT CALCULATIONS       **
-c     **                                           **
-c     **              Version 1.06                 **
-c     **                                           **
-c     ***********************************************
-c     ***********************************************       
-      
-      
-      subroutine myG2_KstMuMu(q2,qm2,qm1,mu,mc)
-     
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml  
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-                                
-      real q2, M1, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 	    
-                
-      real GG2 
-      real hat_s 
-      real gg, ggplus 
-      real c7, RReC9eff, IImC9eff, c10
-      
-      n_G2 = 0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-                         
-      hat_s=q2/M1**2 
-                 
-      call myg_KstMuMu(model,q2,M1,n_M2)
-      gg=n_g 
-      call mygplus_KstMuMu(model,q2,n_M1)
-      ggplus=n_gplus 
-                      
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      c7=2.0*(qm2+qm1)*c7/M1 
-                          
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff) 
-                            
-      call myC10a(mt,Mw,c10) 
-                    
-      GG2=(c10*M1*gg)**2 
-      GG2=GG2+(RReC9eff*M1*gg-c7*ggplus/hat_s)**2 
-      GG2=GG2+(IImC9eff*M1*gg)**2 
-      
-      n_G2=GG2
- 
-      return 
-      end
-      
-      
-      
-      subroutine myF2_KstMuMu(q2,M2,qm2,qm1,mu,mc)
-     
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml    
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-      
-      real q2, M1, M2, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/   
-	     
-      real FF2 
-      real hat_s, hat_r 
-      real ff, BB0 
-      real c7, RReC9eff, IImC9eff, c10 
-      
-      n_F2 = 0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-          
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2 
-         
-      call myf_KstMuMu(model,q2,M1,n_M2)
-      ff=n_f 
-      call myB0_KstMuMu(model,q2,M1,n_M2)
-      BB0=n_B0 
-          
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      c7=2.0*(qm2-qm1)*c7*(1.0-hat_r)/M1 
-          
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff) 
-           
-      call myC10a(mt,Mw,c10) 
-                            
-      FF2=(c10*ff/M1)**2 
-      FF2=FF2+(RReC9eff*ff/M1-c7*BB0/hat_s)**2 
-      FF2=FF2+(IImC9eff*ff/M1)**2 
-            
-      n_F2=FF2
-                                          
-      return
-      end
-            
-      
-      
-      subroutine myHplus2_KstMuMu(q2,qm2,qm1,mu,mc)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-             	
-      real q2, M1, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf      
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/    
-      
-      real HH2 
-      real hat_s 
-      real aaplus, BBplus 
-      real c7, RReC9eff, IImC9eff, c10 
-      
-      n_Hplus2 = 0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-                                 
-      hat_s=q2/M1**2 
-                           
-      call myaplus_KstMuMu(model,q2,M1,n_M2)
-      aaplus=n_aplus 
-      call myBplus_KstMuMu(model,q2,M1,n_M2)
-      BBplus=n_Bplus 
-                      
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7      
-      c7=2.0*(qm2-qm1)*c7/M1 
-                  
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff) 
-                      
-      call myC10a(mt,Mw,c10) 
-                   
-      HH2=(c10*M1*aaplus)**2 
-      HH2=HH2+(RReC9eff*M1*aaplus-c7*BBplus/hat_s)**2 
-      HH2=HH2+(IImC9eff*M1*aaplus)**2 
-      
-      n_Hplus2=HH2
-                 
-      return 
-      end
-      
-      
-      
-      subroutine myR_KstMuMu(q2,M2,qm2,qm1,mu,mc)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus     
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-                                	   
-      real q2, M1, M2, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf 
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 
-                                 
-      real Re 
-      real hat_s, hat_r 
-      real ff, BB0, aaplus, BBplus 
-      real c7, RReC9eff, IImC9eff, c10 
-      
-      n_R = 0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-                          
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2 
-                     
-      call myf_KstMuMu(model,q2,M1,n_M2)
-      ff=n_f 
-      call myB0_KstMuMu(model,q2,M1,n_M2)
-      BB0=n_B0
-      call myaplus_KstMuMu(model,q2,M1,n_M2)
-      aaplus=n_aplus 
-      call myBplus_KstMuMu(model,q2,M1,n_M2)
-      BBplus=n_Bplus 
-                
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      c7=2.0*(qm2-qm1)*c7/M1 
-                        
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff) 
-                      
-      call myC10a(mt,Mw,c10) 
-                   
-      Re=(RReC9eff*ff/M1-c7*BB0*(1.0-hat_r)/hat_s)*
-     #(RReC9eff*M1*aaplus-c7*BBplus/hat_s) 
-      Re=Re+(IImC9eff**2)*ff*aaplus 
-      Re=Re+(c10**2)*ff*aaplus 
-      
-      n_R=Re
-                        
-      return
-      end
-      
-      
-      
-      subroutine myR1_KstMuMu(q2,M2,qm2,qm1,mu,mc)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus      
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-                                    
-      real q2, M1, M2, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 
-                                  	     
-      real Re1 
-      real hat_s, hat_r 
-      real gg, ggplus, ff, BB0 
-      real c7, RReC9eff, c10 
-      
-      n_R1 = 0.0
-      Re1=0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf 
-      
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2 
-                                                                  
-      call myg_KstMuMu(model,q2,M1,n_M2)
-      gg=n_g 
-      
-      call mygplus_KstMuMu(model,q2,M1)
-      ggplus=n_gplus 
-      
-      call myf_KstMuMu(model,q2,M1,n_M2)
-      ff=n_f 
-      
-      call myB0_KstMuMu(model,q2,M1,n_M2)
-      BB0=n_B0  
-                      
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      c7=2.0*c7/M1 ! correct formula 
-                        
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-                   
-      call myC10a(mt,Mw,c10)
-              
-      Re1=(RReC9eff*M1*gg-c7*(qm2+qm1)*ggplus/hat_s)*(c10*ff/M1)
-      Re1=Re1+(RReC9eff*ff/M1-c7*(qm2-qm1)*(1.0-hat_r)*BB0/hat_s)
-     #*c10*M1*gg 
-      
-      n_R1=Re1
-               
-      return
-      end
-      
-      
-      
-      subroutine mybeta1_KstMuMu(q2, t, M2, qm2, qm1, mu, mc)
-     
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1      
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2   
-      SAVE /nik2/,/nik3/,/nik4/
-                                                        
-      real q2, t, M1, M2, qm2, qm1, mu, mc, ml
-      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/
-      real  n_beta1, n_beta2, n_dV, n_Matrix2  ! /nik4/
-                           	  
-      real bbeta1 
-      real hat_s, hat_r, hat_t, hat_ml 
-      real GG2, FF2, HH2, Re 
-      real PPi, LLambda 
-      
-      n_beta1 = 0.0
-      
-      M1=n_M1
-      ml=n_ml 
-                             
-      hat_s=q2/M1**2 
-      hat_t=t/M1**2 
-      hat_r=(M2/M1)**2 
-      hat_ml=(ml/M1)**2 
-                              
-      call myG2_KstMuMu(q2,qm2,qm1,mu,mc)
-      GG2=n_G2
-       
-      call myF2_KstMuMu(q2,M2,qm2,qm1,mu,mc)
-      FF2=n_F2 
-      
-      call myHplus2_KstMuMu(q2,qm2,qm1,mu,mc)
-      HH2=n_Hplus2 
-      
-      call myR_KstMuMu(q2,M2,qm2,qm1,mu,mc)
-      Re=n_R
-       
-      LLambda = 0.0                             
-      call myLambda(1.0,hat_s,hat_r,LLambda)
-
-c     . call myPi(hat_s,hat_t,hat_r,hat_ml,PPi) 
-      PPi=(hat_t-1.0)*(hat_t-hat_r)+hat_s*hat_t 
-      PPi=PPi+hat_ml*(1.0+hat_r+hat_ml-hat_s-2.0*hat_t) 
-                                   
-      bbeta1=((hat_s+2.0*hat_ml)*LLambda+2.0*hat_s*PPi)*GG2 
-      bbeta1=bbeta1+(hat_s+2.0*hat_ml-PPi/(2.0*hat_r))*FF2 
-      bbeta1=bbeta1-LLambda*PPi*HH2/(2.0*hat_r) 
-      bbeta1=bbeta1+(hat_s-1.0+hat_r)*PPi*Re/hat_r 
-      
-      n_beta1=bbeta1
-       
-      return 
-      end
-      
-      
-                         
-      subroutine mybeta2_KstMuMu(q2, t, M2, qm2, qm1, mu, mc)
-      
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2
-      SAVE /nik2/,/nik3/,/nik4/
-                           	       
-      real q2, t, M1, M2, qm2, qm1, mu, mc, ml
-      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/
-      real n_beta1, n_beta2, n_dV, n_Matrix2       ! /nik4/
-                                       
-      real bbeta2 
-      real hat_s, hat_r, hat_t, hat_ml 
-      real Re1 
-      
-      n_beta2 = 0.0
-               
-      M1=n_M1
-      ml=n_ml      
-                              
-      hat_s=q2/M1**2 
-      hat_t=t/M1**2 
-      hat_r=(M2/M1)**2 
-      hat_ml=(ml/M1)**2
-                           
-      call myR1_KstMuMu(q2,M2,qm2,qm1,mu,mc)    
-      Re1=n_R1
-                    
-      bbeta2=2.0*hat_s*(2.0*hat_t+hat_s-hat_r-1.0-2.0*hat_ml)
-      bbeta2=bbeta2*Re1 
-        
-      n_beta2=bbeta2
-                  
-      return
-      end
-                           
-                     
-               
-      subroutine mydeltaV_KstMuMu(q2,M2) 
-                   
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2
-      SAVE /nikff/,/nik2/,/nik4/
-     
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/ 
-                                                                    
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real  n_beta1, n_beta2, n_dV, n_Matrix2  ! /nik4/ 
-                                 
-      real q2, M1, M2, mt, Mw
-      integer model      
-                              
-      real ddV 
-      real hat_s, hat_r 
-      real gg, ff, aaplus, aaminus 
-      real c10 
-      real LLambda
-      
-      n_dV = 0.0
-      
-      model=n_model
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw 
-                         
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2 
-
-c      print *,'                 '
-c      print *,' BEGIN subroutine mydeltaV '
-c      print *,' model =',model 
-c      print *,'     M1 =', M1
-c      print *,'     M2 =', M2
-c      print *,'   n_M2 =', n_M2
-c      print *,'     mt =', mt
-c      print *,'     Mw =', Mw
-c      print *,'     q2 =', q2
-c      print *, ' hat_s =', hat_s
-c      print *, ' hat_r =', hat_r      
-       
-c      print *,' call myLambda(...) in madeltaV(...)'
-      LLambda = 0.0                 
-      call myLambda(1.0,hat_s,hat_r,LLambda)
-c      print *, '   Lambda =', LLambda 
-                     
-      call myg_KstMuMu(model,q2,M1,n_M2)
-      gg=n_g 
-      call myf_KstMuMu(model,q2,M1,n_M2)
-      ff=n_f 
-      call myaplus_KstMuMu(model,q2,M1,n_M2)
-      aaplus=n_aplus 
-      call myaminus_KstMuMu(model,q2,M1,n_M2)
-      aaminus=n_aminus 
-                   
-      call myC10a(mt,Mw,c10) 
-                   
-      ddV=(-2.0)*(gg*M1)**2-3.0*((ff/M1)**2)/LLambda 
-      ddV=ddV+(2.0*(1.0+hat_r)-hat_s)*(aaplus*M1)**2/(4.0*hat_r) 
-      ddV=ddV+hat_s*(aaminus*M1)**2/(4.0*hat_r) 
-      ddV=ddV+(ff*aaplus+ff*aaminus)/(2.0*hat_r) 
-      ddV=ddV+(1.0-hat_r)*aaplus*aaminus*(M1**2)/(2.0*hat_r) 
-      ddV=ddV*LLambda*(c10**2)/2.0 
-      
-c      print *,'  Lambda =', LLambda
-c      print *,'     c10 =', c10
-c      print *,'      gg =', gg
-c      print *,'      ff =', ff
-c      print *,'  aaplus =', aaplus
-c      print *,' aaminus =', aaminus
-        
-c      print *,'    model =',model 
-c      print *,'       M1 =', M1
-c      print *,'       M2 =', M2
-c      print *,'     n_M2 =', n_M2
-c      print *,'       mt =', mt
-c      print *,'       Mw =', Mw
-c      print *,'      ddV =', ddV      
-c      print *,' END subroutine mydeltaV '
-c      print *,'                '
-      
-      n_dV=ddV
-               
-      return 
-      end
-      
-      
-      
-c     ******************************************************************** 
-c     ******************************************************************** 
-c     *                                                                  * 
-c     *		       SQUARE of MATRIX ELEMENT                          * 
-c     *               for B\to K^* ell^+ell^- decay.                     * 
-c     *                                                                  * 
-c     *                     by formula (33) in                           * 
-c     *    D.Melikhov, N.Nikitin, S.Simula, Phys.rev.D57, p.6814 (1998). * 
-c     *                                                                  * 
-c     *------------------------------------------------------------------* 
-c     *------------------------------------------------------------------* 
-c     *                                                                  * 
-c     *    model --  switching parametr of the model for form factor     * 
-c     *              calculations:                                       * 
-c     *     model=1 - CQM-MS (D.Melikhov, B.Stech, Phys.Rev.D62,         * 
-c     *    				       p.014006, 2000 ),         * 
-c     *     model=2 - LCSR (P.Ball,V.M.Braun, Phys.Rev.D58,              * 
-c     *                                          p.094016, 1998),        * 
-c     *     model=3 - CQM-MNS (D.Melikhov, N.Nikitin and S.Simula,       * 
-c     *                              Phys.Rev.D57, p.6814, 1998);        * 
-c     *                                                                  * 
-c     * res_swch --  switching parametr:                                 * 
-c     *          res_swch=0 -- switch OFF the resonant contribution,     * 
-c     *          res_swch=1 -- switch ON the resonant contribution;      * 
-c     *							                 * 
-c     *      ias -- switching parametr for for Lms[]                     * 
-c     *                                   in the function myAs(...):     * 
-c     *          ias = 0   --  Lms=min Lms,                              * 
-c     *          ias = 1   --  the mean value,                           * 
-c     *          ias = 2   --  Lms=max Lms;                              * 
-c     *                                                                  * 
-c     *    hat_s --  q^2/M1^2=s/M1^2;                                    * 
-c     *    hat_t --  t/M1^{2};                                           * 
-c     *       M1 --  mass of the B -- meson, GeV;                        *
-c     *     n_M2 -- in COMMON /nik2/ - mass of the REAL K^* - meson, GeV *
-c     *       M2 --  mass of the VIRTUAL K^* - meson, GeV;               *
-c     *              M2.NE.n_M2 !!!;                                     *
-c     *  For the form-factor calculation we use n_M2 mass!!!!!           * 
-c     *       mt --  the mass of t-quark, GeV;			         * 
-c     *       Mw --  the mass of W-meson, GeV;	                         * 
-c     *       ml --  the lepton mass, GeV;                               * 
-c     *       Nf --  number of "effective" flavours ( Nf=5 for b-quark); * 
-c     *       the number of the collors = 3;                             * 
-c     *                                                                  *
-c     ********************************************************************
-c     ******************************************************************** 
-      subroutine m2fortran_KstMuMu(hat_s,hat_t,M2)
-            
-      dimension RMM2_max(3), RMM2_max_resonant(3), qm2(3), 
-     #qm1(3), qmc(3) 
-
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2
-      SAVE /nik1/,/nik2/,/nik4/
-      
-c......The COMMON blocs parameters
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real  n_beta1, n_beta2, n_dV, n_Matrix2  ! /nik4/
-                             	 
-      real hat_s, hat_t, M1, M2, mt, Mw, ml 
-      integer model, res_swch, ias, Nf 
-                  
-      real bbeta1, bbeta2, ddV
-      integer i 
-            
-c     .the mandelstam variables; q2=q^2=s 
-      real q2, t
-
-c     .m_l^2/M_1^2 */ 
-      real hat_ml
-c     .mu - scale parameter, GeV  
-      real mu 
-      
-c     .the value of the matrix element 
-      real MM2 
-c     .the maximum value of the nonresonant matrix elemet MM2
-      real RMM2_max
-c     .the maximum value of the resonant matrix elemet MM2 
-      real RMM2_max_resonant
-            
-c     .b-quark mass ( in the B -- meson M1), GeV  
-      real qm2 
-c     .qm1 --  mass of the light quark, on wich m2 transition   
-c     .in light meson M2, GeV 				
-      real qm1 
-c     .mc --  c-quark mass, GeV 
-      real qmc 
-            
-      model=n_model 
-      res_swch=n_res_swch
-      ias=n_ias
-      Nf=n_Nf
-      M1=n_M1 
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      
-      n_beta1 = 0.0 
-      n_beta2 = 0.0 
-      n_dV = 0.0 
-      n_Matrix2 = 0.0
-           
-      q2=hat_s*(M1**2) 
-      t=hat_t*(M1**2) 
-      hat_ml=(ml/M1)**2 
-              
-      RMM2_max_resonant(1) = 10000000.0 
-      RMM2_max_resonant(2) = 100000.0
-      RMM2_max_resonant(3) = 100000.0
-          
-      qm2(1) = 4.85
-      qm2(2) = 4.8
-      qm2(3) = 5.0
-               
-      qm1(1) = 0.35
-      qm1(2) = 0.15
-      qm1(3) = 0.42
-                     
-      qmc(1) = 1.45
-      qmc(2) = 1.4
-      qmc(3) = 1.65 
-               
-      i=model 
-      mu=qm2(i)
-            
-         
-c     .inicialisation of the MM2_max()          
-      if(model.EQ.1) then
-         RMM2_max(1) = 5926886.0   ! for e^+e^-
-         RMM2_max(2) = 66.5        ! for \mu^+\mu^-
-         RMM2_max(3) = 10.4        ! for \tau^+\tau^-
-      endif      
-      if(model.EQ.2) then
-         RMM2_max(1) = 2309049.8   ! for e^+e^-
-         RMM2_max(2) = 62.4        ! for \mu^+\mu^-
-         RMM2_max(3) = 13.3        ! for \tau^+\tau^-
-      endif
-      if(model.EQ.3) then
-         RMM2_max(1)= 3502320.0    ! for e^+e^-
-         RMM2_max(2)= 58.0         ! for \mu^+\mu^-
-         RMM2_max(3)= 10.3         ! for \tau^+\tau^-
-      endif      
-            
-c     .The matrix element calculation                   
-      call mybeta1_KstMuMu(q2,t,M2,qm2(i),qm1(i),mu,qmc(i))
-      bbeta1=n_beta1
-      
-      call mybeta2_KstMuMu(q2,t,M2,qm2(i),qm1(i),mu,qmc(i))
-      bbeta2=n_beta2
-
-      call mydeltaV_KstMuMu(q2,M2)
-      ddV=n_dV
-                  
-      MM2=bbeta1+bbeta2+4.0*hat_ml*ddV
-         
-c     .what RMM2_max[i] to selected?  
-      if(ml.LT.0.09) then
-         i=1
-      endif
-      if(ml.LT.0.2) then
-         i=2
-      endif	 
-      if(ml.GE.0.2) then
-         i=3
-      endif		 
-                     
-c     .The normalisation of the matrix element
-      if(res_swch.EQ.0) then
-         MM2=MM2/RMM2_max(i)
-      endif
-      if(res_swch.EQ.1) then
-         MM2=MM2/RMM2_max_resonant(i)
-      endif
-                     
-      if(MM2.LT.0.0) then
-         print *,'             '
-         print *,' subroutine m2fortran_KstMuMu '
-         print *,' Fatal ERROR: the square of the normalise 
-     #matrix element < 0'
-         print *,' hat_s =', hat_s, '   hat_t =', hat_t
-         print *,' MM2 =', MM2
-         print *,' By!'
-         print *,'             '
-         MM2=-1.0
-         STOP 
-      endif	  
-                   
-      if(MM2.GT.1.0) then
-         print *,'             '
-         print *,' subroutine m2fortran_KstMuMu '      		   
-         print *,' Fatal ERROR: the square of the normalise 
-     #matrix element > 1'
-         print *,' hat_s =', hat_s, '   hat_t =', hat_t
-         print *,' MM2 =', MM2
-         print *,' By!'
-         print *,'             '
-         MM2=-2.0
-         STOP
-      endif	      	 
-      
-      n_Matrix2=MM2
-      
-c      print *,' ******************************** '
-c      print *,' *                              * '
-c      print *,' *   n_Matrix2 =', n_Matrix2,  '* '    
-c      print *,' *   END subroutine m2fortran   * '
-c      print *,' *                              * '
-c      print *,' ******************************** '
-c      print *,'                                  '
-                
-      return
-      end 
diff --git a/Generators/PythiaB/src/matrix_for_fortran_PhiMuMu.F b/Generators/PythiaB/src/matrix_for_fortran_PhiMuMu.F
deleted file mode 100644
index f3fd6b90aeb1ac65fa590f47cb5092144eca7d52..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/matrix_for_fortran_PhiMuMu.F
+++ /dev/null
@@ -1,741 +0,0 @@
-c     09.03.2005  01.09.2006
-                                    
-c     ***********************************************
-c     *********************************************** 
-c     **     THE MATRIX ELEMENT CALCULATIONS       **
-c     **                                           **
-c     **              Version 1.01                 **
-c     **                   for                     **
-c     **           B^0_s -> phi^0mu^+mu^-          **
-c     **                                           **
-c     ***********************************************
-c     ***********************************************       
-      
-      
-      subroutine myG2_PhiMuMu(q2,qm2,qm1,mu,mc)
-     
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml  
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-                                
-      real q2, M1, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 	    
-                
-      real GG2 
-      real hat_s 
-      real gg, ggplus 
-      real c7, RReC9eff, IImC9eff, c10
-      
-      n_G2 = 0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-                         
-      hat_s=q2/M1**2 
-                 
-      call myg_PhiMuMu(model,q2,M1,n_M2)
-      gg=n_g 
-      call mygplus_PhiMuMu(model,q2,n_M1)
-      ggplus=n_gplus 
-                      
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      c7=2.0*(qm2+qm1)*c7/M1 
-                          
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff) 
-                            
-      call myC10a(mt,Mw,c10) 
-                    
-      GG2=(c10*M1*gg)**2 
-      GG2=GG2+(RReC9eff*M1*gg-c7*ggplus/hat_s)**2 
-      GG2=GG2+(IImC9eff*M1*gg)**2 
-      
-      n_G2=GG2
- 
-      return 
-      end
-      
-      
-      
-      subroutine myF2_PhiMuMu(q2,M2,qm2,qm1,mu,mc)
-     
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml    
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-      
-      real q2, M1, M2, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/   
-	     
-      real FF2 
-      real hat_s, hat_r 
-      real ff, BB0 
-      real c7, RReC9eff, IImC9eff, c10 
-      
-      n_F2 = 0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-          
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2 
-         
-      call myf_PhiMuMu(model,q2,M1,n_M2)
-      ff=n_f 
-      call myB0_PhiMuMu(model,q2,M1,n_M2)
-      BB0=n_B0 
-          
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      c7=2.0*(qm2-qm1)*c7*(1.0-hat_r)/M1 
-          
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff) 
-           
-      call myC10a(mt,Mw,c10) 
-                            
-      FF2=(c10*ff/M1)**2 
-      FF2=FF2+(RReC9eff*ff/M1-c7*BB0/hat_s)**2 
-      FF2=FF2+(IImC9eff*ff/M1)**2 
-            
-      n_F2=FF2
-                                          
-      return
-      end
-            
-      
-      
-      subroutine myHplus2_PhiMuMu(q2,qm2,qm1,mu,mc)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-             	
-      real q2, M1, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf      
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/    
-      
-      real HH2 
-      real hat_s 
-      real aaplus, BBplus 
-      real c7, RReC9eff, IImC9eff, c10 
-      
-      n_Hplus2 = 0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-                                 
-      hat_s=q2/M1**2 
-                           
-      call myaplus_PhiMuMu(model,q2,M1,n_M2)
-      aaplus=n_aplus 
-      call myBplus_PhiMuMu(model,q2,M1,n_M2)
-      BBplus=n_Bplus 
-                      
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7      
-      c7=2.0*(qm2-qm1)*c7/M1 
-                  
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff) 
-                      
-      call myC10a(mt,Mw,c10) 
-                   
-      HH2=(c10*M1*aaplus)**2 
-      HH2=HH2+(RReC9eff*M1*aaplus-c7*BBplus/hat_s)**2 
-      HH2=HH2+(IImC9eff*M1*aaplus)**2 
-      
-      n_Hplus2=HH2
-                 
-      return 
-      end
-      
-      
-      
-      subroutine myR_PhiMuMu(q2,M2,qm2,qm1,mu,mc)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus     
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-                                	   
-      real q2, M1, M2, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf 
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 
-                                 
-      real Re 
-      real hat_s, hat_r 
-      real ff, BB0, aaplus, BBplus 
-      real c7, RReC9eff, IImC9eff, c10 
-      
-      n_R = 0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-                          
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2 
-                     
-      call myf_PhiMuMu(model,q2,M1,n_M2)
-      ff=n_f 
-      call myB0_PhiMuMu(model,q2,M1,n_M2)
-      BB0=n_B0
-      call myaplus_PhiMuMu(model,q2,M1,n_M2)
-      aaplus=n_aplus 
-      call myBplus_PhiMuMu(model,q2,M1,n_M2)
-      BBplus=n_Bplus 
-                
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      c7=2.0*(qm2-qm1)*c7/M1 
-                        
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff) 
-                      
-      call myC10a(mt,Mw,c10) 
-                   
-      Re=(RReC9eff*ff/M1-c7*BB0*(1.0-hat_r)/hat_s)*
-     #(RReC9eff*M1*aaplus-c7*BBplus/hat_s) 
-      Re=Re+(IImC9eff**2)*ff*aaplus 
-      Re=Re+(c10**2)*ff*aaplus 
-      
-      n_R=Re
-                        
-      return
-      end
-      
-      
-      
-      subroutine myR1_PhiMuMu(q2,M2,qm2,qm1,mu,mc)
-      
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus      
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff/,/nik1/,/nik2/,/nik3/,/nikwc/
-                                    
-      real q2, M1, M2, qm2, qm1, mu, mc, mt, Mw, ml
-      integer model, ias, Nf
-      
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 
-                                  	     
-      real Re1 
-      real hat_s, hat_r 
-      real gg, ggplus, ff, BB0 
-      real c7, RReC9eff, c10 
-      
-      n_R1 = 0.0
-      Re1=0.0
-      
-      model=n_model
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf 
-      
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2 
-                                                                  
-      call myg_PhiMuMu(model,q2,M1,n_M2)
-      gg=n_g 
-      
-      call mygplus_PhiMuMu(model,q2,M1)
-      ggplus=n_gplus 
-      
-      call myf_PhiMuMu(model,q2,M1,n_M2)
-      ff=n_f 
-      
-      call myB0_PhiMuMu(model,q2,M1,n_M2)
-      BB0=n_B0  
-                      
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      c7=2.0*c7/M1 ! correct formula 
-      
-                  
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-                   
-      call myC10a(mt,Mw,c10)
-              
-      Re1=(RReC9eff*M1*gg-c7*(qm2+qm1)*ggplus/hat_s)*(c10*ff/M1)
-      Re1=Re1+(RReC9eff*ff/M1-c7*(qm2-qm1)*(1.0-hat_r)*BB0/hat_s)
-     #*c10*M1*gg 
-      
-      n_R1=Re1
-               
-      return
-      end
-      
-      
-      
-      subroutine mybeta1_PhiMuMu(q2, t, M2, qm2, qm1, mu, mc)
-     
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1      
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2   
-      SAVE /nik2/,/nik3/,/nik4/
-                                                        
-      real q2, t, M1, M2, qm2, qm1, mu, mc, ml
-      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/
-      real  n_beta1, n_beta2, n_dV, n_Matrix2  ! /nik4/
-                           	  
-      real bbeta1 
-      real hat_s, hat_r, hat_t, hat_ml 
-      real GG2, FF2, HH2, Re 
-      real PPi, LLambda 
-      
-      n_beta1 = 0.0
-      
-      M1=n_M1
-      ml=n_ml 
-                             
-      hat_s=q2/M1**2 
-      hat_t=t/M1**2 
-      hat_r=(M2/M1)**2 
-      hat_ml=(ml/M1)**2 
-                              
-      call myG2_PhiMuMu(q2,qm2,qm1,mu,mc)
-      GG2=n_G2
-       
-      call myF2_PhiMuMu(q2,M2,qm2,qm1,mu,mc)
-      FF2=n_F2 
-      
-      call myHplus2_PhiMuMu(q2,qm2,qm1,mu,mc)
-      HH2=n_Hplus2 
-      
-      call myR_PhiMuMu(q2,M2,qm2,qm1,mu,mc)
-      Re=n_R
-       
-      LLambda = 0.0                             
-      call myLambda(1.0,hat_s,hat_r,LLambda)
-
-c     . call myPi(hat_s,hat_t,hat_r,hat_ml,PPi) 
-      PPi=(hat_t-1.0)*(hat_t-hat_r)+hat_s*hat_t 
-      PPi=PPi+hat_ml*(1.0+hat_r+hat_ml-hat_s-2.0*hat_t) 
-                                   
-      bbeta1=((hat_s+2.0*hat_ml)*LLambda+2.0*hat_s*PPi)*GG2 
-      bbeta1=bbeta1+(hat_s+2.0*hat_ml-PPi/(2.0*hat_r))*FF2 
-      bbeta1=bbeta1-LLambda*PPi*HH2/(2.0*hat_r) 
-      bbeta1=bbeta1+(hat_s-1.0+hat_r)*PPi*Re/hat_r 
-      
-      n_beta1=bbeta1
-       
-      return 
-      end
-      
-      
-                         
-      subroutine mybeta2_PhiMuMu(q2, t, M2, qm2, qm1, mu, mc)
-      
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_G2, n_F2, n_Hplus2, n_R, n_R1
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2
-      SAVE /nik2/,/nik3/,/nik4/
-                           	       
-      real q2, t, M1, M2, qm2, qm1, mu, mc, ml
-      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_G2, n_F2, n_Hplus2, n_R, n_R1     ! /nik3/
-      real n_beta1, n_beta2, n_dV, n_Matrix2       ! /nik4/
-                                       
-      real bbeta2 
-      real hat_s, hat_r, hat_t, hat_ml 
-      real Re1 
-      
-      n_beta2 = 0.0
-               
-      M1=n_M1
-      ml=n_ml      
-                              
-      hat_s=q2/M1**2 
-      hat_t=t/M1**2 
-      hat_r=(M2/M1)**2 
-      hat_ml=(ml/M1)**2
-                           
-      call myR1_PhiMuMu(q2,M2,qm2,qm1,mu,mc)    
-      Re1=n_R1
-                    
-      bbeta2=2.0*hat_s*(2.0*hat_t+hat_s-hat_r-1.0-2.0*hat_ml)
-      bbeta2=bbeta2*Re1 
-        
-      n_beta2=bbeta2
-                  
-      return
-      end
-                           
-                     
-               
-      subroutine mydeltaV_PhiMuMu(q2,M2) 
-                   
-      COMMON /nikff/ n_g,n_f,n_aplus,n_aminus,n_gplus,
-     #n_gminus, n_g0,n_B0, n_Bplus
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2
-      SAVE /nikff/,/nik2/,/nik4/
-     
-      real n_g,n_f,n_aplus,n_aminus,n_gplus    ! /nikff/
-      real n_gminus, n_g0,n_B0, n_Bplus        ! /nikff/ 
-                                                                    
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real  n_beta1, n_beta2, n_dV, n_Matrix2  ! /nik4/ 
-                                 
-      real q2, M1, M2, mt, Mw
-      integer model      
-                              
-      real ddV 
-      real hat_s, hat_r 
-      real gg, ff, aaplus, aaminus 
-      real c10 
-      real LLambda
-      
-      n_dV = 0.0
-      
-      model=n_model
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw 
-                         
-      hat_s=q2/M1**2 
-      hat_r=(M2/M1)**2 
-
-c      print *,'                 '
-c      print *,' BEGIN subroutine mydeltaV '
-c      print *,' model =',model 
-c      print *,'     M1 =', M1
-c      print *,'     M2 =', M2
-c      print *,'   n_M2 =', n_M2
-c      print *,'     mt =', mt
-c      print *,'     Mw =', Mw
-c      print *,'     q2 =', q2
-c      print *, ' hat_s =', hat_s
-c      print *, ' hat_r =', hat_r      
-       
-      LLambda = 0.0                 
-      call myLambda(1.0,hat_s,hat_r,LLambda)
-                     
-      call myg_PhiMuMu(model,q2,M1,n_M2)
-      gg=n_g 
-      call myf_PhiMuMu(model,q2,M1,n_M2)
-      ff=n_f 
-      call myaplus_PhiMuMu(model,q2,M1,n_M2)
-      aaplus=n_aplus 
-      call myaminus_PhiMuMu(model,q2,M1,n_M2)
-      aaminus=n_aminus 
-                   
-      call myC10a(mt,Mw,c10) 
-                   
-      ddV=(-2.0)*(gg*M1)**2-3.0*((ff/M1)**2)/LLambda 
-      ddV=ddV+(2.0*(1.0+hat_r)-hat_s)*(aaplus*M1)**2/(4.0*hat_r) 
-      ddV=ddV+hat_s*(aaminus*M1)**2/(4.0*hat_r) 
-      ddV=ddV+(ff*aaplus+ff*aaminus)/(2.0*hat_r) 
-      ddV=ddV+(1.0-hat_r)*aaplus*aaminus*(M1**2)/(2.0*hat_r) 
-      ddV=ddV*LLambda*(c10**2)/2.0 
-      
-c      print *,'  Lambda =', LLambda
-c      print *,'     c10 =', c10
-c      print *,'      gg =', gg
-c      print *,'      ff =', ff
-c      print *,'  aaplus =', aaplus
-c      print *,' aaminus =', aaminus
-        
-c      print *,'    model =',model 
-c      print *,'       M1 =', M1
-c      print *,'       M2 =', M2
-c      print *,'     n_M2 =', n_M2
-c      print *,'       mt =', mt
-c      print *,'       Mw =', Mw
-c      print *,'      ddV =', ddV      
-c      print *,' END subroutine mydeltaV_PhiMuMu '
-c      print *,'                '
-      
-      n_dV=ddV
-               
-      return 
-      end
-      
-      
-      
-c     ******************************************************************** 
-c     ******************************************************************** 
-c     *                                                                  * 
-c     *		       SQUARE of MATRIX ELEMENT                          * 
-c     *               for B\to K^* ell^+ell^- decay.                     * 
-c     *                                                                  * 
-c     *                     by formula (33) in                           * 
-c     *    D.Melikhov, N.Nikitin, S.Simula, Phys.rev.D57, p.6814 (1998). * 
-c     *                                                                  * 
-c     *------------------------------------------------------------------* 
-c     *------------------------------------------------------------------* 
-c     *                                                                  * 
-c     *    model --  switching parametr of the model for form factor     * 
-c     *              calculations:                                       * 
-c     *     model=1-3 - CQM-MS (D.Melikhov, B.Stech, Phys.Rev.D62,       * 
-c     *    				       p.014006, 2000 ),         * 
-c     *                                                                  * 
-c     * res_swch --  switching parametr:                                 * 
-c     *          res_swch=0 -- switch OFF the resonant contribution,     * 
-c     *          res_swch=1 -- switch ON the resonant contribution;      * 
-c     *							                 * 
-c     *      ias -- switching parametr for for Lms[]                     * 
-c     *                                   in the function myAs(...):     * 
-c     *          ias = 0   --  Lms=min Lms,                              * 
-c     *          ias = 1   --  the mean value,                           * 
-c     *          ias = 2   --  Lms=max Lms;                              * 
-c     *                                                                  * 
-c     *    hat_s --  q^2/M1^2=s/M1^2;                                    * 
-c     *    hat_t --  t/M1^{2};                                           * 
-c     *       M1 --  mass of the B -- meson, GeV;                        *
-c     *     n_M2 -- in COMMON /nik2/ - mass of the REAL K^* - meson, GeV *
-c     *       M2 --  mass of the VIRTUAL K^* - meson, GeV;               *
-c     *              M2.NE.n_M2 !!!;                                     *
-c     *  For the form-factor calculation we use n_M2 mass!!!!!           * 
-c     *       mt --  the mass of t-quark, GeV;			         * 
-c     *       Mw --  the mass of W-meson, GeV;	                         * 
-c     *       ml --  the lepton mass, GeV;                               * 
-c     *       Nf --  number of "effective" flavours ( Nf=5 for b-quark); * 
-c     *       the number of the collors = 3;                             * 
-c     *                                                                  *
-c     ********************************************************************
-c     ******************************************************************** 
-      subroutine m2fortran_PhiMuMu(hat_s,hat_t,M2)
-            
-      dimension RMM2_max(3), RMM2_max_resonant(3), qm2(3), 
-     #qm1(3), qmc(3) 
-
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik4/ n_beta1, n_beta2, n_dV, n_Matrix2
-      SAVE /nik1/,/nik2/,/nik4/
-      
-c......The COMMON blocs parameters
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real  n_beta1, n_beta2, n_dV, n_Matrix2  ! /nik4/
-                             	 
-      real hat_s, hat_t, M1, M2, mt, Mw, ml 
-      integer model, res_swch, ias, Nf 
-                  
-      real bbeta1, bbeta2, ddV
-      integer i 
-            
-c     .the mandelstam variables; q2=q^2=s 
-      real q2, t
-
-c     .m_l^2/M_1^2 */ 
-      real hat_ml
-c     .mu - scale parameter, GeV  
-      real mu 
-      
-c     .the value of the matrix element 
-      real MM2 
-c     .the maximum value of the nonresonant matrix elemet MM2
-      real RMM2_max
-c     .the maximum value of the resonant matrix elemet MM2 
-      real RMM2_max_resonant
-            
-c     .b-quark mass ( in the B -- meson M1), GeV  
-      real qm2 
-c     .qm1 --  mass of the light quark, on wich m2 transition   
-c     .in light meson M2, GeV 				
-      real qm1 
-c     .mc --  c-quark mass, GeV 
-      real qmc 
-            
-      model=n_model 
-      res_swch=n_res_swch
-      ias=n_ias
-      Nf=n_Nf
-      M1=n_M1 
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      
-      n_beta1 = 0.0 
-      n_beta2 = 0.0 
-      n_dV = 0.0 
-      n_Matrix2 = 0.0
-           
-      q2=hat_s*(M1**2) 
-      t=hat_t*(M1**2) 
-      hat_ml=(ml/M1)**2 
-              
-      RMM2_max_resonant(1) = 10000000.0 
-      RMM2_max_resonant(2) = 10000000.0
-      RMM2_max_resonant(3) = 10000000.0
-          
-      qm2(1) = 4.85
-      qm2(2) = 4.85
-      qm2(3) = 4.85
-               
-      qm1(1) = 0.35
-      qm1(2) = 0.35
-      qm1(3) = 0.35
-                     
-      qmc(1) = 1.45
-      qmc(2) = 1.45
-      qmc(3) = 1.45 
-               
-      i=model 
-      mu=qm2(i)
-            
-         
-c     .inicialisation of the MM2_max()          
-      if(model.EQ.1) then
-         RMM2_max(1) = 7000000.0   ! for e^+e^-
-         RMM2_max(2) = 70.0        ! for \mu^+\mu^-
-         RMM2_max(3) = 15.0        ! for \tau^+\tau^-
-      endif      
-      if(model.EQ.2) then
-         RMM2_max(1) = 7000000.0   ! for e^+e^-
-         RMM2_max(2) = 70.0        ! for \mu^+\mu^-
-         RMM2_max(3) = 15.0        ! for \tau^+\tau^-
-      endif
-      if(model.EQ.3) then
-         RMM2_max(1)= 7000000.0    ! for e^+e^-
-         RMM2_max(2)= 70.0         ! for \mu^+\mu^-
-         RMM2_max(3)= 15.0         ! for \tau^+\tau^-
-      endif      
-            
-c     .The matrix element calculation                   
-      call mybeta1_PhiMuMu(q2,t,M2,qm2(i),qm1(i),mu,qmc(i))
-      bbeta1=n_beta1
-      
-      call mybeta2_PhiMuMu(q2,t,M2,qm2(i),qm1(i),mu,qmc(i))
-      bbeta2=n_beta2
-
-      call mydeltaV_PhiMuMu(q2,M2)
-      ddV=n_dV
-                  
-      MM2=bbeta1+bbeta2+4.0*hat_ml*ddV
-         
-c     .what RMM2_max[i] to selected?  
-      if(ml.LT.0.09) then
-         i=1
-      endif
-      if(ml.LT.0.2) then
-         i=2
-      endif	 
-      if(ml.GE.0.2) then
-         i=3
-      endif		 
-                     
-c     .The normalisation of the matrix element
-      if(res_swch.EQ.0) then
-         MM2=MM2/RMM2_max(i)
-      endif
-      if(res_swch.EQ.1) then
-         MM2=MM2/RMM2_max_resonant(i)
-      endif
-                     
-      if(MM2.LT.0.0) then
-         print *,'             '
-         print *,' subroutine m2fortran_PhiMuMu'
-         print *,' Fatal ERROR: the square of the normalise 
-     #matrix element < 0'
-         print *,' hat_s =', hat_s, '   hat_t =', hat_t
-         print *,' MM2 =', MM2
-         print *,' By!'
-         print *,'             '
-         MM2=-1.0
-         STOP 
-      endif	  
-                   
-      if(MM2.GT.1.0) then
-         print *,'             '
-         print *,' subroutine m2fortran_PhiMuMu'      		   
-         print *,' Fatal ERROR: the square of the normalise 
-     #matrix element > 1'
-         print *,' hat_s =', hat_s, '   hat_t =', hat_t
-         print *,' MM2 =', MM2
-         print *,' By!'
-         print *,'             '
-         MM2=-2.0
-         STOP
-      endif	      	 
-      
-      n_Matrix2=MM2
-      
-c      print *,' ******************************** '
-c      print *,' *                              * '
-c      print *,' *   n_Matrix2 =', n_Matrix2,  '* '    
-c      print *,' *   END subroutine m2fortran   * '
-c      print *,' *                              * '
-c      print *,' ******************************** '
-c      print *,'                                  '
-                
-      return
-      end 
diff --git a/Generators/PythiaB/src/matrix_for_fortran_b2gmm.F b/Generators/PythiaB/src/matrix_for_fortran_b2gmm.F
deleted file mode 100644
index 90c46c7d0cafd6f06b9bd485cd0b2bcd6fb39d1c..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/matrix_for_fortran_b2gmm.F
+++ /dev/null
@@ -1,973 +0,0 @@
-c     09.02.2004   17.02.2004   19.02.2004
-c     20.02.2004   28.03.2004   29.03.2004
-c     30.03.2004   06.05.2004   18.10.2005
-c     01.11.2005   15.05.2007
-                                      
-c     ***************************************************
-c     *************************************************** 
-c     **       THE MATRIX ELEMENT CALCULATIONS         **
-c     **                                               **
-c     **   for the decay B^0_{d,s}\to\gamma\mu^+\mu^-  **
-c     **                                               **
-c     **                Version 1.061                  **
-c     **                                               **
-c     ***************************************************
-c     ***************************************************       
-      
-      
-                           
-c       **********************************************
-c       *                                            *
-c       *  Scaled energy variable "x" on p.034002-6  *
-c       *                                            *     
-c       *       by F.Kruger and D.Melikhov,          * 
-c       *       Phys.Rev. D67, 034002 (2003).        * 
-c       *                                            *
-c       **********************************************
-      subroutine myx(q2,x)
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      SAVE   /nikff2/,/nik2/
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real q2, x, Eg, M1
-      
-      M1=n_M1
-      
-      call q2toEg(q2)
-      Eg=n_Eg
-      
-      x=2.0*Eg/M1
-      
-      return
-      end
-      
-      
-c     **********************************************
-c     *                                            *
-c     *       For \cos\theta calculation           *
-c     *                                            *
-c     **********************************************
-      subroutine myzeta(q2,t,zeta)
-      
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      SAVE   /nik2/
-      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real M1, ml, hat_s, hat_t, hat_ml
-      real q2,t, zeta
-      
-      M1=n_M1
-      ml=n_ml
-      
-      hat_ml=ml/M1
-      hat_s=q2/(M1**2)
-      hat_t=t/(M1**2)
-            
-      zeta=1.0+2.*(hat_ml**2)-hat_s-2.0*hat_t
-      
-c      print *, ' hat_s =', hat_s, '  hat_t =', hat_t,
-c     #'   hat_ml =', hat_ml,'   zeta =', zeta 
-            
-      return
-      end             
-      
-      
-c     **********************************************
-c     *                                            *
-c     *   Normalise Mandelstam variable "u/M_1^2"  *
-c     *                                            *
-c     **********************************************
-      subroutine myhatu(hat_s,hat_t,hat_u)
-      
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      SAVE   /nik2/
-      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real hat_s, hat_t, hat_u, hat_ml, M1, ml
-      
-      M1=n_M1
-      ml=n_ml
-            
-      hat_ml=ml/M1            
-      hat_u=1+2.0*(hat_ml**2)-hat_s-hat_t
-            
-      return
-      end               
-      
-c     **********************************************
-c     *                                            *
-c     *             Subroutine F_1                 *
-c     *                                            * 
-c     *       by F.Kruger and D.Melikhov,          * 
-c     *       Phys.Rev. D67, 034002 (2003),        *
-c     *              equation (36).                *   
-c     *                                            *
-c     **********************************************             
-      subroutine myF1_gmm(q2,qm2,mu,mc)
-     
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_F1, n_F2, n_B0, n_B1, n_B2  
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      COMMON /nikffreim/ n_ReTildeFtv, n_ImTildeFtv, 
-     #n_ReTildeFta, n_ImTildeFta
-      SAVE /nikff2/,/nik1/,/nik2/,/nik3/,/nikwc/,/nikffreim/
-                                
-      real q2, M1, qm2, mu, mc, mt, Mw, ml
-      integer ias, Nf
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/   
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_F1, n_F2, n_B0, n_B1, n_B2        ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-      real n_ReTildeFtv, n_ImTildeFtv, 
-     #n_ReTildeFta, n_ImTildeFta   ! /nikffreim/ 	    
-                
-      real FF1 
-      real hat_s, hat_qm2 
-      real Fv, ReTildeFtv, ImTildeFtv 
-      real c7, RReC9eff, IImC9eff, c10
-      
-c      print *, ' In subroutine myF1(q2,qm2,mu,mc) '
-      
-      FF1 = 0.0
-      
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-      
-      hat_qm2=qm2/M1
-      hat_s=q2/(M1**2)                   
-                    
-      call ffs_cqm_km_gmm(q2,1)
-      Fv=n_ffs_cqm 
-                     
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7                           
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff)                             
-      call myC10a(mt,Mw,c10) 
-      
-c      print *, ' RReC9eff =', RReC9eff,
-c     #' IImC9eff =', IImC9eff
-c      print *, ' c10 =', c10, ' c7 =', c7
-c      print *, ' Fv =', Fv
-
-      call SubReTildeFtv(q2,qm2)
-      ReTildeFtv=n_ReTildeFtv
-c      print *, ' n_ReTildeFtv =', n_ReTildeFtv
-      
-      call SubImTildeFtv(q2,qm2)
-      ImTildeFtv=n_ImTildeFtv
-c      print *, ' n_ImTildeFtv =', n_ImTildeFtv
-                    
-      FF1=(RReC9eff**2+IImC9eff**2+c10**2)*(Fv**2)
-      FF1=FF1+(ReTildeFtv**2+ImTildeFtv**2)*(2.0*c7*hat_qm2/hat_s)**2
-      FF1=FF1+4.0*(RReC9eff*ReTildeFtv+IImC9eff*ImTildeFtv)
-     #*hat_qm2*c7*Fv/hat_s
-            
-      n_F1=FF1
- 
-      return 
-      end
-      
-
-
-c     **********************************************
-c     *                                            *
-c     *             Subroutine F_2                 *
-c     *                                            * 
-c     *       by F.Kruger and D.Melikhov,          * 
-c     *       Phys.Rev. D67, 034002 (2003),        *
-c     *              equation (36).                *   
-c     *                                            *
-c     **********************************************             
-      subroutine myF2_gmm(q2,qm2,mu,mc)
-     
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_F1, n_F2, n_B0, n_B1, n_B2  
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      COMMON /nikffreim/ n_ReTildeFtv, n_ImTildeFtv, 
-     #n_ReTildeFta, n_ImTildeFta
-      SAVE /nikff2/,/nik1/,/nik2/,/nik3/,/nikwc/,/nikffreim/
-                                
-      real q2, M1, qm2, mu, mc, mt, Mw
-      integer ias, Nf
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/      
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_F1, n_F2, n_B0, n_B1, n_B2        ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-       real n_ReTildeFtv, n_ImTildeFtv, 
-     #n_ReTildeFta, n_ImTildeFta   ! /nikffreim/	    
-                
-      real FF2 
-      real hat_s, hat_qm2 
-      real Fa 
-      real ReTildeFta, ImTildeFta 
-      real c7, RReC9eff, IImC9eff, c10
-
-c      print *,'  In  subroutine myF2(q2,qm2,mu,mc) '
-
-      FF2 = 0.0
-      
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-      
-      hat_qm2=qm2/M1
-      hat_s=q2/(M1**2)                   
-      
-      call ffs_cqm_km_gmm(q2,3)
-      Fa=n_ffs_cqm 
-                         
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7                           
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call ImC9eff(q2,qm2,mu,mc,IImC9eff)                             
-      call myC10a(mt,Mw,c10) 
-      
-c      print *, RReC9eff, IImC9eff, c10
-      
-      call SubReTildeFta(q2,qm2)
-      ReTildeFta=n_ReTildeFta
-      call SubImTildeFta(q2,qm2)
-      ImTildeFta=n_ImTildeFta
-      
-c      print *, ReTildeFta, ImTildeFta
-                    
-      FF2=(RReC9eff**2+IImC9eff**2+c10**2)*(Fa**2)
-c      print *, '  FF2 =', FF2
-      FF2=FF2+(ReTildeFta**2+ImTildeFta**2)*(2.0*c7*hat_qm2/hat_s)**2
-c      print *, '  FF2 =', FF2
-      FF2=FF2+4.0*(RReC9eff*ReTildeFta+IImC9eff*ImTildeFta)
-     #*hat_qm2*c7*Fa/hat_s
-c      print *, '  FF2 =', FF2
-            
-      n_F2=FF2
- 
-      return 
-      end
-
-      
-c     **********************************************
-c     *                                            *
-c     *             Subroutine B_0                 *
-c     *                                            * 
-c     *       by F.Kruger and D.Melikhov,          * 
-c     *       Phys.Rev. D67, 034002 (2003),        *
-c     *              equation (35).                *   
-c     *                                            *
-c     **********************************************             
-      subroutine myB0_gmm(q2,qm2,mu,mc)
-     
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_F1, n_F2, n_B0, n_B1, n_B2  
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      SAVE /nikff2/,/nik1/,/nik2/,/nik3/,/nikwc/
-                                
-      real q2, M1, qm2, mu, mc, mt, Mw, ml
-      integer ias, Nf
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/     
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_F1, n_F2, n_B0, n_B1, n_B2        ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/ 	    
-                
-      real BB0 
-      real hat_s, hat_qm2, hat_ml 
-      real F1,F2,Fv,Fa 
-      real c10
-      
-
-      BB0 = 0.0
-      
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      Nf=n_Nf
-      
-      hat_qm2=qm2/M1
-      hat_ml=ml/M1
-      hat_s=q2/(M1**2)                    
-      
-c      print *, ' In subroutine myB0_gmm(q2,qm2,mu,mc) '
-                                   
-      call myF1_gmm(q2,qm2,mu,mc)
-      F1=n_F1 
-c      print *,' F1 =', F1
-              
-      call myF2_gmm(q2,qm2,mu,mc)
-      F2=n_F2
-c      print *,' F2 =', F2
-      
-      call ffs_cqm_km_gmm(q2,1)
-      Fv=n_ffs_cqm
-c      print *,' Fv =', Fv
-      
-      call ffs_cqm_km_gmm(q2,3)
-      Fa=n_ffs_cqm
-c      print *,' Fa =', Fa
-            
-      call myC10a(mt,Mw,c10)
-c      print *,' c10 =', c10
-      
-      BB0=(hat_s+4.*(hat_ml**2))*(F1+F2)
-      BB0=BB0-8.*((c10*hat_ml)**2)*(Fv**2+Fa**2)
-             
-      n_B0=BB0
-c      print *,' n_B0 =', n_B0
-       
-      return 
-      end
-      
-
-
-
-c     **********************************************
-c     *                                            *
-c     *             Subroutine B_1                 *
-c     *                                            * 
-c     *       by F.Kruger and D.Melikhov,          * 
-c     *       Phys.Rev. D67, 034002 (2003),        *
-c     *              equation (35).                *   
-c     *                                            *
-c     ********************************************** 
-      subroutine myB1_gmm(q2,qm2,mu,mc)
-     
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_F1, n_F2, n_B0, n_B1, n_B2  
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      COMMON /nikffreim/ n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta
-      SAVE /nikff2/,/nik1/,/nik2/,/nik3/,/nikwc/,/nikffreim/
-                                
-      real q2, M1, qm2, mu, mc, mt, Mw
-      integer ias, Nf
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/       
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_F1, n_F2, n_B0, n_B1, n_B2        ! /nik3/ 
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-      real n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta   ! /nikffreim/ 	    
-                
-      real BB1 
-c      real hat_s, hat_qm2, hat_ml 
-      real hat_s, hat_qm2
-      real Fv, ReFtv, Fa, ReFta 
-      real c7, RReC9eff, c10
-      
-
-      BB1 = 0.0
-      
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      Nf=n_Nf
-      
-      hat_qm2=qm2/M1
-      hat_s=q2/(M1**2) 
-      
-      call ffs_cqm_km_gmm(q2,1)
-      Fv=n_ffs_cqm
-      call SubReTildeFtv(q2,qm2) 
-      ReFtv=n_ReTildeFtv 
-      call ffs_cqm_km_gmm(q2,3)
-      Fa=n_ffs_cqm
-      call SubReTildeFta(q2,qm2)
-      ReFta=n_ReTildeFta
-                      
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff)  
-      call myC10a(mt,Mw,c10)
-      
-      BB1=c10*RReC9eff*hat_s*Fv*Fa
-      BB1=BB1+c10*c7*hat_qm2*(Fv*ReFta+Fa*ReFtv)
-      BB1=BB1*8.0 
-            
-      n_B1=BB1
- 
-      return 
-      end
-
-
-
-c     **********************************************
-c     *                                            *
-c     *             Subroutine B_2                 *
-c     *                                            * 
-c     *       by F.Kruger and D.Melikhov,          * 
-c     *       Phys.Rev. D67, 034002 (2003),        *
-c     *              equation (35).                *   
-c     *                                            *
-c     ********************************************** 
-      subroutine myB2_gmm(q2,qm2,mu,mc)
-     
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_F1, n_F2, n_B0, n_B1, n_B2  
-      SAVE /nikff2/,/nik2/,/nik3/
-                                
-      real q2, M1, qm2, mu, mc, mt, Mw
-     
-      real n_Eg, n_ffs_cqm                     ! /nikff2/ 
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_F1, n_F2, n_B0, n_B1, n_B2        ! /nik3/ 	    
-                
-      real hat_s 
-      real F1,F2 
-            
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      
-      hat_s=q2/(M1**2) 
-      
-      call myF1_gmm(q2,qm2,mu,mc)
-      F1=n_F1
-      call myF2_gmm(q2,qm2,mu,mc)
-      F2=n_F2 
-      
-      n_B2=hat_s*(F1+F2)
-            
-      return
-      end
-
-
-c     ************************************************
-c     *                                              *
-c     *           Subroutine Bremstrahlung           *
-c     *                                              * 
-c     *      Kvadrat modula tormoznogo izlucheniya   *
-c     *      leptonov v konechnom sostoyaniimuonov   *
-c     *                                              *
-c     *    q2 - q^2=s - mandelstamovskiy invariant   *
-c     *    t          -  mandelstamovskiy invariant  *
-c     *    niknum = 1 - tochnaya formula             *
-c     *             2 - priblijeniye miagkih fotonov *
-c     *                                              *
-c     ************************************************ 
-
-      subroutine myBremstrahlung(q2,t,niknum)
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nikbi/ n_Bslg, n_Intrf, n_I1, n_I2 
-      SAVE /nikff2/,/nik2/,/nikbi/
-                                
-      real q2, t, M1, mt, Mw, ml
-      integer niknum 
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_Bslg, n_Intrf, n_I1, n_I2         ! /nikbi/ 	    
-                
-      real Bslg
-      real mult1, mult2
-      real hat_s, hat_t, hat_u, hat_ml, xx 
-      real c10
-      real fB 
-      
-      Bslg = 0.0
-      
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-            
-      hat_ml=ml/M1      
-      hat_s=q2/(M1**2)                 ! \hat s
-      hat_t=t/(M1**2)                  ! \hat t
-                  
-      call myhatu(hat_s,hat_t,hat_u)   ! \hat u
-      call myx(q2,xx)
-      
-      call myC10a(mt,Mw,c10)
-      call ffs_cqm_km_gmm(q2,0)               
-      fB=-n_ffs_cqm   ! po moim opredeleniam fB < 0 
-      
-      mult1=(hat_u-hat_ml**2)*(hat_t-hat_ml**2)
-      
-c......TOCHNAYA formula dlia kvadrata modula tormoznogo
-c      izlucheniya leptonov (m_{ell}) v konechnom sostoyanii 
-      if(niknum.EQ.1) then 
-c        print *,' Tochnaya formula tormozn. izluch.', niknum    
-        
-	mult2=mult1/2.0-hat_ml**2
-      
-        Bslg=hat_s/mult1+mult2*(xx**2)/(mult1**2)      
-        Bslg=Bslg*((8.0*hat_ml*fB*c10/M1)**2)
-      
-        n_Bslg = Bslg
-      endif 
-      
-c......Priblijeniye miagkih fotonov  dlia kvadrata modula tormoznogo
-c      izlucheniya leptonov (m_{ell}) v konechnom sostoyanii 
-      if(niknum.EQ.2) then      
-c        print *,' Priblijeniye miagkih fotonov', niknum
-	
-	mult2=(xx*hat_ml/mult1)**2
-	
-	Bslg=hat_s/mult1-mult2
-	Bslg=Bslg*((8.0*hat_ml*fB*c10/M1)**2)
-	
-	n_Bslg = Bslg        
-      endif     
-           
-      return
-      end
-      
-      
-c     ************************************************** 
-c     *                                                *
-c     *            subroutine myI1(q2,t)               *
-c     *                                                *
-c     *             I1=C^2_{10A}*F_A*\xi               *
-c     *                                                *
-c     *    q2 - q^2=s - mandelstamovskiy invariant     *
-c     *    t          -  mandelstamovskiy invariant    * 
-c     *                                                *
-c     **************************************************           
-      subroutine myI1(q2,t)
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nikbi/ n_Bslg, n_Intrf, n_I1, n_I2 
-      SAVE   /nikff2/,/nik2/,/nikbi/
-                                
-      real q2, t
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/       
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_Bslg, n_Intrf, n_I1, n_I2         ! /nikbi/	    
-                
-      real I1
-      real mt, Mw
-      real Fa, c10, zzeta
-      
-      I1 = 0.0
-      
-      mt=n_mt
-      Mw=n_Mw
-            
-      call myzeta(q2,t,zzeta) 
-      
-      call ffs_cqm_km_gmm(q2,3)   
-      Fa=n_ffs_cqm
-                      
-      call myC10a(mt,Mw,c10)
-      
-      I1=zzeta*Fa*(c10**2)
-      
-      n_I1=I1
-      
-      return
-      end
-
-
-
-c     **************************************************
-c     *                                                *
-c     *          subroutine myI2(q2,qm2,mu,mc)         *
-c     *                                                *
-c     *  I2=2*\hat m_b*C_{7\gamma}*C_{10A}*Re(F_{TV})+ *
-c     *     C_{10A}*F_V*Re(C_{9V})                     *
-c     *                                                *
-c     *    q2  - q^2=s - mandelstamovskiy invariant    *
-c     *    qm2 - massa b-quarka                        *
-c     *    mu  - masshtabniy parametr = 5 GeV          *
-c     *    mc  - massa c-quarka                        *  
-c     *                                                *
-c     **************************************************
-      subroutine myI2(q2,qm2,mu,mc)
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nikbi/ n_Bslg, n_Intrf, n_I1, n_I2 
-      COMMON /nikwc/ n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7
-      COMMON /nikffreim/ n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta
-      SAVE /nikff2/,/nik1/,/nik2/,/nikbi/,/nikwc/,/nikffreim/
-                                
-      real q2, M1, qm2, mu, mc, mt, Mw
-      integer ias
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/       
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_Bslg, n_Intrf, n_I1, n_I2         ! /nikbi/
-      real n_as, n_c1, n_c2, n_c3, n_c4, n_c5, n_c6, n_c7 ! /nikwc/
-      real n_ReTildeFtv, n_ImTildeFtv, n_ReTildeFta, n_ImTildeFta  ! /nikffreim	    
-                
-      real I2 
-      real hat_s, hat_qm2 
-      real Fv,ReFtv 
-      real c7, RReC9eff, c10
-      
-      I2 = 0.0
-      
-      ias=n_ias
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      
-      hat_qm2=qm2/M1
-      hat_s=q2/(M1**2) 
-      
-      call ffs_cqm_km_gmm(q2,1)
-      Fv=n_ffs_cqm
-      call SubReTildeFtv(q2,qm2)
-      ReFtv=n_ReTildeFtv
-                      
-      call myC7gamma(mu,Mw,mt,Nf,ias)
-      c7=n_c7 
-      call ReC9eff(q2,qm2,mu,mc,RReC9eff) 
-      call myC10a(mt,Mw,c10)
-      
-      I2=2.0*c7*c10*hat_qm2*ReFtv/hat_s+RReC9eff*c10*Fv
-      
-      n_I2=I2
-      
-c      print *, '  c7 =', c7
-c      print *, ' c10 =', c10
-c      print *, ' hat_qm2 =', hat_qm2
-c      print *, ' Fv =', Fv
-c      print *, ' ReFtv =', ReFtv
-c      print *, ' hat_s =', hat_s
-c      print *, ' RReC9eff =', RReC9eff
-c      print *, ' I2 =', I2
-      
-      
-      
-      return
-      end
-
-
-c     ************************************************
-c     *                                              *
-c     *          Subroutine Interference             *
-c     *                                              * 
-c     *      Interferencionniy chlen mejdu dvumia    *
-c     *                   vkladami                   *
-c     *                                              *
-c     *    niknum = 1 - tochnaya formula             *
-c     *             2 - priblijeniye miagkih fotonov *
-c     *                                              *
-c     ************************************************ 
-      subroutine myInterference(q2,t,qm2,mu,mc,niknum)
-      
-      COMMON /nikff2/ n_Eg, n_ffs_cqm 
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nikbi/ n_Bslg, n_Intrf, n_I1, n_I2 
-      SAVE /nikff2/,/nik2/,/nikbi/
-                                
-      real q2, t, M1, qm2, mu, mc, mt, Mw, ml
-      integer niknum 
-      
-      real n_Eg, n_ffs_cqm                     ! /nikff2/      
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_Bslg, n_Intrf, n_I1, n_I2         ! /nikbi/ 	    
-                
-      real Intrf, I1, I2
-      real mult1
-c      real hat_s, hat_t, hat_u, hat_ml, hat_qm2, xx
-      real hat_s, hat_t, hat_u, hat_ml, xx
-      real fB 
-      
-      Intrf = 0.0
-      
-      M1=n_M1
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      
-      hat_ml=ml/M1      
-      hat_s=q2/(M1**2)
-      hat_t=t/(M1**2)
-            
-      call myhatu(hat_s,hat_t,hat_u)
-      call myx(q2,xx)
-            
-c      print *,' hat_u =', hat_u, ' xx =', xx, '  zzeta  =',  zzeta  
-
-c......TOCHNAYA formula dlia kvadrata modula tormoznogo
-c      izlucheniya leptonov (m_{ell}) v konechnom sostoyanii 
-      if(niknum.EQ.1) then       
-        mult1=(hat_u-hat_ml**2)*(hat_t-hat_ml**2)
-            
-        call myI1(q2,t)  
-        I1=n_I1
-c        print *, ' mult1 =', mult1, '  mult2 =',  mult2
-c        print *, ' I1 =', I1
-            
-        call myI2(q2,qm2,mu,mc)   
-        I2=n_I2
-c        print *, ' mult1 =', mult1, '  mult2 =',  mult2
-c        print *, ' I2 =', I2
-      
-        Intrf=(xx**2)*(xx*I2+I1)/mult1
-      
-        call ffs_cqm_km_gmm(q2,0)    
-        fB=-n_ffs_cqm    ! po moim opredeleniya fB < 0 
-      
-        Intrf=0.0-Intrf*(hat_ml**2)*(16.0*fB/M1)
-      
-        n_Intrf = Intrf 
-c        print *,' n_Intrf =', n_Intrf 
-      endif
-      
-c......Priblijeniye miagkih fotonov  dlia kvadrata modula tormoznogo
-c      izlucheniya leptonov (m_{ell}) v konechnom sostoyanii 
-      if(niknum.EQ.2) then      
-c        print *,' Priblijeniye miagkih fotonov', niknum	
-	n_Intrf = 0.0	
-      endif           
-           
-      return
-      end            
-      
-c     ******************************************************************** 
-c     ******************************************************************** 
-c     *                                                                  * 
-c     *		       SQUARE of MATRIX ELEMENT                          * 
-c     *             for B\to\gamma\ell^+\ell^- decay.                    * 
-c     *                                                                  * 
-c     *                     by formula (34) in                           * 
-c     *   by F.Kruger and D.Melikhov, Phys.Rev. D67, 034002 (2003).      * 
-c     *                                                                  * 
-c     *------------------------------------------------------------------* 
-c     *------------------------------------------------------------------* 
-c     *                                                                  * 
-c     *    model -- not used in this matrix element;                     *
-c     *                                                                  * 
-c     * res_swch -- switching parametr:                                  * 
-c     *          res_swch=0 -- switch OFF the resonant contribution,     * 
-c     *          res_swch=1 -- switch ON the resonant contribution;      * 
-c     *							                 * 
-c     *      ias -- switching parametr for for Lms[]                     * 
-c     *                                   in the function myAs(...):     * 
-c     *          ias = 0   --  Lms=min Lms,                              * 
-c     *          ias = 1   --  the mean value,                           * 
-c     *          ias = 2   --  Lms=max Lms;                              * 
-c     *                                                                  * 
-c     *    hat_s --  q^2/M1^2=s/M1^2;                                    * 
-c     *    hat_t --  t/M1^{2};                                           * 
-c     *       M1 --  mass of the B -- meson, GeV;                        *
-c     *       mt --  the mass of t-quark, GeV;			         * 
-c     *       Mw --  the mass of W-meson, GeV;	                         * 
-c     *       ml --  the lepton mass, GeV;                               * 
-c     *       Nf --  number of "effective" flavours ( Nf=5 for b-quark); * 
-c     *       the number of the collors = 3;                             * 
-c     *                                                                  *
-c     ********************************************************************
-c     ******************************************************************** 
-      subroutine m2fortran_gmm(hat_s,hat_t)
-      
-      dimension RMM2_max(3), RMM2_max_resonant(3)
-      
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-      COMMON /nik3/ n_F1, n_F2, n_B0, n_B1, n_B2
-      COMMON /nik4/ n_Matrix2
-      COMMON /nikbi/ n_Bslg, n_Intrf, n_I1, n_I2 
-      COMMON /nikff2/ n_Eg, n_ffs_cqm
-      SAVE /nik1/,/nik2/,/nik3/,/nik4/,/nikbi/,/nikff2/
-            
-c......The COMMON blocs parameters      
-      integer n_model, n_res_swch, n_ias, n_Nf ! /nik1/
-      real n_M1, n_M2, n_mt, n_Mw, n_ml        ! /nik2/
-      real n_F1, n_F2, n_B0, n_B1, n_B2        ! /nik3/
-      real n_Matrix2                           ! /nik4/
-      real n_Bslg, n_Intrf, n_I1, n_I2         ! /nikbi/
-      real n_Eg, n_ffs_cqm                     ! /nikff2/ 
-                            	 
-      real hat_s, hat_t, M1, M2, mt, Mw, ml, mu 
-      integer res_swch, ias, Nf
-      real BB0, BB1, BB2, Bslg, Intrf 
-      real xx, zzeta 
-                  
-            
-c     .the mandelstam variables; q2=q^2=s 
-      real q2, t
-      
-c     .the maximum value of the nonresonant matrix elemet MM2
-      real RMM2_max
-c     .the maximum value of the resonant matrix elemet MM2 
-      real RMM2_max_resonant
-            
-c     .b-quark mass ( in the B -- meson M1), GeV  
-      real qm2 
-c     .mc --  c-quark mass, GeV 
-      real qmc 
-
-c      print *, ' In subroutine m2fortran(hat_s,hat_t) '
-            
-      res_swch=n_res_swch
-      ias=n_ias
-      Nf=n_Nf
-      M1=n_M1
-      M2=n_M2 
-      mt=n_mt
-      Mw=n_Mw
-      ml=n_ml
-      
-      n_B0=0.0 
-      n_B1=0.0
-      n_B2=0.0 
-      n_Matrix2=-13.0
-                     
-      q2=hat_s*(M1**2) 
-      t=hat_t*(M1**2) 
-      hat_ml=ml/M1 
-      
-c......The cut on the foton mass (min. energy)
-      call q2toEg(q2)
-      if(n_Eg.LT.M2) go to 13
-                  
-      RMM2_max_resonant(1) = 10000000.0 
-      RMM2_max_resonant(2) = 100000.0
-      RMM2_max_resonant(3) = 100000.0
-          
-      qm2 = 4.85
-      qmc = 1.45
-      mu=qm2
-                     
-c     .inicialisation of the MM2_max()      
-      RMM2_max(1) = 8900000.0    ! for e^+e^-       (ot baldi!!!)
-      RMM2_max(2) = 25.0         ! for \mu^+\mu^-   (provereno!!!)
-      RMM2_max(3) = 4000.0       ! for \tau^+\tau^- (ot baldi!!!)
-      
-      if(M2.NE.0.035) then
-c        print *, 'M2 ne ravno 0.035 !!!'
-        RMM2_max(1) = 8900000.0      ! for e^+e^-       (ot baldi!!!)
-        RMM2_max(2) = 25.0*200.0     ! for \mu^+\mu^-   (garantiya maximuma)
-        RMM2_max(3) = 80000.0        ! for \tau^+\tau^- (ot baldi!!!)
-      endif   
-
-c      print *, '  hat_s =', hat_s
-c      print *, '  hat_t =', hat_t
-      
-      call myB0_gmm(q2,qm2,mu,qmc)      
-      BB0=n_B0
-c      print *, ' BB0 =', BB0     
-      
-      call myB1_gmm(q2,qm2,mu,qmc)
-      BB1=n_B1
-c      print *, ' BB1 =', BB1
-      
-      call myB2_gmm(q2,qm2,mu,qmc)
-      BB2=n_B2
-c      print *, ' BB2 =', BB2
-      
-      call myx(q2,xx)
-c      print *, ' xx =', xx
-      
-      call myzeta(q2,t,zzeta)
-c      print *, ' zzeta =', zzeta
-      
-c     1 - tochnaya formula (stavitsia po umolchaniyu!!!)
-c     2 - priblijeniye miagkih fotonov       
-      call myBremstrahlung(q2,t,1)
-      Bslg=n_Bslg
-c      print *, ' Bslg =', Bslg
-      
-c     1 - tochnaya formula (stavitsia po umolchaniyu!!!)
-c     2 - priblijeniye miagkih fotonov       
-      call myInterference(q2,t,qm2,mu,qmc,1)
-      Intrf=n_Intrf
-c      print *, ' Intrf =', Intrf 
-                  
-		   
-c......The matrix element calculation            
-      n_Matrix2=(xx**2)*BB0+xx*zzeta*BB1+(zzeta**2)*BB2            
-      n_Matrix2=n_Matrix2+Bslg+Intrf
-               
-c     .what RMM2_max[i] to selected?  
-      if(ml.LT.0.09) then
-         i=1
-      endif
-      if(ml.LT.0.2.AND.ml.GE.0.09) then
-         i=2
-      endif	 
-      if(ml.GE.0.2) then
-         i=3
-      endif		 
-                     
-c     .The normalisation of the matrix element
-      if(res_swch.EQ.0) then
-         n_Matrix2=n_Matrix2/RMM2_max(i)
-      endif
-      if(res_swch.EQ.1) then
-         n_Matrix2=n_Matrix2/RMM2_max_resonant(i)
-      endif
-                     
-      if(n_Matrix2.LT.0.0) then
-         print *,'             '
-         print *,' subroutine m2fortran_gmm'
-         print *,' Fatal ERROR: the square of the normalise 
-     #matrix element < 0'
-         print *,' hat_s =', hat_s, '   hat_t =', hat_t
-	 print *,'  s =', q2, '  t =', t
-	 print *,' xx =', xx, ' zzeta =', zzeta	 
-	 print *, n_Bslg, n_Intrf, n_I1, n_I2 
-	 print *, n_F1, n_F2, n_B0, n_B1, n_B2
-         print *,'n_Matrix2  =', n_Matrix2
-         print *,' By!'
-         print *,'             '
-         n_Matrix2=-1.0
-         STOP 
-      endif	  
-                   
-      if(n_Matrix2.GT.1.0) then
-         print *,'             '
-         print *,' subroutine m2fortran_gmm'      		   
-         print *,' Fatal ERROR: the square of the normalise 
-     #matrix element > 1'
-         print *,' hat_s =', hat_s, '   hat_t =', hat_t
-	 print *,'  s =', q2, '  t =', t
-	 print *,' xx =', xx, ' zzeta =', zzeta
-	 print *, n_Bslg, n_Intrf, n_I1, n_I2 
-	 print *, n_F1, n_F2, n_B0, n_B1, n_B2
-         print *,' n_Matrix2 =', n_Matrix2
-         print *,' By!'
-         print *,'             '
-c         n_Matrix2=-2.0
-c         STOP
-      endif	      	 
-      
-      
-c      print *,' ******************************** '
-c      print *,' *                              * '
-c      print *,' *   n_Matrix2 =', n_Matrix2,  '* '    
-c      print *,' *   END subroutine m2fortran   * '
-c      print *,' *                              * '
-c      print *,' ******************************** '
-c      print *,'                                  '
-
-13    continue
-                
-      return
-      end 
diff --git a/Generators/PythiaB/src/multi_flav_luexec.F b/Generators/PythiaB/src/multi_flav_luexec.F
deleted file mode 100644
index 298bca3d945187763ccfa0bf334914ff7b88246d..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/multi_flav_luexec.F
+++ /dev/null
@@ -1,47 +0,0 @@
-*CMZ :          02/08/2001  11.45.54  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/07/2000
-
-
-
-      subroutine multi_flav_luexec
-c -----------------------------------------------------------------------
-c  multi_flav  special for cases bbbb or bbcc (or bbbbcc, bbbbcccc)
-c -----------------------------------------------------------------------
-
-
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,HEAVYFLAV.
-* store info about  multiple heavy flavour  produced in event
-       common/multif/ibq,icq
-* remeber links of  B and antiB chosen to decay free in bbbb
-       common/fixedB/is1,is2
-
-*KEEP,BBMOD.
-* internal number to recognise bb decay regime
-       common/bbmod/IBBMOD
-*KEND.
-
-       idebug=0
-
-
-c  (0,0) (0,1) (0,2) (1,0) NO
-c  (1,1) (1,2) (2,0) (2,1,) (2,2)  YES
-c take only bbcc or bbbb (or bbbbcc, bbbbcccc)
-       if(ibq.le.1.and.(ibq*icq.eq.0))  return
-
-
-c bbcc (1,1) (1,2)
-       if(ibq.eq.1.and.icq.ne.0) call bbcc_luexec
-c bbbb (2,0) (2,1) (2,2)
-       if(ibq.ge.2) call bbbb_luexec(1)
-
-
-       return
-       end
-
-
-
diff --git a/Generators/PythiaB/src/off_line.F b/Generators/PythiaB/src/off_line.F
deleted file mode 100644
index 7c02bd4f4cc01538968478d8e6f0af1962537adb..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/off_line.F
+++ /dev/null
@@ -1,230 +0,0 @@
-*CMZ :          02/08/2001  11.46.16  by  Maria Smizanska
-*-- Author :    Maria Smizanska   07/10/96
-
-
-      SUBROUTINE OFF_LINE(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : OFF_LINE                                                      *
-*        (module)                                                      *
-*                                                                      *
-* Description :  Accepting/rejecting event:                            *
-*                a) find the whole tree of B-decay                     *
-*                b) check if tree is inside cuts defined by            *
-*                   datacard OFFLCUTS                                  *
-*                This subroutine is skipped if user demanded           *
-*                 inclusive muon events  pp->bbX->muX                  *
-*                                                                      *
-*                User can skip this subroutine by                      *
-*                by defining datacard OFFLCUTS 1=0                     *
-*                                                                      *
-*                                                                      *
-*                                                                      *
-* Arguments   :                                                        *
-*                                                                      *
-*         IRET (out)  flag for keep/reject event                       *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska            Date 07/10/96:                   *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,HEAVYFLAV.
-* store info about  multiple heavy flavour  produced in event
-       common/multif/ibq,icq
-* remeber links of  B and antiB chosen to decay free in bbbb
-       common/fixedB/is1,is2
-
-*KEEP,NNTUPLE.
-*      DECLARATION FOR NTUPLE 5000
-       PARAMETER(NDIM = 20)
-       COMMON/NNICK/XNTUP(NDIM)
-       SAVE/NNICK/
-
-*      DECLARATION FOR NTUPLE 5001
-       PARAMETER(NDIM1 = 13)
-       COMMON/HARD/XNTUP1(NDIM1)
-       SAVE/HARD/
-
-*      DECLARATION FOR NTUPLE 5002
-       PARAMETER(NDIM2 = 12)
-       COMMON/MUON/XNTUP2(NDIM2)
-       SAVE/MUON/
-*KEEP,CUTOFF.
-*  cuts on stable particles to select event
-      common/cutoff/tr4,pt_pikp,eta_pikp,
-     +              pt_muon,eta_muon,
-     +              pt_ele,eta_ele
-      SAVE/cutoff/
-      dimension cut3(7)
-      equivalence (cut3(1),tr4)
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEEP,NT5000.
-*   users choice to fill  NTUPLE 5000 or to call user_fill
-       common/nt5000/ntup_5000
-       SAVE/nt5000/
-
-
-*KEEP,FLAVOUR.
-*  variable flav is set automatically  to 5 (4)
-*  if user demanded
-*  bb  (cc) production by selecting corresponding
-*  keywords in atgen.proto
-
-       common/flavour/flav
-
-*KEND.
-
-c           SAVE IFIRST
-c           DATA IFIRST /1/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-       integer beauty
-       integer charm
-
-C ----------- end CDE --------------------------------------------------
-
-
-c local debugging control (inactive for idebug=0)
-      idebug=0
-
-c ----------------------------------------------------------------------
-c if no exclusive B-decay forced channel was demanded
-c or if user explicitely defined OFFLCUTS 1=0
-c skip this subroutine
-c ----------------------------------------------------------------------
-      if(tr4.eq.0) go to 1701
-
-c ----------------------------------------------------------------------
-c reject event unless accepted explicitly
-c ----------------------------------------------------------------------
-      iret=1
-
-c ----------------------------------------------------------------------
-c  find B-decay tree and check
-c  if whole tree is  inside cuts defined by OFFLCUTS datacard
-c ----------------------------------------------------------------------
-
-
-      DO 1700 I=1,N
-
-c Is this B-hadron with anti-b quark (B+, antiLambda_b ...) ?
-c 15.8.2000: in case of bbbb only one of two B-hadrons (with anti-b quark)
-c in event will be checked with  OFFLINE cuts. It will be the one
-c that was forced to decay to signal channel
-c (see subroutine bbbb_luexec).   All other 3 b-hadrons
-c in event are checked for LVL1 and LVL2 cuts if user activates
-c these cuts.
-
-      if(flav.eq.5.and.beauty(I).eq.0) go to 1700
-      if((flav.eq.4.or.flav.eq.44).and.charm(I).eq.0) go to 1700
-
-c Is there bbbb? Then finish if this is not the B-hadron
-c (with anti-b quark, that is B+ etc...)
-c that was  selected in bbbb_luexec (with link is1)
-c NOT to be forced to decay to signal channel
-
-      if(ibq.gt.1.and.I.eq.is1) go to 1700
-
-
-c is this secondary B-hadron? If yes, skip it - it was
-c already included in a decay chain of its B-hadron parent
-      if(beauty(link_father(I)).eq.1) go to 1700
-      if((flav.eq.4.or.flav.eq.44).and.charm(link_father(I)).eq.1)
-     +       go to 1700
-
-
-
-
-
-c      call VZERO(tree,4000)
-      do ii=1,4000
-        tree(ii)=0
-      enddo
-      if(idebug.ne.0) print*,'OFF_LINE:beauty',I,name_self(I)
-
-c find decay tree using recursive call of find_children
-      call find_children(I)
-
-c if any particle in tree out of cuts reject this tree
-      ktree=0
-c      do ii=1,4000
-c Modification by B. Kersevan, J. Catmore 13/03/2006 
-      do ii=1,N 
-      if(tree(ii).eq.1) ktree=ktree+1
-      if(tree(ii).eq.-1) then ! reject if sec.part. out of cuts
-      go to 1700
-      endif
-      enddo
-      if(idebug.ne.0) print*,'OFF_LINE: ktree',ktree
-      if(ktree.le.2) go to 1700 ! reject if <3 particles in tree
-      iret=0
-      return
- 1700  CONTINUE
- 1701  CONTINUE
-
-
-      RETURN
-
-*
-      END          ! OFF_LINE
-
-
-
diff --git a/Generators/PythiaB/src/parsel.F b/Generators/PythiaB/src/parsel.F
deleted file mode 100644
index 6fb9777590ce2796e88145eac42e746758f5f46a..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/parsel.F
+++ /dev/null
@@ -1,148 +0,0 @@
-      subroutine parsel(iret,jbq,jcq)
-C...Reject events without b(c) quark within pT cuts 
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      common/cutbq/pt_b_cut,eta_b_cut,pt_ab_cut,eta_ab_cut,andor
-      CHARACTER*(2) andor
-      common/flavour/flav
-      common/multif/ibq,icq
-      DATA IFIRST /1/
-C ----------- end CDE --------------------------------------------------
-      
-      
-      IF(IFIRST.EQ.1) THEN
-c      ihard=0
-        IFIRST =0
-      ENDIF
-      
-      
-      idebug=0
-      
-      iret=1
-      NBGQ=0
-      NABGQ=0
-      icq=0.      ! number of c quarks
-      ibq=0.      ! number of b quarks
-      if(idebug.ne.0) then
-      print *,'PARSEL: starts'
-      print *,'PARSEL: iret, flav ',iret,flav
-      print *,'PARSEL: cutbq',
-     +      pt_b_cut,eta_b_cut,pt_ab_cut,eta_ab_cut,andor
-      if((andor.EQ.'an').or.(andor.EQ.'AN')) 
-     +      print *,'PARSEL: andor = and or AND ',andor
-      if((andor.EQ.'or').or.(andor.EQ.'OR')) 
-     +      print *,'PARSEL: andor = or or OR ',andor
-      endif
-       
-      
-      DO 3 I=3,N
-       if(finf_quark(I,4.D0).ne.0) icq=icq+1
-       if(finf_quark(I,5.D0).ne.0) ibq=ibq+1
-
-cg 10.07.08
-       if ( flav .eq. 45.D0 ) then 
-         if ( find_quark(I,4.D0).eq.0 .and.
-     +        find_quark(I,5.D0).eq.0 ) goto 3
-       else
-         if(find_quark(I,flav).eq.0) go to 3     
-       endif 
-         
-C...PARAMETERS OF B(c)-QUARK
-          PT = DSQRT(P(I,1)**2+P(I,2)**2)
-          TH = DACOS(P(I,3)/DSQRT(PT**2+P(I,3)**2)) 
-          ETA = -DLOG(MAX(.0001,DABS(DTAN(.5*TH))))
-	if(idebug.ne.0) print *,'PARSEL: after eta i',i  
-          PHI = atan2(P(I,1),P(I,2))
-	if(idebug.ne.0) print *,'PARSEL: after phi i',i
-	
-cg 10.07.08          IF(K(I,2).eq.flav.and.PT.GT.pt_b_cut.
-          IF(K(I,2).gt.0.and.PT.GT.pt_b_cut.
-     +	  and.abs(eta).lt.eta_b_cut) NBGQ=NBGQ+1
-cg 10.07.08          IF(K(I,2).eq.-flav.and.PT.GT.pt_ab_cut.
-          IF(K(I,2).lt.0.and.PT.GT.pt_ab_cut.
-     +	  and.abs(eta).lt.eta_ab_cut) NABGQ=NABGQ+1
-     
-
-    3 continue
-    
-            jbq=ibq
-	    jcq=icq
-       
-
-c the event is selected if both b and antib are inside cuts    
-      if(    ((andor.EQ.'an').or.(andor.EQ.'AN'))
-     +         .and.(NBGQ * NABGQ).ne.0) iret=0
-     
-c the event is selected if  b OR antib are inside cuts    
-      if(    ((andor.EQ.'or').or.(andor.EQ.'OR'))
-     +         .and.(NBGQ + NABGQ).ne.0) iret=0       
-     
-     
-     
-      if(idebug.ne.0) then
-      if(    ((andor.EQ.'an').or.(andor.EQ.'AN'))
-     +         .and.(NBGQ * NABGQ).ne.0) 
-     +   print *,'PARSEL: posluchol andor iret ',andor,iret
-      if(    ((andor.EQ.'or').or.(andor.EQ.'OR'))
-     +         .and.(NBGQ + NABGQ).ne.0)       
-     +   print *,'PARSEL: posluchol andor iret ',andor,iret 
-      endif     
-     
-
-     
-         
-      if(idebug.ne.0.and.iret.eq.0) 
-     +      print *,'PaRSEL: beauty or charm found in event:'
-     
-      return
-      end
-C --------------------------------------------------------------------------	     
-      function find_quark(i,fla)
-c  find the first quark in lujets list  of flavour fla
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      double precision find_quark
-      idebug=0
-        find_quark=0.
-      if(idebug.ne.0) print *,'find_quark: started'	
-	
-          IF(abs(K(I,2)).EQ.fla.AND.K(I,1).LE.12) THEN
-            IF(abs(K(K(I,3),2)).NE.fla) THEN
-            find_quark=1.
-            ELSEIF(K(I,3).LE.8) THEN
-            find_quark=1.
-            ENDIF
-          ENDIF
-      if(idebug.ne.0) print *,'find_quark: ended'	  
-	  
-      return
-      end
-      
-C --------------------------------------------------------------------------	     
-      function finf_quark(i,fla)
-c  find the first quark in lujets list  of flavour fla
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      double precision finf_quark
-        idebug=0
-        finf_quark=0.
-      if(idebug.ne.0) print *,'finf_quark: started'	
-	
-          IF(K(I,2).EQ.fla.AND.K(I,1).LE.12) THEN
-            IF(K(K(I,3),2).NE.fla) THEN
-            finf_quark=1.
-            ELSEIF(K(I,3).LE.8) THEN
-            finf_quark=1.
-            ENDIF
-          ENDIF
-      if(idebug.ne.0) print *,'finf_quark: ended'	  
-	  
-      return
-      end
-      
diff --git a/Generators/PythiaB/src/pyevnt.F b/Generators/PythiaB/src/pyevnt.F
deleted file mode 100644
index 516340d757bfe37e91f1526b28011e18c1e28123..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/pyevnt.F
+++ /dev/null
@@ -1,292 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYEVNT
-C...Administers the generation of a high-pT event via calls to
-C...a number of subroutines.
- 
-      SUBROUTINE PYEVNT
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYPARS/,/PYINT1/,/PYINT2/,
-     &/PYINT4/,/PYINT5/,/PYUPPR/
-C...Local array.
-      DIMENSION VTX(4)
- 
-C...Initial values for some counters.
-
-      print *,'I am in my PYEVNT'
-      N=0
-      MINT(5)=MINT(5)+1
-      MINT(7)=0
-      MINT(8)=0
-      MINT(83)=0
-      MINT(84)=MSTP(126)
-      MSTU(24)=0
-      MSTU70=0
-      MSTJ14=MSTJ(14)
- 
-C...If variable energies: redo incoming kinematics and cross-section.
-      MSTI(61)=0
-      IF(MSTP(171).EQ.1) THEN
-        CALL PYINKI(1)
-        IF(MSTI(61).EQ.1) THEN
-          MINT(5)=MINT(5)-1
-          RETURN
-        ENDIF
-        IF(MINT(121).GT.1) CALL PYSAVE(3,1)
-        CALL PYXTOT
-      ENDIF
- 
-C...Loop over number of pileup events; check space left.
-      IF(MSTP(131).LE.0) THEN
-        NPILE=1
-      ELSE
-        CALL PYPILE(2)
-        NPILE=MINT(81)
-      ENDIF
-      DO 260 IPILE=1,NPILE
-        IF(MINT(84)+100.GE.MSTU(4)) THEN
-          CALL PYERRM(11,
-     &    '(PYEVNT:) no more space in PYJETS for pileup events')
-          IF(MSTU(21).GE.1) GOTO 270
-        ENDIF
-        MINT(82)=IPILE
- 
-C...Generate variables of hard scattering.
-        MINT(51)=0
-        MSTI(52)=0
-  100   CONTINUE
-        IF(MINT(51).NE.0.OR.MSTU(24).NE.0) MSTI(52)=MSTI(52)+1
-        MINT(31)=0
-        MINT(51)=0
-        MINT(57)=0
-        CALL PYRAND
-        IF(MSTI(61).EQ.1) THEN
-          MINT(5)=MINT(5)-1
-          RETURN
-        ENDIF
-        IF(MINT(51).EQ.2) RETURN
-        ISUB=MINT(1)
-        IF(MSTP(111).EQ.-1) GOTO 250
- 
-        IF((ISUB.LE.90.OR.ISUB.GE.95).AND.ISUB.NE.99) THEN
-C...Hard scattering (including low-pT):
-C...reconstruct kinematics and colour flow of hard scattering.
-          MINT31=MINT(31)
-  110     MINT(31)=MINT31
-          MINT(51)=0
-          CALL PYSCAT
-          IF(MINT(51).EQ.1) GOTO 100
-          IPU1=MINT(84)+1
-          IPU2=MINT(84)+2
-          IF(ISUB.EQ.95) GOTO 130
- 
-C...Showering of initial state partons (optional).
-          ALAMSV=PARJ(81)
-          PARJ(81)=PARP(72)
-          IF(MSTP(61).GE.1.AND.MINT(47).GE.2) CALL PYSSPA(IPU1,IPU2)
-          PARJ(81)=ALAMSV
-          IF(MINT(51).EQ.1) GOTO 100
- 
-C...Showering of final state partons (optional).
-          ALAMSV=PARJ(81)
-          PARJ(81)=PARP(72)
-          IF(MSTP(71).GE.1.AND.ISET(ISUB).GE.2.AND.ISET(ISUB).LE.10)
-     &    THEN
-            IPU3=MINT(84)+3
-            IPU4=MINT(84)+4
-            IF(ISET(ISUB).EQ.5) IPU4=-3
-            QMAX=VINT(55)
-            IF(ISET(ISUB).EQ.2) QMAX=SQRT(PARP(71))*VINT(55)
-            CALL PYSHOW(IPU3,IPU4,QMAX)
-          ELSEIF(MSTP(71).GE.1.AND.ISET(ISUB).EQ.11.AND.NFUP.GE.1) THEN
-            DO 120 IUP=1,NFUP
-              IPU3=IFUP(IUP,1)+MINT(84)
-              IPU4=IFUP(IUP,2)+MINT(84)
-              QMAX=SQRT(MAX(0D0,Q2UP(IUP)))
-              CALL PYSHOW(IPU3,IPU4,QMAX)
-  120       CONTINUE
-          ENDIF
-          PARJ(81)=ALAMSV
- 
-C...Decay of final state resonances.
-          MINT(32)=0
-          IF(MSTP(41).GE.1.AND.ISET(ISUB).LE.10) CALL PYRESD(0)
-          IF(MINT(51).EQ.1) GOTO 100
-          MINT(52)=N
- 
-C...Multiple interactions.
-          IF(MSTP(81).GE.1.AND.MINT(50).EQ.1) CALL PYMULT(6)
-          MINT(53)=N
- 
-C...Hadron remnants and primordial kT.
-  130     CALL PYREMN(IPU1,IPU2)
-          IF(MINT(51).EQ.1.AND.MINT(57).GE.1.AND.MINT(57).LE.5) GOTO 110
-          IF(MINT(51).EQ.1) GOTO 100
- 
-         ELSEIF(ISUB.NE.99) THEN
-C...Diffractive and elastic scattering.
-          CALL PYDIFF
-
-        ELSE
-C...DIS scattering (photon flux external).
-          CALL PYDISG
-          IF(MINT(51).EQ.1) GOTO 100
-        ENDIF
- 
-C...Check that no odd resonance left undecayed.
-        IF(MSTP(111).GE.1) THEN
-          NFIX=N
-          DO 140 I=MINT(84)+1,NFIX
-            IF(K(I,1).GE.1.AND.K(I,1).LE.10.AND.K(I,2).NE.21.AND.
-     &      K(I,2).NE.22) THEN
-              KCA=PYCOMP(K(I,2))
-              IF(MWID(KCA).NE.0.AND.MDCY(KCA,1).GE.1) THEN
-                CALL PYRESD(I)
-                IF(MINT(51).EQ.1) GOTO 100
-              ENDIF
-            ENDIF
-  140     CONTINUE
-        ENDIF
- 
-C...Boost hadronic subsystem to overall rest frame.
-C..(Only relevant when photon inside lepton beam.)
-        IF(MINT(141).NE.0.OR.MINT(142).NE.0) CALL PYGAGA(4,WTGAGA)
- 
-C...Recalculate energies from momenta and masses (if desired).
-        IF(MSTP(113).GE.1) THEN
-          DO 150 I=MINT(83)+1,N
-            IF(K(I,1).GT.0.AND.K(I,1).LE.10) P(I,4)=SQRT(P(I,1)**2+
-     &      P(I,2)**2+P(I,3)**2+P(I,5)**2)
-  150     CONTINUE
-          NRECAL=N
-        ENDIF
- 
-C...Rearrange partons along strings, check invariant mass cuts.
-        MSTU(28)=0
-        IF(MSTP(111).LE.0) MSTJ(14)=-1
-        CALL PYPREP(MINT(84)+1)
-        MSTJ(14)=MSTJ14
-        IF(MSTP(112).EQ.1.AND.MSTU(28).EQ.3) GOTO 100
-        IF(MSTP(125).EQ.0.OR.MSTP(125).EQ.1) THEN
-          DO 180 I=MINT(84)+1,N
-            IF(K(I,2).EQ.94) THEN
-              DO 170 I1=I+1,MIN(N,I+3)
-                IF(K(I1,3).EQ.I) THEN
-                  K(I1,3)=MOD(K(I1,4)/MSTU(5),MSTU(5))
-                  IF(K(I1,3).EQ.0) THEN
-                    DO 160 II=MINT(84)+1,I-1
-                        IF(K(II,2).EQ.K(I1,2)) THEN
-                          IF(MOD(K(II,4),MSTU(5)).EQ.I1.OR.
-     &                    MOD(K(II,5),MSTU(5)).EQ.I1) K(I1,3)=II
-                        ENDIF
-  160               CONTINUE
-                    IF(K(I+1,3).EQ.0) K(I+1,3)=K(I,3)
-                  ENDIF
-                ENDIF
-  170         CONTINUE
-            ENDIF
-  180     CONTINUE
-          CALL PYEDIT(12)
-          CALL PYEDIT(14)
-          IF(MSTP(125).EQ.0) CALL PYEDIT(15)
-          IF(MSTP(125).EQ.0) MINT(4)=0
-          DO 200 I=MINT(83)+1,N
-            IF(K(I,1).EQ.11.AND.K(I,4).EQ.0.AND.K(I,5).EQ.0) THEN
-              DO 190 I1=I+1,N
-                IF(K(I1,3).EQ.I.AND.K(I,4).EQ.0) K(I,4)=I1
-                IF(K(I1,3).EQ.I) K(I,5)=I1
-  190         CONTINUE
-            ENDIF
-  200     CONTINUE
-        ENDIF
- 
-C...Introduce separators between sections in PYLIST event listing.
-        IF(IPILE.EQ.1.AND.MSTP(125).LE.0) THEN
-          MSTU70=1
-          MSTU(71)=N
-        ELSEIF(IPILE.EQ.1) THEN
-          MSTU70=3
-          MSTU(71)=2
-          MSTU(72)=MINT(4)
-          MSTU(73)=N
-        ENDIF
- 
-C...Go back to lab frame (needed for vertices, also in fragmentation).
-        CALL PYFRAM(1)
- 
-C...Set nonvanishing production vertex (optional).
-        IF(MSTP(151).EQ.1) THEN
-          DO 210 J=1,4
-            VTX(J)=PARP(150+J)*SQRT(-2D0*LOG(MAX(1D-10,PYR(0))))*
-     &      SIN(PARU(2)*PYR(0))
-  210     CONTINUE
-          DO 230 I=MINT(83)+1,N
-            DO 220 J=1,4
-              V(I,J)=V(I,J)+VTX(J)
-  220       CONTINUE
-  230     CONTINUE
-        ENDIF
- 
-C...Perform hadronization (if desired).
-        IF(MSTP(111).GE.1) THEN
-          CALL PYEXEC
-          IF(MSTU(24).NE.0) GOTO 100
-        ENDIF
-        IF(MSTP(113).GE.1) THEN
-          DO 240 I=NRECAL,N
-            IF(P(I,5).GT.0D0) P(I,4)=SQRT(P(I,1)**2+
-     &      P(I,2)**2+P(I,3)**2+P(I,5)**2)
-  240     CONTINUE
-        ENDIF
-        IF(MSTP(125).EQ.0.OR.MSTP(125).EQ.1) CALL PYEDIT(14)
- 
-C...Store event information and calculate Monte Carlo estimates of
-C...subprocess cross-sections.
-c MS change
-c  250   IF(IPILE.EQ.1) CALL PYDOCU
-  250   continue
- 
-C...Set counters for current pileup event and loop to next one.
-        MSTI(41)=IPILE
-        IF(IPILE.GE.2.AND.IPILE.LE.10) MSTI(40+IPILE)=ISUB
-        IF(MSTU70.LT.10) THEN
-          MSTU70=MSTU70+1
-          MSTU(70+MSTU70)=N
-        ENDIF
-        MINT(83)=N
-        MINT(84)=N+MSTP(126)
-        IF(IPILE.LT.NPILE) CALL PYFRAM(2)
-  260 CONTINUE
- 
-C...Generic information on pileup events. Reconstruct missing history.
-      IF(MSTP(131).EQ.1.AND.MSTP(133).GE.1) THEN
-        PARI(91)=VINT(132)
-        PARI(92)=VINT(133)
-        PARI(93)=VINT(134)
-        IF(MSTP(133).GE.2) PARI(93)=PARI(93)*XSEC(0,3)/VINT(131)
-      ENDIF
-      CALL PYEDIT(16)
- 
-C...Transform to the desired coordinate frame.
-  270 CALL PYFRAM(MSTP(124))
-      MSTU(70)=MSTU70
-      PARU(21)=VINT(1)
- 
-      RETURN
-      END
diff --git a/Generators/PythiaB/src/qualify.F b/Generators/PythiaB/src/qualify.F
deleted file mode 100644
index a4aa5de1d44b0922f2eadf2e2897c02c2275d47e..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/qualify.F
+++ /dev/null
@@ -1,211 +0,0 @@
-*CMZ :          02/08/2001  13.10.36  by  Maria Smizanska
-*-- Author :    Maria Smizanska   20/09/96
-
-      function QUALIFY(i_line)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : QUALIFY                                                       *
-*        (module)                                                      *
-*                                                                      *
-* Description : Check if particle satisfies selection criteria         *                                                       *
-*               defined by user                                        *
-*                                                                      *
-* Arguments   :                                                        *
-*                   input: i_line     particle line # in LUJET         *
-*                                                                      *
-* Banks/Tables:                                                        *
-*                   LUJETS     used                                    *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-c +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c     INTEGER PYK,PYCHGE,PYCOMP
-*     KEEP,LUJETS.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*     KEEP,CUTOFF.
-      integer qualify
-*     cuts on stable particles to select event
-      common/cutoff/tr4,pt_pikp,eta_pikp,
-     +              pt_muon,eta_muon,
-     +              pt_ele,eta_ele
-      SAVE/cutoff/
-      dimension cut3(7)
-      equivalence (cut3(1),tr4)
-*KEEP,LVL1.
-*  LVL1 muon cuts
-      common/lvl1/tr1,pt_trig1, etha_trig1
-      common/trg1/i_muon_trig1
-      SAVE/lvl1/
-      SAVE/trg1/
-      dimension cut1(3)
-      equivalence (cut1(1),tr1)
-*KEEP,LVL2.
-*  LVL2 muon cut and electron tag cut
-      common/lvl2/tr2,type,pt_trig2, etha_trig2
-      common/trg2/i_muon_trig2,i_ele_trig2
-      SAVE/lvl2/
-      SAVE/trg2/
-      dimension cut2(4)
-      equivalence (cut2(1),tr2)
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-       integer forced
-       integer children
-C ----------- end CDE --------------------------------------------------
-
-           idebug=0
-           eta_stable=2.5
-           eta_max=2.5
-           pt_stable=0.5
-
-c           pt_pikp=0.5
-c           pt_muon=3.        ! this is third muon in event
-c           pt_ele=0.5        ! these are no tag electrons
-c           eta_pikp=2.5
-c           eta_muon=2.5       ! this is third muon in event
-c           eta_ele= 2.5       ! these are no tag electrons
-
-
-c  accept inless veto
-         qualify=1
-c         if(idebug.eq.1) print *,'QUALIFY: was called tr4=',tr4
-c accept if no selection cuts required by user
-
-         if(tr4.eq.0)    return
-
-c         if(idebug.eq.1) print *,'QUALIFY: pt_pikp pt_ele pt_muon',
-c      +   pt_pikp,pt_ele,pt_muon
-
-
-
-
-c if neutrino or gamma, then accept particle and return
-
-           if(name_selv(i_line).eq.12.or.
-     +        name_selv(i_line).eq.14.or.
-     +        name_selv(i_line).eq.16.or.
-     +        name_selv(i_line).eq.18.or.
-     +        name_selv(i_line).eq.22    )     return
-
-c if K_long reject
-
-           if(name_selv(i_line).eq.130) then
-           qualify=0
-           return
-           endif
-
-c if particle is non stable but the decay was closed by user - rejet
-
-           if(forced(i_line).eq.1)  then
-
-           qualify=0
-           return
-           endif
-
-c is this pi0 from K0s? - reject ( we cannot close this channel in PYTHIA,
-c but we reject it in signal chain, because it cannot be recovered
-c by detector
-
-        if(name_selv(i_line).eq.111.and.
-     +        name_father(i_line).eq.310) then
-           qualify=0
-           return
-           endif
-
-
-
-           PT = SQRT(P(i_line,1)**2+P(i_line,2)**2)
-           TH = ACOS(P(i_line,3)/SQRT(PT**2+P(i_line,3)**2))
-           ETA = -LOG(MAX(.0001,ABS(TAN(.5*TH))))
-
-c if not stable just check etha
-
-        if(children(i_line).ne.0) then
-c        if(abs(ETA).gt.eta_max)
-c     +   qualify=0
-
-        else
-
-c if stable then check etha and pt according to particle type
-
-c stable particle other that muon or ele ?
-         pt_stable=pt_pikp
-         eta_stable=eta_pikp
-
-c is this muon a trigger1 or trigger2 muon? - if yes take it,
-c it has been already checked before
-c if not apply  cuts
-         if(idebug.eq.1.and.name_selv(i_line).eq.13)
-     +    print *,'QUALIFY:muon_line i_muon_trig1 i_muon_trig2',
-     +   name_selv(i_line),i_line,i_muon_trig1,i_muon_trig2
-        if(name_selv(i_line).eq.13.and.
-     +     (i_line.eq.i_muon_trig1.or.i_line.eq.i_muon_trig2)) return
-
-        if(name_selv(i_line).eq.13.and.i_line.ne.i_muon_trig1.
-     +     and.i_line.ne.i_muon_trig2) then
-         pt_stable=pt_muon
-         eta_stable=eta_muon
-
-         endif
-
-
-
-c is this electron trigger2(tag) electron? -  if yes take it
-c it has been already checked before
-c if not apply  cuts
-
-
-
-
-        if(name_selv(i_line).eq.11.and.
-     +     i_line.eq.i_ele_trig2) return
-
-        if(name_selv(i_line).eq.11.and.i_line.ne.i_ele_trig2) then
-          pt_stable=pt_ele
-          eta_stable=eta_ele
-          endif
-
-
-c check pt and etha
-
-
-        if(PT.lt.pt_stable.or.abs(ETA).gt.eta_stable)
-     +   qualify=0
-        if(idebug.ne.0.and.
-     +   name_selv(i_line).eq.13)
-     +   print *,'QUALIFY:pT muon  and threshold',
-     +        PT,pt_stable
-
-        endif
-
-        return
-*
-*
-      END          ! QUALIFY
diff --git a/Generators/PythiaB/src/rotat.F b/Generators/PythiaB/src/rotat.F
deleted file mode 100644
index 48b04c8f6c017043caceba89fda6360a7c7740a6..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/rotat.F
+++ /dev/null
@@ -1,74 +0,0 @@
-c **********************************************************************
-c *                                                                    *
-c *                Functions for 4-vector rotations                    *
-c *                        Version 1.03                                *
-c *                                                                    *
-c *   The last modification:                  21.05.2003               *
-c *                                                                    *
-c *   Author: Nickolay Nikitin,  nik679@monet.npi.msu.su               *
-c *                                                                    *
-c **********************************************************************
-
-      subroutine Mzero(RMt)
-      dimension RMt(4,4)
-      double precision RMt
-      do 40 i=1,4
-      do 40 j=1,4
-40       RMt(i,j)=0.D0
-      return
-      end
-
-
-      subroutine Mult(PIn,RMt,PFin)
-      dimension PIn(4), PFin(4), RMt(4,4)
-      double precision PIn, PFin, RMt
-      do 20 i=1,4
-      do 20 j=1,4
-20       PFin(i)=PFin(i)+RMt(i,j)*PIn(j)
-      return
-      end
-
-      
-      subroutine Pzero(Pt)
-      dimension Pt(4)
-      double precision Pt
-      do 50 i=1,4
-50       Pt(i)=0.D0
-      return
-      end
-                    
-                     
-      subroutine Mov(PIn,PFin)
-      dimension PIn(4), PFin(4)
-      double precision PIn, PFin
-      do 30 i=1,4
-30       PFin(i)=PIn(i)
-      return
-      end
-                     
-                             
-      double precision function Psqr(Pin)
-      dimension Pin(4)
-      double precision Pin, Pin2
-      PIn2=0.D0
-      do 60 i=2,4
-60       Pin2=Pin2+Pin(i)**2
-      Psqr=Pin2
-      return
-      end
-                            
-                     
-      subroutine transforme(Pin,RMt)                     
-c......The rotation variables
-      dimension Pin(4), Pout(4), RMt(4,4)
-      double precision Pin, Pout, RMt
-                         
-      call Pzero(Pout)
-      call Mult(Pin,RMt,Pout)
-      call Pzero(Pin)
-      call Mov(Pout,Pin)
-
-      return
-      end
-                   
-                       
diff --git a/Generators/PythiaB/src/swop_ludat3.F b/Generators/PythiaB/src/swop_ludat3.F
deleted file mode 100644
index c29bcd6cc61ef2e6e977232ea9d503130b285c94..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/swop_ludat3.F
+++ /dev/null
@@ -1,71 +0,0 @@
-*CMZ :          02/08/2001  11.47.04  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/07/2000
-
-         subroutine swop_ludat3(in)
-
-c
-c   make a copy of default (in=1) decays  to ludat3
-c   make a copy of users defined (in=2) decays to ludat3
-c   MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
-c  MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5)
-c
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,COLUDAT3.
-
-       common /CLUDAT3/MDCYbi(500,3),MDMEbi(8000,2),
-     *                       BRATbi(8000),KFDPbi(8000,5),
-     *                       MDCYun(500,3),MDMEun(8000,2),
-     *                       BRATun(8000),KFDPun(8000,5)
-
-*KEEP,LUDAT3.
-       COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-*KEND.
-      
-      
-
-      idebug=0
-*      if(idebug.ne.0) print *,'swop_ludat3: is called'
-      
-      
-      if(in.eq.1) then
-*      call ucopy(xludat3_unbiased,xludat3,n_ludat3)
-      call icopy(MDCYun,MDCY,1500)
-      call icopy(MDMEun,MDME,16000)
-      call dcopy(BRATun,BRAT,8000)      
-      call icopy(KFDPun,KFDP,40000)      
-
-      endif
-
-      if(in.eq.2) then
-*      call ucopy(xludat3_biased,xludat3,n_ludat3)
-      call icopy(MDCYbi,MDCY,1500)
-      call icopy(MDMEbi,MDME,16000)
-      call dcopy(BRATbi,BRAT,8000)      
-      call icopy(KFDPbi,KFDP,40000)      
-
-      endif
-
-
-      if(idebug.ne.0) then
-      print *,'swop_ludat3: unbiased=1 biased=2 actual=',in
-      print *,'swop_ludat3: mdme(982,1)',(mdme(ii,1),ii=982,982)
-      endif
-      return
-      end
-
-
-      subroutine icopy(ia,ib,N)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      DIMENSION ia(*),ib(*)
-      IF (N.EQ.0) RETURN
-         DO 21 I=1,N
-   21 ib(I)=ia(I)
-      return 
-      end
-      
-
-
diff --git a/Generators/PythiaB/src/trig1.F b/Generators/PythiaB/src/trig1.F
deleted file mode 100644
index 6cb26da1b13fe51e790f767064637f3461648a58..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/trig1.F
+++ /dev/null
@@ -1,94 +0,0 @@
-*CMZ :          02/08/2001  13.09.46  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/09/96
-        SUBROUTINE TRIG1(iret)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : TRIG1                                                         *
-*        (module)                                                      *
-*                                                                      *
-* Description :  Check if event pass LVL1 muon trigger                 *
-*                                                                      *
-*                                                                      *
-* Arguments   :                                                        *
-*                                                                      *
-*                                                                      *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-C +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LVL1.
-*  LVL1 muon cuts
-      common/lvl1/tr1,pt_trig1, etha_trig1
-      common/trg1/i_muon_trig1
-      SAVE/lvl1/
-      SAVE/trg1/
-      dimension cut1(3)
-      equivalence (cut1(1),tr1)
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-c local debugging control (swiched off for idebug=0)
-           idebug=0
-
-           i_muon_trig1=0
-
-c is LVL1 required?
-           if(tr1.eq.0) return
-           if(idebug.eq.1) print *,'LVL1:pt_trig1 etha_trig1',
-     +      pt_trig1,etha_trig1
-
-c reject event unless accepted
-           iret=1
-
-           do I=1,N
-           if(name_selv(I).eq.13) then
-           PT = SQRT(P(I,1)**2+P(I,2)**2)
-           TH = ACOS(P(I,3)/SQRT(PT**2+P(I,3)**2))
-           ETA = -LOG(MAX(.0001,ABS(TAN(.5*TH))))
-
-        if(PT.gt.pt_trig1.and.abs(ETA).lt.etha_trig1) then
-             iret=0.
-             i_muon_trig1=I
-             return
-           endif
-           endif
-           enddo
-
-
-          return
-*
-*
-      END          ! TRIG1
diff --git a/Generators/PythiaB/src/trig2.F b/Generators/PythiaB/src/trig2.F
deleted file mode 100644
index 9bd99e616251ffdc37dcb5d581e0794611e2087a..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/trig2.F
+++ /dev/null
@@ -1,110 +0,0 @@
-*CMZ :          02/08/2001  13.11.38  by  Maria Smizanska
-*-- Author :    Maria Smizanska   23/09/96
-
-      SUBROUTINE TRIG2(iret)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : TRIG2                                                         *
-*        (module)                                                      *
-*                                                                      *
-* Description : Check LVL2 trigger: second muon or a high pT electron  *
-*               if demanded by user. We see  not reasonable to test    *
-*               more  than this of LVL2 trigger in ATGEN package.      *
-*                                                                      *
-*                                                                      *
-* Arguments   :                                                        *
-*        iret | input/output   |   event rejection flag (=1)           *
-*                                                                      *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 23/09/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-C+CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LVL1.
-*  LVL1 muon cuts
-      common/lvl1/tr1,pt_trig1, etha_trig1
-      common/trg1/i_muon_trig1
-      SAVE/lvl1/
-      SAVE/trg1/
-      dimension cut1(3)
-      equivalence (cut1(1),tr1)
-*KEEP,LVL2.
-*  LVL2 muon cut and electron tag cut
-      common/lvl2/tr2,type,pt_trig2, etha_trig2
-      common/trg2/i_muon_trig2,i_ele_trig2
-      SAVE/lvl2/
-      SAVE/trg2/
-      dimension cut2(4)
-      equivalence (cut2(1),tr2)
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-*
-c local debugging control
-          idebug=0
-          if(idebug.ne.0) print *,'LVL2: pt_trig2 etha_trig2',
-     +    pt_trig2,etha_trig2
-
-          i_muon_trig2=0
-          i_ele_trig2=0
-
-c is LVL2 required by user? - if no - return
-          if(tr2.eq.0) return
-
-c reject event unless accepted
-          iret=1
-
-c find LVL2  muon or electron according to user choice by 'type'
-c type is defined by users datacard
-          i_search=type
-          do I=1,N
-           PT = SQRT(P(I,1)**2+P(I,2)**2)
-           TH = ACOS(P(I,3)/SQRT(PT**2+P(I,3)**2))
-           ETA = -LOG(MAX(.0001,ABS(TAN(.5*TH))))
-
-           if(name_selv(I).eq.i_search.and.
-     +     PT.gt.pt_trig2.and.
-     +     abs(ETA).lt.etha_trig2) then
-           if(i_search.eq.11) iret=0
-c if muon then look if not LVL1 muon
-           if(i_search.eq.13.and.I.ne.i_muon_trig1)  iret=0
-           if(i_search.eq.13) i_muon_trig2 = I
-           if(i_search.eq.11) i_ele_trig2  = I
-           if(iret.eq.0) return
-           endif
-          enddo
-
-          return
-*
-      END          ! TRIG2
diff --git a/Generators/PythiaB/src/uf_BdAnglesCDF.F b/Generators/PythiaB/src/uf_BdAnglesCDF.F
deleted file mode 100644
index 63c2001d0bb94773479ee06de0701b1f1bb54ae9..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_BdAnglesCDF.F
+++ /dev/null
@@ -1,817 +0,0 @@
-*CMZ :          
-*-- Author :    James catmore 2006-04-09
-      SUBROUTINE uf_BdAnglesCDF(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_BdANgles                                           *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 for BdJpsi mumu K0* Kpi events 
-*                 INCLUDING DECAY ANGLES
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : James Catmore                Date : 2006-04-09              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      double precision par(8), mup(4),mum(4),kp(4),km(4),x(4),bs(4)
-c Old angles commented out
-c      double precision ct1,ct2,phi,prob1,prob2,R
-      double precision ct,cp,phi,prob1,prob2,R
-      double precision l1muon,l2muon,muetacut,hadptcut,hadetacut,
-     +                 BdPtCut,BdEtaCut
-      double precision mu1pt,eta,pt
-      integer mupg,mumg,kpg,kmg,J
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp( 1) : bool: flat (0) or physics angles (1)
-c    cufdcp( 2) : muon1 pT cut (LVL1)
-c    cufdcp( 3) : muon2 pT cut (LVL2)
-c    cufdcp( 4) : muons eta cut
-c    cufdcp( 5) : kaons pT cut
-c    cufdcp( 6) : kaons eta cut
-c    cufdcp( 7) : Bd pT cut
-c    cufdcp( 8) : Bd eta cut
-c    cufdcp( 9) : Bd lifetime (if zero, extract it from Pythia common blocks)
-c    cufdcp(10) : 
-
-
-c     some counting
-      nintree = 0
-
-c     preset
-      iret = 1
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING v3'
-
-c     particle loop  -- modify content as needed
-c      do  I=1,N
-c         
-c     if(tree(I).eq.1) then
-c
-c  accept only Phi KK decays -- code by James Catmore
-c
-c         if(name_selv(I).eq.333.and.
-c     +name_father(I).eq.531.and.
-c     +abs(name_daughter1(I)).eq.321.and.
-c     +abs(name_daughter2(I)).eq.321) then
-c            if(idebug.eq.1) print *,'USER_FINSEL: ',name_self(I)
-c            iret=0
-c         endif
-c     endif
-c         
-c      enddo
-
-c     evaluation
-      
-c 1000 continue
-c      if(iret.ne.0) then
-c     debug output
-c         if(idebug.eq.1)
-c     +        print *, 'USER_FINSEL: event rejected'
-c      endif
-
-
-c **********************************************************************
-c
-c Code to simulate CP violation
-c
-c **********************************************************************
-
-c Pythia Parameters
-c Bd Lifetime from Pythia
-      tau = 0.
-      if ( cufdcp(9).le.0.0 ) then
-c For Bs lifetime
-c        tau = pmas(140,4)/0.299792458
-c For Bd lifetime
-        tau = pmas(134,4)/0.299792458
-        if(idebug.eq.1) print*, 'Bd lifetime extracted: ', tau*0.2997924
-      else
-        tau = cufdcp(9)/0.299792458
-      endif
-c Set Physics Parameters
-c A0
-      par(1) = 0.7661
-c Al
-      par(2) = 0.5019 
-c deltaG
-      par(3) = 0.0
-c GammaS
-      par(4) = 0.659
-c Delta M
-      par(5) = 0.507 
-c phiS
-      par(6) = 0.0
-c delta1
-      par(7) = 0.15
-c delta2
-      par(8) = 3.02
-
-c Bd kinematic cuts
-      muetacut = cufdcp(4)  
-      l1muon = cufdcp(2)  
-      l2muon = cufdcp(3)  
-      hadptcut = cufdcp(5) 
-      hadetacut = cufdcp(6)
-      BdPtCut = cufdcp(7) 
-      BdEtaCut = cufdcp(8)
-c **********************************************************************
-
-c Make sure the event is not accepted by lucky initialization
-      mupg = -1
-      mumg = -2
-      kpg  = -3
-      kmg  = -4
-c Search for the Bd -> J/psi K0* decay
-      do  I=1,N
-      if(name_self(I).eq.511.and.(name_daughter1(I).eq.443.and.
-     +name_daughter2(I).eq.313.or.name_daughter1(I).eq.313.and.
-     +name_daughter2(I).eq.443)) then
-       do J=1,4
-       bs(J) = P(I,J)
-       enddo
-       continue
-      endif
-      if(name_self(I).eq.-13.and.name_father(I).eq.443.and.
-     +name_grandpa(I).eq.511) then
-         mupg = link_grandpa(I)
-         do J=1,4
-         mup(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.13.and.name_father(I).eq.443.and.
-     +name_grandpa(I).eq.511) then
-         mumg = link_grandpa(I)
-         do J=1,4
-         mum(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.321.and.name_father(I).eq.313.and.
-     +name_grandpa(I).eq.511) then
-         kpg = link_grandpa(I)
-         do J=1,4
-         kp(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.-211.and.name_father(I).eq.313.and.
-     +name_grandpa(I).eq.511) then
-         kmg = link_grandpa(I)
-         do J=1,4
-         km(J) = P(I,J)
-         enddo
-         continue
-      endif
-      enddo
-c Check that all the particles come from the same Bd
-      if(mupg.ne.mumg.or.mupg.ne.kpg.or.mupg.ne.kmg) then
-         if(idebug.eq.1) print*,"Muon Plus Grandpa = ",mupg
-         if(idebug.eq.1) print*,"Muon Minus Grandpa = ",mumg
-         if(idebug.eq.1) print*,"Kaon Plus Grandpa = ",kpg
-         if(idebug.eq.1) print*,"Pion Minus Grandpa = ",kmg
-         if(idebug.eq.1) print*,"Signal decay not found."
-         iret = 1
-         return
-      endif
-
-      if(idebug.eq.1) print*,"Signal decay was found!"
-
-c      return here for flat angles
-
-      if ( cufdcp(1).ne.0.0 ) then
-
-c If a Bd -> J/psi(mu mu) phi(K K) event has been found
-c      print*,"mu+ = (",mup(1),", ",mup(2)," ,",mup(3),", ",mup(4),")"
-c      print*,"mu- = (",mum(1),", ",mum(2)," ,",mum(3),", ",mum(4),")"
-c      print*,"K+ = (",kp(1),", ",kp(2)," ,",kp(3),", ",kp(4),")"
-c      print*,"K- = (",km(1),", ",km(2)," ,",km(3),", ",km(4),")"
-
-c Old angles commented out
-c      call cost(mup,mum,kp,km,ct1,ct2)
-c      call chi(mup,mum,kp,km,phi)
-      call cdfct(mup,mum,kp,km,ct)
-      call cdfcp(mup,mum,kp,km,cp)
-      call cdfphi(mup,mum,kp,km,phi)
-        
-      if(idebug.eq.1) print*,"cos(theta) = ",ct
-      if(idebug.eq.1) print*,"cos(psi) = ",cp
-      if(idebug.eq.1) print*,"phi = ",phi
-      if(idebug.eq.1) print*,"Proper Lifetime = ",V(mupg,5)/0.2998
-
-c Set Measured Parameters for ML function
-c x(1) = proper time V(mupg,5) mm/c (~3.33x10^-12 s^-1)
-      x(1) = V(mupg,5)/0.299792458
-      x(2) = ct
-      x(3) = cp
-      x(4) = phi
-
-      call mlfunc_cdf(x,par,prob1)
-      call norm(x(1),tau,prob2)
-
-c Accept/Reject Event
-c Random number generator
-      R = PYR(0)*1.8
-c      print*,"Random Number = ",R
-c      print*,"Corrected ML Prob = ",prob1*prob2
-c      if(idebug.eq.1) print*, "Prob1 ", prob1
-c      if(idebug.eq.1) print*, "Prob2 ", prob2
-      if(idebug.eq.1) print*, "Random Number = ", R
-      if(idebug.eq.1) print*, "Corrected ML Prob = ", prob1*prob2
-      if((prob1*prob2).gt.1.8) then 
-        print*,"WARNING: Max Prob exceeded!", prob1*prob2
-      endif
-      if(R.lt.(prob1*prob2)) then 
-         iret = 0
-         if(idebug.eq.1) print*, 'Accepted prob'
-      ELSE
-         iret = 1
-         if(idebug.eq.1) print*, 'Rejected prob'
-         return
-      endif
-c End of flat-angles switch
-      else  
-c Flat angles are always accepted
-      iret = 0 
-
-      endif
-
-c Apply kinematic cuts
-
-      call kine(bs,eta,pt)
-      if(abs(eta).gt.BdEtaCut.or.pt.lt.BdPtCut) then
-         iret = 1
-c         if(idebug.eq.1) print*,"Rejected because Bd Pt is ",pt
-         return
-      endif
-c      if(idebug.eq.1) print*,"Accepted Bd Pt is ",pt
-
-      call kine(mup,eta,pt)
-      mu1pt = pt
-      if(abs(eta).gt.muetacut.or.pt.lt.l2muon) then
-         iret = 1
-         return
-      endif
-      call kine(mum,eta,pt)
-      if(abs(eta).gt.muetacut.or.pt.lt.l2muon) then
-         iret = 1
-         return
-      endif
-c Apply Level 1 Cut
-      if (mu1pt.lt.pt) then
-         mu1pt = pt
-      endif
-      if(mu1pt.lt.l1muon) then
-         iret = 1
-         return
-      endif
-c Apply Hadron cuts
-      call kine(kp,eta,pt)
-      if(abs(eta).gt.hadetacut.or.pt.lt.hadptcut) then
-         iret = 1
-         return
-      endif
-      call kine(km,eta,pt)
-      if(abs(eta).gt.hadetacut.or.pt.lt.hadptcut) then
-         iret = 1
-         return
-      endif
-c      if(idebug.eq.1) print*,"Proper Lifetime = ",V(mupg,5)/0.299792458
-      if(idebug.eq.1) print*,"**** IRET = ",iret
-
-      return
-* USER_FINSEL    
-      END 
-
-
-c **********************************************************************
-*
-* Subroutine to calculate cos(theta)
-*
-c23456******************************************************************
-c     subroutine cost(d1,d2,h1,h2,ct1,ct2)
-c     implicit none
-c     double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4),b(4)
-c     double precision jpsib(4),d1b(4),knsb(4),h1b(4)
-c     double precision ct1,ct2
-c     integer i
-c
-c     do i=1,4 
-c        jpsi(i) = d1(i)+d2(i)
-c        kns(i) = h1(i)+h2(i)
-c        b(i) = jpsi(i)+kns(i)
-c     enddo
-c
-c     call loren4(b, jpsi, jpsib)
-c     call loren4(jpsi, d1, d1b)
-c     call ang3(jpsib,d1b,ct1)
-c
-c     call loren4(b, kns, knsb)
-c     call loren4(kns,h1,h1b)
-c     call ang3(knsb,h1b,ct2)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate chi
-*
-c23456******************************************************************
-c     subroutine chi(d1,d2,h1,h2,phi)
-c     implicit none
-c     double precision p(4),d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-c     double precision d1b(4),h1b(4),jpsib(4),knsb(4)
-c     double precision dperp(3), hperp(3), dpara(3)
-c     double precision phi, signum
-c     integer i
-c
-c     do i=1,4
-c        jpsi(i) = d1(i)+d2(i)
-c        kns(i) = h1(i)+h2(i)
-c        p(i) = jpsi(i)+kns(i)
-c     enddo
-c
-c     call loren4(p,d1,d1b)
-c     call loren4(p,h1,h1b)
-c     call loren4(p,jpsi,jpsib)
-c     call loren4(p,kns,knsb)
-c
-c     call cross(jpsib,d1b,dperp)
-c     call cross(knsb,h1b,hperp)
-c     call cross(dperp,hperp,dpara)
-c
-c     call ang3(jpsib,dpara,signum)
-c     call ang3(dperp,hperp,phi)
-c     phi = signum * dacos(phi)  
-c      if (phi.LT.0) phi=phi+2*3.1415926536
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate CDF cos(theta)
-*
-c23456******************************************************************
-c     subroutine cdfct(d1,d2,h1,h2,ct)
-c     implicit none
-c     double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-c     double precision d1b(4),h1b(4),knsb(4)
-c     double precision x(3), y(3), z(3), h1bu(3), d1bu(3), knso(3)
-c     double precision ct, prod
-c     integer i
-c
-c Calculate 4 vectors of J/psi and phi/K0*
-c     do i=1,4
-c        jpsi(i) = d1(i)+d2(i)
-c        kns(i) = h1(i)+h2(i)
-c     enddo
-c 
-c Boost into rest frame of J/psi
-c     call loren4(jpsi,d1,d1b)
-c     call loren4(jpsi,h1,h1b)
-c     call loren4(jpsi,kns,knsb)
-c 
-c Calcuate coordinate system  
-c     call unit3(knsb, x)
-c     call unit3(h1b, h1bu) 
-c     call unit3(d1b, d1bu)
-c     call dot3(h1bu,x,prod)
-c 
-c     do i=1,3
-c        knso(i) = h1bu(i) - x(i)*prod
-c     enddo
-c 
-c     call unit3(knso,y)
-c     call cross(x,y,z)
-c
-c Calculate cos(theta)
-c     call dot3(d1bu,z,ct)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate CDF cos(Psi)
-*
-c23456******************************************************************
-c     subroutine cdfcp(d1,d2,h1,h2,cp)
-c     implicit none
-c     double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-c     double precision h1b(4),jpsib(4)
-c     double precision h1bu(3),jpsibu(3)
-c     double precision cp
-c     integer i
-c
-c Calculate 4 vectors of J/psi and phi/K0*
-c     do i=1,4
-c        jpsi(i) = d1(i)+d2(i)
-c        kns(i) = h1(i)+h2(i)
-c     enddo
-c 
-c Boost into rest frame of phi/K0*
-c     call loren4(kns,jpsi,jpsib)
-c     call loren4(kns,h1,h1b)
-c 
-c Calculate cos(Psi)
-c     call ang3(h1b,jpsib,cp)
-c     cp = cp*(-1.0)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate CDF Phi
-*
-c23456******************************************************************
-c     subroutine cdfphi(d1,d2,h1,h2,phi)
-c     implicit none
-c     double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-c     double precision d1b(4),h1b(4),knsb(4)
-c     double precision x(3), y(3), z(3), h1bu(3), d1bu(3), knso(3)
-c     double precision phi, prod, xdot, ydot
-c     integer i
-c
-c Calculate 4 vectors of J/psi and phi/K0*
-c     do i=1,4
-c        jpsi(i) = d1(i)+d2(i)
-c        kns(i) = h1(i)+h2(i)
-c     enddo
-c
-c Boost into rest frame of J/psi
-c     call loren4(jpsi,d1,d1b)
-c     call loren4(jpsi,h1,h1b)
-c     call loren4(jpsi,kns,knsb)
-c 
-c Calcuate coordinate system
-c     call unit3(knsb, x)
-c     call unit3(h1b, h1bu) 
-c     call unit3(d1b, d1bu)
-c     call dot3(h1bu,x,prod)
-c 
-c     do i=1,3
-c        knso(i) = h1bu(i) - x(i)*prod
-c      enddo
-c 
-c     call unit3(knso,y)
-c
-c Calculate Phi
-c     call dot3(d1bu,y,ydot)
-c     call dot3(d1bu,x,xdot)
-c     phi = datan2(ydot,xdot)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to normalize exponential distribution to flat distribution 
-* between 0 and tmax
-* t is the proper decay time of the Bd in ps
-* tau is the lifetime of the Bd
-* p is the normalization factor
-* tmax is the maximum allowed time in ps
-*
-c23456******************************************************************
-c     subroutine norm(t,tau,p)
-c     double precision t, tau, p
-c t is in pico seconds
-c     if(t.Gt.20.0) print*, "WARNING: proper decay time > 20ps"
-c     p = exp(t/tau)*tau
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate ML function
-*
-c23456******************************************************************
-c     subroutine mlfunc_cdf(x, par, prob)
-c     double precision x(4), par(8), a(6), b1(6), b2(6), c(6)
-c     double precision prob, time, cost, cospsi, phi, a0, apara,
-c    +                 aperp, deltag, gammas, deltam, phis, delta1,
-c    +                 delta2, gammah, gammal, expgl, expgh, expgs,
-c    +                 sinsqt, sisqps, sin2t, sin2ps, eta
-c     integer i
-c
-c Measured Variables
-c     time = x(1)
-c Old angles commented out
-c      cost1 = x(2)
-c      cost2 = x(3)
-c     cost = x(2)
-c     cospsi = x(3)
-c     phi = x(4)
-c
-c Fitted Variables
-c     a0 = par(1)
-c     apara = par(2)
-c     aperp = sqrt(1 - a0**2 - apara**2)
-c     deltag = par(3)
-c     gammas = par(4)
-c     deltam = par(5)
-c     phis = par(6)
-c     delta1 = par(7)
-c     delta2 = par(8)
-c
-c The tabulated function is Sum of: a(i) * (b1(i) +/- b2(i)) * c(i)
-c Define a cells
-c
-c     a(1) = 0.5 * a0**2
-c     a(2) = 0.5 * apara**2
-c     a(3) = 0.5 * aperp**2
-c     a(4) = 0.5 * a0*apara*cos(delta2 - delta1)
-c     a(5) = apara*aperp
-c     a(6) = a0*aperp
-c
-c Define B cells
-c Input variables are gammas, deltag, deltam, phis, delta1, delta2, time
-c
-c     gammah = gammas - deltag/2.0
-c     gammal = gammas + deltag/2.0
-c     expgl = exp((-gammal)*time)
-c     expgh = exp((-gammah)*time)
-c     expgs = exp((-gammas)*time)
-c
-c     b1(1) = (1.0 + cos(phis))*expgl + (1.0 - cos(phis))*expgh
-c     b1(2) = b1(1)
-c     b1(3) = (1.0 - cos(phis))*expgl + (1.0 + cos(phis))*expgh
-c     b1(4) = b1(1)
-c     b1(5) = (-0.5)*(expgh - expgl)*cos(delta1)*sin(phis)
-c     b1(6) = (-0.5)*(expgh - expgl)*cos(delta2)*sin(phis)
-c
-c     b2(1) = 2.0*expgs*sin(deltam*time)*sin(phis)
-c     b2(2) = b2(1)
-c     b2(3) = -b2(1)
-c     b2(4) = b2(1)
-c     b2(5) = expgs*(sin(delta1)*cos(deltam*time) -
-c    +        cos(delta1)*sin(deltam*time)*cos(phis))
-c     b2(6) = expgs*(sin(delta2)*cos(deltam*time) -
-c    +        cos(delta2)*sin(deltam*time)*cos(phis))
-c
-c Define C cells
-c Old angles commented out
-c Input variables are cost1, cost2 and phi
-c
-c      sisqt1 = 1.0 - cost1**2
-c      sisqt2 = 1.0 - cost2**2
-c      sin2t1 = 2.0*sqrt(sisqt1)*cost1
-c      sin2t2 = 2.0*sqrt(sisqt2)*cost2
-c
-c      c(1) = 4.0*sisqt1*cost2**2
-c      c(2) = (1.0 + cost1**2)*sisqt2 - sisqt1*sisqt2*cos(2.0*phi)
-c      c(3) = (1.0 + cost1**2)*sisqt2 + sisqt1*sisqt2*cos(2.0*phi)
-c      c(4) = (-sqrt(2.0))*sin2t1*sin2t2*cos(phi)
-c      c(5) = 2.0*sisqt1*sisqt2*sin(2.0*phi)
-c      c(6) = sqrt(2.0)*sin2t1*sin2t2*sin(phi)
-c
-c Input variables are cost, cosp and phi
-c
-c     sinsqt = 1.0 - cost**2
-c     sisqps = 1.0 - cospsi**2
-c     sin2t = 2.0*sqrt(sinsqt)*cost
-c     sin2ps = 2.0*sqrt(sisqps)*cospsi
-c
-c     c(1) = 2.0*cospsi**2 * (1.0 - sinsqt*cos(phi)**2)
-c     c(2) = sisqps * (1.0 - sinsqt*sin(phi)**2)
-c     c(3) = sisqps * sinsqt
-c     c(4) = (-1.0/sqrt(2.0))*sin2ps * sinsqt * sin(2.0*phi)
-c     c(5) = sisqps * sin2t * sin(phi)
-c     c(6) = (1.0/sqrt(2.0))*sin2ps * sin2t * cos(phi)
-c
-c
-c Sum the tabulated formula
-c Currently just calculate bs decay
-c     prob = 0.0
-c eta is +1 for particle -1 for antiparticle
-c adam changed eta to meet B meson production
-c     eta = 1.0 
-c     do i=1,6
-c        prob = prob + a(i)*(b1(i) + eta*b2(i))*c(i)
-c     enddo
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate eta and pt of particle
-*
-c23456******************************************************************
-c     subroutine kine(p, eta, pt)
-c     double precision p(4)
-c     double precision eta,pt,th
-c     pt = sqrt(p(1)**2+p(2)**2)
-c     th = acos(p(3)/sqrt(pt**2+p(3)**2))
-c     eta = -log(max(0.0001,abs(dtan(0.5*th))))
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to convert vector into unit vector
-*
-c23456******************************************************************
-c     subroutine unit3(v, norm)
-c     double precision v(3), norm(3)
-c
-c     do i=1,3
-c        norm(i) = v(i) / dsqrt(v(1)**2+v(2)**2+v(3)**2)
-c     enddo
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to perform dot product of 3 momentum
-*
-c23456******************************************************************
-c     subroutine dot3(v1, v2, prod)
-c     double precision v1(3), v2(3)
-c     double precision prod
-c
-c     prod = v1(1)*v2(1)+v1(2)*v2(2)+v1(3)*v2(3)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate angle between 2 vectors
-*
-c23456******************************************************************
-c     subroutine ang3(v1, v2, prod)
-c     double precision v1(3), v2(3)
-c     double precision prod, v1mag, v2mag
-c
-c     call dot3(v1,v2,prod)
-c     v1mag = v1(1)**2+v1(2)**2+v1(3)**2
-c     v2mag = v2(1)**2+v2(2)**2+v2(3)**2
-c
-c     prod = prod/dsqrt(v1mag*v2mag)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-*
-* $Id: cross.F,v 1.1.1.1 1996/02/15 17:49:51 mclareni Exp $
-*
-c     SUBROUTINE CROSS(X,Y,Z)
-C
-C CERN PROGLIB# F117    CROSS           .VERSION KERNFOR  2.02  730125
-C ORIG. 01/01/64
-C 
-c     IMPLICIT DOUBLE PRECISION (A-H,O-Z)
-c     DIMENSION X(3),Y(3),Z(3)
-C
-C
-c     Z1=X(2)*Y(3)-X(3)*Y(2)
-c     Z2=X(3)*Y(1)-X(1)*Y(3)
-c     Z(3)=X(1)*Y(2)-X(2)*Y(1)
-c     Z(1)=Z1
-c     Z(2)=Z2
-c     RETURN
-c     END
-
-c     SUBROUTINE LOREN4  (DIR,P4IN,P4OUT)
-C
-C CERN PROGLIB# U101    LOREN4          .VERSION KERNFOR  4.07  830624
-C ORIG. 20/02/68
-C
-c
-c     DOUBLE PRECISION PCM2, ONMCM, EPBETA, PROD
-c
-c     DOUBLE PRECISION DIR(4),P4IN(4),P4OUT(4)
-C
-C--                VN(A) MEANS N-VECTOR A
-C--                GAMMA=ECM/MCM
-C--                EPBETA=ECM*V3(PCM)*V3(BETA)
-C--                V3(BETA)=V3(PCM)/ECM
-C
-c     PCM2=DIR(1)*DIR(1)+DIR(2)*DIR(2)+DIR(3)*DIR(3)
-c
-c
-c     ONMCM=1.D0/DSQRT (DIR(4)*DIR(4)-PCM2)
-c
-c     EPBETA=P4IN(1)*DIR(1)+P4IN(2)*DIR(2)+P4IN(3)*DIR(3)
-c     PROD=EPBETA*(DIR(4)*ONMCM-1.D0)/PCM2-P4IN(4)*ONMCM
-c     P4OUT(4)=ONMCM*(P4IN(4)*DIR(4)-EPBETA)
-c        DO 50 I=1,3
-c  50 P4OUT(I)=P4IN(I)+DIR(I)*PROD
-c     RETURN
-c     END
-
diff --git a/Generators/PythiaB/src/uf_BdJpsimumuK0starKpi.F b/Generators/PythiaB/src/uf_BdJpsimumuK0starKpi.F
deleted file mode 100644
index 5499c210007a7edb7fcff2c1a84df9491e6ffe65..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_BdJpsimumuK0starKpi.F
+++ /dev/null
@@ -1,104 +0,0 @@
-      subroutine uf_BdJpsimumuK0starKpi ( iret )
-
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_BdJpsimumuK0starKpi                                        *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define requirements for event       *
-*               accepting/rejecting additional or other that in        *
-*               subroutine finsel for Bd->J/psi(mu,mu)K0star(K,pi)     *
-*               events. Additional settings from cufdcp(10) array.     *
-* Arguments   : iret (in/out) accepting(0)/rejecting(1) event          *
-*                                                                      *
-*                                                                      *
-* Author : Pavel Reznicek               Date : 2010-08-26              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*          Pavel Reznicek               Date : 2010-08-26              *
-*                                                                      *
-* Keywords :                                                           *
-*          [keywords]                                                  *
-*----------------------------------------------------------------------*
-
-C...Double precision and integer declarations.
-      implicit double precision (a-h,o-z)
-      implicit integer (i-n)
-
-C...Decay tree genealogy in Pythia
-      common /PYJETS/ N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      save   /PYJETS/
-
-C...User finsel decay selection and decay parameters
-      common /ufdecay/ cufdcp(10),iufdc
-      save   /ufdecay/
-
-C...First event
-      save ifirst
-      data ifirst /1/
-
-C...Family definition from Pythia
-      name_self(i) = K(i,2)
-      name_selv(i) = abs(K(i,2))
-      name_father(i) = K(K(i,3),2)
-      name_grandpa(i) = K(K(K(i,3),3),2)
-      name_daughter1(i) = K(K(i,4),2)
-      name_daughter2(i) = K(K(i,5),2)
-
-      link_self(i) = i
-      link_father(i) = K(i,3)
-      link_grandpa(i) = K(K(i,3),3)
-      link_daughter1(i) = K(i,4)
-      link_daughter2(i) = K(i,5)
-
-C...Variable to be used for debugging the finsel algorithm
-      idebug = 0
-
-      if ( ifirst.eq.1 ) then
-        ifirst = 0
-      endif
-
-C...Return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-C...Parameters:
-c     cufdcp( 1) :
-c     cufdcp( 2) :
-c     cufdcp( 3) :
-c     cufdcp( 4) :
-c     cufdcp( 5) :
-c     cufdcp( 6) :
-c     cufdcp( 7) :
-c     cufdcp( 8) :
-c     cufdcp( 9) :
-c     cufdcp(10) :
-
-C...Preset the acceptance (1 ... event is rejected)
-      iret = 1
-
-      if ( idebug.eq.1 )
-     +  print *,'USER_FINSEL: BEGINNING - BdJpsimumuK0starKpi'
-
-C...Loop over all the particles in the event
-      do i = 1,N
-c       if ( tree(i).eq.1 ) then
-C...Accept only Kstar0->Kpi decays (in case K0star comes from Bd)
-        if ( name_selv(i) .eq.313.and.
-     +       name_father(i).eq.511.and.
-     +       ((abs(name_daughter1(i)).eq.211.and.
-     +         abs(name_daughter2(i)).eq.321).or.
-     +        (abs(name_daughter1(i)).eq.321.and.
-     +         abs(name_daughter2(i)).eq.211)) ) then
-          if ( idebug.eq.1 ) print *,'USER_FINSEL: ',name_self(i)
-          iret = 0
-        endif
-      enddo
-
-C...Evaluate the filtering output
-      if ( iret.ne.0 ) then
-        if ( idebug.eq.1 ) print *, 'USER_FINSEL: event rejected'
-      endif
-
-      return
-      end
diff --git a/Generators/PythiaB/src/uf_BsAngles.F b/Generators/PythiaB/src/uf_BsAngles.F
deleted file mode 100644
index c656fb74d9656d3b3107be4fbd22cb45551d0f16..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_BsAngles.F
+++ /dev/null
@@ -1,641 +0,0 @@
-*CMZ :          
-*-- Author :    James catmore 2006-04-09
-      SUBROUTINE uf_BsAngles(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_BsANgles                                           *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 for BsJpsi mumu Phi KK events 
-*                 INCLUDING DECAY ANGLES
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : James Catmore                Date : 2006-04-09              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      double precision par(8), mup(4),mum(4),kp(4),km(4),x(4),bs(4)
-      double precision ct1,ct2,phi,prob1,prob2,R
-      double precision l1muon,l2muon,muetacut,hadptcut,hadetacut,
-     +                 BsPtCut,BsEtaCut
-      double precision mu1pt,eta,pt
-      integer mupg,mumg,kpg,kmg,J
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp( 1) : bool: flat (0) or physics angles (1)
-c    cufdcp( 2) : muon1 pT cut (LVL1)
-c    cufdcp( 3) : muon2 pT cut (LVL2)
-c    cufdcp( 4) : muons eta cut
-c    cufdcp( 5) : kaons pT cut
-c    cufdcp( 6) : kaons eta cut
-c    cufdcp( 7) : Bs pT cut
-c    cufdcp( 8) : Bs eta cut
-c    cufdcp( 9) : Bs lifetime (if zero, extract it from Pythia common blocks)
-c    cufdcp(10) : 
-
-
-c     some counting
-      nintree = 0
-
-c     preset
-      iret = 1 !change
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING v3'
-
-c     particle loop  -- modify content as needed
-c      do  I=1,N
-c         
-c     if(tree(I).eq.1) then
-c
-c  accept only Phi KK decays -- code by James Catmore
-c
-c         if(name_selv(I).eq.333.and.
-c     +name_father(I).eq.531.and.
-c     +abs(name_daughter1(I)).eq.321.and.
-c     +abs(name_daughter2(I)).eq.321) then
-c            if(idebug.eq.1) print *,'USER_FINSEL: ',name_self(I)
-c            iret=0
-c         endif
-c     endif
-c         
-c      enddo
-
-c     evaluation
-      
-c 1000 continue
-c      if(iret.ne.0) then
-c     debug output
-c         if(idebug.eq.1)
-c     +        print *, 'USER_FINSEL: event rejected'
-c      endif
-
-
-c **********************************************************************
-c
-c Code to simulate CP violation
-c
-c **********************************************************************
-
-c Pythia Parameters
-c Bs Lifetime from Pythia
-      tau = 0.
-      if ( cufdcp(9).le.0.0 ) then
-        tau = pmas(140,4)/0.299792458 ! see KC for KF=531
-        if(idebug.eq.1) print*, 'Bs lifetime extracted: ', tau*0.299792458
-      else
-        tau = cufdcp(9)/0.299792458 !0.483/0.2998
-      endif
-c Set Physics Parameters
-c A0
-      par(1) = 0.724 !0.728!0.737
-c Al
-      par(2) = 0.481   ! 0.479 !0.487
-c deltaG
-      par(3) = 0.075   !.062 !0.049
-c GammaS
-      par(4) = 0.652  !0.679 !0.700
-c Delta M
-      par(5) = 17.77 ! corrent
-c phiS
-      par(6) = -0.04
-c delta1
-      par(7) = 0.0
-c delta2
-      par(8) = 3.14159265
-
-c Bs kinematic cuts
-      muetacut = cufdcp(4)  !100.0!2.5
-      l1muon = cufdcp(2)  !0.0  !0.5
-      l2muon = cufdcp(3)  !0.0 !0.5
-      hadptcut = cufdcp(5)  !0.0 !0.5
-      hadetacut = cufdcp(6)  !100.0
-      BsPtCut = cufdcp(7)  !0.0
-      BsEtaCut = cufdcp(8)  !100.0
-c **********************************************************************
-
-c Make sure the event is not accepted by lucky initialization
-      mupg = -1
-      mumg = -2
-      kpg  = -3
-      kmg  = -4
-c Search for the Bs -> J/psi phi decay
-      do  I=1,N
-      if(name_self(I).eq.531.and.name_daughter1(I).eq.443.and.
-     +name_daughter2(I).eq.333) then
-       do J=1,4
-       bs(J) = P(I,J)
-       enddo
-       continue
-      endif
-      if(name_self(I).eq.-13.and.name_father(I).eq.443.and.
-     +name_grandpa(I).eq.531) then
-         mupg = link_grandpa(I)
-         do J=1,4
-         mup(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.13.and.name_father(I).eq.443.and.
-     +name_grandpa(I).eq.531) then
-         mumg = link_grandpa(I)
-         do J=1,4
-         mum(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.321.and.name_father(I).eq.333.and.
-     +name_grandpa(I).eq.531) then
-         kpg = link_grandpa(I)
-         do J=1,4
-         kp(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.-321.and.name_father(I).eq.333.and.
-     +name_grandpa(I).eq.531) then
-         kmg = link_grandpa(I)
-         do J=1,4
-         km(J) = P(I,J)
-         enddo
-         continue
-      endif
-      enddo
-c Check that all the particles come from the same Bs
-      if(mupg.ne.mumg.or.mupg.ne.kpg.or.mupg.ne.kmg) then
-         if(idebug.eq.1) print*,"Signal decay not found."
-         iret = 1
-         return
-      endif
-
-
-c	return here for flat angles
-
-      if ( cufdcp(1).ne.0.0 ) then ! non-flat angles
-
-c If a Bs -> J/psi(mu mu) phi(K K) event has been found
-c      print*,"mu+ = (",mup(1),", ",mup(2)," ,",mup(3),", ",mup(4),")"
-c      print*,"mu- = (",mum(1),", ",mum(2)," ,",mum(3),", ",mum(4),")"
-c      print*,"K+ = (",kp(1),", ",kp(2)," ,",kp(3),", ",kp(4),")"
-c      print*,"K- = (",km(1),", ",km(2)," ,",km(3),", ",km(4),")"
-
-      call cost(mup,mum,kp,km,ct1,ct2)
-      call chi(mup,mum,kp,km,phi)
-      
-c      print*,"cos(theta1) = ",ct1
-c      print*,"cos(theta2) = ",ct2
-c      print*,"phi = ",phi
-c      print*,"Proper Lifetime = ",V(mupg,5)/0.2998
-
-c Set Measured Parameters for ML function
-c x(1) = proper time V(mupg,5) mm/c (~3.33x10^-12 s^-1)
-      x(1) = V(mupg,5)/0.299792458
-      x(2) = ct1
-      x(3) = ct2
-      x(4) = phi
-
-      call mlfunc(x,par,prob1)
-      call norm(x(1),tau,prob2)
-
-c Accept/Reject Event
-c Random number generator
-      R = PYR(0)*3.5
-c      print*,"Random Number = ",R
-c      print*,"Corrected ML Prob = ",prob1*prob2
-      if(idebug.eq.1) print*, "Prob1 ", prob1
-      if(idebug.eq.1) print*, "Prob2 ", prob2
-      if(idebug.eq.1) print*, "prob1 * prob2 ", prob1*prob2
-      if((prob1*prob2).gt.3.5) then 
-        print*,"WARNING: Max Prob exceeded!"
-      endif
-      if(R.lt.(prob1*prob2)) then 
-         iret = 0
-         if(idebug.eq.1) print*, 'Accepted prob'
-      ELSE
-         iret = 1
-         if(idebug.eq.1) print*, 'Rejected prob'
-         return
-      endif
-
-      else  ! end of flat-angles switch
-
-      iret = 0  ! flat angles are always accepted
-
-      endif
-
-c Apply kinematic cuts
-
-      call kine(bs,eta,pt)
-      if(abs(eta).gt.BsEtaCut.or.pt.lt.BsPtCut) then
-         iret = 1
-         if(idebug.eq.1) print*,"Rejected because Bs Pt is ",pt
-         return
-      endif
-      if(idebug.eq.1) print*,"Accepted Bs Pt is ",pt
-
-      call kine(mup,eta,pt)
-      mu1pt = pt
-      if(abs(eta).gt.muetacut.or.pt.lt.l2muon) then
-         iret = 1
-         return
-      endif
-      call kine(mum,eta,pt)
-      if(abs(eta).gt.muetacut.or.pt.lt.l2muon) then
-         iret = 1
-         return
-      endif
-c Apply Level 1 Cut
-      if (mu1pt.lt.pt) then
-         mu1pt = pt
-      endif
-      if(mu1pt.lt.l1muon) then
-         iret = 1
-         return
-      endif
-c Apply Hadron cuts
-      call kine(kp,eta,pt)
-      if(abs(eta).gt.hadetacut.or.pt.lt.hadptcut) then
-         iret = 1
-         return
-      endif
-      call kine(km,eta,pt)
-      if(abs(eta).gt.hadetacut.or.pt.lt.hadptcut) then
-         iret = 1
-         return
-      endif
-      if(idebug.eq.1) print*,"Proper Lifetime = ",V(mupg,5)/0.299792458
-
-      return
-*     
-      END                       ! USER_FINSEL
-
-c **********************************************************************
-*
-* Subroutine to calculate cos(theta)
-*
-c23456******************************************************************
-      subroutine cost(d1,d2,h1,h2,ct1,ct2)
-      implicit none
-      double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4),b(4)
-      double precision jpsib(4),d1b(4),knsb(4),h1b(4)
-      double precision ct1,ct2
-      integer i
-
-      do i=1,4 
-         jpsi(i) = d1(i)+d2(i)
-         kns(i) = h1(i)+h2(i)
-         b(i) = jpsi(i)+kns(i)
-      enddo
-
-      call loren4(b, jpsi, jpsib)
-      call loren4(jpsi, d1, d1b)
-      call ang3(jpsib,d1b,ct1)
-
-      call loren4(b, kns, knsb)
-      call loren4(kns,h1,h1b)
-      call ang3(knsb,h1b,ct2)
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate chi
-*
-c23456******************************************************************
-      subroutine chi(d1,d2,h1,h2,phi)
-      implicit none
-      double precision p(4),d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-      double precision d1b(4),h1b(4),jpsib(4),knsb(4)
-      double precision dperp(3), hperp(3), dpara(3)
-      double precision phi, signum
-      integer i
-
-      do i=1,4
-         jpsi(i) = d1(i)+d2(i)
-         kns(i) = h1(i)+h2(i)
-         p(i) = jpsi(i)+kns(i)
-      enddo
-
-      call loren4(p,d1,d1b)
-      call loren4(p,h1,h1b)
-      call loren4(p,jpsi,jpsib)
-      call loren4(p,kns,knsb)
-
-      call cross(jpsib,d1b,dperp)
-      call cross(knsb,h1b,hperp)
-      call cross(dperp,hperp,dpara)
-
-      call ang3(jpsib,dpara,signum)
-      call ang3(dperp,hperp,phi)
-      phi = signum * dacos(phi)  
-c      if (phi.LT.0) phi=phi+2*3.1415926536
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to normalize exponential distribution to flat distribution 
-* between 0 and tmax
-* t is the proper decay time of the Bs in ps
-* tau is the lifetime of the Bs
-* p is the normalization factor
-* tmax is the maximum allowed time in ps
-*
-c23456******************************************************************
-      subroutine norm(t,tau,p)
-      double precision t, tau, p
-c t is in pico seconds
-      if(t.Gt.20.0) print*, "WARNING: proper decay time > 20ps"
-      p = exp(t/tau)*tau
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate ML function
-*
-c23456******************************************************************
-      subroutine mlfunc(x, par, prob)
-      double precision x(4), par(8), a(6), b1(6), b2(6), c(6)
-      double precision prob, time, cost1, cost2, phi, a0, apara,
-     +                 aperp, deltag, gammas, deltam, phis, delta1,
-     +                 delta2, gammah, gammal, expgl, expgh, expgs,
-     +                 sisqt1, sisqt2, sin2t1, sin2t2, eta
-      integer i
-
-c Measured Variables
-      time = x(1)
-      cost1 = x(2)
-      cost2 = x(3)
-      phi = x(4)
-
-c Fitted Variables
-      a0 = par(1)
-      apara = par(2)
-      aperp = sqrt(1 - a0**2 - apara**2)
-      deltag = par(3)
-      gammas = par(4)
-      deltam = par(5)
-      phis = par(6)
-      delta1 = par(7)
-      delta2 = par(8)
-
-c The tabulated function is Sum of: a(i) * (b1(i) +/- b2(i)) * c(i)
-c Define a cells
-
-      a(1) = 0.5 * a0**2
-      a(2) = 0.5 * apara**2
-      a(3) = 0.5 * aperp**2
-      a(4) = 0.5 * a0*apara*cos(delta2 - delta1)
-      a(5) = apara*aperp
-      a(6) = a0*aperp
-
-c Define B cells
-c Input variables are gammas, deltag, deltam, phis, delta1, delta2, time
-
-      gammah = gammas - deltag/2.0
-      gammal = gammas + deltag/2.0
-      expgl = exp((-gammal)*time)
-      expgh = exp((-gammah)*time)
-      expgs = exp((-gammas)*time)
-
-      b1(1) = (1.0 + cos(phis))*expgl + (1.0 - cos(phis))*expgh
-      b1(2) = b1(1)
-      b1(3) = (1.0 - cos(phis))*expgl + (1.0 + cos(phis))*expgh
-      b1(4) = b1(1)
-      b1(5) = (-0.5)*(expgh - expgl)*cos(delta1)*sin(phis)
-      b1(6) = (-0.5)*(expgh - expgl)*cos(delta2)*sin(phis)
-
-      b2(1) = 2.0*expgs*sin(deltam*time)*sin(phis)
-      b2(2) = b2(1)
-      b2(3) = -b2(1)
-      b2(4) = b2(1)
-      b2(5) = expgs*(sin(delta1)*cos(deltam*time) -
-     +        cos(delta1)*sin(deltam*time)*cos(phis))
-      b2(6) = expgs*(sin(delta2)*cos(deltam*time) -
-     +        cos(delta2)*sin(deltam*time)*cos(phis))
-
-c Define C cells
-c Input variables are cost1, cost2 and phi
-
-      sisqt1 = 1.0 - cost1**2
-      sisqt2 = 1.0 - cost2**2
-      sin2t1 = 2.0*sqrt(sisqt1)*cost1
-      sin2t2 = 2.0*sqrt(sisqt2)*cost2
-
-      c(1) = 4.0*sisqt1*cost2**2
-      c(2) = (1.0 + cost1**2)*sisqt2 - sisqt1*sisqt2*cos(2.0*phi)
-      c(3) = (1.0 + cost1**2)*sisqt2 + sisqt1*sisqt2*cos(2.0*phi)
-      c(4) = (-sqrt(2.0))*sin2t1*sin2t2*cos(phi)
-      c(5) = 2.0*sisqt1*sisqt2*sin(2.0*phi)
-      c(6) = sqrt(2.0)*sin2t1*sin2t2*sin(phi)
-
-c Sum the tabulated formula
-c Currently just calculate bs decay
-      prob = 0.0
-c eta is +1 for particle -1 for antiparticle
-c adam changed eta to meet B meson production
-      eta = 1.0 
-      do i=1,6
-         prob = prob + a(i)*(b1(i) + eta*b2(i))*c(i)
-      enddo
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate eta and pt of particle
-*
-c23456******************************************************************
-      subroutine kine(p, eta, pt)
-      double precision p(4)
-      double precision eta,pt,th
-
-      pt = sqrt(p(1)**2+p(2)**2)
-      th = acos(p(3)/sqrt(pt**2+p(3)**2))
-      eta = -log(max(0.0001,abs(tan(0.5*th))))
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to perform dot product of 3 momentum
-*
-c23456******************************************************************
-      subroutine dot3(v1, v2, prod)
-      double precision v1(3), v2(3)
-      double precision prod
-
-      prod = v1(1)*v2(1)+v1(2)*v2(2)+v1(3)*v2(3)
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate angle between 2 vectors
-*
-c23456******************************************************************
-      subroutine ang3(v1, v2, prod)
-      double precision v1(3), v2(3)
-      double precision prod, v1mag, v2mag
-
-      call dot3(v1,v2,prod)
-      v1mag = v1(1)**2+v1(2)**2+v1(3)**2
-      v2mag = v2(1)**2+v2(2)**2+v2(3)**2
-
-      prod = prod/dsqrt(v1mag*v2mag)
-
-      return
-      end
-
-c **********************************************************************
-
-*
-* $Id: cross.F,v 1.1.1.1 1996/02/15 17:49:51 mclareni Exp $
-*
-      SUBROUTINE CROSS(X,Y,Z)
-C
-C CERN PROGLIB# F117    CROSS           .VERSION KERNFOR  2.02  730125
-C ORIG. 01/01/64
-C 
-      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
-      DIMENSION X(3),Y(3),Z(3)
-C
-C
-      Z1=X(2)*Y(3)-X(3)*Y(2)
-      Z2=X(3)*Y(1)-X(1)*Y(3)
-      Z(3)=X(1)*Y(2)-X(2)*Y(1)
-      Z(1)=Z1
-      Z(2)=Z2
-      RETURN
-      END
-
-      SUBROUTINE LOREN4  (DIR,P4IN,P4OUT)
-C
-C CERN PROGLIB# U101    LOREN4          .VERSION KERNFOR  4.07  830624
-C ORIG. 20/02/68
-C
-
-      DOUBLE PRECISION PCM2, ONMCM, EPBETA, PROD
-
-      DOUBLE PRECISION DIR(4),P4IN(4),P4OUT(4)
-C
-C--                VN(A) MEANS N-VECTOR A
-C--                GAMMA=ECM/MCM
-C--                EPBETA=ECM*V3(PCM)*V3(BETA)
-C--                V3(BETA)=V3(PCM)/ECM
-C
-      PCM2=DIR(1)*DIR(1)+DIR(2)*DIR(2)+DIR(3)*DIR(3)
-
-
-      ONMCM=1.D0/DSQRT (DIR(4)*DIR(4)-PCM2)
-
-      EPBETA=P4IN(1)*DIR(1)+P4IN(2)*DIR(2)+P4IN(3)*DIR(3)
-      PROD=EPBETA*(DIR(4)*ONMCM-1.D0)/PCM2-P4IN(4)*ONMCM
-      P4OUT(4)=ONMCM*(P4IN(4)*DIR(4)-EPBETA)
-         DO 50 I=1,3
-   50 P4OUT(I)=P4IN(I)+DIR(I)*PROD
-      RETURN
-      END
-
diff --git a/Generators/PythiaB/src/uf_BsAnglesCDF.F b/Generators/PythiaB/src/uf_BsAnglesCDF.F
deleted file mode 100644
index 234c901bf096b034928f6279e1a8ca121c768612..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_BsAnglesCDF.F
+++ /dev/null
@@ -1,809 +0,0 @@
-*CMZ :          
-*-- Author :    James catmore 2006-04-09
-      SUBROUTINE uf_BsAnglesCDF(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_BsANgles                                           *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 for BsJpsi mumu Phi KK events 
-*                 INCLUDING DECAY ANGLES
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : James Catmore                Date : 2006-04-09              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      double precision par(8), mup(4),mum(4),kp(4),km(4),x(4),bs(4)
-c Old angles commented out
-c      double precision ct1,ct2,phi,prob1,prob2,R
-      double precision ct,cp,phi,prob1,prob2,R
-      double precision l1muon,l2muon,muetacut,hadptcut,hadetacut,
-     +                 BsPtCut,BsEtaCut
-      double precision mu1pt,eta,pt
-      integer mupg,mumg,kpg,kmg,J
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp( 1) : bool: flat (0) or physics angles (1)
-c    cufdcp( 2) : muon1 pT cut (LVL1)
-c    cufdcp( 3) : muon2 pT cut (LVL2)
-c    cufdcp( 4) : muons eta cut
-c    cufdcp( 5) : kaons pT cut
-c    cufdcp( 6) : kaons eta cut
-c    cufdcp( 7) : Bs pT cut
-c    cufdcp( 8) : Bs eta cut
-c    cufdcp( 9) : Bs lifetime (if zero, extract it from Pythia common blocks)
-c    cufdcp(10) : 
-
-
-c     some counting
-      nintree = 0
-
-c     preset
-      iret = 1 !change
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING v3'
-
-c     particle loop  -- modify content as needed
-c      do  I=1,N
-c         
-c     if(tree(I).eq.1) then
-c
-c  accept only Phi KK decays -- code by James Catmore
-c
-c         if(name_selv(I).eq.333.and.
-c     +name_father(I).eq.531.and.
-c     +abs(name_daughter1(I)).eq.321.and.
-c     +abs(name_daughter2(I)).eq.321) then
-c            if(idebug.eq.1) print *,'USER_FINSEL: ',name_self(I)
-c            iret=0
-c         endif
-c     endif
-c         
-c      enddo
-
-c     evaluation
-      
-c 1000 continue
-c      if(iret.ne.0) then
-c     debug output
-c         if(idebug.eq.1)
-c     +        print *, 'USER_FINSEL: event rejected'
-c      endif
-
-
-c **********************************************************************
-c
-c Code to simulate CP violation
-c
-c **********************************************************************
-
-c Pythia Parameters
-c Bs Lifetime from Pythia
-      tau = 0.
-      if ( cufdcp(9).le.0.0 ) then
-        tau = pmas(140,4)/0.299792458 ! see KC for KF=531
-        if(idebug.eq.1) print*, 'Bs lifetime extracted: ', tau*0.2997924
-      else
-        tau = cufdcp(9)/0.299792458 !0.483/0.2998
-      endif
-c Set Physics Parameters
-c A0
-      par(1) = 0.724 !0.728!0.737
-c Al
-      par(2) = 0.481   ! 0.479 !0.487
-c deltaG
-      par(3) = 0.075   !.062 !0.049
-c GammaS
-      par(4) = 0.652  !0.679 !0.700
-c Delta M
-      par(5) = 17.77 ! corrent
-c phiS
-      par(6) = -0.04
-c delta1
-      par(7) = 0.2
-c delta2
-      par(8) = 2.8
-
-c Bs kinematic cuts
-      muetacut = cufdcp(4)  !100.0!2.5
-      l1muon = cufdcp(2)  !0.0  !0.5
-      l2muon = cufdcp(3)  !0.0 !0.5
-      hadptcut = cufdcp(5)  !0.0 !0.5
-      hadetacut = cufdcp(6)  !100.0
-      BsPtCut = cufdcp(7)  !0.0
-      BsEtaCut = cufdcp(8)  !100.0
-c **********************************************************************
-
-c Make sure the event is not accepted by lucky initialization
-      mupg = -1
-      mumg = -2
-      kpg  = -3
-      kmg  = -4
-c Search for the Bs -> J/psi phi decay
-      do  I=1,N
-      if(name_self(I).eq.531.and.(name_daughter1(I).eq.443.and.
-     +name_daughter2(I).eq.333.or.name_daughter1(I).eq.333.and.
-     +name_daughter2(I).eq.443)) then
-       do J=1,4
-       bs(J) = P(I,J)
-       enddo
-       continue
-      endif
-      if(name_self(I).eq.-13.and.name_father(I).eq.443.and.
-     +name_grandpa(I).eq.531) then
-         mupg = link_grandpa(I)
-         do J=1,4
-         mup(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.13.and.name_father(I).eq.443.and.
-     +name_grandpa(I).eq.531) then
-         mumg = link_grandpa(I)
-         do J=1,4
-         mum(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.321.and.name_father(I).eq.333.and.
-     +name_grandpa(I).eq.531) then
-         kpg = link_grandpa(I)
-         do J=1,4
-         kp(J) = P(I,J)
-         enddo
-         continue
-      endif
-      if(name_self(I).eq.-321.and.name_father(I).eq.333.and.
-     +name_grandpa(I).eq.531) then
-         kmg = link_grandpa(I)
-         do J=1,4
-         km(J) = P(I,J)
-         enddo
-         continue
-      endif
-      enddo
-c Check that all the particles come from the same Bs
-      if(mupg.ne.mumg.or.mupg.ne.kpg.or.mupg.ne.kmg) then
-         if(idebug.eq.1) print*,"Signal decay not found."
-         iret = 1
-         return
-      endif
-
-
-c      return here for flat angles
-
-      if ( cufdcp(1).ne.0.0 ) then ! non-flat angles
-
-c If a Bs -> J/psi(mu mu) phi(K K) event has been found
-c      print*,"mu+ = (",mup(1),", ",mup(2)," ,",mup(3),", ",mup(4),")"
-c      print*,"mu- = (",mum(1),", ",mum(2)," ,",mum(3),", ",mum(4),")"
-c      print*,"K+ = (",kp(1),", ",kp(2)," ,",kp(3),", ",kp(4),")"
-c      print*,"K- = (",km(1),", ",km(2)," ,",km(3),", ",km(4),")"
-
-c Old angles commented out
-c      call cost(mup,mum,kp,km,ct1,ct2)
-c      call chi(mup,mum,kp,km,phi)
-      call cdfct(mup,mum,kp,km,ct)
-      call cdfcp(mup,mum,kp,km,cp)
-      call cdfphi(mup,mum,kp,km,phi)
-        
-      if(idebug.eq.1) print*,"cos(theta) = ",ct
-      if(idebug.eq.1) print*,"cos(psi) = ",cp
-      if(idebug.eq.1) print*,"phi = ",phi
-      if(idebug.eq.1) print*,"Proper Lifetime = ",V(mupg,5)/0.2998
-
-c Set Measured Parameters for ML function
-c x(1) = proper time V(mupg,5) mm/c (~3.33x10^-12 s^-1)
-      x(1) = V(mupg,5)/0.299792458
-      x(2) = ct
-      x(3) = cp
-      x(4) = phi
-
-      call mlfunc_cdf(x,par,prob1)
-      call norm(x(1),tau,prob2)
-
-c Accept/Reject Event
-c Random number generator
-      R = PYR(0)*1.5
-c      print*,"Random Number = ",R
-c      print*,"Corrected ML Prob = ",prob1*prob2
-c      if(idebug.eq.1) print*, "Prob1 ", prob1
-c      if(idebug.eq.1) print*, "Prob2 ", prob2
-      if(idebug.eq.1) print*, "Random Number = ", R
-      if(idebug.eq.1) print*, "Corrected ML Prob = ", prob1*prob2
-      if((prob1*prob2).gt.1.5) then 
-        print*,"WARNING: Max Prob exceeded!"
-      endif
-      if(R.lt.(prob1*prob2)) then 
-         iret = 0
-         if(idebug.eq.1) print*, 'Accepted prob'
-      ELSE
-         iret = 1
-         if(idebug.eq.1) print*, 'Rejected prob'
-         return
-      endif
-
-      else  ! end of flat-angles switch
-
-      iret = 0  ! flat angles are always accepted
-
-      endif
-
-c Apply kinematic cuts
-
-      call kine(bs,eta,pt)
-      if(abs(eta).gt.BsEtaCut.or.pt.lt.BsPtCut) then
-         iret = 1
-c         if(idebug.eq.1) print*,"Rejected because Bs Pt is ",pt
-         return
-      endif
-c      if(idebug.eq.1) print*,"Accepted Bs Pt is ",pt
-
-      call kine(mup,eta,pt)
-      mu1pt = pt
-      if(abs(eta).gt.muetacut.or.pt.lt.l2muon) then
-         iret = 1
-         return
-      endif
-      call kine(mum,eta,pt)
-      if(abs(eta).gt.muetacut.or.pt.lt.l2muon) then
-         iret = 1
-         return
-      endif
-c Apply Level 1 Cut
-      if (mu1pt.lt.pt) then
-         mu1pt = pt
-      endif
-      if(mu1pt.lt.l1muon) then
-         iret = 1
-         return
-      endif
-c Apply Hadron cuts
-      call kine(kp,eta,pt)
-      if(abs(eta).gt.hadetacut.or.pt.lt.hadptcut) then
-         iret = 1
-         return
-      endif
-      call kine(km,eta,pt)
-      if(abs(eta).gt.hadetacut.or.pt.lt.hadptcut) then
-         iret = 1
-         return
-      endif
-c      if(idebug.eq.1) print*,"Proper Lifetime = ",V(mupg,5)/0.299792458
-      if(idebug.eq.1) print*,"**** IRET = ",iret
-
-      return
-*     
-      END                       ! USER_FINSEL
-
-
-c **********************************************************************
-*
-* Subroutine to calculate cos(theta)
-*
-c23456******************************************************************
-c     subroutine cost(d1,d2,h1,h2,ct1,ct2)
-c     implicit none
-c     double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4),b(4)
-c     double precision jpsib(4),d1b(4),knsb(4),h1b(4)
-c     double precision ct1,ct2
-c     integer i
-c
-c     do i=1,4 
-c        jpsi(i) = d1(i)+d2(i)
-c        kns(i) = h1(i)+h2(i)
-c        b(i) = jpsi(i)+kns(i)
-c     enddo
-c
-c     call loren4(b, jpsi, jpsib)
-c     call loren4(jpsi, d1, d1b)
-c     call ang3(jpsib,d1b,ct1)
-c
-c     call loren4(b, kns, knsb)
-c     call loren4(kns,h1,h1b)
-c     call ang3(knsb,h1b,ct2)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate chi
-*
-c23456******************************************************************
-c     subroutine chi(d1,d2,h1,h2,phi)
-c     implicit none
-c     double precision p(4),d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-c     double precision d1b(4),h1b(4),jpsib(4),knsb(4)
-c     double precision dperp(3), hperp(3), dpara(3)
-c     double precision phi, signum
-c     integer i
-c
-c     do i=1,4
-c        jpsi(i) = d1(i)+d2(i)
-c        kns(i) = h1(i)+h2(i)
-c        p(i) = jpsi(i)+kns(i)
-c     enddo
-c
-c     call loren4(p,d1,d1b)
-c     call loren4(p,h1,h1b)
-c     call loren4(p,jpsi,jpsib)
-c     call loren4(p,kns,knsb)
-c
-c     call cross(jpsib,d1b,dperp)
-c     call cross(knsb,h1b,hperp)
-c     call cross(dperp,hperp,dpara)
-c
-c     call ang3(jpsib,dpara,signum)
-c     call ang3(dperp,hperp,phi)
-c     phi = signum * dacos(phi)  
-c      if (phi.LT.0) phi=phi+2*3.1415926536
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate CDF cos(theta)
-*
-c23456******************************************************************
-      subroutine cdfct(d1,d2,h1,h2,ct)
-      implicit none
-      double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-      double precision d1b(4),h1b(4),knsb(4)
-      double precision x(3), y(3), z(3), h1bu(3), d1bu(3), knso(3)
-      double precision ct, prod
-      integer i
-
-c Calculate 4 vectors of J/psi and phi/K0*
-      do i=1,4
-         jpsi(i) = d1(i)+d2(i)
-         kns(i) = h1(i)+h2(i)
-      enddo
-  
-c Boost into rest frame of J/psi
-      call loren4(jpsi,d1,d1b)
-      call loren4(jpsi,h1,h1b)
-      call loren4(jpsi,kns,knsb)
-  
-c Calcuate coordinate system  
-      call unit3(knsb, x)
-      call unit3(h1b, h1bu) 
-      call unit3(d1b, d1bu)
-      call dot3(h1bu,x,prod)
-  
-      do i=1,3
-         knso(i) = h1bu(i) - x(i)*prod
-      enddo
-  
-      call unit3(knso,y)
-      call cross(x,y,z)
-
-c Calculate cos(theta)
-      call dot3(d1bu,z,ct)
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate CDF cos(Psi)
-*
-c23456******************************************************************
-      subroutine cdfcp(d1,d2,h1,h2,cp)
-      implicit none
-      double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-      double precision h1b(4),jpsib(4)
-      double precision h1bu(3),jpsibu(3)
-      double precision cp
-      integer i
-
-c Calculate 4 vectors of J/psi and phi/K0*
-      do i=1,4
-         jpsi(i) = d1(i)+d2(i)
-         kns(i) = h1(i)+h2(i)
-      enddo
-  
-c Boost into rest frame of phi/K0*
-      call loren4(kns,jpsi,jpsib)
-      call loren4(kns,h1,h1b)
-  
-c Calculate cos(Psi)
-      call ang3(h1b,jpsib,cp)
-      cp = cp*(-1.0)
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate CDF Phi
-*
-c23456******************************************************************
-      subroutine cdfphi(d1,d2,h1,h2,phi)
-      implicit none
-      double precision d1(4),d2(4),h1(4),h2(4),jpsi(4),kns(4)
-      double precision d1b(4),h1b(4),knsb(4)
-      double precision x(3), y(3), z(3), h1bu(3), d1bu(3), knso(3)
-      double precision phi, prod, xdot, ydot
-      integer i
-
-c Calculate 4 vectors of J/psi and phi/K0*
-      do i=1,4
-         jpsi(i) = d1(i)+d2(i)
-         kns(i) = h1(i)+h2(i)
-      enddo
-
-c Boost into rest frame of J/psi
-      call loren4(jpsi,d1,d1b)
-      call loren4(jpsi,h1,h1b)
-      call loren4(jpsi,kns,knsb)
-  
-c Calcuate coordinate system
-      call unit3(knsb, x)
-      call unit3(h1b, h1bu) 
-      call unit3(d1b, d1bu)
-      call dot3(h1bu,x,prod)
-  
-      do i=1,3
-         knso(i) = h1bu(i) - x(i)*prod
-       enddo
-  
-      call unit3(knso,y)
-
-c Calculate Phi
-      call dot3(d1bu,y,ydot)
-      call dot3(d1bu,x,xdot)
-      phi = datan2(ydot,xdot)
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to normalize exponential distribution to flat distribution 
-* between 0 and tmax
-* t is the proper decay time of the Bs in ps
-* tau is the lifetime of the Bs
-* p is the normalization factor
-* tmax is the maximum allowed time in ps
-*
-c23456******************************************************************
-c     subroutine norm(t,tau,p)
-c     double precision t, tau, p
-c t is in pico seconds
-c     if(t.Gt.20.0) print*, "WARNING: proper decay time > 20ps"
-c     p = exp(t/tau)*tau
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate ML function
-*
-c23456******************************************************************
-      subroutine mlfunc_cdf(x, par, prob)
-      double precision x(4), par(8), a(6), b1(6), b2(6), c(6)
-      double precision prob, time, cost, cospsi, phi, a0, apara,
-     +                 aperp, deltag, gammas, deltam, phis, delta1,
-     +                 delta2, gammah, gammal, expgl, expgh, expgs,
-     +                 sinsqt, sisqps, sin2t, sin2ps, eta
-      integer i
-
-c Measured Variables
-      time = x(1)
-c Old angles commented out
-c      cost1 = x(2)
-c      cost2 = x(3)
-      cost = x(2)
-      cospsi = x(3)
-      phi = x(4)
-
-c Fitted Variables
-      a0 = par(1)
-      apara = par(2)
-      aperp = sqrt(1 - a0**2 - apara**2)
-      deltag = par(3)
-      gammas = par(4)
-      deltam = par(5)
-      phis = par(6)
-      delta1 = par(7)
-      delta2 = par(8)
-
-c The tabulated function is Sum of: a(i) * (b1(i) +/- b2(i)) * c(i)
-c Define a cells
-
-      a(1) = 0.5 * a0**2
-      a(2) = 0.5 * apara**2
-      a(3) = 0.5 * aperp**2
-      a(4) = 0.5 * a0*apara*cos(delta2 - delta1)
-      a(5) = apara*aperp
-      a(6) = a0*aperp
-
-c Define B cells
-c Input variables are gammas, deltag, deltam, phis, delta1, delta2, time
-
-      gammah = gammas - deltag/2.0
-      gammal = gammas + deltag/2.0
-      expgl = exp((-gammal)*time)
-      expgh = exp((-gammah)*time)
-      expgs = exp((-gammas)*time)
-
-      b1(1) = (1.0 + cos(phis))*expgl + (1.0 - cos(phis))*expgh
-      b1(2) = b1(1)
-      b1(3) = (1.0 - cos(phis))*expgl + (1.0 + cos(phis))*expgh
-      b1(4) = b1(1)
-      b1(5) = (-0.5)*(expgh - expgl)*cos(delta1)*sin(phis)
-      b1(6) = (-0.5)*(expgh - expgl)*cos(delta2)*sin(phis)
-
-      b2(1) = 2.0*expgs*sin(deltam*time)*sin(phis)
-      b2(2) = b2(1)
-      b2(3) = -b2(1)
-      b2(4) = b2(1)
-      b2(5) = expgs*(sin(delta1)*cos(deltam*time) -
-     +        cos(delta1)*sin(deltam*time)*cos(phis))
-      b2(6) = expgs*(sin(delta2)*cos(deltam*time) -
-     +        cos(delta2)*sin(deltam*time)*cos(phis))
-
-c Define C cells
-c Old angles commented out
-c Input variables are cost1, cost2 and phi
-c
-c      sisqt1 = 1.0 - cost1**2
-c      sisqt2 = 1.0 - cost2**2
-c      sin2t1 = 2.0*sqrt(sisqt1)*cost1
-c      sin2t2 = 2.0*sqrt(sisqt2)*cost2
-c
-c      c(1) = 4.0*sisqt1*cost2**2
-c      c(2) = (1.0 + cost1**2)*sisqt2 - sisqt1*sisqt2*cos(2.0*phi)
-c      c(3) = (1.0 + cost1**2)*sisqt2 + sisqt1*sisqt2*cos(2.0*phi)
-c      c(4) = (-sqrt(2.0))*sin2t1*sin2t2*cos(phi)
-c      c(5) = 2.0*sisqt1*sisqt2*sin(2.0*phi)
-c      c(6) = sqrt(2.0)*sin2t1*sin2t2*sin(phi)
-
-c Input variables are cost, cosp and phi
-
-      sinsqt = 1.0 - cost**2
-      sisqps = 1.0 - cospsi**2
-      sin2t = 2.0*sqrt(sinsqt)*cost
-      sin2ps = 2.0*sqrt(sisqps)*cospsi
-
-      c(1) = 2.0*cospsi**2 * (1.0 - sinsqt*cos(phi)**2)
-      c(2) = sisqps * (1.0 - sinsqt*sin(phi)**2)
-      c(3) = sisqps * sinsqt
-      c(4) = (-1.0/sqrt(2.0))*sin2ps * sinsqt * sin(2.0*phi)
-      c(5) = sisqps * sin2t * sin(phi)
-      c(6) = (1.0/sqrt(2.0))*sin2ps * sin2t * cos(phi)
-
-
-c Sum the tabulated formula
-c Currently just calculate bs decay
-      prob = 0.0
-c eta is +1 for particle -1 for antiparticle
-c adam changed eta to meet B meson production
-      eta = 1.0 
-      do i=1,6
-         prob = prob + a(i)*(b1(i) + eta*b2(i))*c(i)
-      enddo
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate eta and pt of particle
-*
-c23456******************************************************************
-c     subroutine kine(p, eta, pt)
-c     double precision p(4)
-c     double precision eta,pt,th
-c     pt = sqrt(p(1)**2+p(2)**2)
-c     th = acos(p(3)/sqrt(pt**2+p(3)**2))
-c     eta = -log(max(0.0001,abs(dtan(0.5*th))))
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to convert vector into unit vector
-*
-c23456******************************************************************
-      subroutine unit3(v, norm)
-      double precision v(3), norm(3)
-
-      do i=1,3
-         norm(i) = v(i) / dsqrt(v(1)**2+v(2)**2+v(3)**2)
-      enddo
-
-      return
-      end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to perform dot product of 3 momentum
-*
-c23456******************************************************************
-c     subroutine dot3(v1, v2, prod)
-c     double precision v1(3), v2(3)
-c     double precision prod
-c
-c     prod = v1(1)*v2(1)+v1(2)*v2(2)+v1(3)*v2(3)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-c **********************************************************************
-*
-* Subroutine to calculate angle between 2 vectors
-*
-c23456******************************************************************
-c     subroutine ang3(v1, v2, prod)
-c     double precision v1(3), v2(3)
-c     double precision prod, v1mag, v2mag
-c
-c     call dot3(v1,v2,prod)
-c     v1mag = v1(1)**2+v1(2)**2+v1(3)**2
-c     v2mag = v2(1)**2+v2(2)**2+v2(3)**2
-c
-c     prod = prod/dsqrt(v1mag*v2mag)
-c
-c     return
-c     end
-
-c **********************************************************************
-
-*
-* $Id: cross.F,v 1.1.1.1 1996/02/15 17:49:51 mclareni Exp $
-*
-c     SUBROUTINE CROSS(X,Y,Z)
-C
-C CERN PROGLIB# F117    CROSS           .VERSION KERNFOR  2.02  730125
-C ORIG. 01/01/64
-C 
-c     IMPLICIT DOUBLE PRECISION (A-H,O-Z)
-c     DIMENSION X(3),Y(3),Z(3)
-C
-C
-c     Z1=X(2)*Y(3)-X(3)*Y(2)
-c     Z2=X(3)*Y(1)-X(1)*Y(3)
-c     Z(3)=X(1)*Y(2)-X(2)*Y(1)
-c     Z(1)=Z1
-c     Z(2)=Z2
-c     RETURN
-c     END
-
-c     SUBROUTINE LOREN4  (DIR,P4IN,P4OUT)
-C
-C CERN PROGLIB# U101    LOREN4          .VERSION KERNFOR  4.07  830624
-C ORIG. 20/02/68
-C
-c
-c     DOUBLE PRECISION PCM2, ONMCM, EPBETA, PROD
-c
-c     DOUBLE PRECISION DIR(4),P4IN(4),P4OUT(4)
-C
-C--                VN(A) MEANS N-VECTOR A
-C--                GAMMA=ECM/MCM
-C--                EPBETA=ECM*V3(PCM)*V3(BETA)
-C--                V3(BETA)=V3(PCM)/ECM
-C
-c     PCM2=DIR(1)*DIR(1)+DIR(2)*DIR(2)+DIR(3)*DIR(3)
-c
-c
-c     ONMCM=1.D0/DSQRT (DIR(4)*DIR(4)-PCM2)
-c
-c     EPBETA=P4IN(1)*DIR(1)+P4IN(2)*DIR(2)+P4IN(3)*DIR(3)
-c     PROD=EPBETA*(DIR(4)*ONMCM-1.D0)/PCM2-P4IN(4)*ONMCM
-c     P4OUT(4)=ONMCM*(P4IN(4)*DIR(4)-EPBETA)
-c        DO 50 I=1,3
-c  50 P4OUT(I)=P4IN(I)+DIR(I)*PROD
-c     RETURN
-c     END
-
diff --git a/Generators/PythiaB/src/uf_BsJpsimumuphiKK.F b/Generators/PythiaB/src/uf_BsJpsimumuphiKK.F
deleted file mode 100644
index 73ad7dacc921761c680f8dd48a3b687db85d53b9..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_BsJpsimumuphiKK.F
+++ /dev/null
@@ -1,152 +0,0 @@
-*CMZ :          
-*-- Author :    James catmore 2006-04-09
-      SUBROUTINE uf_BsJpsimumuphiKK(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_BsJpsimumuphiKK                                           *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 for BsJpsi mumu Phi KK events                        *
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : James Catmore                Date : 2006-04-09              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp( 1) :               
-c    cufdcp( 2) :                
-c    cufdcp( 3) :                
-c    cufdcp( 4) :                   
-c    cufdcp( 5) :                   
-c    cufdcp( 6) :                   
-c    cufdcp( 7) :                   
-c    cufdcp( 8) :                   
-c    cufdcp( 9) :                   
-c    cufdcp(10) :                   
-
-
-c     some counting
-      nintree = 0
-
-c     preset
-      iret = 1
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING'
-
-c     particle loop  -- modify content as needed
-      do  I=1,N
-         
-c     if(tree(I).eq.1) then
-c
-c  accept only Phi KK decays -- code by James Catmore
-c
-         if(name_selv(I).eq.333.and.
-     +name_father(I).eq.531.and.
-     +abs(name_daughter1(I)).eq.321.and.
-     +abs(name_daughter2(I)).eq.321) then
-            if(idebug.eq.1) print *,'USER_FINSEL: ',name_self(I)
-            iret=0
-         endif
-c     endif
-         
-      enddo
-
-c     evaluation
-      
- 1000 continue
-      if(iret.ne.0) then
-c     debug output
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected'
-      endif
-
-      
-      return
-*     
-      END                       ! USER_FINSEL
diff --git a/Generators/PythiaB/src/uf_ChHadr.F b/Generators/PythiaB/src/uf_ChHadr.F
deleted file mode 100644
index 5c45ef7fd4065270f9f6bd483b9dd4c4bd966f5e..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_ChHadr.F
+++ /dev/null
@@ -1,1517 +0,0 @@
-      SUBROUTINE uf_ChHadr(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_ChHadr                                                     *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 for selection of charm hadrons                       *
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : Leonid Gladilin                   Date : 2008-04-07         *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*  Leonid Gladilin                           Date : 2008-05-09         *
-*
-*  Leonid Gladilin                           Date : 2010-11-26         *
-*  ranges for selecting background candidates made wider
-*                                                                      *
-* Keywords :                                                           *
-*        beauty, charm, D mesons                                       *
-*----------------------------------------------------------------------*
-c123456789012345678901234567890123456789012345678901234567890123456789012
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-cc      Implicit NONE
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-C...HEPEVT commonblock.
-      INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      SAVE /HEPEVT/
-
-*     user finsel decay selection and decay parameters
-       double precision cufdcp
-       integer                     iufdc
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-*
-c 
-c Parameters: >0 : minimal pT of charm hadron / <=0 : OFF
-c
-c    cufdcp( 1) : min pT(D+  -> K-pi+pi+ (+c.c.))
-c    cufdcp( 2) : min pT(Ds+ -> K-K+pi+  (+c.c.))
-c    cufdcp( 3) : min pT(Lc+ -> K-p+pi+  (+c.c.))
-c
-c    cufdcp( 4) : min pT(D*+ -> (K-pi+)pi+   (+c.c.))
-c    cufdcp( 5) : min pT(D*+ -> (mu nu X)pi+ (+c.c.))
-c    cufdcp( 6) : min pT(D*+ -> (e  nu X)pi+ (+c.c.))
-c
-c    cufdcp( 7) : min pT(D0 -> K-pi+   (+c.c.))
-c    cufdcp( 8) : min pT(D0 -> mu nu X (+c.c.))
-c    cufdcp( 9) : min pT(D0 -> e  nu X (+c.c.))
-c
-c    cufdcp(10) : max abs(eta(D)) for all channels
-c
-*
-c
-c min/max "K,pi,pi" mass for D+ selection :
-c
-cg 26.11.2010      double precision  rdcmin / 1.70  /, rdcmax / 2.10  /
-      double precision  rdcmin / 1.50  /, rdcmax / 2.30  /
-      save              rdcmin          , rdcmax
-c
-c min/max "K,K,pi" mass for Ds+ selection :
-c
-cg 26.11.2010      double precision  rdsmin / 1.70  /, rdsmax / 2.15  /
-      double precision  rdsmin / 1.50  /, rdsmax / 2.30  /
-      save              rdsmin          , rdsmax
-c
-c max "K,K" masses for Ds+->(Phi)pi selection :
-c ( not applied if <=0 )
-c
-cg 26.11.2010      double precision  rphimx / 1.055 /
-      double precision  rphimx / 1.06 /
-      save              rphimx
-c
-c min/max "K,p,pi" mass for L_c+ selection :
-c
-cg 26.11.2010      double precision  rdlmin / 2.05  /, rdlmax / 2.50  /
-      double precision  rdlmin / 2.00  /, rdlmax / 2.60  /
-      save              rdlmin          , rdlmax
-c
-c min "K,pi" mass for D*->D0,pi selection :
-c
-cg 26.11.2010      double precision  rd0smn / 1.65  /
-      double precision  rd0smn / 1.50  /
-      save              rd0smn
-c
-c max delta_M for D*->D0,pi background combinations :
-c
-      double precision  rdelmx / 0.18  /
-      save              rdelmx
-c
-c min "K,pi" mass for D0 selection :
-c
-cg 26.11.2010      double precision  rd0min / 1.60  /
-      double precision  rd0min / 1.50  /
-      save              rd0min
-c
-c min track momentum :
-c
-cg 26.11.2010      double precision  pttrmn / 0.45  /
-cg 26.11.2010      save              pttrmn
-      double precision  pttrmn / 0.45  /, ptpsmn / 0.20 /
-      save              pttrmn, ptpsmn
-c
-c +/- eta for D meson preselection :
-c
-      double precision  etaabs / 5.d0  /
-      save              etaabs
-c
-c (m_pi+)^2, (m_K+)^2, (m_p)^2 :
-c
-      double precision   sqmpi  / 0.019479835d0 /
-     &               ,   sqmka  / 0.24371698d0  /
-     &               ,   sqmpr  / 0.88035435d0  /
-      save sqmpi, sqmka, sqmpr
-c
-c internal variables :
-c
-      integer j, jj1, jj2, jj3, jj4, jj5, jj6
-c     & , idobs(10), numka, numpi, numcha, numneu, numpi0
-     & , idobs(10), numka, numcha, numneu, numpi0
-     & , in, in1, in2, in3, in4, j15, j16, j25, j26, j35, j36
-     & , jka, jp1, jp2, nelec, jelec, nmuon, jmuon, jtr
-c
-      double precision  pdobs(5), ptdobs, etdobs
-     & , pmobs4, pmobs5
-c     & , cdobs(10), etamax, ptd, etd, pt, pt2, pm, pm2
-     & , cdobs(10), etamax, ptd, etd, pt2, pm, pm2
-     & , ct, th, arge, ptmuon, etmuon, ptelec, etelec
-     & , pttr, ettr
-     & , pm2phi, ephi, ejka, rmphi
-     & , epis, eds4, eds5, rmds4, rmds5
-c
-*
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IDEBUG, IFIRST, IIPRNT, NENTRY
-      SAVE IDEBUG, IFIRST, NENTRY
-      Integer IDEBUG /0/
-      Integer IFIRST /1/
-c      Integer IIPRNT /0/
-      integer NENTRY /0/
-*
-*KEEP,LVL1.
-*  LVL1 muon cuts
-      common/lvl1/tr1,pt_trig1, etha_trig1
-      common/trg1/i_muon_trig1
-      SAVE/lvl1/
-      SAVE/trg1/
-      dimension cut1(3)
-      equivalence (cut1(1),tr1)
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-*
-      IF(IFIRST.EQ.1) THEN
-         IFIRST =0
-      ENDIF
-*
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-*
-      if ( cufdcp(10) .gt. 0.d0 ) then
-        etamax = cufdcp(10)
-      else
-        etamax = etaabs
-      endif
-*
-c     some counting
-c     nintree = 0
-*
-c     preset
-      iret = 1
-*
-      call pyhepc(1)
-*
-      if(idebug.eq.1) then
-c
-         nentry = nentry + 1
-         print *
-         print *,' *** uf_ChHadr *** , nhep, nentry =',nhep,nentry
-         print *
-         print *,' cufdcp =',cufdcp
-      endif
-*
-      do  2222  j = 3 ,  nhep
-c                                     D meson analysis
-c
-      if ( iabs(idhep(j)) .ne. 413 .and.  !  D*+/-
-     &     iabs(idhep(j)) .ne. 411 .and.  !  D+/-
-     &     iabs(idhep(j)) .ne. 421 .and.  !  D0
-     &     iabs(idhep(j)) .ne. 431 .and.  !  Ds+/-
-     &     iabs(idhep(j)) .ne.4122        !  Lambda_c+/-
-     &                             )  goto  2221
-*
-      call pteta(j,ptd,etd)
-*
-      if ( abs(etd) .gt. etaabs ) goto 2221
-*
-      do i = 1, 9
-        if ( cufdcp(i) .gt. 0.d0 .and.
-     &       ptd .ge. cufdcp(i) ) goto 11
-      enddo
-      goto  2221
- 11   continue
-*
-      jj1 = jdahep(1,j)
-      jj2 = jdahep(2,j)
-c
-      if ( ( cufdcp(1) .gt. 0.d0 .or. cufdcp(2) .gt. 0.d0
-     &                           .or. cufdcp(3) .gt. 0.d0 )
-     & .and.
-     &     ( iabs(idhep(j)) .eq. 411 .or.        !  D+/-
-     &       iabs(idhep(j)) .eq. 431 .or.        !  Ds+/-
-     &       iabs(idhep(j)) .eq.4122    ) ) then !  Lambda_c+/-
-c
-      numka  = 0
-      numcha = 0
-      numneu = 0
-      numpi0 = 0
-c
-      pdobs(1) = 0.d0
-      pdobs(2) = 0.d0
-      pdobs(3) = 0.d0
-c
-      do in1 = jj1, jj2
-c
-        if ( isthep(in1) .ne. 1 .and.
-     &                          iabs(idhep(in1)) .ne. 111 ) then
-          j15 = jdahep(1,in1)
-          j16 = jdahep(2,in1)
-c
-          do in2 = j15, j16
-c 
-            if ( isthep(in2) .ne. 1 .and.
-     &                            iabs(idhep(in2)) .ne. 111 ) then
-              j25 = jdahep(1,in2)
-              j26 = jdahep(2,in2)
-c
-              do in3 = j25, j26
-                if ( isthep(in3) .ne. 1 .and.
-     &                              iabs(idhep(in3)) .ne. 111 ) then
-                  j35 = jdahep(1,in3)
-                  j36 = jdahep(2,in3)
-c
-                  do in4 = j35, j36
-                    if ( isthep(in4) .ne. 1 .and.
-     &                                iabs(idhep(in4)) .ne. 111 ) then
-                      numcha = 99
-                    else
-                      if ( iabs(idhep(in4)) .eq.  310 .or.
-     &                     iabs(idhep(in4)) .eq. 3122 )    then
-                        numka = numka + 1
-c
-                        pdobs(1) = pdobs(1) + phep(1,in4)
-                        pdobs(2) = pdobs(2) + phep(2,in4)
-                        pdobs(3) = pdobs(3) + phep(3,in4)
-c
-                      elseif ( iabs(idhep(in4)) .eq. 211 .or.
-     &                         iabs(idhep(in4)) .eq. 321 .or.
-     &                         iabs(idhep(in4)) .eq.  11 .or.
-     &                         iabs(idhep(in4)) .eq.  13 .or.
-     &                         iabs(idhep(in4)) .eq.2212 ) then
-                        numcha = numcha + 1
-c
-                        pdobs(1) = pdobs(1) + phep(1,in4)
-                        pdobs(2) = pdobs(2) + phep(2,in4)
-                        pdobs(3) = pdobs(3) + phep(3,in4)
-c
-                        idobs(numcha) = in4
-c
-                      elseif ( iabs(idhep(in4)) .eq. 111 ) then
-                        numpi0 = numpi0 + 1
-                      elseif ( iabs(idhep(in4)) .eq. 12 .or.
-     &                         iabs(idhep(in4)) .eq. 14  ) then
-                        numneu = numneu + 1
-                      else
-                        numcha = 99
-                      endif
-                    endif
-                  enddo
-                else
-                  if ( iabs(idhep(in3)) .eq.  310 .or.
-     &                 iabs(idhep(in3)) .eq. 3122 )    then
-                    numka = numka + 1
-c
-                    pdobs(1) = pdobs(1) + phep(1,in3)
-                    pdobs(2) = pdobs(2) + phep(2,in3)
-                    pdobs(3) = pdobs(3) + phep(3,in3)
-c
-                  elseif ( iabs(idhep(in3)) .eq. 211 .or.
-     &                     iabs(idhep(in3)) .eq. 321 .or.
-     &                     iabs(idhep(in3)) .eq.  11 .or.
-     &                     iabs(idhep(in3)) .eq.  13 .or.
-     &                     iabs(idhep(in3)) .eq.2212 ) then
-                    numcha = numcha + 1
-c
-                    pdobs(1) = pdobs(1) + phep(1,in3)
-                    pdobs(2) = pdobs(2) + phep(2,in3)
-                    pdobs(3) = pdobs(3) + phep(3,in3)
-c
-                    idobs(numcha) = in3
-c
-                  elseif ( iabs(idhep(in3)) .eq. 111 ) then
-                    numpi0 = numpi0 + 1
-                  elseif ( iabs(idhep(in3)) .eq. 12 .or.
-     &                     iabs(idhep(in3)) .eq. 14  ) then
-                    numneu = numneu + 1
-                  else
-                    numcha = 99
-                  endif
-                endif
-              enddo
-c
-            else
-              if ( iabs(idhep(in2)) .eq.  310 .or.
-     &             iabs(idhep(in2)) .eq. 3122 )    then
-                numka = numka + 1
-c
-                pdobs(1) = pdobs(1) + phep(1,in2)
-                pdobs(2) = pdobs(2) + phep(2,in2)
-                pdobs(3) = pdobs(3) + phep(3,in2)
-c
-              elseif ( iabs(idhep(in2)) .eq. 211 .or.
-     &                 iabs(idhep(in2)) .eq. 321 .or.
-     &                 iabs(idhep(in2)) .eq.  11 .or.
-     &                 iabs(idhep(in2)) .eq.  13 .or.
-     &                 iabs(idhep(in2)) .eq.2212 ) then
-                numcha = numcha + 1
-c
-                pdobs(1) = pdobs(1) + phep(1,in2)
-                pdobs(2) = pdobs(2) + phep(2,in2)
-                pdobs(3) = pdobs(3) + phep(3,in2)
-c
-                idobs(numcha) = in2
-c
-              elseif ( iabs(idhep(in2)) .eq. 111 ) then
-                numpi0 = numpi0 + 1
-              elseif ( iabs(idhep(in2)) .eq. 12 .or.
-     &                 iabs(idhep(in2)) .eq. 14  ) then
-                numneu = numneu + 1
-              else
-                numcha = 99
-              endif
-            endif
-c
-          enddo
-        else
-          if ( iabs(idhep(in1)) .eq.  310 .or.
-     &         iabs(idhep(in1)) .eq. 3122 )    then
-            numka = numka + 1
-c
-            pdobs(1) = pdobs(1) + phep(1,in1)
-            pdobs(2) = pdobs(2) + phep(2,in1)
-            pdobs(3) = pdobs(3) + phep(3,in1)
-c
-          elseif ( iabs(idhep(in1)) .eq. 211 .or.
-     &             iabs(idhep(in1)) .eq. 321 .or.
-     &             iabs(idhep(in1)) .eq.  11 .or.
-     &             iabs(idhep(in1)) .eq.  13 .or.
-     &             iabs(idhep(in1)) .eq.2212 ) then
-            numcha = numcha + 1
-c
-            pdobs(1) = pdobs(1) + phep(1,in1)
-            pdobs(2) = pdobs(2) + phep(2,in1)
-            pdobs(3) = pdobs(3) + phep(3,in1)
-c
-            idobs(numcha) = in1
-c
-          elseif ( iabs(idhep(in1)) .eq. 111 ) then
-            numpi0 = numpi0 + 1
-          elseif ( iabs(idhep(in1)) .eq. 12 .or.
-     &             iabs(idhep(in1)) .eq. 14  ) then
-            numneu = numneu + 1
-          else
-            numcha = 99
-          endif
-        endif
-c
-      enddo
-c
-c D+,Ds+,Lc+ ->  3 charged tracks and 0 K0s
-c                and 0 or 1 neutral pion
-c                and 0 or 1 neutrino
-c
-      if ( ( numcha .eq. 3 .and. numka  .eq. 0 .and.
-     &       numpi0 .le. 1 .and. numneu .le. 1 )
-c
-cc     & .or.( numcha .eq. 1 .and. numka  .eq. 1 .and.
-cc     &       numpi0 .le. 1 .and. numneu .le. 1 )
-c
-     &   )  then
-c
-        pt2    = pdobs(1)**2+pdobs(2)**2
-        ptdobs = sqrt(pt2)
-        pm2 = pt2+pdobs(3)**2
-        pm  = sqrt(pm2)
-        ct  = 0.d0
-        if ( pm .ne. 0.d0 ) ct = pdobs(3) / pm
-        th  = acos(ct)
-        arge = tan(th*0.5d0)
-        if ( arge .le. 0.d0 ) then
-          etdobs = 10.d0
-          if ( pdobs(3) .lt. 0.d0 ) etdobs = -10.d0
-            goto  111
-        endif
-        etdobs = -log(arge)
- 111    continue
-*
-        if ( abs(etdobs) .le. etamax ) then
-c
-          do in = 1, 3
-c
-c do not include triggered lepton:
-c
-            if ( iabs(idhep(idobs(in))) .eq. 13 .and.
-     &    ( cufdcp(5) .gt. 0. .or. cufdcp(8) .gt. 0. ) ) then
-c
-              jmuon = idobs(in)
-              call pteta(jmuon,ptmuon,etmuon)
-c
-              if  ( ptmuon .ge. pt_trig1 .and.
-     &          abs(etmuon) .le. etha_trig1 ) goto 121
-            endif
-c
-            if ( iabs(idhep(idobs(in))) .eq. 11 .and.
-     &    ( cufdcp(6) .gt. 0. .or. cufdcp(9) .gt. 0. ) ) then
-c
-              jelec = idobs(in)
-              call pteta(jelec,ptelec,etelec)
-c
-              if  ( ptelec .ge. pt_trig1 .and.
-     &          abs(etelec) .le. etha_trig1 ) goto 121
-            endif
-c
-c do not use background with soft tracks:
-c
-            if ( numpi0 .gt. 0 .or. numneu .gt. 0 ) then
-c
-              jtr = idobs(in)
-              call pteta(jtr,pttr,ettr)
-c
-              if  ( pttr .lt. pttrmn .or.
-     &          abs(ettr) .gt. etaabs ) goto 121
-            endif
-c
-c assign charge:
-c
-            if ( idhep(idobs(in)) .eq. 211 .or.
-     &           idhep(idobs(in)) .eq. 321 .or.
-     &           idhep(idobs(in)) .eq. -11 .or.
-     &           idhep(idobs(in)) .eq. -13 .or.
-     &           idhep(idobs(in)) .eq.2212 ) then
-c
-              cdobs(in) =  1.d0
-            else
-              cdobs(in) = -1.d0
-            endif
-          enddo
-c
-          if     ( cdobs(1)*cdobs(2) .lt. 0.d0 .and.
-     &             cdobs(1)*cdobs(3) .lt. 0.d0 ) then
-            jka = 1
-            jp1 = 2
-            jp2 = 3
-          elseif ( cdobs(2)*cdobs(1) .lt. 0.d0 .and.
-     &             cdobs(2)*cdobs(3) .lt. 0.d0 ) then
-            jka = 2
-            jp1 = 1
-            jp2 = 3
-          elseif ( cdobs(3)*cdobs(1) .lt. 0.d0 .and.
-     &             cdobs(3)*cdobs(2) .lt. 0.d0 ) then
-            jka = 3
-            jp1 = 1
-            jp2 = 2
-          endif
-c
-          if ( cufdcp(1) .gt. 0.d0 .and. ptdobs .ge. cufdcp(1) ) then
-c
-            pdobs(4) = sqrt( phep(1,idobs(jka))**2
-     &                     + phep(2,idobs(jka))**2
-     &                     + phep(3,idobs(jka))**2 + sqmka )
-     &               + sqrt( phep(1,idobs(jp1))**2
-     &                     + phep(2,idobs(jp1))**2
-     &                     + phep(3,idobs(jp1))**2 + sqmpi )
-     &               + sqrt( phep(1,idobs(jp2))**2
-     &                     + phep(2,idobs(jp2))**2
-     &                     + phep(3,idobs(jp2))**2 + sqmpi )
-c
-            pmobs4 = sqrt(pdobs(4)**2-pm2)
-c
-            if ( pmobs4 .ge. rdcmin .and. pmobs4 .le. rdcmax ) then
-c
-c D+ -> K-pi+pi+ and backgrounds
-c
-              iret = 0
-c
-              if ( idebug .eq. 1 ) then
-                print *
-                print *,
-     &' *** uf_ChHAdr *** : D+ -> K-pi+pi+ and backgrounds'
-                print *
-                print *,' j, jj1, jj2 =',j,jj1,jj2
-                print *,' numcha, numka, numpi0, numneu =',
-     &                    numcha, numka, numpi0, numneu
-                print *,' ptdobs, etdobs, pmobs4 =',ptdobs,etdobs,pmobs4
-                print *
-                call pylist(1)
-              endif
-c
-              Return
-c
-            endif
-c
-          endif
-c
-          if ( cufdcp(2) .gt. 0.d0 .and. ptdobs .ge. cufdcp(2) ) then
-c
-            ejka = sqrt( phep(1,idobs(jka))**2 + phep(2,idobs(jka))**2
-     &                 + phep(3,idobs(jka))**2 + sqmka )
-c
-            pdobs(4) = ejka
-     &               + sqrt( phep(1,idobs(jp1))**2
-     &                     + phep(2,idobs(jp1))**2
-     &                     + phep(3,idobs(jp1))**2 + sqmka )
-     &               + sqrt( phep(1,idobs(jp2))**2
-     &                     + phep(2,idobs(jp2))**2
-     &                     + phep(3,idobs(jp2))**2 + sqmpi )
-c
-            pmobs4 = sqrt(pdobs(4)**2-pm2)
-c
-            pdobs(5) = ejka
-     &               + sqrt( phep(1,idobs(jp2))**2
-     &                     + phep(2,idobs(jp2))**2
-     &                     + phep(3,idobs(jp2))**2 + sqmka )
-     &               + sqrt( phep(1,idobs(jp1))**2
-     &                     + phep(2,idobs(jp1))**2
-     &                     + phep(3,idobs(jp1))**2 + sqmpi )
-c
-            pmobs5 = sqrt(pdobs(5)**2-pm2)
-c
-            if ( ( pmobs4 .ge. rdsmin .and. pmobs4 .le. rdsmax ) .or.
-     &           ( pmobs5 .ge. rdsmin .and. pmobs5 .le. rdsmax ) ) then
-c
-c Ds+ -> K-K+pi+ and backgrounds
-c
-              if ( rphimx .gt. 0.d0 ) then
-c
-                pm2phi = (phep(1,idobs(jka))+phep(1,idobs(jp1)))**2
-     &                 + (phep(2,idobs(jka))+phep(2,idobs(jp1)))**2
-     &                 + (phep(3,idobs(jka))+phep(3,idobs(jp1)))**2
-c
-                ephi   = ejka
-     &                 + sqrt( phep(1,idobs(jp1))**2
-     &                       + phep(2,idobs(jp1))**2
-     &                       + phep(3,idobs(jp1))**2 + sqmka )
-c
-                rmphi  = sqrt( ephi**2 - pm2phi )
-c
-                if ( pmobs4 .ge. rdsmin .and. pmobs4 .le. rdsmax
-     &          .and. rmphi .le. rphimx )  goto 31
-c
-                pm2phi = (phep(1,idobs(jka))+phep(1,idobs(jp2)))**2
-     &                 + (phep(2,idobs(jka))+phep(2,idobs(jp2)))**2
-     &                 + (phep(3,idobs(jka))+phep(3,idobs(jp2)))**2
-c
-                ephi   = ejka
-     &                 + sqrt( phep(1,idobs(jp2))**2
-     &                       + phep(2,idobs(jp2))**2
-     &                       + phep(3,idobs(jp2))**2 + sqmka )
-c
-                rmphi  = sqrt( ephi**2 - pm2phi )
-c
-                if ( pmobs5 .ge. rdsmin .and. pmobs5 .le. rdsmax
-     &          .and. rmphi .le. rphimx )  goto 31
-c
-                goto 33
-c
-              else
-                rmphi = rphimx
-              endif
-c
- 31           continue
-              iret = 0
-c
-              if ( idebug .eq. 1 ) then
-                print *
-                print *,
-     &' *** uf_ChHAdr *** : Ds+ -> K-K+pi+ and backgrounds'
-                print *
-                print *,' j, jj1, jj2 =',j,jj1,jj2
-                print *,' numcha, numka, numpi0, numneu =',
-     &                    numcha, numka, numpi0, numneu
-                print *,' ptdobs, etdobs, pmobs4, pmobs5, rmphi =',
-     &                    ptdobs, etdobs, pmobs4, pmobs5, rmphi
-                print *
-                call pylist(1)
-              endif
-c
-              Return
-c
- 33         continue
-            endif
-c
-          endif
-c
-          if ( cufdcp(3) .gt. 0.d0 .and. ptdobs .ge. cufdcp(3) ) then
-c
-            pdobs(4) = sqrt( phep(1,idobs(jka))**2
-     &                     + phep(2,idobs(jka))**2
-     &                     + phep(3,idobs(jka))**2 + sqmka )
-     &               + sqrt( phep(1,idobs(jp1))**2
-     &                     + phep(2,idobs(jp1))**2
-     &                     + phep(3,idobs(jp1))**2 + sqmpr )
-     &               + sqrt( phep(1,idobs(jp2))**2
-     &                     + phep(2,idobs(jp2))**2
-     &                     + phep(3,idobs(jp2))**2 + sqmpi )
-c
-            pmobs4 = sqrt(pdobs(4)**2-pm2)
-c
-            pdobs(5) = sqrt( phep(1,idobs(jka))**2
-     &                     + phep(2,idobs(jka))**2
-     &                     + phep(3,idobs(jka))**2 + sqmka )
-     &               + sqrt( phep(1,idobs(jp2))**2
-     &                     + phep(2,idobs(jp2))**2
-     &                     + phep(3,idobs(jp2))**2 + sqmpr )
-     &               + sqrt( phep(1,idobs(jp1))**2
-     &                     + phep(2,idobs(jp1))**2
-     &                     + phep(3,idobs(jp1))**2 + sqmpi )
-c
-            pmobs5 = sqrt(pdobs(5)**2-pm2)
-c
-            if ( ( pmobs4 .ge. rdlmin .and. pmobs4 .le. rdlmax ) .or.
-     &           ( pmobs5 .ge. rdlmin .and. pmobs5 .le. rdlmax ) ) then
-c
-c Lc+ -> K-p+pi+ and backgrounds
-c
-              iret = 0
-c
-              if ( idebug .eq. 1 ) then
-                print *
-                print *,
-     &' *** uf_ChHAdr *** : Lc+ -> K-p+pi+ and backgrounds'
-                print *
-                print *,' j, jj1, jj2 =',j,jj1,jj2
-                print *,' numcha, numka, numpi0, numneu =',
-     &                    numcha, numka, numpi0, numneu
-                print *,' ptdobs, etdobs, pmobs4, pmobs5 =',
-     &                    ptdobs, etdobs, pmobs4, pmobs5
-                print *
-                call pylist(1)
-              endif
-c
-              Return
-c
-            endif
-c
-          endif
-c
- 121    continue
-c
-        endif
-*
-      endif
-*
-      elseif ( iabs(idhep(j)) .eq. 413 .and. (   !  D*+/-
-     &              cufdcp(4) .gt. 0.d0
-     &         .or. cufdcp(5) .gt. 0.d0
-     &         .or. cufdcp(6) .gt. 0.d0
-     &                                        )  ) then
-c
-c D*+/- -> D0,pi-s
-c
-      if ( (jj2-jj1) .eq. 1 .and.
-     & (iabs(idhep(jj1)).eq.421 .or. iabs(idhep(jj2)).eq.421) .and.
-     & (iabs(idhep(jj1)).eq.211 .or. iabs(idhep(jj2)).eq.211) ) then
-c
-      if ( iabs(idhep(jj1)).eq.211) then
-        jj3 = jj1
-        jj4 = jj2
-      else
-        jj3 = jj2
-        jj4 = jj1
-      endif
-c
-      jj5 = jdahep(1,jj4)
-      jj6 = jdahep(2,jj4)
-c
-      numka  = 0
-      numcha = 0
-      numneu = 0
-      numpi0 = 0
-c
-      pdobs(1) = 0.d0
-      pdobs(2) = 0.d0
-      pdobs(3) = 0.d0
-c
-      nelec = 0
-      jelec = 0
-c
-      nmuon = 0
-      jmuon = 0
-c
-      do in1 = jj5, jj6
-c
-        if ( isthep(in1) .ne. 1 .and.
-     &                          iabs(idhep(in1)) .ne. 111 ) then
-          j15 = jdahep(1,in1)
-          j16 = jdahep(2,in1)
-c
-          do in2 = j15, j16
-c 
-            if ( isthep(in2) .ne. 1 .and.
-     &                            iabs(idhep(in2)) .ne. 111 ) then
-              j25 = jdahep(1,in2)
-              j26 = jdahep(2,in2)
-c
-              do in3 = j25, j26
-                if ( isthep(in3) .ne. 1 .and.
-     &                              iabs(idhep(in3)) .ne. 111 ) then
-                  j35 = jdahep(1,in3)
-                  j36 = jdahep(2,in3)
-c
-                  do in4 = j35, j36
-                    if ( isthep(in4) .ne. 1 .and.
-     &                                iabs(idhep(in4)) .ne. 111 ) then
-                      numcha = 99
-                    else
-                      if ( iabs(idhep(in4)) .eq.  310 .or.
-     &                     iabs(idhep(in4)) .eq. 3122 )    then
-                        numka = numka + 1
-c
-                        pdobs(1) = pdobs(1) + phep(1,in4)
-                        pdobs(2) = pdobs(2) + phep(2,in4)
-                        pdobs(3) = pdobs(3) + phep(3,in4)
-c
-                      elseif ( iabs(idhep(in4)) .eq. 211 .or.
-     &                         iabs(idhep(in4)) .eq. 321 .or.
-     &                         iabs(idhep(in4)) .eq.  11 .or.
-     &                         iabs(idhep(in4)) .eq.  13 .or.
-     &                         iabs(idhep(in4)) .eq.2212 ) then
-                        numcha = numcha + 1
-c
-                        if ( iabs(idhep(in4)) .eq.  13 ) then
-                          jmuon = in4
-                          nmuon = nmuon + 1
-                        elseif ( iabs(idhep(in4)) .eq.  11 ) then
-                          jelec = in4
-                          nelec = nelec + 1
-                        endif
-c
-                        pdobs(1) = pdobs(1) + phep(1,in4)
-                        pdobs(2) = pdobs(2) + phep(2,in4)
-                        pdobs(3) = pdobs(3) + phep(3,in4)
-c
-                        idobs(numcha) = in4
-c
-                      elseif ( iabs(idhep(in4)) .eq. 111 ) then
-                        numpi0 = numpi0 + 1
-                      elseif ( iabs(idhep(in4)) .eq. 12 .or.
-     &                         iabs(idhep(in4)) .eq. 14  ) then
-                        numneu = numneu + 1
-                      else
-                        numcha = 99
-                      endif
-                    endif
-                  enddo
-c
-                else
-                  if ( iabs(idhep(in3)) .eq.  310 .or.
-     &                 iabs(idhep(in3)) .eq. 3122 )    then
-                    numka = numka + 1
-c
-                    pdobs(1) = pdobs(1) + phep(1,in3)
-                    pdobs(2) = pdobs(2) + phep(2,in3)
-                    pdobs(3) = pdobs(3) + phep(3,in3)
-c
-                  elseif ( iabs(idhep(in3)) .eq. 211 .or.
-     &                     iabs(idhep(in3)) .eq. 321 .or.
-     &                     iabs(idhep(in3)) .eq.  11 .or.
-     &                     iabs(idhep(in3)) .eq.  13 .or.
-     &                     iabs(idhep(in3)) .eq.2212 ) then
-                    numcha = numcha + 1
-c
-                    if ( iabs(idhep(in3)) .eq.  13 ) then
-                      jmuon = in3
-                      nmuon = nmuon + 1
-                    elseif ( iabs(idhep(in3)) .eq.  11 ) then
-                      jelec = in3
-                      nelec = nelec + 1
-                    endif
-c
-                    pdobs(1) = pdobs(1) + phep(1,in3)
-                    pdobs(2) = pdobs(2) + phep(2,in3)
-                    pdobs(3) = pdobs(3) + phep(3,in3)
-c
-                    idobs(numcha) = in3
-c
-                  elseif ( iabs(idhep(in3)) .eq. 111 ) then
-                    numpi0 = numpi0 + 1
-                  elseif ( iabs(idhep(in3)) .eq. 12 .or.
-     &                     iabs(idhep(in3)) .eq. 14  ) then
-                    numneu = numneu + 1
-                  else
-                    numcha = 99
-                  endif
-                endif
-              enddo
-c
-            else
-              if ( iabs(idhep(in2)) .eq.  310 .or.
-     &             iabs(idhep(in2)) .eq. 3122 )    then
-                numka = numka + 1
-c
-                pdobs(1) = pdobs(1) + phep(1,in2)
-                pdobs(2) = pdobs(2) + phep(2,in2)
-                pdobs(3) = pdobs(3) + phep(3,in2)
-c
-              elseif ( iabs(idhep(in2)) .eq. 211 .or.
-     &                 iabs(idhep(in2)) .eq. 321 .or.
-     &                 iabs(idhep(in2)) .eq.  11 .or.
-     &                 iabs(idhep(in2)) .eq.  13 .or.
-     &                 iabs(idhep(in2)) .eq.2212 ) then
-                numcha = numcha + 1
-c
-                if ( iabs(idhep(in2)) .eq.  13 ) then
-                  jmuon = in2
-                  nmuon = nmuon + 1
-                elseif ( iabs(idhep(in2)) .eq.  11 ) then
-                  jelec = in2
-                  nelec = nelec + 1
-                endif
-c
-                pdobs(1) = pdobs(1) + phep(1,in2)
-                pdobs(2) = pdobs(2) + phep(2,in2)
-                pdobs(3) = pdobs(3) + phep(3,in2)
-c
-                idobs(numcha) = in2
-c
-              elseif ( iabs(idhep(in2)) .eq. 111 ) then
-                numpi0 = numpi0 + 1
-              elseif ( iabs(idhep(in2)) .eq. 12 .or.
-     &                 iabs(idhep(in2)) .eq. 14  ) then
-                numneu = numneu + 1
-              else
-                numcha = 99
-              endif
-            endif
-          enddo
-c
-        else
-          if ( iabs(idhep(in1)) .eq.  310 .or.
-     &         iabs(idhep(in1)) .eq. 3122 )    then
-            numka = numka + 1
-c
-            pdobs(1) = pdobs(1) + phep(1,in1)
-            pdobs(2) = pdobs(2) + phep(2,in1)
-            pdobs(3) = pdobs(3) + phep(3,in1)
-c
-          elseif ( iabs(idhep(in1)) .eq. 211 .or.
-     &             iabs(idhep(in1)) .eq. 321 .or.
-     &             iabs(idhep(in1)) .eq.  11 .or.
-     &             iabs(idhep(in1)) .eq.  13 .or.
-     &             iabs(idhep(in1)) .eq.2212 ) then
-            numcha = numcha + 1
-c
-            if ( iabs(idhep(in1)) .eq.  13 ) then
-              jmuon = in1
-              nmuon = nmuon + 1
-            elseif ( iabs(idhep(in1)) .eq.  11 ) then
-              jelec = in1
-              nelec = nelec + 1
-            endif
-c
-            pdobs(1) = pdobs(1) + phep(1,in1)
-            pdobs(2) = pdobs(2) + phep(2,in1)
-            pdobs(3) = pdobs(3) + phep(3,in1)
-c
-            idobs(numcha) = in1
-c
-          elseif ( iabs(idhep(in1)) .eq. 111 ) then
-            numpi0 = numpi0 + 1
-          elseif ( iabs(idhep(in1)) .eq. 12 .or.
-     &             iabs(idhep(in1)) .eq. 14  ) then
-            numneu = numneu + 1
-          else
-            numcha = 99
-          endif
-        endif
-c
-      enddo
-*
-      if ( cufdcp(4) .gt. 0.d0 .and.
-     &   ( numcha .eq. 2 .and. numka  .eq. 0 .and.
-     &     numpi0 .le. 1 .and. numneu .le. 1 ) )  then
-c
-c D*+/- -> D0 pi, D0   -> ( 2 charged tracks and 0 K0s )
-c                           and 0 or 1 neutral pion
-c                           and 0 or 1 neutrino
-c
-        pm2 = pdobs(1)**2 + pdobs(2)**2 + pdobs(3)**2
-c
-        pdobs(4) = sqrt( phep(1,idobs(1))**2 + phep(2,idobs(1))**2
-     &                 + phep(3,idobs(1))**2 + sqmka )
-     &           + sqrt( phep(1,idobs(2))**2 + phep(2,idobs(2))**2
-     &                 + phep(3,idobs(2))**2 + sqmpi )
-c
-        pmobs4 = sqrt(pdobs(4)**2-pm2)
-c
-        pdobs(5) = sqrt( phep(1,idobs(2))**2 + phep(2,idobs(2))**2
-     &                 + phep(3,idobs(2))**2 + sqmka )
-     &           + sqrt( phep(1,idobs(1))**2 + phep(2,idobs(1))**2
-     &                 + phep(3,idobs(1))**2 + sqmpi )
-c
-        pmobs5 = sqrt(pdobs(5)**2-pm2)
-c
-        if ( pmobs4 .ge. rd0smn .or. pmobs5 .ge. rd0smn ) then
-c
-          pdobs(1) = pdobs(1) +  phep(1,jj3)
-          pdobs(2) = pdobs(2) +  phep(2,jj3)
-          pdobs(3) = pdobs(3) +  phep(3,jj3)
-c
-          pt2    = pdobs(1)**2+pdobs(2)**2
-          ptdobs = sqrt(pt2)
-          pm2 = pt2+pdobs(3)**2
-          pm  = sqrt(pm2)
-          ct  = 0.d0
-          if ( pm .ne. 0.d0 ) ct = pdobs(3) / pm
-          th  = acos(ct)
-          arge = tan(th*0.5d0)
-          if ( arge .le. 0.d0 ) then
-            etdobs = 10.d0
-            if ( pdobs(3) .lt. 0.d0 ) etdobs = -10.d0
-              goto  222
-          endif
-          etdobs = -log(arge)
- 222      continue
-c
-          if ( ptdobs .ge. cufdcp(4) .and.
-     &         abs(etdobs) .le. etamax ) then
-c
-            if ( numpi0 .gt. 0 .or. numneu .gt. 0 ) then
-c
-c do not use background with soft tracks from D0:
-c
-              do in = 1,2
-c
-                jtr = idobs(in)
-                call pteta(jtr,pttr,ettr)
-c
-                if  ( pttr .lt. pttrmn .or.
-     &            abs(ettr) .gt. etaabs ) goto 231
-c
-              enddo
-c
-c also for "slow" pion:
-c
-              call pteta(jj3,pttr,ettr)
-c
-              if  ( pttr .lt. ptpsmn .or.
-     &          abs(ettr) .gt. etaabs ) goto 231
-c
-c and limit on delta_M for background:
-c
-              epis = sqrt(phep(1,jj3)**2 + phep(2,jj3)**2 +
-     &                    phep(3,jj3)**2 + sqmpi)
-c
-              eds4 = pdobs(4) + epis
-              rmds4 = sqrt(eds4**2 - pm2)
-c
-              eds5 = pdobs(5) + epis
-              rmds5 = sqrt(eds5**2 - pm2)
-c
-              if ( ( pmobs4 .lt. rd0smn .or.
-     &               (rmds4-pmobs4) .gt. rdelmx ) .and.
-     &             ( pmobs5 .lt. rd0smn .or.
-     &               (rmds5-pmobs5) .gt. rdelmx ) ) goto 231
-c
-            endif
-c
-c D*+/- -> D0 pi, D0 -> 2 charged tracks + 0/1 pi0 + 0/1 nuetrino
-c
-            iret = 0
-c
-            if ( idebug .eq. 1 ) then
-              print *
-              print *,
-     &' *** uf_ChHAdr *** : D*+/- -> D0 pi, D0 -> 2 charged tracks'
-     &,' + 0/1 pi0 + 0/1 nuetrino '
-              print *
-              print *,' j, jj1, jj2, jj5, jj6 =',j,jj1,jj2,jj5,jj6
-              print *,' numcha, numka, numpi0, numneu =',
-     &                  numcha, numka, numpi0, numneu
-              print *,' ptdobs, etdobs, pmobs4, pmobs5 =',
-     &                  ptdobs, etdobs, pmobs4, pmobs5
-              print *
-              call pylist(1)
-            endif
-c
-            Return
-c
- 231        continue
-c
-          endif
-        endif
-      endif
-*
-      if ( nmuon .eq. 1 .and. cufdcp(5) .gt. 0.d0 ) then
-c
-        call pteta(jmuon,ptmuon,etmuon)
-c
-        if  ( ptmuon .ge. pt_trig1 .and.
-     &    abs(etmuon) .le. etha_trig1 .and.
-     &        ptd .ge. cufdcp(5) ) then
-c
-c D*+/- -> D0 pi, D0 -> muon + X
-c
-          iret = 0
-c
-          if ( idebug .eq. 1 ) then
-            print *
-            print *,
-     &' *** uf_ChHAdr *** : D*+/- -> D0 pi, D0 -> muon + X'
-            print *
-            print *,' j, jj1, jj2, jj5, jj6 =',j,jj1,jj2,jj5,jj6
-            print *,' numcha, numka, numpi0, numneu =',
-     &                numcha, numka, numpi0, numneu
-            print *,' nmuon, jmuon =',nmuon,jmuon
-            print *,' ptmuon, etmuon =',ptmuon,etmuon
-            print *
-            call pylist(1)
-          endif
-c
-          Return
-c
-        endif
-      endif
-*
-      if ( nelec .eq. 1 .and. cufdcp(6) .gt. 0.d0 ) then
-c
-        call pteta(jelec,ptelec,etelec)
-c
-        if  ( ptelec .ge. pt_trig1 .and.
-     &    abs(etelec) .le. etha_trig1 .and.
-     &        ptd .ge. cufdcp(6) ) then
-c
-c D*+/- -> D0 pi, D0 -> electron + X
-c
-          iret = 0
-c
-          if ( idebug .eq. 1 ) then
-            print *
-            print *,
-     &' *** uf_ChHAdr *** : D*+/- -> D0 pi, D0 -> electron + X'
-            print *
-            print *,' j, jj1, jj2, jj5, jj6 =',j,jj1,jj2,jj5,jj6
-            print *,' numcha, numka, numpi0, numneu =',
-     &                numcha, numka, numpi0, numneu
-            print *,' nelec, jelec =',nelec,jelec
-            print *,' ptelec, etelec =',ptelec,etelec
-            print *
-            call pylist(1)
-          endif
-c
-          Return
-c
-        endif
-      endif
-      endif
-*
-      elseif ( iabs(idhep(j)) .eq. 421 .and. (   !  D0
-     &              cufdcp(7) .gt. 0.d0
-     &         .or. cufdcp(8) .gt. 0.d0
-     &         .or. cufdcp(9) .gt. 0.d0
-     &                                        )  ) then
-*
-      numka  = 0
-      numcha = 0
-      numneu = 0
-      numpi0 = 0
-c
-      pdobs(1) = 0.d0
-      pdobs(2) = 0.d0
-      pdobs(3) = 0.d0
-c
-      nelec = 0
-      jelec = 0
-c
-      nmuon = 0
-      jmuon = 0
-c
-      do in1 = jj1, jj2
-c
-        if ( isthep(in1) .ne. 1 .and.
-     &                          iabs(idhep(in1)) .ne. 111 ) then
-          j15 = jdahep(1,in1)
-          j16 = jdahep(2,in1)
-c
-          do in2 = j15, j16
-c 
-            if ( isthep(in2) .ne. 1 .and.
-     &                            iabs(idhep(in2)) .ne. 111 ) then
-              j25 = jdahep(1,in2)
-              j26 = jdahep(2,in2)
-c
-              do in3 = j25, j26
-                if ( isthep(in3) .ne. 1 .and.
-     &                              iabs(idhep(in3)) .ne. 111 ) then
-                  j35 = jdahep(1,in3)
-                  j36 = jdahep(2,in3)
-c
-                  do in4 = j35, j36
-                    if ( isthep(in4) .ne. 1 .and.
-     &                                iabs(idhep(in4)) .ne. 111 ) then
-                      numcha = 99
-                    else
-                      if ( iabs(idhep(in4)) .eq.  310 .or.
-     &                     iabs(idhep(in4)) .eq. 3122 )    then
-                        numka = numka + 1
-c
-                        pdobs(1) = pdobs(1) + phep(1,in4)
-                        pdobs(2) = pdobs(2) + phep(2,in4)
-                        pdobs(3) = pdobs(3) + phep(3,in4)
-c
-                      elseif ( iabs(idhep(in4)) .eq. 211 .or.
-     &                         iabs(idhep(in4)) .eq. 321 .or.
-     &                         iabs(idhep(in4)) .eq.  11 .or.
-     &                         iabs(idhep(in4)) .eq.  13 .or.
-     &                         iabs(idhep(in4)) .eq.2212 ) then
-                        numcha = numcha + 1
-c
-                        if ( iabs(idhep(in4)) .eq.  13 ) then
-                          jmuon = in4
-                          nmuon = nmuon + 1
-                        elseif ( iabs(idhep(in4)) .eq.  11 ) then
-                          jelec = in4
-                          nelec = nelec + 1
-                        endif
-c
-                        pdobs(1) = pdobs(1) + phep(1,in4)
-                        pdobs(2) = pdobs(2) + phep(2,in4)
-                        pdobs(3) = pdobs(3) + phep(3,in4)
-c
-                        idobs(numcha) = in4
-c
-                      elseif ( iabs(idhep(in4)) .eq. 111 ) then
-                        numpi0 = numpi0 + 1
-                      elseif ( iabs(idhep(in4)) .eq. 12 .or.
-     &                         iabs(idhep(in4)) .eq. 14  ) then
-                        numneu = numneu + 1
-                      else
-                        numcha = 99
-                      endif
-                    endif
-                  enddo
-                else
-                  if ( iabs(idhep(in3)) .eq.  310 .or.
-     &                 iabs(idhep(in3)) .eq. 3122 )    then
-                    numka = numka + 1
-c
-                    pdobs(1) = pdobs(1) + phep(1,in3)
-                    pdobs(2) = pdobs(2) + phep(2,in3)
-                    pdobs(3) = pdobs(3) + phep(3,in3)
-c
-                  elseif ( iabs(idhep(in3)) .eq. 211 .or.
-     &                     iabs(idhep(in3)) .eq. 321 .or.
-     &                     iabs(idhep(in3)) .eq.  11 .or.
-     &                     iabs(idhep(in3)) .eq.  13 .or.
-     &                     iabs(idhep(in3)) .eq.2212 ) then
-                    numcha = numcha + 1
-c
-                    if ( iabs(idhep(in3)) .eq.  13 ) then
-                      jmuon = in3
-                      nmuon = nmuon + 1
-                    elseif ( iabs(idhep(in3)) .eq.  11 ) then
-                      jelec = in3
-                      nelec = nelec + 1
-                    endif
-c
-                    pdobs(1) = pdobs(1) + phep(1,in3)
-                    pdobs(2) = pdobs(2) + phep(2,in3)
-                    pdobs(3) = pdobs(3) + phep(3,in3)
-c
-                    idobs(numcha) = in3
-c
-                  elseif ( iabs(idhep(in3)) .eq. 111 ) then
-                    numpi0 = numpi0 + 1
-                  elseif ( iabs(idhep(in3)) .eq. 12 .or.
-     &                     iabs(idhep(in3)) .eq. 14  ) then
-                    numneu = numneu + 1
-                  else
-                    numcha = 99
-                  endif
-                endif
-              enddo
-c
-            else
-              if ( iabs(idhep(in2)) .eq.  310 .or.
-     &             iabs(idhep(in2)) .eq. 3122 )    then
-                numka = numka + 1
-c
-                pdobs(1) = pdobs(1) + phep(1,in2)
-                pdobs(2) = pdobs(2) + phep(2,in2)
-                pdobs(3) = pdobs(3) + phep(3,in2)
-c
-              elseif ( iabs(idhep(in2)) .eq. 211 .or.
-     &                 iabs(idhep(in2)) .eq. 321 .or.
-     &                 iabs(idhep(in2)) .eq.  11 .or.
-     &                 iabs(idhep(in2)) .eq.  13 .or.
-     &                 iabs(idhep(in2)) .eq.2212 ) then
-                numcha = numcha + 1
-c
-                if ( iabs(idhep(in2)) .eq.  13 ) then
-                  jmuon = in2
-                  nmuon = nmuon + 1
-                elseif ( iabs(idhep(in2)) .eq.  11 ) then
-                  jelec = in2
-                  nelec = nelec + 1
-                endif
-c
-                pdobs(1) = pdobs(1) + phep(1,in2)
-                pdobs(2) = pdobs(2) + phep(2,in2)
-                pdobs(3) = pdobs(3) + phep(3,in2)
-c
-                idobs(numcha) = in2
-c
-              elseif ( iabs(idhep(in2)) .eq. 111 ) then
-                numpi0 = numpi0 + 1
-              elseif ( iabs(idhep(in2)) .eq. 12 .or.
-     &                 iabs(idhep(in2)) .eq. 14  ) then
-                numneu = numneu + 1
-              else
-                numcha = 99
-              endif
-            endif
-c
-          enddo
-        else
-          if ( iabs(idhep(in1)) .eq.  310 .or.
-     &         iabs(idhep(in1)) .eq. 3122 )    then
-            numka = numka + 1
-c
-            pdobs(1) = pdobs(1) + phep(1,in1)
-            pdobs(2) = pdobs(2) + phep(2,in1)
-            pdobs(3) = pdobs(3) + phep(3,in1)
-c
-          elseif ( iabs(idhep(in1)) .eq. 211 .or.
-     &             iabs(idhep(in1)) .eq. 321 .or.
-     &             iabs(idhep(in1)) .eq.  11 .or.
-     &             iabs(idhep(in1)) .eq.  13 .or.
-     &             iabs(idhep(in1)) .eq.2212 ) then
-            numcha = numcha + 1 
-c
-            if ( iabs(idhep(in1)) .eq.  13 ) then
-              jmuon = in1
-              nmuon = nmuon + 1
-            elseif ( iabs(idhep(in1)) .eq.  11 ) then
-              jelec = in1
-              nelec = nelec + 1
-            endif
-c
-            pdobs(1) = pdobs(1) + phep(1,in1)
-            pdobs(2) = pdobs(2) + phep(2,in1)
-            pdobs(3) = pdobs(3) + phep(3,in1)
-c
-            idobs(numcha) = in1
-c
-          elseif ( iabs(idhep(in1)) .eq. 111 ) then
-            numpi0 = numpi0 + 1
-          elseif ( iabs(idhep(in1)) .eq. 12 .or.
-     &             iabs(idhep(in1)) .eq. 14  ) then
-            numneu = numneu + 1
-          else
-            numcha = 99
-          endif
-        endif
-c
-      enddo
-*
-      if ( cufdcp(7) .gt. 0.d0   .and.
-     &   ( numcha .eq. 2 .and. numka  .eq. 0 .and.
-     &     numpi0 .le. 1 .and. numneu .le. 1 )  )  then
-c
-c D0   -> ( 2 charged tracks and 0 K0s )
-c           and 0 or 1 neutral pion
-c           and 0 or 1 neutrino
-c
-        pt2    = pdobs(1)**2+pdobs(2)**2
-        ptdobs = sqrt(pt2)
-        pm2 = pt2+pdobs(3)**2
-        pm  = sqrt(pm2)
-        ct  = 0.d0
-        if ( pm .ne. 0.d0 ) ct = pdobs(3) / pm
-        th  = acos(ct)
-        arge = tan(th*0.5d0)
-        if ( arge .le. 0.d0 ) then
-          etdobs = 10.d0
-          if ( pdobs(3) .lt. 0.d0 ) etdobs = -10.d0
-            goto  333
-        endif
-        etdobs = -log(arge)
- 333    continue
-c
-        if ( ptdobs .ge. cufdcp(7) .and.
-     &       abs(etdobs) .le. etamax ) then
-c
-          pdobs(4) = sqrt( phep(1,idobs(1))**2 + phep(2,idobs(1))**2
-     &                   + phep(3,idobs(1))**2 + sqmka )
-     &             + sqrt( phep(1,idobs(2))**2 + phep(2,idobs(2))**2
-     &                   + phep(3,idobs(2))**2 + sqmpi )
-c
-          pmobs4 = sqrt(pdobs(4)**2-pm2)
-c
-          pdobs(5) = sqrt( phep(1,idobs(2))**2 + phep(2,idobs(2))**2
-     &                   + phep(3,idobs(2))**2 + sqmka )
-     &             + sqrt( phep(1,idobs(1))**2 + phep(2,idobs(1))**2
-     &                   + phep(3,idobs(1))**2 + sqmpi )
-c
-          pmobs5 = sqrt(pdobs(5)**2-pm2)
-c
-          if ( pmobs4 .ge. rd0min .or. pmobs5 .ge. rd0min ) then
-c
-c D0 -> 2 charged tracks + 0/1 pi0 + 0/1 nuetrino
-c
-            iret = 0
-c
-            if ( idebug .eq. 1 ) then
-              print *
-              print *,
-     &' *** uf_ChHAdr *** : D0 -> 2 charged tracks'
-     &,' + 0/1 pi0 + 0/1 nuetrino '
-              print *
-              print *,' j, jj1, jj2 =',j,jj1,jj2
-              print *,' numcha, numka, numpi0, numneu =',
-     &                  numcha, numka, numpi0, numneu
-              print *,' ptdobs, etdobs, pmobs4, pmobs5 =',
-     &                  ptdobs, etdobs, pmobs4, pmobs5
-              print *
-              call pylist(1)
-            endif
-c
-            Return
-c
-          endif
-        endif
-      endif
-*
-      if ( nmuon .eq. 1 .and. cufdcp(8) .gt. 0.d0 ) then
-c
-        call pteta(jmuon,ptmuon,etmuon)
-*
-        if  ( ptmuon .ge. pt_trig1 .and.
-     &    abs(etmuon) .le. etha_trig1 .and.
-     &        ptd .ge. cufdcp(8) ) then
-c
-c D0 -> muon + X
-c
-          iret = 0
-c
-          if ( idebug .eq. 1 ) then
-            print *
-            print *,
-     &' *** uf_ChHAdr *** : D0 -> muon + X'
-            print *
-            print *,' j, jj1, jj2 =',j,jj1,jj2
-            print *,' numcha, numka, numpi0, numneu =',
-     &                numcha, numka, numpi0, numneu
-            print *,' nmuon, jmuon =',nmuon,jmuon
-            print *,' ptmuon, etmuon =',ptmuon,etmuon
-            print *
-            call pylist(1)
-          endif
-c
-          Return
-c
-        endif
-      endif
-*
-      if ( nelec .eq. 1 .and. cufdcp(9) .gt. 0.d0 ) then
-c
-        call pteta(jelec,ptelec,etelec)
-*
-        if  ( ptelec .ge. pt_trig1 .and.
-     &    abs(etelec) .le. etha_trig1 .and.
-     &        ptd .ge. cufdcp(9) ) then
-c
-c D0 -> electron + X
-c
-          iret = 0
-c
-          if ( idebug .eq. 1 ) then
-            print *
-            print *,
-     &' *** uf_ChHAdr *** : D0 -> electron + X'
-            print *
-            print *,' j, jj1, jj2 =',j,jj1,jj2
-            print *,' numcha, numka, numpi0, numneu =',
-     &                numcha, numka, numpi0, numneu
-            print *,' nelec, jelec =',nelec,jelec
-            print *,' ptelec, etelec =',ptelec,etelec
-            print *
-            call pylist(1)
-          endif
-c
-          Return
-c
-        endif
-      endif
-*
-      endif
-*
- 2221 continue
- 2222 enddo
-
-c     evaluation
-      
- 1000 continue
-c
-cc      if(iret.ne.0) then
-c     debug output
-cc         if(idebug.eq.1)
-cc     +        print *, 'uf_ChHadr: event rejected'
-cc      endif
-
-      
-      return
-*     
-      END                       ! USER_FINSEL
-
-      subroutine pteta(j,pt,et)
-c
-      Implicit None
-*
-C...HEPEVT commonblock.
-c
-      Integer    NMXHEP
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      Integer NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
-      SAVE /HEPEVT/
-c
-      Double Precision pt, pt2, pm, et , ct, th, arge
-c
-      Integer j
-c
-      pt2 = phep(1,j)**2+phep(2,j)**2
-      pt   = sqrt(pt2)
-      pm   = sqrt(pt2+phep(3,j)**2)
-      ct  = 0.d0
-      if ( pm .ne. 0.d0 ) ct = phep(3,j) / pm
-      th  = acos(ct)
-      arge = tan(th*0.5d0)
-      if ( arge .gt. 0.d0 ) then
-        et = -log(arge)
-      else
-        if ( phep(3,j) .lt. 0.d0 ) then
-          et = -100.d0
-        else
-          et =  100.d0
-        endif
-      endif
-c
-      end
diff --git a/Generators/PythiaB/src/uf_DK1.F b/Generators/PythiaB/src/uf_DK1.F
deleted file mode 100644
index 1836b8f4546ace48248684c63d4da97bdc62cd14..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_DK1.F
+++ /dev/null
@@ -1,186 +0,0 @@
-*CMZ :          
-*-- Author :    Sagi Ben-Ami 2006-05-15
-      SUBROUTINE uf_DK1(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_BBbarmu                                                    *
-*        (module)                                                      *
-*                                                                      *
-*Description :B0->D0 K* ; D0->K+ Pi- ; K*->K+ Pi- (and conjugate)      *
-*             Muon included with Pt cut 6 Gev                          *
-*             Final state Particles with Pt cut of 0.5 Gev             *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : Yoram Rozen                                                 *
-*          Sagi Ben-Ami              Date : 2006-05-29                 *
-*          sagiph@tx.technion.ac.il                                    *
-*                                                                      *
-* Last modifications :                                                 *
-*  Sagi Ben-Ami                               Date :2006-11-05         *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP,Bcandidate1,Bcandidate2,Bcandidate3,Bcandidate4,stFlag,aflag,counter
-      INTEGER Bcandidate1,stFlag,GenerationCounter
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-       common // GenerationCounter
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-        
-       
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=1
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-      if ( iret.eq.1 ) return
-
-      nintree = 0
-
-c     preset
-      iret = 1
-      bFlag = 0
-      MuFlag = 0
-c     particle loop  -- modify content as needed
-      do 111  I=1,N
-         IF(name_selv(I) .eq. 511) then
-      Bcandidate1 = I
-      stFlag=0
-      if(K(I,5)-K(I,4) .ne. 1) goto 111
-      IF(NAME_DAUGHTER1(Bcandidate1)*NAME_DAUGHTER2(Bcandidate1) 
-     +            .ne. -131773) goto 111
-      IF(ABS(NAME_DAUGHTER1(Bcandidate1))
-     &     .GT.ABS(NAME_DAUGHTER2(Bcandidate1))) 
-     +   THEN
-         IB0_D0=link_daughter1(Bcandidate1) ! THIS IS THE D
-         IB0_kStar=link_daughter2(Bcandidate1)
-      ELSE
-         IB0_D0=link_daughter2(Bcandidate1) ! THIS IS THE D
-         IB0_kStar=link_daughter1(Bcandidate1)
-      ENDIF
-      IF(abs(K(IB0_D0,5)-K(IB0_D0,4)) .NE. 1) GOTO 111
-      IF(abs(K(IB0_kStar,5)-K(IB0_kStar,4)) .NE. 1) GOTO 111
-        IF( K(K(IB0_kStar,4),2)*K(K(IB0_kStar,5),2) .ne. -67731) 
-     &     GOTO 111
-         if( (P(K(IB0_kStar,4),1)**2)+(P(K(IB0_kStar,4),2)**2) .lt. 0.25
-     &       .or.(P(K(IB0_kStar,5),1)**2)+(P(K(IB0_kStar,5),2)**2) 
-     &       .lt. 0.25) then
-         print *,'failed kStar children: ',P(K(IB0_kStar,4),1),' ',
-     &           P(K(IB0_kStar,4),2)
-         print *,'failed kStar children: ',P(K(IB0_kStar,5),1),' ',
-     &        P(K(IB0_kStar,5),2)
-         print *,'kStar children Failed Pt threshold'
-         goto 111
-         endif
-        IF( K(K(IB0_D0,4),2)*K(K(IB0_D0,5),2) .ne. -67731) GOTO 111
-         if( (P(K(IB0_D0,4),1)**2)+(P(K(IB0_D0,4),2)**2) .lt. 0.25  .or.
-     +      (P(K(IB0_D0,5),1)**2)+(P(K(IB0_D0,5),2)**2) .lt. 0.25) then
-         print *,'failed D0 children: ',P(K(IB0_D0,4),1),' ',
-     &           P(K(IB0_D0,4),2)
-         print *,'failed D0 children: ',P(K(IB0_D0,5),1),' '
-     &        ,P(K(IB0_D0,5),2)
-         print *,'D0 children Failed Pt threshold'
-         goto 111
-         endif
-           bFlag=1
-           MuFlag=0
-      endif 
- 111  CONTINUE
-
-       Do I=1,N
-      If(ABS(K(I,2)) .eq. 13 .and.
-     +(P(I,1)**2)+(P(I,2)**2) .gt. 36) then
-             MuFlag = 1
-             GOTO 1000
-          endif
-       enddo
-         
-       GOTO 1000
-
-          
-      
-1000  continue
-
-      if(MuFlag .eq. 0 .and. idebug.gt.1 ) then
-      GenerationCounter=GenerationCounter+1
-      print *,'No Muon, GenerationCounter= ',GenerationCounter
-      endif
-
-      if(MuFlag .eq. 1 .and. bFlag .eq. 0 .and. idebug.gt.1 ) then
-      GenerationCounter=GenerationCounter+1
-      print *,'No required Topology found, GenerationCounter= ',G
-     &     enerationCounter
-      endif
-      
-      if(MuFlag .eq. 1 .and. bFlag .eq. 1 .and. idebug.gt.0 ) then
-      iret=0
-      GenerationCounter=GenerationCounter+1
-      print *,' GenerationCounter= ',GenerationCounter
-      print *,' Muon Father is ', name_father(I)
-      print *,' Muon is ', name_selv(I)
-      endif     
-      
-      return
-*     
-      END
-
-
-                       ! USER_FINSEa
diff --git a/Generators/PythiaB/src/uf_DsPhiX.F b/Generators/PythiaB/src/uf_DsPhiX.F
deleted file mode 100644
index 5c8ce69ab8d2e9ab2694ffe9fc010133f3c96c20..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_DsPhiX.F
+++ /dev/null
@@ -1,408 +0,0 @@
-*CMZ :          
-*-- Author :    Wolfgang Walkowiak 2006-04-02
-      SUBROUTINE uf_DsPhiX(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_DsPhiX                                                     *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 for Ds(PhiPi)X decays using                          *
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : Wolfgang Walkowiak           Date : 2006-04-02              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        Wolfgang Walkowiak             Date : 2006-04-13              *
-*          Fortran comparisons changed from                            *
-*            cufdcp(i).eq.1.0  to  cufdcp(i).gt.0.5                    *
-*          for additional safety.                                      *
-*        Wolfgang Walkowiak             Date : 2006-09-05              *
-*          Small bug in the debug output (cufdcp(1)) fixed.            *
-*        Wolfgang Walkowiak             Date : 2006-12-11              *
-*          Added support for B0->D-(PhiPi)Pi and conjugate.            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*
-* $Id: uf_DsPhiX.F,v 1.4 2007-03-01 17:13:19 msmizans Exp $
-*
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp(1) : PhiKK   decay -- Phi -> K+K-
-c    cufdcp(2) : DsPhi   decay -- Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K-
-c    cufdcp(3) : A1RhoPi decay -- a1 -> RhoPi
-c    cufdcp(4) : RhoPiPi decay -- Rho -> Pi+Pi
-c   
-c
-c 
-
-c     some counting
-      nintree = 0
-c     
-      iret_phi   = 0
-      iret_dsphi = 0
-      iret_a1    = 0
-      iret_ro    = 0
-      if ( cufdcp(1).gt.0.5 ) iret_phi   = 1
-      if ( cufdcp(2).gt.0.5 ) iret_dsphi = 1
-      if ( cufdcp(3).gt.0.5 ) iret_a1    = 1
-      if ( cufdcp(4).gt.0.5 ) iret_ro    = 1
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING'
-
-
-      do  I=1,N
-         
-         if (idebug.eq.1) then
-            print *,'USER_FINSEL: part',I,
-     +           link_father(I), tree(I),
-     +           name_self(I), name_father(I)
-         endif
-         
-         if(tree(I).eq.1) then
-            if(idebug.eq.1) then
-               nintree = nintree+1
-               print *,'USER_FINSEL: tree',name_self(I)
-            endif
-            
-c     a1 -> RhoPi (from B0s->X a1+, B0sbar->X a1- 
-c                  or B0(bar)->X a1- or B0(bar)->X a1+)
-            if ( iret_a1.eq.1 ) then
-               if ( ( name_self(I).eq.20213 .and.
-     +              (name_father(I).eq.531 .or.
-     +              abs(name_father(I)).eq.511) ) .or.
-     +              (name_self(I).eq.-20213 .and.
-     +              (name_father(I).eq.-531 .or. 
-     +              abs(name_father(I)).eq.511) ) ) then
-                  num_daugh=abs(k(I,5)-k(I,4))+1
-                  if(k(I,4).eq.0) num_daugh=0
-                  if(idebug.eq.1)
-     +                 print *, 'USER_FINSEL: a1+/- daughters',
-     +                 name_self(I), num_daugh, ':',
-     +                 k(k(I,4),2), k(k(I,5),2)
-                  if(num_daugh.ne.2) then
-                     iret=1
-                     if(idebug.eq.1)
-     +                    print *,
-     +                    'USER_FINSEL: a1+/- not into two daughters',
-     +                    name_self(I)
-                  else
-                     if((name_daughter1(I).eq.113 .and.
-     +                    abs(name_daughter2(I)).eq.211      ) .or.
-     +                    (abs(name_daughter1(I)).eq.211 .and.
-     +                    name_daughter2(I).eq.113      ) )  then
-                        iret_a1=0
-                        if(idebug.eq.1)
-     +                       print *,
-     +                       'USER_FINSEL: a1+/- ->ro0 pi+/- in Bs',
-     +                       name_self(I)
-                     else
-                        iret=1
-                        if(idebug.eq.1)
-     +                       print *,
-     +                       'USER_FINSEL: no ro0 pi+/- decay for a1+/-'
-     +                       ,name_self(I)
-                     endif
-                  endif
-               endif
-            endif
-
-            if (iret.eq.1) go to 2000
-
-c     Rho -> Pi+Pi- (from B0s->X a1+, B0sbar->X a1-
-c                    or B0(bar)->X a1- or B0(bar)->X a1+)
-
-            if ( iret_ro.eq.1 ) then
-               if ( name_self(I).eq.113 .and.
-     +              ( ( name_father(I).eq.20213 .and.
-     +              ( name_grandpa(I).eq.531 .or.
-     +              abs(name_grandpa(I)).eq.511 ) ) .or.
-     +              ( ( name_father(I).eq.-20213 .and.
-     +              ( name_grandpa(I).eq.-531 .or.
-     +              abs(name_grandpa(I)).eq.511 ) ) ) ) ) then
-                  
-                  num_daugh=abs(k(I,5)-k(I,4))+1
-                  if(k(I,4).eq.0) num_daugh=0
-                  if(num_daugh.ne.2) then
-                     iret=1
-                     if(idebug.eq.1)
-     +                    print *,
-     +                    'USER_FINSEL: ro0 not into two daughters',
-     +                    name_self(I)
-                  else
-                     if(abs(name_daughter1(I)).ne.211 .or.
-     +                    abs(name_daughter2(I)).ne.211     ) then
-                        iret=1
-                        if(idebug.eq.1)
-     +                       print *,
-     +                       'USER_FINSEL: no pi+ pi- decay for ro',
-     +                       name_self(I)
-                     else
-                        iret_ro=0
-                        if(idebug.eq.1)
-     +                       print *, 'USER_FINSEL: ro0 -> pi+ pi-',
-     +                       name_self(I)
-                     endif
-                  endif
-               endif
-            endif
-            
-            if(iret.eq.1) go to 2000
-            
-c     Phi -> K+K- ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+)
-c                  or (from B0->D-X) or (B0bar->D+X))
-            if ( iret_phi.eq.1 ) then
-               if (name_self(I).eq.333 .and. (
-     +              ( name_father(I).eq.-431 .and.
-     +              ( name_grandpa(I).eq.531 .or.
-     +              name_grandpa(I).eq.-511 .or.
-     +              name_grandpa(I).eq.-521 ) ) .or.
-     +              ( name_father(I).eq.+431 .and.
-     +              ( name_grandpa(I).eq.-531 .or.
-     +              name_grandpa(I).eq.+511 .or.
-     +              name_grandpa(I).eq.+521 ) ) .or.
-     +              ( name_father(I).eq.-411 .and.
-     +              name_grandpa(I).eq.+511 ) .or. 
-     +              ( name_father(I).eq.+411 .and. 
-     +              name_grandpa(I).eq.-511 ) ) ) then
-                  
-                  num_daugh=abs(k(I,5)-k(I,4))+1
-                  if(k(I,4).eq.0) num_daugh=0
-                  if(num_daugh.ne.2) then
-                     iret=1
-                     if(idebug.eq.1)
-     +                    print *,
-     +                    'USER_FINSEL: phi not into two daughters',
-     +                    name_self(I)
-                  else
-                     if(abs(name_daughter1(I)).ne.321 .or.
-     +                    abs(name_daughter2(I)).ne.321     ) then
-                        iret=1
-                        if(idebug.eq.1)
-     +                       print *,
-     +                       'USER_FINSEL: no K+ K- decay for phi',
-     +                       name_self(I)
-                     else
-                        iret_phi=0
-                        if(idebug.eq.1)
-     +                       print *, 'USER_FINSEL: phi--> K+ K- ',
-     +                       name_self(I)
-                     endif
-                  endif
-               endif
-            endif
-            
-
-c     Ds*- -> Ds-X, Ds- -> Phi pi-, Phi -> K+K-
-c             ((from B0s, B0bar or B-) or (from B0sbar, B0 or B+))
-            if ( iret_dsphi.eq.1 ) then
-               if( ( name_self(I).eq.-431 .and.
-     +              name_father(I).eq.-433 .and.
-     +              ( name_grandpa(I).eq.+531 .or.
-     +              name_grandpa(I).eq.-511 .or.
-     +              name_grandpa(I).eq.-521 ) ) .or.
-     +              ( name_self(I).eq.+431  .and.
-     +              name_father(I).eq.+433 .and.
-     +              ( name_grandpa(I).eq.-531 .or.
-     +              name_grandpa(I).eq.+511 .or.
-     +              name_grandpa(I).eq.+521 ) )
-     +              ) then
-                  
-                  num_daugh=abs(k(I,5)-k(I,4))+1
-                  if(k(I,4).eq.0) num_daugh=0
-                  if(num_daugh.ne.2) then
-                     iret=1
-                     if(idebug.eq.1)
-     +                    print *,
-     +                    'USER_FINSEL: ds not into two daughters',
-     +                    name_self(I)
-                  else
-                     iddau = -1
-                     iret=1
-                     if ( name_daughter1(I).eq. 333 .and.
-     +                    ( ( name_daughter2(I).eq.-211 .and.
-     +                    name_self(I).eq.-431) .or.
-     +                    ( name_daughter2(I).eq.+211 .and.
-     +                    name_self(I).eq.+431) )
-     +                    ) then
-                        iddau = link_daughter1(I)
-                        iret=0
-                     endif
-                     if ( ( ( name_daughter1(I).eq.-211 .and.
-     +                    name_self(I).eq.-431) .or.
-     +                    ( name_daughter1(I).eq.+211 .and.
-     +                    name_self(I).eq.+431) ) .and.
-     +                    name_daughter2(I).eq. 333
-     +                    ) then
-                        iddau = link_daughter2(I)
-                        iret=0
-                     endif
-                     if(idebug.eq.1 .and. iret.eq.1)
-     +                    print *,
-     +                    'USER_FINSEL: no Phi pi- decay for ds',
-     +                    name_self(I),
-     +                    name_daughter1(I), name_daughter2(I)
-                     
-                     if ( iret.eq.0 ) then
-                        num_daugh=abs(k(iddau,5)-k(iddau,4))+1
-                        if(k(iddau,4).eq.0) num_daugh=0
-                        if(num_daugh.ne.2) then
-                           iret=1
-                           if(idebug.eq.1)
-     +                          print *,
-     +                          'USER_FINSEL: phi not into',
-     +                          ' two daughters',
-     +                          name_self(iddau),
-     +                          name_daughter1(iddau),
-     +                          name_daughter2(iddau)
-                        else
-                           if(abs(name_daughter1(iddau)).ne.321 .or.
-     +                          abs(name_daughter2(iddau)).ne.321)
-     +                          then
-                              iret=1
-                              if(idebug.eq.1)
-     +                             print *,
-     +                             'USER_FINSEL: no K+ K- decay ',
-     +                             'for phi',
-     +                             name_self(I)
-                           else
-                              iret_dsphi=0
-                              if(idebug.eq.1)
-     +                             print *, 'USER_FINSEL: ',
-     +                             'Ds-->Phi pi, Phi--> K+ K- ',
-     +                             name_self(I)
-                           endif
-                        endif
-                     endif
-                  endif
-               endif
-            endif
-            
-            if(iret.eq.1) go to 2000
-            
-c     quick exit if all are found
-            if ( iret_a1.eq.0 .and. iret_ro.eq.0
-     +           .and. iret_phi.eq.0
-     +           .and. iret_dsphi.eq.0 )
-     +           goto 1000
-            
-         endif
-      enddo
-
-c     evaluation
-      
- 1000 continue
-      iret=1
-      if(iret_a1.ne.0) then
-         iret=1
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected, a1+ flag'
-      elseif(iret_ro.ne.0) then
-         iret=1
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected, ro0 flag'
-      elseif(iret_phi.ne.0) then
-         iret=1
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected, phi flag'
-      elseif(iret_dsphi.ne.0) then
-         iret=1
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected, dsphi flag'
-      else
-         iret=0
-      endif
-      
- 2000 continue
-      
-c     debug output
-      if (idebug.eq.1)
-     +     print *,
-     +     'USER_FINSEL: iPhiKK, iDsPhi, iA1RhoPi, iRhoPiPi, ',
-     +     'N, nintree: ',
-     +     cufdcp(1),cufdcp(2),cufdcp(3),cufdcp(4),N,nintree
-      
-      return
-*     
-      END                       ! USER_FINSEL
diff --git a/Generators/PythiaB/src/uf_GammaMuMu.F b/Generators/PythiaB/src/uf_GammaMuMu.F
deleted file mode 100644
index e19a172163a22890d06f378a6fac078cc2e4103f..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_GammaMuMu.F
+++ /dev/null
@@ -1,193 +0,0 @@
-      SUBROUTINE uf_GammaMuMu(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_GammaMuMu                                                  *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 PERFORM  decay  Bs->gammaMuMu                        *
-*                 
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author :       Maria Smizanska             Date : 06/10/1996         *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*  N.Nikitine                                Date : 01/11/2005         *
-*  S.Sivoklokov                                     01/09/2006         *
-*  N.Nikitine                                       16/05/2007         *
-* Keywords : the decay B^0_s\to\gamma\mu^+\mu^-                        *
-*----------------------------------------------------------------------*
-*                                                                                                                                     
-C...Double precision and integer declarations.                               
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)                           
-      IMPLICIT INTEGER(I-N)                                                 
-c      INTEGER PYK,PYCHGE,PYCOMP                                                                                                               
-      INTEGER PYCOMP                                                                                                               
-       
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-*     user finsel decay selection and decay parameters
-      common /ufdecay/ cufdcp(10),iufdc
-      save   /ufdecay/
-c Parameters: 
-c    cufdcp( 1) : KEY_L1 (YES/NO)
-c    cufdcp( 2) : pt_trig1
-c    cufdcp( 3) : etha_trig1
-c    cufdcp( 4) : KEY_L2
-c    cufdcp( 5) : pt_trig2
-c    cufdcp( 6) : etha_trig2
-c    cufdcp( 7) :
-c    cufdcp( 8) :
-c    cufdcp( 9) :
-c    cufdcp(10) :
-* S.Sivoklokov: a trick to emulate Lvl1,Lvl2 here (trig1 and trig2.F not used)
-*  LVL1 muon cuts
-*      common/lvl1/tr1,pt_trig1, etha_trig1
-      common/trg1/i_muon_trig1
-*      SAVE/lvl1/
-      SAVE/trg1/
-*  LVL2 muon cut and electron tag cut
-*      common/lvl2/tr2,type,pt_trig2, etha_trig2
-      common/trg2/i_muon_trig2,i_ele_trig2
-*      SAVE/lvl2/
-      SAVE/trg2/
-              
-      integer tree
-      COMMON/btree/ntree,tree(4000)                                           
-c......My COMMON blocs
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-                                                                             
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-      SAVE /btree/
-      SAVE /nik1/,/nik2/
-                         
-c      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-c      SAVE IFIRST,IIPRNT
-c......The COMMON blocks parameters
-      integer n_model, n_res_swch, n_ias, n_Nf
-      real n_M1, n_M2, n_mt, n_Mw, n_ml
-                                 
-c      integer nbm, ikf, imf, decflag
-      integer nbm, ikf, decflag
-                    
-      idebug = 0    
-      i_muon_trig1=0
-      i_muon_trig2=0	
-      pt_L1 = cufdcp(2)
-      pt_L2 = cufdcp(5)
-      eta_L1 = cufdcp(3)
-      eta_L2 = cufdcp(6)
-      if(idebug.eq.1) print *,'uf_PhiMuMu: LVL1:pt_trig1 etha_trig1',
-     #      pt_L1,eta_L1
-                                            
-c......Read the integer parameters
-      n_model=1
-      n_res_swch=0
-      n_ias=1
-      n_Nf=5
-c      print *,' model =',n_model,'   res_swch =',n_res_swch,
-c     #'   ias =',n_ias,'   Nf =', n_Nf
-      
-c......to read the meson mass M1 and energy cut of foton M2
-      PMAS(PYCOMP(511),1)=5.28   ! Need for correct ff calculations
-      PMAS(PYCOMP(531),1)=5.37   ! Need for correct ff calculations
-      n_M1=PMAS(PYCOMP(531),1)   ! for B^0_s          
-      n_M2=0.08                  ! cut of the \gamma - energy at ATLAS
-c      print *,' M1 =',n_M1,'   M2 =',n_M2
-      
-c......to read the leptonic mass: ml
-      n_ml=PMAS(PYCOMP(13),1)
-c      print *,' ml =', n_ml
-      
-c......to read the mass: of t-quark and W-boson
-      n_mt=PMAS(PYCOMP(6),1)
-      n_Mw=PMAS(PYCOMP(24),1)
-c      print *,' mt =', n_mt,'   Mw =', n_Mw
-            
-      nbm = 0 ! the number of B^0_s-meson decays in event
-            
-      do ikf=1,N
-c	 print *, N, '  k(',ikf,',2) =',k(ikf,2),'   p(',ikf,',4) =',p(ikf,4)
-        if(k(ikf,2).eq.531)   then
-c..........For  B_s\to\gamma\mu^+\mu^- decay
-c         .decflag=1*22*13*(-13)=-3718
-          decflag=1
-          do ijkf=k(jkf,4),k(jkf,5)
-            decflag=decflag*k(ijkf,2)
-          enddo
-c          print *, jkf, '  decflag =', decflag
-
-          if((k(jkf,5)-k(jkf,4)).eq.2.AND.
-     #       abs(k(k(jkf,4)+1,2)).eq.13.AND.
-     #       decflag.eq.(-3718)) then	  
-               nbm = nbm+1
-c               print *,' call MATRIX_and_KINEMATICS_GMM'
-               call MATRIX_and_KINEMATICS_GMM(ikf)
-	  endif  	  
-        endif ! if(k(ikf,2).eq.531) ...
-      enddo ! do ikf=1,N
-
-      iret=1
-c      if(nbm.GT.0) then 
-c       iret=0
-      if(nbm.LE.0) return 
-      iret = 0
-* S.Sivoklokov L1 and L2 emulation:
-      if(cufdcp(1).gt.0) then 
-         iret = 1
-         do I=1,N
-            if(IABS(K(I,2)).eq.13) then
-               PT = DSQRT(P(I,1)**2+P(I,2)**2)
-               TH = DACOS(P(I,3)/DSQRT(PT**2+P(I,3)**2))
-               ETA = -DLOG(MAX(.0001,DABS(DTAN(.5*TH))))
-               if(PT.gt.pt_L1.and.abs(ETA).lt.eta_L1) then
-                  iret=0
-                  i_muon_trig1=I
-               endif
-            endif
-         enddo
-      endif
-
-
-      if(cufdcp(4).gt.0) then
-         iret = 1
-         if(i_muon_trig1.eq.0) return
-         do I=1,N
-            PT = DSQRT(P(I,1)**2+P(I,2)**2)
-            TH = DACOS(P(I,3)/DSQRT(PT**2+P(I,3)**2))
-            ETA = -DLOG(MAX(.0001,DABS(DTAN(.5*TH))))
-            
-            if(IABS(K(I,2)).eq.13.and.
-     +           PT.gt.pt_L2.and.
-     +           (ETA).lt.eta_L2) then
-               if(I.ne.i_muon_trig1) then
-                  iret=0
-                  i_muon_trig2 = I
-               endif
-            endif
-         enddo 
-      endif
-c      endif
-      if(idebug.eq.2.and.iret.eq.0) then 
-          call pylist(2)
-          print *,' i_muon_trig1= ',i_muon_trig1,pt_L1
-          print *,' i_muon_trig2= ',i_muon_trig2,pt_L2
-      endif
-c      print *,'**   Number of B^0_s-mesons: nbm =',nbm, '            **'
-      return                                                             
-      END          ! USER_FINSEL
-                                                            
diff --git a/Generators/PythiaB/src/uf_KstarMuMu.F b/Generators/PythiaB/src/uf_KstarMuMu.F
deleted file mode 100644
index f6c574678bf58b69be680491f5152f51aaadb280..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_KstarMuMu.F
+++ /dev/null
@@ -1,204 +0,0 @@
-      SUBROUTINE uf_KstarMuMu(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : USER_FINSEL                                                   *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author :       Maria Smizanska             Date : 06/10/1996         *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*  Nikolai Nikitine                          Date : 15/10/2006         *
-*  S.Sivoklokov                                     01/09/2006         *
-*                                                                      *
-* Keywords :                                                           *
-*       For the decay B^0_d\to (K^{*0}\to K^+\pi^-)\mu^+\mu^-          *
-*----------------------------------------------------------------------*
-*                                                        
-C...Double precision and integer declarations.                               
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)                           
-      IMPLICIT INTEGER(I-N)                                                 
-c      INTEGER PYK,PYCHGE,PYCOMP                                 
-      INTEGER PYCOMP                                 
-       
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-*     user finsel decay selection and decay parameters
-      common /ufdecay/ cufdcp(10),iufdc
-      save   /ufdecay/
-c Parameters: 
-c    cufdcp( 1) : KEY_L1 (YES/NO)
-c    cufdcp( 2) : pt_trig1
-c    cufdcp( 3) : etha_trig1
-c    cufdcp( 4) : KEY_L2
-c    cufdcp( 5) : pt_trig2
-c    cufdcp( 6) : etha_trig2
-c    cufdcp( 7) :
-c    cufdcp( 8) :
-c    cufdcp( 9) :
-c    cufdcp(10) :
-* S.Sivoklokov: a trick to emulate Lvl1,Lvl2 here (trig1 and trig2.F not used)
-*  LVL1 muon cuts
-*      common/lvl1/tr1,pt_trig1, etha_trig1
-      common/trg1/i_muon_trig1
-*      SAVE/lvl1/
-      SAVE/trg1/
-*  LVL2 muon cut and electron tag cut
-*      common/lvl2/tr2,type,pt_trig2, etha_trig2
-      common/trg2/i_muon_trig2,i_ele_trig2
-*      SAVE/lvl2/
-      SAVE/trg2/
-                              
-      integer tree
-      COMMON/btree/ntree,tree(4000)                                           
-c......My COMMON blocs
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-                                                                             
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-      SAVE /btree/
-      SAVE /nik1/,/nik2/
-                         
-c      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-c      SAVE IFIRST,IIPRNT
-                     
-C ----------- end CDE --------------------------------------------------
-                              
-c......The COMMON blocs parameters
-      integer n_model, n_res_swch, n_ias, n_Nf
-      real n_M1, n_M2, n_mt, n_Mw, n_ml
-                                 
-      integer nbm, nmup, nmum, ikf
-
-      idebug = 0                   
-      i_muon_trig1=0
-      i_muon_trig2=0	
-      pt_L1 = cufdcp(2)
-      pt_L2 = cufdcp(5)
-      eta_L1 = cufdcp(3)
-      eta_L2 = cufdcp(6)
-      if(idebug.eq.1) print *,'uf_KstarMuMu: LVL1:pt_trig1 etha_trig1',
-     +     pt_L1,eta_L1
-                                            
-
-c	PRINT *,'-------- MSTP(171,172= ',MSTP(171),MSTP(172)
-c	PRINT *,'-------- VINT 1,3,4= ',VINT(1),VINT(3),VINT(4)
-
-         
-c......Read the integer parameters
-      n_model=1
-      n_res_swch=0
-      n_ias=1
-      n_Nf=5
-c      print *,' model =',n_model,'   res_swch =',n_res_swch,
-c     #'   ias =',n_ias,'   Nf =', n_Nf
-      
-c......to read the meson masses: M1 and M2
-      n_M1=PMAS(PYCOMP(511),1)
-      n_M2=PMAS(PYCOMP(313),1)
-c      print *,' M1 =',n_M1,'   M2 =',n_M2
-      
-c......to read the leptonic mass: ml
-      n_ml=PMAS(PYCOMP(13),1)
-c      print *,' ml =', n_ml
-      
-c......to read the mass: of t-quark and W-boson
-      n_mt=PMAS(PYCOMP(6),1)
-      n_Mw=PMAS(PYCOMP(24),1)
-c      print *,' mt =', n_mt,'   Mw =', n_Mw
-      
-      
-      nmup=0  ! the number of \mu^+ in event
-      nmum=0  ! the number of \mu^- in event
-      nbm = 0 ! the number of B-mesons in event
-      
-      kfKst=313 ! KF - code for K^{*0}
-      kfmum= 13 ! KF - code for \mu^-
-      kfmup=-13 ! KF - code for \mu^+
-      
-      do ikf=1,N
-c	print *, N, '  k(',ikf,',2) =',k(ikf,2),'   p(',ikf,',4) =',p(ikf,4)
-        if(p(1,4).GT.8000.D0.OR.p(2,4).GT.8000.D0) then
-	call pylist(1)
-          iret=1
-          return
-        endif      
-        if(k(ikf,2).eq.511) then
-          do imf=k(ikf,4),k(ikf,5)
-c            print *, imf, '  k(',imf,',2) =',k(imf,2)
-            if(k(imf,2).eq.313) then
-              nbm = nbm+1
-c              print *,' call MATRIX_and_KINEMATICS'
-              call MATRIX_and_KINEMATICS_KstMuMu (ikf)
-            endif
-          enddo
-        endif
-      enddo
-
-      iret=1
-c      if(nbm.GT.0) then 
-c       iret=0
-c      endif
-      if(nbm.LE.0) return 
-                                                                              
-      iret = 0
-* S.Sivoklokov L1 and L2 emulation:
-      if(cufdcp(1).gt.0) then 
-         iret = 1
-         do I=1,N
-            if(IABS(K(I,2)).eq.13) then
-               PT = DSQRT(P(I,1)**2+P(I,2)**2)
-               TH = DACOS(P(I,3)/DSQRT(PT**2+P(I,3)**2))
-               ETA = -DLOG(MAX(.0001,DABS(DTAN(.5*TH))))
-               if(PT.gt.pt_L1.and.abs(ETA).lt.eta_L1) then
-                  iret=0
-                  i_muon_trig1=I
-               endif
-            endif
-         enddo
-      endif
-
-
-      if(cufdcp(4).gt.0) then
-         iret = 1
-         if(i_muon_trig1.eq.0) return
-         do I=1,N
-            PT = DSQRT(P(I,1)**2+P(I,2)**2)
-            TH = DACOS(P(I,3)/DSQRT(PT**2+P(I,3)**2))
-            ETA = -DLOG(MAX(.0001,DABS(DTAN(.5*TH))))
-            
-            if(IABS(K(I,2)).eq.13.and.
-     +           PT.gt.pt_L2.and.
-     +           (ETA).lt.eta_L2) then
-               if(I.ne.i_muon_trig1) then
-                  iret=0
-                  i_muon_trig2 = I
-               endif
-            endif
-         enddo 
-      endif
-      if(idebug.eq.2.and.iret.eq.0) call pylist(2)
-
-c      print *,'**   nbm =',nbm,'   nmup =',nmup,'   nmum =',nmum, 
-c     #'                  **'
-c      print *,'**                                                  **'
-c      print *,'******************************************************'
-      return
-*                                                             
-      END          ! USER_FINSEL
-                                                            
diff --git a/Generators/PythiaB/src/uf_LambdabJpsimumuLambda.F b/Generators/PythiaB/src/uf_LambdabJpsimumuLambda.F
deleted file mode 100644
index e9df2eb1093fa9f5a395ec935feae654103e34f9..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_LambdabJpsimumuLambda.F
+++ /dev/null
@@ -1,166 +0,0 @@
-*CMZ :          
-*-- Author :    Wolfgang Walkowiak 2006-04-02
-      SUBROUTINE uf_LambdabJpsimumuLambda(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_LambdabJpsimumuLambda                                      *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 for Lambdab -> Jpsi Lambda                           *
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : Wolfgang Walkowiak           Date : 2006-04-02              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        Eduard De La Cruz Burelo       Date : 2006-04-15              *
-*                                                                      *
-* Keywords :                                                           *
-*        cufdcp(1) defined as the minimum pt of Lambda_b's to be 
-*        accepted
-*        cufdcp(2) defined as the maximum abs(eta) of the Lambda_b's
-*        to be accepted
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp( 1) : Minimum PT of Lambda b               
-c    cufdcp( 2) : Maximum ETA of  Lambda b               
-c    cufdcp( 3) :                
-c    cufdcp( 4) :                   
-c    cufdcp( 5) :                   
-c    cufdcp( 6) :                   
-c    cufdcp( 7) :                   
-c    cufdcp( 8) :                   
-c    cufdcp( 9) :                   
-c    cufdcp(10) :                   
-
-      PT_MIN = cufdcp(1)
-      ABSETA_MAX = cufdcp(2)
-      
-
-c     some counting
-      nintree = 0
-
-c     preset
-      iret = 1
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING'
-
-c     particle loop  -- modify content as needed
-      do  I=1,N
-         
-c
-c  accept based on pt and eta cut -- code from Michigan
-c
-         if (name_self(I).eq.5122) then
-            PT = SQRT(P(I,1)**2+P(I,2)**2)
-            TH = DACOS(P(I,3)/DSQRT(PT**2+P(I,3)**2))
-            ETA = -LOG(MAX(.0001,ABS(TAN(.5*TH))))
-c            write(*,*) PT,ETA,PT_MIN,ABSETA_MAX
-            if (PT.gt.PT_MIN.and.ABS(ETA).lt.ABSETA_MAX) then
-               iret=0
-            endif
-         endif
-         
-      enddo
-
-c     evaluation
-      
- 1000 continue
-      if(iret.ne.0) then
-c     debug output
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected'
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event acepted'
-      endif
-
-      if(iret.ne.1) then
-c     debug output
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event acepted'
-      endif
-
-      
-      return
-*     
-      END                       ! USER_FINSEL
diff --git a/Generators/PythiaB/src/uf_LambdabmumuLambda.F b/Generators/PythiaB/src/uf_LambdabmumuLambda.F
deleted file mode 100644
index 68ad1ba5d8d588cfd6a141513705fcc575c2dec5..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_LambdabmumuLambda.F
+++ /dev/null
@@ -1,160 +0,0 @@
-*CMZ :          
-*-- Author :    Wolfgang Walkowiak 2006-04-02
-      SUBROUTINE uf_LambdabmumuLambda(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_LambdabmumuLambda                                          *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 for Lambdab mumu Lambda events                      *
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : Wolfgang Walkowiak           Date : 2006-04-02              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp( 1) :               
-c    cufdcp( 2) :                
-c    cufdcp( 3) :                
-c    cufdcp( 4) :                   
-c    cufdcp( 5) :                   
-c    cufdcp( 6) :                   
-c    cufdcp( 7) :                   
-c    cufdcp( 8) :                   
-c    cufdcp( 9) :                   
-c    cufdcp(10) :                   
-
-
-c     some counting
-      nintree = 0
-
-c     preset
-      iret = 1
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING'
-
-      if(idebug.eq.1)
-     +   print *,'Parameter(1) =',cufdcp(1)
-
-c     particle loop  -- modify content as needed
-      do  I=1,N
-         
-c     if(tree(I).eq.1) then
-c
-c  accept only Lambda_b0  -- code from Pavel R.
-c
-         if(cufdcp(1).eq.0.0.and.name_selv(I).eq.5122) then
-            if(idebug.eq.1) print *,'USER_FINSEL: ',name_self(I)
-            iret=0
-         endif
-         if(cufdcp(1).eq.1.0.and.name_self(I).eq.5122) then
-            if(idebug.eq.1) print *,'USER_FINSEL: ',name_self(I)
-            iret=0
-         endif
-         if(cufdcp(1).eq.-1.0.and.name_self(I).eq.-5122) then
-            if(idebug.eq.1) print *,'USER_FINSEL: ',name_self(I)
-            iret=0
-         endif
-c     endif
-         
-      enddo
-
-c     evaluation
-      
- 1000 continue
-      if(iret.ne.0) then
-c     debug output
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected'
-      endif
-
-      
-      return
-*     
-      END                       ! USER_FINSEL
diff --git a/Generators/PythiaB/src/uf_PhiMuMu.F b/Generators/PythiaB/src/uf_PhiMuMu.F
deleted file mode 100644
index 3757f4855a7529247ebc0967afe147f84dbb8244..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_PhiMuMu.F
+++ /dev/null
@@ -1,200 +0,0 @@
-      SUBROUTINE uf_PhiMuMu(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : USER_FINSEL                                                   *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*               PERFORM decay Bs->phi(KK)mu+mu-                        *  
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author :       Maria Smizanska             Date : 06/10/1996         *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*  Nikolai Nikitine                          Date : 09/03/2005         *
-*  S.Sivoklokov                                     01/09/2006         *
-* Keywords :                                                           *
-*        For the decay B^0_s\to (\phi^0\to K^+K^^-)\mu^+\mu^-          *
-*----------------------------------------------------------------------*
-*
-C...Double precision and integer declarations.                               
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)                           
-      IMPLICIT INTEGER(I-N)                                                 
-c      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-       
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-*     user finsel decay selection and decay parameters
-      common /ufdecay/ cufdcp(10),iufdc
-      save   /ufdecay/
-c Parameters: 
-c    cufdcp( 1) : KEY_L1 (YES/NO)
-c    cufdcp( 2) : pt_trig1
-c    cufdcp( 3) : etha_trig1
-c    cufdcp( 4) : KEY_L2
-c    cufdcp( 5) : pt_trig2
-c    cufdcp( 6) : etha_trig2
-c    cufdcp( 7) :
-c    cufdcp( 8) :
-c    cufdcp( 9) :
-c    cufdcp(10) :
-* S.Sivoklokov: a trick to emulate Lvl1,Lvl2 here (trig1 and trig2.F not used)
-*  LVL1 muon cuts
-*      common/lvl1/tr1,pt_trig1, etha_trig1
-      common/trg1/i_muon_trig1
-*      SAVE/lvl1/
-      SAVE/trg1/
-*  LVL2 muon cut and electron tag cut
-*      common/lvl2/tr2,type,pt_trig2, etha_trig2
-      common/trg2/i_muon_trig2,i_ele_trig2
-*      SAVE/lvl2/
-      SAVE/trg2/
-                              
-                              
-              
-      integer tree
-      COMMON/btree/ntree,tree(4000)                                            
-c......My COMMON blocs
-      COMMON /nik1/ n_model, n_res_swch, n_ias, n_Nf
-      COMMON /nik2/ n_M1, n_M2, n_mt, n_Mw, n_ml
-                                                                             
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-      SAVE /btree/
-      SAVE /nik1/,/nik2/
-                         
-c      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-c      SAVE IFIRST,IIPRNT
-                                                               
-C ----------- end CDE --------------------------------------------------
-c......The COMMON blocs parameters
-
-      integer n_model, n_res_swch, n_ias, n_Nf
-      real n_M1, n_M2, n_mt, n_Mw, n_ml
-                                 
-      integer nbm, nmup, nmum, ikf, imf
-
-      idebug = 0 
-      i_muon_trig1=0
-      i_muon_trig2=0	
-      pt_L1 = cufdcp(2)
-      pt_L2 = cufdcp(5)
-      eta_L1 = cufdcp(3)
-      eta_L2 = cufdcp(6)
-      if(idebug.eq.1) print *,'uf_PhiMuMu: LVL1:pt_trig1 etha_trig1',
-     +      pt_L1,eta_L1
-                
-               
-      
-c......Read the integer parameters
-      n_model=1
-      n_res_swch=0
-      n_ias=1
-      n_Nf=5
-c      print *,' model =',n_model,'   res_swch =',n_res_swch,
-c     #'   ias =',n_ias,'   Nf =', n_Nf
-
-c......to read the meson masses: M1 and M2
-      n_M1=PMAS(PYCOMP(531),1)
-      n_M2=PMAS(PYCOMP(333),1)
-c      print *,' M1 =',n_M1,'   M2 =',n_M2
-
-c......to read the leptonic mass: ml
-      n_ml=PMAS(PYCOMP(13),1)
-c      print *,' ml =', n_ml
-
-c......to read the mass: of t-quark and W-boson
-      n_mt=PMAS(PYCOMP(6),1)
-      n_Mw=PMAS(PYCOMP(24),1)
-c      print *,' mt =', n_mt,'   Mw =', n_Mw
-      
-      nmup=0  ! the number of \mu^+ in event
-      nmum=0  ! the number of \mu^- in event
-      nbm = 0 ! the number of B^0_s-mesons in event
-      
-      kfKst=333 ! KF - code for \phi^0
-      kfmum= 13 ! KF - code for \mu^-
-      kfmup=-13 ! KF - code for \mu^+
-      
-      do ikf=1,N
-c	print *, N, '  k(',ikf,',2) =',k(ikf,2)      
-        if(k(ikf,2).eq.531) then
-	  do imf=k(ikf,4),k(ikf,5)
-c	   print *, imf,'  k(',imf,',2) =',k(imf,2)
-	   if(k(imf,2).eq.333) then
-             nbm = nbm+1
-c             print *,' call MATRIX_and_KINEMATICS'
-             call MATRIX_and_KINEMATICS_PhiMuMu(ikf)
-	   endif
-	  enddo
-	  if(nbm.EQ.0) then
-c	    print *,'FATAL ERROR in user_finsel.F'
-c	    print *,'Unknown decay channel of B^0_s: ikf =', ikf
-c	    call pylist(2)
-	  endif
-        endif
-	
-      enddo
-      
-      iret=1
-      if(nbm.LE.0) return 
-      iret = 0
-* S.Sivoklokov L1 and L2 emulation:
-      if(cufdcp(1).gt.0) then 
-         iret = 1
-         do I=1,N
-            if(IABS(K(I,2)).eq.13) then
-               PT = DSQRT(P(I,1)**2+P(I,2)**2)
-               TH = DACOS(P(I,3)/DSQRT(PT**2+P(I,3)**2))
-               ETA = -DLOG(MAX(.0001,DABS(DTAN(.5*TH))))
-               if(PT.gt.pt_L1.and.abs(ETA).lt.eta_L1) then
-                  iret=0
-                  i_muon_trig1=I
-               endif
-            endif
-         enddo
-      endif
-
-
-      if(cufdcp(4).gt.0) then
-         iret = 1
-         if(i_muon_trig1.eq.0) return
-         do I=1,N
-            PT = DSQRT(P(I,1)**2+P(I,2)**2)
-            TH = DACOS(P(I,3)/DSQRT(PT**2+P(I,3)**2))
-            ETA = -DLOG(MAX(.0001,DABS(DTAN(.5*TH))))
-            
-            if(IABS(K(I,2)).eq.13.and.
-     +           PT.gt.pt_L2.and.
-     +           (ETA).lt.eta_L2) then
-               if(I.ne.i_muon_trig1) then
-                  iret=0
-                  i_muon_trig2 = I
-               endif
-            endif
-         enddo 
-      endif
-
-                                                                              
-c      call pylist(2)
-c      print *,'**   nbm =',nbm,'   nmup =',nmup,'   nmum =',nmum, 
-c     #'                  **'
-      if(idebug.eq.2.and.iret.eq.0) call pylist(2)
-
-      return
-*                                                             
-      END          ! USER_FINSEL
-                                                            
diff --git a/Generators/PythiaB/src/uf_Skeleton.F b/Generators/PythiaB/src/uf_Skeleton.F
deleted file mode 100644
index 1e0ea02e55a36b6cc90a90d5ec50810865c04044..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_Skeleton.F
+++ /dev/null
@@ -1,158 +0,0 @@
-*CMZ :          
-*-- Author :    Wolfgang Walkowiak 2006-04-02
-      SUBROUTINE uf_Skeleton(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_Skeleton                                                   *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 -- example skeleton --                               *
-*                 additional settings from cufdcp(10) array            *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : Wolfgang Walkowiak           Date : 2006-04-02              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp( 1) :               
-c    cufdcp( 2) :                
-c    cufdcp( 3) :                
-c    cufdcp( 4) :                   
-c    cufdcp( 5) :                   
-c    cufdcp( 6) :                   
-c    cufdcp( 7) :                   
-c    cufdcp( 8) :                   
-c    cufdcp( 9) :                   
-c    cufdcp(10) :                   
-
-
-c     some counting
-      nintree = 0
-
-c     preset
-      iret = 1
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING'
-
-c     particle loop  -- modify content as needed
-      do  I=1,N
-         
-         if (idebug.eq.1) then
-            print *,'USER_FINSEL: part',I,
-     +           link_father(I), tree(I),
-     +           name_self(I), name_father(I)
-         endif
-         
-         if(tree(I).eq.1) then
-            if(idebug.eq.1) then
-               nintree = nintree+1
-               print *,'USER_FINSEL: tree',name_self(I)
-            endif
-c
-c     Add your code here -- for particles in decay tree.
-c     Set iret accordingly.
-
-
-
-            
-         endif
-      enddo
-
-c     evaluation
-      
- 1000 continue
-      if(iret.ne.0) then
-c     debug output
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected'
-      endif
-
-      
-      return
-*     
-      END                       ! USER_FINSEL
diff --git a/Generators/PythiaB/src/uf_bbmumu.F b/Generators/PythiaB/src/uf_bbmumu.F
deleted file mode 100644
index 07caef52a718853911a09c04c8829676897bb927..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uf_bbmumu.F
+++ /dev/null
@@ -1,197 +0,0 @@
-*CMZ :          
-*-- Author :   SERGEY SIVOKLOKOV 2006-04-14
-      SUBROUTINE uf_bbmumu(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : uf_bbmumu                                                   *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-*                 accept events with M(mumu)<Mass_cut GeV (8GeV)       *
-*                              *
-*                 additional settings from cufdcp(10) array  
-*                           cufdcp(1) = lower Mass_cut                 *
-*                           cufdcp(2) = upper Mass_cut                 *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : Sergey Sivoklokov            Date : 2006-04-14              *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-      
-      Integer Muplus(10),Muminus(10),Nmum,Nmup
-            
-      
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-
-       IF(IFIRST.EQ.1) THEN
-          IFIRST =0
-          Print *,'PythiaB/uf_bmumu: lower Mass_cut=cufdcp(1)= ',cufdcp(1)
-          Print *,'PythiaB/uf_bmumu: upper Mass_cut=cufdcp(2)= ',cufdcp(2)
-          Print *,'iret = ',iret
-       ENDIF
-
-c     return immediately if already rejected
-      if ( iret.eq.1 ) return
-
-c
-c Add your decay selection here.
-c Set iret to 0 (acception) or 1 (rejection) per event.
-c 
-c Parameters: 0 (off) / 1 (on)
-c    cufdcp( 1) :               
-c    cufdcp( 2) :                
-c    cufdcp( 3) :                
-c    cufdcp( 4) :                   
-c    cufdcp( 5) :                   
-c    cufdcp( 6) :                   
-c    cufdcp( 7) :                   
-c    cufdcp( 8) :                   
-c    cufdcp( 9) :                   
-c    cufdcp(10) :                   
-
-
-c     some counting
-      nintree = 0
-
-c     preset
-      iret = 1
-
-      if(idebug.eq.1)
-     +   print *,'USER_FINSEL: BEGINNING'
-      Nmum=0
-      Nmup=0
-c     particle loop  -- modify content as needed
-      do  I=1,N
-         
-c         if (idebug.eq.1) then
-c            print *,'USER_FINSEL: part',I,
-c     +           link_father(I), tree(I),
-c     +           name_self(I), name_father(I)
-c         endif
-         
-c         if(tree(I).eq.1) then
-c            if(idebug.eq.1) then
-c               nintree = nintree+1
-c               print *,'USER_FINSEL: tree',name_self(I)
-c            endif
-c     
-c     Add your code here -- for particles in decay tree.
-c     Set iret accordingly.
-c         endif
-         
-         if( K(I,2).eq.13 ) then
-            Nmum = Nmum + 1
-            Muminus(Nmum) = i
-         endif
-         if( K(I,2).eq.-13 ) then
-            Nmup = Nmup + 1
-            Muplus(Nmup) = i
-         endif
-
-      enddo
-      
-      if(idebug.eq.1) print *,'uf_Bmumu Nmu+, Nmu- = ',Nmup,Nmum
-            
-      Do M = 1,Nmup
-         Do L = 1,Nmum
-            I = Muplus(M)
-            J = Muminus(L)
-            
-            Py = P(i,2)+P(j,2)
-            Pz = P(i,3)+P(j,3)
-            E  = P(i,4)+P(j,4)
-            Emm = 0.
-            Emm2 = E*E - Px*Px - Py*Py - Pz*Pz
-            pti = dsqrt(P(i,1)*P(i,1)+P(i,2)*P(i,2))
-            ptj = dsqrt(P(j,1)*P(j,1)+P(j,2)*P(j,2))
-            if(Emm2.gt.0) Emm = dsqrt(Emm2)
-C-------------------------------------------------------------
-      If(idebug.eq.1)  print *,' User Finsel: Emm,PTi,PTj= ',Emm,pTi,pTj
-            if((Emm.gt.cufdcp(1)).and.(Emm.lt.cufdcp(2))) iret=0
-c     x    ((PTi.gt.4.and.ptj.gt.6).or.(ptj.gt.4.and.pti.gt.6))) iret = 0
-C-------------------------------------------------------------
-         enddo
-      enddo
-c     evaluation
-      
- 1000 continue
-      if(iret.ne.0) then
-c     debug output
-         if(idebug.eq.1)
-     +        print *, 'USER_FINSEL: event rejected'
-      endif
-
-      
-      return
-*     
-      END                       ! USER_FINSEL
diff --git a/Generators/PythiaB/src/uinit.F b/Generators/PythiaB/src/uinit.F
deleted file mode 100644
index a2ae9d0f6fd3481cdeb621b2546a15f1d578671a..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/uinit.F
+++ /dev/null
@@ -1,110 +0,0 @@
-*CMZ :          02/08/2001  11.48.54  by  Maria Smizanska
-*-- Author :    Maria Smizanska   20/11/96
-
-      SUBROUTINE UINIT
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : UINIT                                                         *
-*        (module)                                                      *
-*                                                                      *
-* Description :                                                        *
-*        Booking of NTUPLES 500 5001 5002                              *
-*        Another histogram/ntuple booking can be added by user here    *
-* Arguments   :                                                        *
-*        i1 , i2   not used       [description]                        *
-*                                                                      *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/11/96          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-C +CDE, TYPING.
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,NNTUPLE.
-*      DECLARATION FOR NTUPLE 5000
-       PARAMETER(NDIM = 20)
-       COMMON/NNICK/XNTUP(NDIM)
-       SAVE/NNICK/
-
-*      DECLARATION FOR NTUPLE 5001
-       PARAMETER(NDIM1 = 13)
-       COMMON/HARD/XNTUP1(NDIM1)
-       SAVE/HARD/
-
-*      DECLARATION FOR NTUPLE 5002
-       PARAMETER(NDIM2 = 12)
-       COMMON/MUON/XNTUP2(NDIM2)
-       SAVE/MUON/
-       COMMON/PAWC/H(500000)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-
-
-c      CHARACTER*8 TAGS(NDIM)
-c      SAVE TAGS
-
-c      CHARACTER*8 TAGS1(NDIM1)
-c      SAVE TAGS1
-
-c      CHARACTER*8 TAGS2(NDIM2)
-c      SAVE TAGS2
-
-c      DATA TAGS /
-c     +'event','NTRY','ntree','itree','lineLUJE',
-c     +'K1','K2','K3','K4','K5',
-c     +'P1','P2','P3','P4','P5',
-c     +'V1','V2','V3','V4','V5'   /
-
-c      DATA TAGS1 /
-c     +'ISUB','XSECTION','NHADRONI','PTHARD','YHARD',
-c     +'PT_B','ETA_B','PHI_B','FATHER_B','PT_AB','ETA_AB',
-c     +'PHI_AB','FATHERAB'  /
-
-c      DATA TAGS2 /
-c     +'event','NTRY','nmuons','imuon','name',
-c     +'fathname','PT','ETA','phi','XV','YV',
-c     +'ZV'  /
-
-c       idebug=1
-c       if(idebug.ne.0) print *,'UINIT: moj uinit0'
-c       CALL HLIMIT(500000)
-c       if(idebug.ne.0) print *,'UINIT: moj uinit1'
-c       CALL HROPEN(16,'AT','at1.hbook','N',1024,0)
-c       if(idebug.ne.0) print *,'UINIT: moj uinit2'
-* Ntuple 5000 contains 'LUJET' type of information for
-* B-signal chain and triggering muon
-
-c        CALL HBOOKN(5000,'BBANAL',NDIM,'AT',1000,TAGS)
-c        if(idebug.ne.0) print *,'UINIT: moj uinit3'
-* Ntuple 5001 contains  information about hard process
-* for those events that are accepted and written out
-
-c        CALL HBOOKN(5001,'BBHARD',NDIM1,'AT',1000,TAGS1)
-
-* Ntuple 5002 is filled in the case of muon inclusive
-* process bb->muX was simulated. It contains information
-* about all muons in such events passing the LVL1 selection cuts
-
-c        CALL HBOOKN(5002,'BBMUON',NDIM1,'AT',1000,TAGS2)
-
-c      call hbook1(1,'Particles per event',100,0.,2000.,1.)
-
-
-*
-      END          ! UINIT
diff --git a/Generators/PythiaB/src/ulast.F b/Generators/PythiaB/src/ulast.F
deleted file mode 100644
index 94f1b1ea7e8ed6a7016610d4f0ed2167450756df..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/ulast.F
+++ /dev/null
@@ -1,38 +0,0 @@
-*CMZ :          02/08/2001  11.48.54  by  Maria Smizanska
-*-- Author :    Maria Smizanska   20/11/96
-
-      SUBROUTINE ulast
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : ulast                                                         *
-*        (module)                                                      *
-*                                                                      *
-* Description :                                                        *
-*        Booking of NTUPLES 500 5001 5002                              *
-*        Another histogram/ntuple booking can be added by user here    *
-* Arguments   :                                                        *
-*        i1 , i2   not used       [description]                        *
-*                                                                      *
-* Banks/Tables:                                                        *
-*        [name]  ([filled | used | modified])                          *
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Author : Maria Smizanska                    Date : 20/11/2001          *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-C +CDE, TYPING.
-
-         print *,'ULAST: my ulast is called'
-c        CALL HROUT(0)
-c        CALL HREND('AT')
-*
-      END          ! ulast
diff --git a/Generators/PythiaB/src/user_finsel.F b/Generators/PythiaB/src/user_finsel.F
deleted file mode 100644
index 5b5416e6944d475e6ff05eb1e7dd0cd49ef44a3b..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/user_finsel.F
+++ /dev/null
@@ -1,153 +0,0 @@
-*CMZ :          02/08/2001  11.49.18  by  Maria Smizanska
-*-- Author :    Maria Smizanska   06/10/96
-      SUBROUTINE USER_FINSEL(IRET)
-*                                                                      *
-*----------------------------------------------------------------------*
-*                                                                      *
-* Name : USER_FINSEL                                                   *
-*        (module)                                                      *
-*                                                                      *
-* Description : User subroutine to define  requirements for event      *
-*                 accepting/rejecting additional or                    *
-*                 other that in subroutine finsel                      *
-* Arguments   :  IRET (in/out) accepting(0)/rejecting(1) event         *
-*                                                                      *
-*                                                                      *
-* Author : user                         Date : xxx                     *
-*                                                                      *
-*                                                                      *
-* Last modifications :                                                 *
-*        [name]                               Date : [date]            *
-*                                                                      *
-* modifications:                                                       *
-* 2006-04-02, W.Walkowiak                                              *
-*    added common block ufdecay to tunnel iufdc and ciudcp(10)         *
-*    to user_finsel.F;                                                 *
-*    decays are now contained in subfiles following                    *
-*    the naming convention uf_<decayname>.F                            *
-* 2006-04-09, W. Walkowiak                                             *
-*    added uf_BsJpsimumuphiKK() -- code by James Catmore               *
-* 2006-04-17, W. Walkowiak                                             *
-*    added uf_bbmumu() -- code by Sergey Sivoklokov                    *
-* 2008-05-09, L. Gladilin                                              *
-*    added uf_ChHadr() -- code by Leonid Gladilin                      *
-* 2010-08-26, P. Reznicek                                              *
-*    added uf_BdJpsimumuK0starKpi() -- code by Pavel Reznicek          *
-*                                                                      *
-* Keywords :                                                           *
-*        [keywords]                                                    *
-*----------------------------------------------------------------------*
-*
-*+CDE, TYPING.
-C ----------- end CDE --------------------------------------------------
-*
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-*KEEP,LUJETS.
-       COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-*KEEP,LUDAT1.
-       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-*KEEP,LUDAT2.
-       COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-*KEEP,PYPARS.
-       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-*KEEP,PYINT1.
-       COMMON/PYINT1/MINT(400),VINT(400)
-*KEEP,PYINT2.
-       COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-*KEEP,PYINT5.
-       COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-*KEEP,PYUPPR.
-       COMMON/PYUPPR/NUP,KUP(20,7),NFUP,IFUP(10,2),PUP(20,5),Q2UP(0:10)
-
-*     user finsel decay selection and decay parameters
-       common /ufdecay/ cufdcp(10),iufdc
-       save   /ufdecay/
-
-*KEND.
-*      SAVE /LUJETS/,/LUDAT1/,/LUDAT2/
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/
-      SAVE /PYPARS/,/PYINT1/,/PYINT2/,/PYINT5/,/PYUPPR/
-*KEEP,BTREE.
-      common/btree/ntree,tree(4000)
-      integer tree
-      SAVE /btree/
-*KEND.
-c      SAVE IFIRST,IIPRNT
-      SAVE IFIRST
-      DATA IFIRST /1/
-c      DATA IIPRNT /0/
-
-*KEEP,FAMILY.
-       name_self(I)=K(I,2)
-       name_selv(I)=abs(K(I,2))
-       name_father(I)=K(K(I,3),2)
-       name_grandpa(I)=K(K(K(I,3),3),2)
-       name_daughter1(I)=K(K(I,4),2)
-       name_daughter2(I)=K(K(I,5),2)
-
-       link_self(I)=I
-       link_father(I)=K(I,3)
-       link_grandpa(I)=K(K(I,3),3)
-       link_daughter1(I)=K(I,4)
-       link_daughter2(I)=K(I,5)
-*KEND.
-C ----------- end CDE --------------------------------------------------
-
-       idebug=0
-      IF(IFIRST.EQ.1) THEN
-        IFIRST =0
-      ENDIF
-
-c
-c select user defined decay channel
-c
-c  0: decay channel skeleton
-      if ( iufdc .eq. 0 ) call uf_Skeleton(iret)
-c
-c  1: DsPhiX
-      if ( iufdc .eq. 1 ) call uf_DsPhiX(iret) 
-c
-c  2: LambdabmumuLambda (Pavel R.)
-      if ( iufdc .eq. 2 ) call uf_LambdabmumuLambda(iret)
-c
-c  3: LambdabJpsimumuLambda (Michigan)
-      if ( iufdc .eq. 3 ) call uf_LambdabJpsimumuLambda(iret)
-c
-c  4: BsJpsimumuphiKK (James Catmore)
-      if ( iufdc .eq. 4) call uf_BsJpsimumuphiKK(iret) 
-
-c  5: bbmumu (Sergey Sivoklokov)
-      if ( iufdc .eq. 5) call uf_bbmumu(iret) 
-
-c  6: Kstarmumu (Sergey Sivoklokov)
-      if ( iufdc .eq. 6) call uf_KstarMuMu(iret) 
-
-c  7: Phi0mumu (Sergey Sivoklokov)
-      if ( iufdc .eq. 7) call uf_PhiMuMu(iret) 
-
-c  8: Gammamumu (Sergey Sivoklokov)
-      if ( iufdc .eq. 8) call uf_GammaMuMu(iret) 
-
-c  9: ChHadr (Leonid Gladilin)
-      if ( iufdc .eq. 9) call uf_ChHadr(iret) 
-
-c 10: BsAngles (J Catmore)
-      if ( iufdc .eq. 10) call uf_BsAngles(iret)
-
-c 11: BdJpsimumuK0starKpi (Pavel Reznicek)
-      if ( iufdc .eq. 11 ) call uf_BdJpsimumuK0starKpi(iret)
-
-c 12: BsAnglesCDF (Alastair Dewhurst, Pavel Reznicek)
-      if ( iufdc .eq. 12) call uf_BsAnglesCDF(iret)
-
-c 13: BdAnglesCDF (Alastair Dewhurst, Pavel Reznicek)
-      if ( iufdc .eq. 13) call uf_BdAnglesCDF(iret)
-
-
-      return
-*
-      END          ! USER_FINSEL
diff --git a/Generators/PythiaB/src/wri_ludat3.F b/Generators/PythiaB/src/wri_ludat3.F
deleted file mode 100644
index 3a887c5b9af7c872663ad6df67f409b14cdcf22d..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/wri_ludat3.F
+++ /dev/null
@@ -1,55 +0,0 @@
-*CMZ :          02/08/2001  11.43.38  by  Maria Smizanska
-*-- Author :    Maria Smizanska   22/07/2000
-
-      SUBROUTINE wri_ludat3(in)
-c
-c   make a copy ludat3 of default (in=1) decays
-c   make a copy ludat3 of users defined (in=2) decays
-c   MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)
-c
-*KEEP,DOUB.
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-*KEEP,COLUDAT3.
-
-       common /CLUDAT3/MDCYbi(500,3),MDMEbi(8000,2),
-     *                       BRATbi(8000),KFDPbi(8000,5),
-     *                       MDCYun(500,3),MDMEun(8000,2),
-     *                       BRATun(8000),KFDPun(8000,5)
-
-*KEEP,LUDAT3.
-       COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-*KEND.
-      
-
-      idebug=1
-      if(idebug.ne.0) print *,'wri_ludat3: is called'
-      
-      if(in.eq.1) then
-      write (60) MDCY,MDME,BRAT,KFDP 
-      write (61,100) BRAT
-      endif
-100   format(10F10.7)      
-      
-      
-      if(in.eq.2) then
-      read (60) MDCYun,MDMEun,BRATun,KFDPun 
-      endif
-      
-
-
-      if(idebug.ne.0) then
-      print *,'wri_ludat3: write 1 read 2',in
-      print *,'wri_ludat3: mdme(982,1)',(mdme(ii,1),ii=982,982)
-      print *,'wri_ludat3: mdmeun(982,1)',(mdmeun(ii,1),ii=982,982)
-      endif
-      return
-      end
-
-
-
-
-
-
-
diff --git a/Generators/PythiaB/src/xsect.F b/Generators/PythiaB/src/xsect.F
deleted file mode 100644
index 99ba4c6328029f4102bd360b231cb72d8d181a32..0000000000000000000000000000000000000000
--- a/Generators/PythiaB/src/xsect.F
+++ /dev/null
@@ -1,49 +0,0 @@
-      SUBROUTINE XSECT(IOUT)
-c
-c --- Print out cross section taken from PYTHIA XSEC(0,3)
-c --- and corrected to multiple hadronisation
-c
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/bevent/ihard
-      common/repeat/NTB
-            
-	    
-          WRITE(IOUT,5300)
-          WRITE(IOUT,5400)
-
-      xc=xsec(0,3)/ntb
-      WRITE(IOUT,1)
-      WRITE(IOUT,2) ntb
-      WRITE(IOUT,3) XSEC(0,3)
-      WRITE(IOUT,4) XC
-      WRITE(IOUT,5) NGEN(0,3)
-      if (keve.ne.0) then
-      WRITE(IOUT,6)
-      WRITE(IOUT,7) float(NGEN(0,3))/ihard
-
-      endif
-
-        WRITE(IOUT,5400)
-        WRITE(IOUT,5300)
-
-
-
- 1    FORMAT(8X,'CROSS SECTION CORRECTED FOR REPEATED HADRONISATION')
- 2    FORMAT(8X,'Hadronization was repeated ',i6,' times')
- 3    FORMAT(8X,'Cross section given by PYTHIA was: ',E10.4,'mbarn')
- 4    FORMAT(8X,'Corrected cross section is:     ',E10.4,'mbarn')
- 5    FORMAT(8X,'Number of accepted events is:   ',I7)
- 6    FORMAT(8X,'AVERAGE NUM. OF ACCEPTED EVTS WITH THE SAME')
- 7    FORMAT(8X,'HARD PROCESS',f10.5)
-
-
-
- 5300 FORMAT(78('='))
- 5400 FORMAT(78(' '))
-      RETURN
-      END
-	    
diff --git a/Generators/PythiaChL_i/CMakeLists.txt b/Generators/PythiaChL_i/CMakeLists.txt
deleted file mode 100644
index 392e5457fb4f404237c6b7805d4ed35a17bcba9d..0000000000000000000000000000000000000000
--- a/Generators/PythiaChL_i/CMakeLists.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-################################################################################
-# Package: PythiaChL_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( PythiaChL_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs(
-   PUBLIC
-   GaudiKernel
-   Generators/GeneratorModules
-   Generators/Pythia_i
-   Generators/Tauola_i
-   PRIVATE
-   Control/AthenaKernel
-   Generators/GeneratorUtils
-   Generators/TruthUtils
-   Generators/CompHep_i )
-
-# External dependencies:
-find_package( CLHEP )
-find_package( HepMC COMPONENTS HepMC HepMCfio )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( PythiaChL_iLib
-   PythiaChL_i/PythiaChL.h src/PythiaChL.cxx src/pysghg_ChL.f
-   PUBLIC_HEADERS PythiaChL_i
-   PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
-   LINK_LIBRARIES GaudiKernel GeneratorModulesLib Pythia_iLib Tauola_iLib
-   PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} AthenaKernel
-   TruthUtils CompHep_i )
-
-atlas_add_component( PythiaChL_i
-   src/components/*.cxx
-   LINK_LIBRARIES GaudiKernel PythiaChL_iLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
diff --git a/Generators/PythiaChL_i/PythiaChL_i/PythiaChL.h b/Generators/PythiaChL_i/PythiaChL_i/PythiaChL.h
deleted file mode 100644
index fea55903a0711084e2f94de63fd8e9ecf67fcc89..0000000000000000000000000000000000000000
--- a/Generators/PythiaChL_i/PythiaChL_i/PythiaChL.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENERATORMODULESPYTHIACHL_H
-#define GENERATORMODULESPYTHIACHL_H
-
-#include "Pythia_i/Pythia.h"
-
-#include "GeneratorModules/GenModule.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-class IAtRndmGenSvc;
-
-/// @todo Put inside class (this is a global declaration)
-typedef std::vector<std::string> CommandVector;
-
-/**
-@brief This code is used to get a PYTHIA-ChL Monte Carlo event.
-
-    genInitialize() is used to read parameters
-
-    callGenerator() makes the event
-
-    genFinalize() writes log files etc
-
-    fillEvt(GeneratorEvent* evt) passes the event to HepMC
-
-    The output will be stored in the transient event store so it can be
-    passed to the simulation.
-
-@author 
-
-    Ian Hinchliffe June 2000
-
-    Modelled after the CDF code by Stan Thompson
-
-    Added access to pyint2 common Feb 2001
-
-    Added access to pyint5 common Feb 2002
-
-    Added access to lesatlas common (not part of pythia but needed for external process May 2002
-
-    Added access to pyint1 common Sept 2002
-    
-    Spited from Pythia_i by Jan Kotanski July 2011
-
-*/
-
-class PythiaChL : public Pythia {
-public:
-  
-  PythiaChL(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~PythiaChL();
-
-  virtual StatusCode genuserInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-
-};
-
-
-#endif
-
-/*  LocalWords:  ifndef
- */
diff --git a/Generators/PythiaChL_i/share/joboptions.PythiaChL.py b/Generators/PythiaChL_i/share/joboptions.PythiaChL.py
deleted file mode 100644
index bd0c1cd0173b8d580e66eaa22ebb9cd8eea65115..0000000000000000000000000000000000000000
--- a/Generators/PythiaChL_i/share/joboptions.PythiaChL.py
+++ /dev/null
@@ -1,110 +0,0 @@
-###############################################################
-# Pythia Commands
-#
-# !!! WARNING !!! 
-# ChL model, using modified pythia code through PythiaChL_i
-# pysghg_ChL.f (Georges Azuelos)
-#
-# 06/2006, G. Azuelos, P.A. Delsart, J. Idarraga
-###############################################################
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-MyNevts = 10
-theApp.EvtMax = MyNevts
-
-# dijet production with pythia
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-from PythiaChL_i.PythiaChL_iConf import PythiaChL
-topAlg += PythiaChL()
-
-###############################################################
-# Channel switches
-Ztojj = "0"
-Ztoll = "4"
-Ztonunu = "5"
-# close tau channels
-# for jjll both mdme 186 and 187 are "0"
-# for llnn mdme186=0 and mdme187=5
-Ztotau186 = "0"
-Ztotau187 = "0"
-
-if Ztonunu == "0":
-    Ztotau187 = "0"
-elif Ztonunu == "4" or Ztonunu == "5":
-    Ztotau187 = "5"
-else:
-    Ztotau187 = "0"
-    
-print "[INFO] Optios for tau: "
-print "[INFO] mdme 186 = ", Ztotau186
-print "[INFO] mdme 187 = ", Ztotau187
-    
-Pythia = topAlg.PythiaChL
-#---------------------------------------------------------------
-Pythia.PythiaCommand = [
-
-    #######################
-    # using madgraph
-    # "pyinit user madgraph",
-
-    # Set process type and W' mass
-    "pysubs msel 0",
-
-    #######################
-    # if using madgraph
-    # comment out the next
-    # msub, mstp and parp options
-    #######################
-    "pysubs msub 71 1",
-    "pysubs msub 76 1",
-    "pypars mstp 46 5",            #
-    "pypars parp 200 0.009",
-    "pypars parp 199 0.009",
-
-    #####################
-    # Z -> ee or mu mu (apago los jets)
-    # the last parameter turns on(1) or turns off(0) the desired channel
-    # but he will take in to account for the width ! ... watch out !
-
-    # Z -> to quarks
-    "pydat3 mdme 174 1 "+Ztojj,
-    "pydat3 mdme 175 1 "+Ztojj,
-    "pydat3 mdme 176 1 "+Ztojj,
-    "pydat3 mdme 177 1 "+Ztojj,
-    "pydat3 mdme 178 1 "+Ztojj,
-    "pydat3 mdme 179 1 "+Ztojj,
-   
-    # Z -> ll
-    "pydat3 mdme 182 1 "+Ztoll,
-    "pydat3 mdme 183 1 "+Ztonunu,     # to nu_e
-    "pydat3 mdme 184 1 "+Ztoll,
-    "pydat3 mdme 185 1 "+Ztonunu,     # to nu_mu
-    
-    # Close Z -> tau channels
-    "pydat3 mdme 186 1 "+Ztotau186,
-    "pydat3 mdme 187 1 "+Ztotau187,    # IMPORTANT !!! 5 for the case llnn
-    # "pydat3 mdme 188 1 0",
-    # "pydat3 mdme 189 1 0",
-    
-    ######################
-    "pysubs ckin 1 300",   # minimun for the invariant mass
-                           # of WZ
-    "pyinit pylistf 1",
-    
-    # list 1st 10 events
-    "pyinit dumpr 1 10",
-
-    # print the decay info
-    "pyinit pylisti 12"
-
-]
-
-
-#--------------------------------------------------------------
-# Configuration for EvgenJobTransforms
-#--------------------------------------------------------------
-#from EvgenJobOptions.PythiaEvgenConfig import evgenConfig
-#evgenConfig.efficiency = 0.9
diff --git a/Generators/PythiaChL_i/src/PythiaChL.cxx b/Generators/PythiaChL_i/src/PythiaChL.cxx
deleted file mode 100644
index 97fb46b47d02409ed1868fcec37b1063396fad32..0000000000000000000000000000000000000000
--- a/Generators/PythiaChL_i/src/PythiaChL.cxx
+++ /dev/null
@@ -1,767 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// File: GeneratorModules/PythiaChL.cxx
-// Description: Allows the user to generate pythia events and store 
-// the result in the Transient Store.
-//
-// AuthorList:
-//   Ian Hinchliffe:  Initial Code June: 2000
-//   Modeled after the CDF code by Stan Thompson
-//   Parsing added August 2000
-//   More switches added Feb 2001
-//   Les Houches external process interface added May 2002
-//   Added access to pyint1 common Sept 2002
-//   Splited from Pythia_i by Jan Kotanski 2011
-
-/// @todo Remove all std::cout usage
-/// @todo Remove use of newlines in ATH_MSG
-
-// Header for this module:-
-#include "Pythia_i/Pythia.h"
-#include "PythiaChL_i/PythiaChL.h"
-#include "TruthUtils/GeneratorName.h"
- 
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "GeneratorUtils/StringParse.h"
-#include <cstdlib>
-
-// Calls to Fortran routines
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-using std::string;
-
-
-
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyinit_(const char*,
-               const char*, 
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference) 
-               int  
-               );
-  void pyevnt_();
-  void pyevnw_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  int  pycomp_(int*);
-  // void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-  void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void rinpar_(); // comphep 
-  void subnum_(); // comphep file
-  void rheader_(); // comphep initialization
-  void extproc_(int*);
-  void opensusyfile_(const char* ,int * , int);
-}
-
-
-// File scope declarations:-
-
-// set pointer to zero at start
-//Atlas_HEPEVT*  Pythia::atlas_HEPEVT = new Atlas_HEPEVT();
-
-
-//--------------------------------------------------------------------------
-
-
-PythiaChL::PythiaChL(const std::string& name, ISvcLocator* pSvcLocator) 
-  : Pythia(name, pSvcLocator) 
-{
-  m_AtlasDefaults = true;
-  pythia_stream	= "PYTHIA_INIT";
-
-  // ATLAS default tune
-  m_Default_Tune_Name="ATLAS_20110002";
-  m_Default_Tune_Type="ATLAS";
-  m_Default_Tune_Index=20100002;
-  m_Starting_Tune_Name="ATLAS_99999999";
-  m_Starting_Tune_Type="ATLAS";
-  m_Starting_Tune_Index=99999999;
-}
-
-
-//--------------------------------------------------------------------------
-
-
-PythiaChL::~PythiaChL() { }
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaChL::genuserInitialize() {
-  // Initialise the listing output, parameter and decay data input streams
-  ATH_MSG_INFO("PYTHIACHL INITIALISING.\n");
-
-  /// @todo Use ServiceHandle method
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc",
-                                  PythiaChL::p_AtRndmGenSvc,
-                                  CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == PythiaChL::p_AtRndmGenSvc)
-  {
-      ATH_MSG_ERROR("Could not initialize Random Number Service");
-      return RndmStatus;
-  }	
-  PythiaChL::pythia_stream = "PYTHIA_INIT";
-
-  // set up the input parameters to pyinit: these can be changed by the user
-  m_frame  = "CMS   ";
-  m_beam   = "P     ";
-  m_target = "P  ";
-  m_win=14000.;
-  m_initlistlevel=11;
-  m_pystatlistlevel.push_back(1);
-  m_fortout=0;
-
-  m_RndmFileName=" ";
-  m_RndmFileNumber=0;
-  m_RndmSwitch=0;
-  m_RndmFirstEvent=1;
-  m_RndmSkipEvents=0;
-  m_RndmMOVE=0;
-  m_RndmFileLength=0;
-  m_ExternalProcess = 0;
-  
-  // end of setup to pyinit
-  //now set defaults
-  m_randomseed=19780503;
-  this->pydatr().mrpy(1) = m_randomseed; // can be overwritten by user
-  // default process is ttbar 
-  // these can be overwritten by user.
-  m_msel=6;
-  this->pysubs().msel() = m_msel;
-
-  // Set the ATLAS defaults
-  if (m_AtlasDefaults) {
-
-    this->pydat2().pmas(6,1)  =175.;  // top quark mass
-    this->pydat2().pmas(24,1) =80.42; // W mass
-    //this->pydat2().pmas(24,2) =2.124; // W width calculated dynamically
-    this->pydat2().pmas(23,1) =91.19; // Z0 mass
-    //this->pydat2().pmas(23,2) =2.495; // Z0 width calculated dynamically
-    this->pypars().mstp(128)  =1;     // fix junk output for documentary particles
-    this->pydat1().mstu(21)   =1;     // error handling switch
-
-    this->pypars().mstp(81)   =21; // ATLAS default for MI and also for the associated 
-                                   // treatment of initial- and final-state showers
-                                   // and beam remnants. MI on; new model for PYEVNW.
-    
-    // Check the user request here and reset mstp(81)
-    for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-      StringParse mystring(m_pythiaCommandVector[i]);
-      string myblock=mystring.piece(1);
-      string myentry=mystring.piece(2);
-      int myint1=mystring.intpiece(3);
-      int myint2=mystring.intpiece(4);
-      if (myblock == "pypars"){
-        if(myentry == "mstp" && myint1 == 81){
-          this->pypars().mstp(myint1)=myint2;
-        }
-      }
-    }
-    
-    // The new pyevnw routine is used which accesses the new scenario with pT-ordered showers and
-    // interleaved multiple interactions
-    if (this->pypars().mstp(81) >= 20) {
-      // this->pypars().mstp(68)=1; Removed for 6.4xxx
-      this->pypars().mstp(70)=2;      // (virtuality scale for ISR)
-      this->pypars().mstp(72)=0;
-      this->pypars().mstp(82)=4;      // (mutiple interaction model)
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(88)=0;
-      this->pypars().mstp(89)=1;
-      this->pypars().mstp(90)=1;
-      this->pypars().mstp(95)=1;
-      this->pypars().parp(78)=0.2;
-      this->pypars().parp(80)=0.01;
-      this->pypars().parp(82)=1.9;    // (cut off scale)
-      this->pypars().parp(83)=0.3;
-      this->pypars().parp(84)=0.5;    // (matter distribution)
-      this->pypars().parp(89)=1800.;
-      this->pypars().parp(90)=0.22;   // (cut off scale)
-      this->pydat1().mstj(11)=3;      // (select peterson for charm fragmentation)
-      this->pydat1().mstj(22)=2;      // (Make K_S, Lambda stable)
-      this->pydat1().parj(54)=-0.07;  // (c hadronization)
-      this->pydat1().parj(55)=-0.006; // (b hadronization)
-      this->pydat1().parj(81)=0.14;
-      this->pypars().mstp(52)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(54)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(56)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(51)=10042;  // (needed for CTEQ6L)
-      this->pypars().mstp(53)=10042;  // (needed for CTEQ6L)
-      this->pypars().mstp(55)=10042;  // (needed for CTEQ6L)
-    } else {
-      this->pypars().mstp(81) = 1;
-      this->pypars().mstp(82) = 4;
-      this->pypars().mstp(86) = 2;
-      this->pypars().parp(67) = 3.;
-      this->pypars().parp(82) = 2.2;
-      this->pypars().parp(83) = 0.5;
-      this->pypars().parp(84) = 0.3;
-      this->pypars().parp(85) = 0.33;
-      this->pypars().parp(86) = 0.66;
-      this->pypars().parp(89) = 1800.;
-      this->pypars().parp(90) = 0.24;
-      this->pypars().mstp(52) = 2;
-      this->pypars().mstp(54) = 2;
-      this->pypars().mstp(56) = 2;
-      this->pypars().mstp(51) = 10042;
-      this->pypars().mstp(53) = 10042;
-      this->pypars().mstp(55) = 10042;
-      this->pydat1().mstj(11) = 3;
-      this->pydat1().mstj(22) = 2;
-      this->pydat1().parj(54) = -0.07;
-      this->pydat1().parj(55) = -0.006;
-    }
-  }
-
-  //
-  // Parse Commands and Set Values from Properties Service...
-  //
-  //   for(CommandVector::iterator it = m_pythiaCommandVector.begin(); 
-  //     it != m_pythiaCommand.end(); it++ ) { 
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-    ATH_MSG_INFO(" Command is: " << m_pythiaCommandVector[i] );
-    StringParse mystring(m_pythiaCommandVector[i]);
-    string myblock=mystring.piece(1);
-    string myentry=mystring.piece(2);
-    string mystr=mystring.piece(3);
-    int myint1=mystring.intpiece(3);
-    int myint2=mystring.intpiece(4);
-    int myint3=mystring.intpiece(5);
-    int myint4=mystring.intpiece(6);
-    int myint5=mystring.intpiece(7);
-    double  myfl1=mystring.numpiece(4);
-    double  myfl2=mystring.numpiece(5);
-    double  myfl0=mystring.numpiece(3);
-
-    // Note that PythiaChL needs doubles hence the convert here
-    ATH_MSG_INFO(myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1);
-    if (myblock=="pyinit") {
-      if(myentry=="user"){
-        m_frame="USER  ";
-        m_external=mystr;
-       	m_ExternalProcess = generator_int(mystr);
-      /*	if(mystr=="comphep"){
-        m_ExternalProcess = 1;
-      } else if(mystr=="user"){ 
-        m_ExternalProcess = 2;
-      } else if(mystr=="acermc"){ 
-        m_ExternalProcess = 3;
-      } else if(mystr=="alpgen"){ 
-        m_ExternalProcess = 4;
-      }  else if (mystr == "madgraph") {
-        m_ExternalProcess = 5;
-      } else if(mystr== "madcup") {
-        m_ExternalProcess = 6;
-      } else if(mystr== "toprex") {
-        m_ExternalProcess = 7;
-      } else if(mystr== "lhaext") {
-        m_ExternalProcess = 8;
-      } else if(mystr== "matchig") {
-        m_ExternalProcess = 9;
-      } else if(mystr== "hvgen") {
-        m_ExternalProcess = 10;
-          } else if(mystr== "lhef") {
-            m_ExternalProcess = 11;
-      } else {
-	    ATH_MSG_ERROR(
-          "PYTHIACHL ERROR, entry PYINIT USER has comphep, acermc, alpgen, madgraph, madcup, "
-          << "toprex, lhaext, hvgen and user as options: YOU HAVE SPECIFIED " << myentry);
-      }*/
-        extproc_(&m_ExternalProcess);
-      }
-      else if(myentry=="FIXT"){
-        m_frame="FIXT";
-      }
-      else if(myentry=="pbar"){
-        m_beam="P~- ";
-      }
-      else if(myentry=="win"){
-        m_win=myfl0;
-      }      
-      else if(myentry=="pylisti"){
-        m_initlistlevel=myint1;
-      }      
-      else if(myentry=="pylistf"){
-        m_eventlistlevel=myint1;
-      }
-      else if(myentry=="dumpr"){
-        m_firstlistevent=myint1;
-        m_lastlistevent=myint2;
-      }
-      else if(myentry=="output"){
-        m_envval1=mystr;
-        m_fortout=49;
-        this->pydat1().mstu(11)=m_fortout;
-      }
-      else if(myentry=="rndm_IO"){
-        m_RndmFileName=mystr;
-        m_RndmFileNumber=36;
-        m_RndmSwitch=myint2;
-        m_RndmFirstEvent=myint3;
-        m_RndmSkipEvents=myint4;
-        m_RndmMOVE=myint5;
-        if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-	
-        if (m_RndmSwitch > 0) {
-          if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0) {
-            ATH_MSG_ERROR("INCONSISTENT SET OF rndm_IO PARAMETERS : "
-                          << "FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF" << myentry);
-            m_RndmSwitch = 0;
-          }
-        }
-
-        ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIACHL RANDOM NUMBERS !!!!!!!! ");
-        ATH_MSG_INFO(" THE ATHENA/PYTHIACHL DOES NOT USE ANY MORE THE STANDARD  ");
-        ATH_MSG_INFO(" PYTHIACHL RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-        ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-        ATH_MSG_INFO(" DETAILS LOOK IN  ");
-        ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-        ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-
-        m_RndmSwitch = 0;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN AND RNDM_IO: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pysubs") {
-      if(myentry == "msel"){
-        this->pysubs().msel()=myint1;
-      }
-      else if (myentry == "msub"){
-        this->pysubs().msub(myint1)=myint2;	 
-      }
-      else if (myentry == "ckin"){
-        this->pysubs().ckin(myint1)=myfl1;	 
-      }
-      else if (myentry == "kfin"){
-        this->pysubs().kfin(myint1,myint2)=myint3;	 
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pypars"){
-      if(myentry == "mstp"){
-        this->pypars().mstp(myint1)=myint2;
-      }
-      else if(myentry == "msti"){
-        this->pypars().msti(myint1)=myint2;
-      }
-      else if(myentry == "parp"){
-        this->pypars().parp(myint1)=myfl1;
-      }
-      else if(myentry == "pari"){
-        this->pypars().pari(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pydat1"){
-      if(myentry == "mstu"){
-        this->pydat1().mstu(myint1)=myint2;
-      }       
-      else if(myentry == "mstj"){
-        this->pydat1().mstj(myint1)=myint2;
-      }
-      else if(myentry == "paru"){
-        this->pydat1().paru(myint1)=myfl1;
-      }       
-      else if(myentry == "parj"){
-        this->pydat1().parj(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pydat2"){
-      if(myentry == "kchg"){
-        this->pydat2().kchg(myint1,myint2)=myint3;
-      }       
-      else if(myentry == "pmas"){
-        this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      }
-      else if(myentry == "parf"){
-        this->pydat2().parf(myint1)=myfl1;
-      }       
-      else if(myentry == "vckm"){
-        this->pydat2().vckm(myint1,myint2)=myfl2;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pydat3"){
-      if(myentry == "mdcy"){
-        this->pydat3().mdcy(myint1,myint2)=myint3;
-      }       
-      else if(myentry == "mdme"){
-        this->pydat3().mdme(myint1,myint2)=myint3;
-      }
-      else if(myentry == "brat"){
-        this->pydat3().brat(myint1)=myfl1;
-      }       
-      else if(myentry == "kfdp"){
-        this->pydat3().kfdp(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pydatr"){
-      if(myentry == "mrpy"){
-        ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIACHL RANDOM NUMBERS !!!!!!!! ");
-        ATH_MSG_INFO(" THE ATHENA/PYTHIACHL DOES NOT USE ANY MORE THE STANDARD  ");
-        ATH_MSG_INFO(" PYTHIACHL RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-        ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-        ATH_MSG_INFO(" DETAILS LOOK IN  ");
-        ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-        ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-	  
-        this->pydatr().mrpy(myint1)=myint2;
-      }       
-      else if(myentry == "rrpy"){
-        this->pydatr().rrpy(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYDATR  HAS MRPY AND RRPY : YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pymssm"){
-      if (myentry=="imss"){
-        if (myint1 == 21 || myint1 == 22) {
-          ATH_MSG_WARNING("The seting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default");
-        } else {
-          this->pymssm().imss(myint1)=myint2;
-        }
-      }
-      else if (myentry=="rmss"){
-        this->pymssm().rmss(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pyint2"){
-      if (myentry == "iset"){
-        this->pyint2().iset(myint1)=myint2; 
-      }
-      else if (myentry == "kfpr"){
-        this->pyint2().kfpr(myint1,myint2)=myint3;  
-      }
-      else if (myentry == "coef"){
-        this->pyint2().coef(myint1,myint2)=myfl2;  
-      }
-      else if (myentry == "icol"){
-        this->pyint2().icol(myint1,myint2,myint3)=myint4;  
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pystat"){
-      m_pystatlistlevel.clear();
-      for (unsigned i = 2; i <= mystring.string_size(); ++i)
-	    m_pystatlistlevel.push_back(mystring.intpiece(i));
-    }
-    else if (myblock == "pytcsm"){
-      if (myentry == "itcm"){
-        this->pytcsm().itcm(myint1)=myint2; 
-      }
-      else if (myentry=="rtcm"){
-        this->pytcsm().rtcm(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIACHL ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED " << myentry);
-      }
-      
-    }
-
-    // AcerMC tt~ decay mode switching
-    else if (myblock == "acermc" && myentry=="acset12") {
-      if (m_ExternalProcess == ACERMC) {
-        this->acermc_acset().acset12()=myint1;
-      }
-    }
-    
-    else {
-      ATH_MSG_ERROR(" ERROR in PYTHIACHL PARAMETERS   " << myblock << " is and invalid common block name !");
-    }
-  }
-  // end of parsing
-
-  // Set the logical Unit Number for the immss(1)=11 option and open the file
-  if (this->pymssm().imss(1) == 11) {
-    int syunit = 66;
-    this->pymssm().imss(21) = syunit;
-    this->pymssm().imss(22) = syunit;
-    const std::string& fileName = m_read_Filesusy; 
-    opensusyfile_(fileName.c_str(),&syunit,fileName.size()); 
-  }
-  
-  // !!!!! PROTECT AGAINST mstp(81)/mstp(82) PythiaChL looping
-  if (this->pypars().mstp(81) == 0 && this->pypars().mstp(82) > 2)
-  {
-    this->pypars().mstp(82) = 1;
-    ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIACHL LOOPING !!!!!!!! ");
-    ATH_MSG_INFO(" YOU HAVE SWITCHED OFF MULTIPLE INTERACTIONS, mstp(81) = 0 ");
-    ATH_MSG_INFO(" THE DEFAULT ATLAS MULTIPLE INTERACTIONS SCENARIO, mstp(82) = 4 ");
-    ATH_MSG_INFO(" CHANGED TO mstp(82) = 1, BECAUSE PYTHIACHL IS LOOPING WHEN ");
-    ATH_MSG_INFO(" mstp(81) = 0 and mstp(82) > 2 ");
-    ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-  }
-  
-  // Now call pyinit and set listing
-  // Note the `extra' arguments to pyinit on the end of the argument
-  // list which do *not* explicitly occur in the FORTRAN
-  // implementation of the function -- one for each character
-  // variable, in the same order (reference Randy Herber,
-  // herber@fnal.gov). Note also that the `extern "C"' function
-  // declaration matches the C usage rather than the FORTRAN
-  // definition of the PYINIT function and therefore includes the 3
-  // extra arguments.
-  // activate the block data  
-  const char* envval = m_envval1.c_str();
-  initpyblock_(&m_fortout,envval);
-
-  if (m_RndmSwitch > 0)
-  {
-    const char* RndmFileName = m_RndmFileName.c_str();
-    m_RndmFileLength = openrandom_(&m_RndmSwitch, &m_RndmFileNumber, RndmFileName);
-    if (m_RndmSwitch ==2 ) 
-      ATH_MSG_INFO("THERE ARE " << m_RndmFileLength << " EVENTS STORED IN THE PYTHIACHL RANDOM NUMBER FILE \n");
-  }
-  
-  const char* frame = m_frame.c_str();
-  const char* beam = m_beam.c_str();
-  double winval = m_win;
-  const char* target = m_target.c_str();
-  int minlist   = m_initlistlevel;
-  // special initialization for comphep
-  if(m_external=="comphep"){
-    rinpar_();
-    subnum_();
-    rheader_();
-  }
-  
-  // end of comphep initialization
-  //    std::cout << " ****** BEFORE PYINIT ********" << std::endl;
-  //    std::cout << setiosflags(ios::fixed);
-  //    std::cout << " MSTU(11) " 
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(11)  << " MSTU(20) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(20)  << " MSTU(118) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(118) << std::endl;
-  //    std::cout << " PARU(108) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(108) << " PARU(117) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(117) << " PARU(118) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(118) << std::endl;
-  //    for (int ii = 210; ii < 353; ++ii)
-  //    {
-  //        std::cout << " BRAT(" << ii << ") "
-  //  		<< std::setw(10) << setprecision(8) << this->pydat3().brat(ii) << std::endl;
-  //    }
-  //    std::cout << " MDCY(310) " 
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,1) << ", "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,2) << ", "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,3);
-  
-  //    std::cout << std::resetiosflags(std::ios::fixed)
-  //  	    << std::endl;
-  
-  // Save the PYTHIACHL_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = PythiaChL::p_AtRndmGenSvc->GetEngine(PythiaChL::pythia_stream);
-  const long* sip = engine->getSeeds();
-  long int si1 = sip[0];
-  long int si2 = sip[1];
-
-  pyinit_(frame,beam,target,&winval,
-          strlen(frame),strlen(beam),strlen(target)
-          );
-
-  // ... and set them back to the stream for proper save
-  PythiaChL::p_AtRndmGenSvc->CreateStream(si1, si2, PythiaChL::pythia_stream);
-  
-  PythiaChL::pythia_stream = "PYTHIA";
-  
-  //    std::cout << " ****** AFTER PYINIT ********" << std::endl;
-  //    std::cout << setiosflags(ios::fixed);
-  //    std::cout << " MSTU(11) " 
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(11)  << " MSTU(20) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(20)  << " MSTU(118) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(118) << std::endl;
-  //    std::cout << " PARU(108) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(108) << " PARU(117) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(117) << " PARU(118) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(118) << std::endl;
-  //    for (int ii = 210; ii < 353; ++ii)
-  //    {
-  //        std::cout << " BRAT(" << ii << ") "
-  //  		<< std::setw(10) << setprecision(8) << this->pydat3().brat(ii) << std::endl;
-  //    }
-  //    std::cout << " MDCY(310) " 
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,1) << ", "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,2) << ", "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,3);
-  
-  //    std::cout << std::resetiosflags(std::ios::fixed)
-  //  	    << std::endl;
-  
-  pylist_(&minlist);
-  m_events = 0;
-  // cout << " kfpr ============ " << this->pyint2().kfpr(186,2) <<endl;
-  // cout << " kfpr ============ " << this->pyint2().kfpr(187,2) <<endl;
-
-  // Decay table
-  const char *p_envar1="PYDAT";
-  //  char *p_envval1=0;
-  //  p_envval1=
-  getenv(p_envar1);
-  //----------------------------------------------------------
-  // This is the decay table  file 
-  //
-  //   int mode=2;
-  //   int lun=37;
-  //   pyupda_(&mode,&lun);
-  //   cldcay_(&lun);
-
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(4);
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaChL::callGenerator() {
-  ATH_MSG_DEBUG("PYTHIACHL generating.\n" );
-
-  // Write/Read the random numbers to/from file if requested
-  if (m_RndmSwitch > 0)	RandomNumberIO();
-  
-  // Save the random number seeds in the event
-  CLHEP::HepRandomEngine* engine = PythiaChL::p_AtRndmGenSvc->GetEngine(PythiaChL::pythia_stream);
-  const long* s	= engine->getSeeds();
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-  
-  // Generate event
-  pyevnt_();
-
-  // Update event counter
-  ++m_events;
-  int mevlist=m_eventlistlevel; 
-  // Is the event to be listed
-  if ( m_events >= m_firstlistevent &&
-       m_events <= m_lastlistevent) {
-    ATH_MSG_DEBUG("PYEVNT event no. " << m_events << " will be listed");
-    if (m_frame == "USER  ") {
-      int uspr = 7;
-      pylist_(&uspr); // Special listing when external generator was selected
-    }
-    pylist_(&mevlist); // List this event if required
-  }
-  // Tell lunhep to convert from PYJETS to HEPEVT
-  int mconv=1;				
-  // Do the conversion
-  // lunhep_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  pyhepc_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  if ( HepMC::HEPEVT_Wrapper::number_entries() <= 0 ) {
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    std::cout << "!!! " << generator_name(m_ExternalProcess) << " TERMINATES NORMALY: NO MORE EVENTS IN FILE !!!" << std::endl;
-    std::cout << "!!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE !!!" << std::endl;
-    std::cout << "!!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!!" << std::endl;
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    return StatusCode::FAILURE;
-  }
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-  // HepMC::HEPEVT_Wrapper::print_hepevt();
-  return StatusCode::SUCCESS;  
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaChL::genFinalize() {
-  ATH_MSG_INFO(" PYTHIACHL Ending.  \n");
-  for (std::vector<int>::iterator i = m_pystatlistlevel.begin(); i != m_pystatlistlevel.end(); ++i) {
-    ATH_MSG_INFO("Call PYSTAT at endRun with level " << *i);
-    pystat_(&(*i));
-  }
-  std::cout << "MetaData: cross-section (nb)= " << 1000000. * this->pyint5().xsec(0,3) << std::endl;
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaChL::fillEvt(HepMC::GenEvent* evt) {
-  ATH_MSG_DEBUG("PYTHIACHL Atlas_HEPEVT Filling.");
-  store_Atlas_HEPEVT();
-
-  ATH_MSG_DEBUG("PYTHIACHL Filling.");
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-  //HepMC::IO_GenEvent output("dump.dat",ios::out);
-
-  // Fill event into HepMC and transient store
-  // std::cout << "====================================================================" << std::endl;
-  // std::cout << "                 === Event dump IN PYTHIACHL: ===                      " << std::endl;
-  // std::cout << "====================================================================" << std::endl;
-  // HepMC::HEPEVT_Wrapper::print_hepevt();
-
-  hepio.fill_next_event(evt);
-  int pr_id = PYTHIA + m_ExternalProcess + this->pyint1().mint(1);
-  if (m_ExternalProcess > 0) pr_id = PYTHIA + m_ExternalProcess;
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-  //evt -> print();
-  //cout << " ----------------- END " << endl;
-  
-  // Set beam particle status = 4
-  if (evt->valid_beam_particles()) {
-    evt->beam_particles().first->set_status(4);
-    evt->beam_particles().second->set_status(4);
-  }
-
-
-  //  output << evt;
-
-  // Convert cm->mm and GeV->MeV
-  // cmTomm(evt);
-  GeVToMeV(evt);
-  
- return StatusCode::SUCCESS;
-}
-
-
-
diff --git a/Generators/PythiaChL_i/src/components/PythiaChL_i_entries.cxx b/Generators/PythiaChL_i/src/components/PythiaChL_i_entries.cxx
deleted file mode 100644
index 2585f9f93a4f3605eb1a73989436ef6c8d0a3322..0000000000000000000000000000000000000000
--- a/Generators/PythiaChL_i/src/components/PythiaChL_i_entries.cxx
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "PythiaChL_i/PythiaChL.h"
-
-DECLARE_COMPONENT( PythiaChL )
-
diff --git a/Generators/PythiaChL_i/src/pysghg_ChL.f b/Generators/PythiaChL_i/src/pysghg_ChL.f
deleted file mode 100644
index 623e67ca01c3b43ad89eadd2dc623b7918b8893a..0000000000000000000000000000000000000000
--- a/Generators/PythiaChL_i/src/pysghg_ChL.f
+++ /dev/null
@@ -1,1384 +0,0 @@
-C...PYSGHG
-C...Subprocess cross sections for Higgs processes,
-C...except Higgs pairs in PYSGSU, but including WW scattering.
-C...Auxiliary to PYSIGH.
-c
-c modified according to:
-c >> Proc. of the Workshop on Standard Model (and more) at the LHC,
-c >> CERN 2000-004, chapt. on Electroweak Physics, Haywood et al., eq. (72)
-c >> AL1 = a4, as defined in figures of hep-ph/9912224
-c >> AL2 = a5, as defined in figures of hep-ph/9912224
-c
-c
-
- 
-      SUBROUTINE PYSGHG(NCHN,SIGS)
- 
-C...Double precision and integer declarations
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers.
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
-     &KEXCIT=4000000,KDIMEN=5000000)
-C...Commonblocks
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
-      COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
-      COMMON/PYSGCM/ISUB,ISUBSV,MMIN1,MMAX1,MMIN2,MMAX2,MMINA,MMAXA,
-     &KFAC(2,-40:40),COMFAC,FACK,FACA,SH,TH,UH,SH2,TH2,UH2,SQM3,SQM4,
-     &SHR,SQPTH,TAUP,BE34,CTH,X(2),SQMZ,SQMW,GMMZ,GMMW,
-     &AEM,AS,XW,XW1,XWC,XWV,POLL,POLR,POLLL,POLRR
-      SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,/PYINT2/,
-     &/PYINT3/,/PYINT4/,/PYSUBS/,/PYMSSM/,/PYSGCM/
-C...Local arrays and complex variables
-      DIMENSION WDTP(0:400),WDTE(0:400,0:5)
-      COMPLEX*16 A004,A204,A114,A00U,A20U,A11U
-      COMPLEX*16 CIGTOT,CIZTOT,F0ALP,F1ALP,F2ALP,F0BET,F1BET,F2BET,FIF
- 
-C...Convert H or A process into equivalent h one
-      IHIGG=1
-      KFHIGG=25
-      IF(ISUB.EQ.401.OR.ISUB.EQ.402) THEN
-         KFHIGG=KFPR(ISUB,1)
-      END IF
-      IF((ISUB.GE.151.AND.ISUB.LE.160).OR.(ISUB.GE.171.AND.
-     &ISUB.LE.190)) THEN
-        IHIGG=2
-        IF(MOD(ISUB-1,10).GE.5) IHIGG=3
-        KFHIGG=33+IHIGG
-        IF(ISUB.EQ.151.OR.ISUB.EQ.156) ISUB=3
-        IF(ISUB.EQ.152.OR.ISUB.EQ.157) ISUB=102
-        IF(ISUB.EQ.153.OR.ISUB.EQ.158) ISUB=103
-        IF(ISUB.EQ.171.OR.ISUB.EQ.176) ISUB=24
-        IF(ISUB.EQ.172.OR.ISUB.EQ.177) ISUB=26
-        IF(ISUB.EQ.173.OR.ISUB.EQ.178) ISUB=123
-        IF(ISUB.EQ.174.OR.ISUB.EQ.179) ISUB=124
-        IF(ISUB.EQ.181.OR.ISUB.EQ.186) ISUB=121
-        IF(ISUB.EQ.182.OR.ISUB.EQ.187) ISUB=122
-        IF(ISUB.EQ.183.OR.ISUB.EQ.188) ISUB=111
-        IF(ISUB.EQ.184.OR.ISUB.EQ.189) ISUB=112
-        IF(ISUB.EQ.185.OR.ISUB.EQ.190) ISUB=113
-      ENDIF
-      SQMH=PMAS(KFHIGG,1)**2
-      GMMH=PMAS(KFHIGG,1)*PMAS(KFHIGG,2)
- 
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-      IF((MSTP(46).GE.3.AND.MSTP(46).LE.6).AND.(ISUB.EQ.71.OR.ISUB.EQ.
-     &72.OR.ISUB.EQ.73.OR.ISUB.EQ.76.OR.ISUB.EQ.77)) THEN
-C...Calculate M_R and N_R functions for Higgs-like and QCD-like models
-        IF(MSTP(46).LE.4) THEN
-          HDTLH=LOG(PMAS(25,1)/PARP(44))
-          HDTMR=(4.5D0*PARU(1)/SQRT(3D0)-74D0/9D0)/8D0+HDTLH/12D0
-          HDTNR=-(1D0/18D0)+HDTLH/6D0
-        ELSE
-          HDTNM=0.125D0*(1D0/(288D0*PARU(1)**2)+(PARP(47)/PARP(45))**2)
-          HDTLQ=LOG(PARP(45)/PARP(44))
-          HDTMR=-((4D0*PARU(1))**2*0.5D0*HDTNM)+HDTLQ/12D0
-          HDTNR=(4D0*PARU(1))**2*HDTNM+HDTLQ/6D0
-        ENDIF
- 
-C...Calculate lowest and next-to-lowest order partial wave amplitudes
-        HDTV=1D0/(16D0*PARU(1)*PARP(47)**2)
-        A00L=DBLE(HDTV*SH)
-        A20L=-(0.5D0*A00L)
-        A11L=A00L/6D0
-c >> ga
-c >> following lines removed and replaced to apply the amplitudes given in
-c >> Proc. of the Workshop on Standard Model (and more) at the LHC,
-c >> CERN 2000-004, chapt. on Electroweak Physics, Haywood et al., eq. (72)
-c >> AL1 = a4, as defined in figures of hep-ph/9912224
-c >> AL2 = a5, as defined in figures of hep-ph/9912224
-c
-c        HDTLS=LOG(SH/PARP(44)**2)
-c        A004=DBLE((HDTV*SH)**2/(4D0*PARU(1)))*
-c     &  CMPLX(DBLE((176D0*HDTMR+112D0*HDTNR)/3D0+11D0/27D0-
-c     &  (50D0/9D0)*HDTLS),DBLE(4D0*PARU(1)))
-c        A204=DBLE((HDTV*SH)**2/(4D0*PARU(1)))*
-c     &  CMPLX(DBLE(32D0*(HDTMR+2D0*HDTNR)/3D0+25D0/54D0-
-c     &  (20D0/9D0)*HDTLS),DBLE(PARU(1)))
-c        A114=DBLE((HDTV*SH)**2/(6D0*PARU(1)))*
-c     &  CMPLX(DBLE(4D0*(-2D0*HDTMR+HDTNR)-1D0/18D0),DBLE(PARU(1)/6D0))
-        AL1=PARP(199)
-        AL2=PARP(200)
-        pi=paru(1)
-        VV=PARP(47)
-        HDTLS=LOG(SH/PARP(45)**2)
-        A004=A00L*SH/(4D0*VV**2)* (
-     &  16D0*(11*AL2+7*AL1)/3D0+
-     &  CMPLX(SNGL((101D0/9D0-50D0*HDTLS/9D0)/(16D0*PI**2)),
-     &             SNGL(1./(4D0*PI)))
-     &  )
-        A114=A11L*SH/VV**2* (
-     &  4D0*(AL1-2*AL2)+
-     &  (1./(16D0*PI**2))*CMPLX(SNGL(1.D0/9.D0),SNGL(PI/6D0))
-     &  )
-        A204=-((A20L*SH)/(2D0*VV**2)* (
-     &  32D0*(AL2+2*AL1)/3D0+
-     &  CMPLX(SNGL((273D0/54D0-20D0*HDTLS/9D0)/(16D0*PI**2)),
-     &             SNGL(1./(16D0*PI)))
-     &  ))
-C ga <<   
-        write(*,*) "!"
-C...Unitarize partial wave amplitudes with Pade or K-matrix method
-        IF(MSTP(46).EQ.3.OR.MSTP(46).EQ.5) THEN
-          A00U=A00L/(1D0-A004/A00L)
-          A20U=A20L/(1D0-A204/A20L)
-          A11U=A11L/(1D0-A114/A11L)
-        ELSE
-          A00U=(A00L+DBLE(A004))/(1D0-DCMPLX(0.D0,A00L+DBLE(A004)))
-          A20U=(A20L+DBLE(A204))/(1D0-DCMPLX(0.D0,A20L+DBLE(A204)))
-          A11U=(A11L+DBLE(A114))/(1D0-DCMPLX(0.D0,A11L+DBLE(A114)))
-        ENDIF
-      ENDIF
- 
-C...Differential cross section expressions.
- 
-      IF(ISUB.LE.60) THEN
-        IF(ISUB.EQ.3) THEN
-C...f + fbar -> h0 (or H0, or A0)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          HP=AEM/(8D0*XW)*SH/SQMW*SH
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          DO 100 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 100
-            IA=IABS(I)
-            RMQ=PYMRUN(IA,SH)**2/SH
-            HI=HP*RMQ
-            IF(IA.LE.10) HI=HP*RMQ*FACA/3D0
-            IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
-              IKFI=1
-              IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
-              IF(IA.GT.10) IKFI=3
-              HI=HI*PARU(150+10*IHIGG+IKFI)**2
-              IF(IMSS(1).NE.0.AND.IA.EQ.5) THEN
-                HI=HI/(1D0+RMSS(41))**2
-                IF(IHIGG.NE.3) THEN
-                  HI=HI*(1D0+RMSS(41)*PARU(152+10*IHIGG)/
-     &            PARU(151+10*IHIGG))**2
-                ENDIF
-              ENDIF
-            ENDIF
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=HI*FACBW*HF
-  100     CONTINUE
- 
-        ELSEIF(ISUB.EQ.5) THEN
-C...Z0 + Z0 -> h0
-          CALL PYWIDT(25,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(25,1)).GT.PARP(48)*PMAS(25,2)) FACBW=0D0
-          HP=AEM/(8D0*XW)*SH/SQMW*SH
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          HI=HP/4D0
-          FACI=8D0/(PARU(1)**2*XW1)*(AEM*XWC)**2
-          DO 120 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 120
-            DO 110 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 110
-              EI=KCHG(IABS(I),1)/3D0
-              AI=SIGN(1D0,EI)
-              VI=AI-4D0*EI*XWV
-              EJ=KCHG(IABS(J),1)/3D0
-              AJ=SIGN(1D0,EJ)
-              VJ=AJ-4D0*EJ*XWV
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACI*(VI**2+AI**2)*(VJ**2+AJ**2)*HI*FACBW*HF
-  110       CONTINUE
-  120     CONTINUE
- 
-        ELSEIF(ISUB.EQ.8) THEN
-C...W+ + W- -> h0
-          CALL PYWIDT(25,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(25,1)).GT.PARP(48)*PMAS(25,2)) FACBW=0D0
-          HP=AEM/(8D0*XW)*SH/SQMW*SH
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          HI=HP/2D0
-          FACI=1D0/(4D0*PARU(1)**2)*(AEM/XW)**2
-          DO 140 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 140
-            EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
-            DO 130 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 130
-              EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
-              IF(EI*EJ.GT.0D0) GOTO 130
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACI*VINT(180+I)*VINT(180+J)*HI*FACBW*HF
-  130       CONTINUE
-  140     CONTINUE
- 
-        ELSEIF(ISUB.EQ.24) THEN
-C...f + fbar -> Z0 + h0 (or H0, or A0)
-C...Propagators: Z0, h0 as simulated in PYOFSH and as desired
-          HBW3=GMMZ/((SQM3-SQMZ)**2+GMMZ**2)
-          CALL PYWIDT(23,SQM3,WDTP,WDTE)
-          GMMZ3=SQRT(SQM3)*WDTP(0)
-          HBW3C=GMMZ3/((SQM3-SQMZ)**2+GMMZ3**2)
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          GMMH4=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMH4/((SQM4-SQMH)**2+GMMH4**2)
-          THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
-          FACHZ=COMFAC*(HBW3C/HBW3)*(HBW4C/HBW4)*8D0*(AEM*XWC)**2*
-     &    (THUH+2D0*SH*SQM3)/((SH-SQMZ)**2+GMMZ**2)
-          FACHZ=FACHZ*WIDS(23,2)*WIDS(KFHIGG,2)
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACHZ=FACHZ*
-     &    PARU(154+10*IHIGG)**2
-          DO 150 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 150
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            FCOI=1D0
-            IF(IABS(I).LE.10) FCOI=FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACHZ*FCOI*(VI**2+AI**2)
-  150     CONTINUE
- 
-        ELSEIF(ISUB.EQ.26) THEN
-C...f + fbar' -> W+/- + h0 (or H0, or A0)
-C...Propagators: W+-, h0 as simulated in PYOFSH and as desired
-          HBW3=GMMW/((SQM3-SQMW)**2+GMMW**2)
-          CALL PYWIDT(24,SQM3,WDTP,WDTE)
-          GMMW3=SQRT(SQM3)*WDTP(0)
-          HBW3C=GMMW3/((SQM3-SQMW)**2+GMMW3**2)
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          GMMH4=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMH4/((SQM4-SQMH)**2+GMMH4**2)
-          THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
-          FACHW=COMFAC*0.125D0*(AEM/XW)**2*(THUH+2D0*SH*SQM3)/
-     &    ((SH-SQMW)**2+GMMW**2)*(HBW3C/HBW3)*(HBW4C/HBW4)
-          FACHW=FACHW*WIDS(KFHIGG,2)
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACHW=FACHW*
-     &    PARU(155+10*IHIGG)**2
-          DO 170 I=MMIN1,MMAX1
-            IA=IABS(I)
-            IF(I.EQ.0.OR.IA.GT.20.OR.KFAC(1,I).EQ.0) GOTO 170
-            DO 160 J=MMIN2,MMAX2
-              JA=IABS(J)
-              IF(J.EQ.0.OR.JA.GT.20.OR.KFAC(1,J).EQ.0) GOTO 160
-              IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 160
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 160
-              KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              FCKM=1D0
-              IF(IA.LE.10) FCKM=VCKM((IA+1)/2,(JA+1)/2)
-              FCOI=1D0
-              IF(IA.LE.10) FCOI=FACA/3D0
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACHW*FCOI*FCKM*WIDS(24,(5-KCHW)/2)
-  160       CONTINUE
-  170     CONTINUE
- 
-        ELSEIF(ISUB.EQ.32) THEN
-C...f + g -> f + h0 (q + g -> q + h0 only)
-          FHCQ=COMFAC*FACA*AS*AEM/XW*1D0/24D0
-C...H propagator: as simulated in PYOFSH and as desired
-          SQMHC=PMAS(25,1)**2
-          GMMHC=PMAS(25,1)*PMAS(25,2)
-          HBW4=GMMHC/((SQM4-SQMHC)**2+GMMHC**2)
-          CALL PYWIDT(25,SQM4,WDTP,WDTE)
-          GMMHCC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMHCC/((SQM4-SQMHC)**2+GMMHCC**2)
-          FHCQ=FHCQ*HBW4C/HBW4
-          DO 190 I=MMINA,MMAXA
-            IA=IABS(I)
-            IF(IA.NE.5) GOTO 190
-            SQML=PYMRUN(IA,SH)**2
-            SQMQ=PMAS(IA,1)**2
-            FACHCQ=FHCQ*SQML/SQMW*
-     &      (SH/(SQMQ-UH)+2D0*SQMQ*(SQM4-UH)/(SQMQ-UH)**2+(SQMQ-UH)/SH-
-     &      2D0*SQMQ/(SQMQ-UH)+2D0*(SQM4-UH)/(SQMQ-UH)*
-     &      (SQM4-SQMQ-SH)/SH)
-            DO 180 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 180
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 180
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACHCQ*WIDS(25,2)
-  180       CONTINUE
-  190     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.80) THEN
-        IF(ISUB.EQ.71) THEN
-C...Z0 + Z0 -> Z0 + Z0
-          IF(SH.LE.4.01D0*SQMZ) GOTO 220
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=1D0-4D0*SQMZ/SH
-            TH=-(0.5D0*SH*BE2*(1D0-CTH))
-            UH=-(0.5D0*SH*BE2*(1D0+CTH))
-            IF(MAX(TH,UH).GT.-1D0) GOTO 220
-            SHANG=1D0/XW1*SQMW/SQMZ*(1D0+BE2)**2
-            ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
-            ASHIM=-(GMMH/((SH-SQMH)**2+GMMH**2)*SHANG)
-            THANG=1D0/XW1*SQMW/SQMZ*(BE2-CTH)**2
-            ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
-            ATHIM=-(GMMH/((TH-SQMH)**2+GMMH**2)*THANG)
-            UHANG=1D0/XW1*SQMW/SQMZ*(BE2+CTH)**2
-            AUHRE=(UH-SQMH)/((UH-SQMH)**2+GMMH**2)*UHANG
-            AUHIM=-(GMMH/((UH-SQMH)**2+GMMH**2)*UHANG)
-            FACZZ=COMFAC*1D0/(4096D0*PARU(1)**2*16D0*XW1**2)*
-     &      (AEM/XW)**4*(SH/SQMW)**2*(SQMZ/SQMW)*SH2
-            IF(MSTP(46).LE.0) FACZZ=FACZZ*(ASHRE**2+ASHIM**2)
-            IF(MSTP(46).EQ.1) FACZZ=FACZZ*((ASHRE+ATHRE+AUHRE)**2+
-     &      (ASHIM+ATHIM+AUHIM)**2)
-            IF(MSTP(46).EQ.2) FACZZ=0D0
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FACZZ=COMFAC*(AEM/(16D0*PARU(1)*XW*XW1))**2*(64D0/9D0)*
-     &      ABS(A00U+2D0*A20U)**2
-          ENDIF
-          FACZZ=FACZZ*WIDS(23,1)
- 
-          DO 210 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 210
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            AVI=AI**2+VI**2
-            DO 200 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 200
-              EJ=KCHG(IABS(J),1)/3D0
-              AJ=SIGN(1D0,EJ)
-              VJ=AJ-4D0*EJ*XWV
-              AVJ=AJ**2+VJ**2
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=0.5D0*FACZZ*AVI*AVJ
-  200       CONTINUE
-  210     CONTINUE
-  220     CONTINUE
- 
-        ELSEIF(ISUB.EQ.72) THEN
-C...Z0 + Z0 -> W+ + W-
-          IF(SH.LE.4.01D0*SQMZ) GOTO 250
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=SQRT((1D0-4D0*SQMW/SH)*(1D0-4D0*SQMZ/SH))
-            CTH2=CTH**2
-            TH=-(0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH-BE2*CTH))
-            UH=-(0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH+BE2*CTH))
-            IF(MAX(TH,UH).GT.-1D0) GOTO 250
-            SHANG=4D0*SQRT(SQMW/(SQMZ*XW1))*(1D0-2D0*SQMW/SH)*
-     &      (1D0-2D0*SQMZ/SH)
-            ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
-            ASHIM=-(GMMH/((SH-SQMH)**2+GMMH**2)*SHANG)
-            ATWRE=XW1/SQMZ*SH/(TH-SQMW)*((CTH-BE2)**2*(3D0/2D0+BE2/2D0*
-     &      CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
-     &      ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
-     &      (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2+
-     &      2D0*(SQMW+SQMZ)/SH*BE2*CTH))
-            ATWIM=0D0
-            AUWRE=XW1/SQMZ*SH/(UH-SQMW)*((CTH+BE2)**2*(3D0/2D0-BE2/2D0*
-     &      CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
-     &      ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
-     &      (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2-
-     &      2D0*(SQMW+SQMZ)/SH*BE2*CTH))
-            AUWIM=0D0
-            A4RE=2D0*XW1/SQMZ*(3D0-CTH2-4D0*(SQMW+SQMZ)/SH)
-            A4IM=0D0
-            FACWW=COMFAC*1D0/(4096D0*PARU(1)**2*16D0*XW1**2)*
-     &      (AEM/XW)**4*(SH/SQMW)**2*(SQMZ/SQMW)*SH2
-            IF(MSTP(46).LE.0) FACWW=FACWW*(ASHRE**2+ASHIM**2)
-            IF(MSTP(46).EQ.1) FACWW=FACWW*((ASHRE+ATWRE+AUWRE+A4RE)**2+
-     &      (ASHIM+ATWIM+AUWIM+A4IM)**2)
-            IF(MSTP(46).EQ.2) FACWW=FACWW*((ATWRE+AUWRE+A4RE)**2+
-     &      (ATWIM+AUWIM+A4IM)**2)
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FACWW=COMFAC*(AEM/(16D0*PARU(1)*XW*XW1))**2*(64D0/9D0)*
-     &      ABS(A00U-A20U)**2
-          ENDIF
-          FACWW=FACWW*WIDS(24,1)
- 
-          DO 240 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 240
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            AVI=AI**2+VI**2
-            DO 230 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 230
-              EJ=KCHG(IABS(J),1)/3D0
-              AJ=SIGN(1D0,EJ)
-              VJ=AJ-4D0*EJ*XWV
-              AVJ=AJ**2+VJ**2
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACWW*AVI*AVJ
-  230       CONTINUE
-  240     CONTINUE
-  250     CONTINUE
- 
-        ELSEIF(ISUB.EQ.73) THEN
-C...Z0 + W+/- -> Z0 + W+/-
-          IF(SH.LE.2D0*SQMZ+2D0*SQMW) GOTO 280
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=1D0-2D0*(SQMZ+SQMW)/SH+((SQMZ-SQMW)/SH)**2
-            EP1=1D0-(SQMZ-SQMW)/SH
-            EP2=1D0+(SQMZ-SQMW)/SH
-            TH=-(0.5D0*SH*BE2*(1D0-CTH))
-            UH=(SQMZ-SQMW)**2/SH-0.5D0*SH*BE2*(1D0+CTH)
-            IF(MAX(TH,UH).GT.-1D0) GOTO 280
-            THANG=(BE2-EP1*CTH)*(BE2-EP2*CTH)
-            ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
-            ATHIM=-(GMMH/((TH-SQMH)**2+GMMH**2)*THANG)
-            ASWRE=-(XW1/SQMZ*SH/(SH-SQMW)*(-(BE2*(EP1+EP2)**4*CTH)+
-     &      1D0/4D0*(BE2+EP1*EP2)**2*((EP1-EP2)**2-4D0*BE2*CTH)+
-     &      2D0*BE2*(BE2+EP1*EP2)*(EP1+EP2)**2*CTH-
-     &      1D0/16D0*SH/SQMW*(EP1**2-EP2**2)**2*(BE2+EP1*EP2)**2))
-            ASWIM=0D0
-            AUWRE=XW1/SQMZ*SH/(UH-SQMW)*(-(BE2*(EP2+EP1*CTH)*
-     &      (EP1+EP2*CTH)*(BE2+EP1*EP2))+BE2*(EP2+EP1*CTH)*
-     &      (BE2+EP1*EP2*CTH)*(2D0*EP2-EP2*CTH+EP1)-
-     &      BE2*(EP2+EP1*CTH)**2*(BE2-EP2**2*CTH)-1D0/8D0*
-     &      (BE2+EP1*EP2*CTH)**2*((EP1+EP2)**2+2D0*BE2*(1D0-CTH))+
-     &      1D0/32D0*SH/SQMW*(BE2+EP1*EP2*CTH)**2*
-     &      (EP1**2-EP2**2)**2-BE2*(EP1+EP2*CTH)*(EP2+EP1*CTH)*
-     &      (BE2+EP1*EP2)+BE2*(EP1+EP2*CTH)*(BE2+EP1*EP2*CTH)*
-     &      (2D0*EP1-EP1*CTH+EP2)-BE2*(EP1+EP2*CTH)**2*
-     &      (BE2-EP1**2*CTH)-1D0/8D0*(BE2+EP1*EP2*CTH)**2*
-     &      ((EP1+EP2)**2+2D0*BE2*(1D0-CTH))+1D0/32D0*SH/SQMW*
-     &      (BE2+EP1*EP2*CTH)**2*(EP1**2-EP2**2)**2)
-            AUWIM=0D0
-            A4RE=XW1/SQMZ*(EP1**2*EP2**2*(CTH**2-1D0)-
-     &      2D0*BE2*(EP1**2+EP2**2+EP1*EP2)*CTH-2D0*BE2*EP1*EP2)
-            A4IM=0D0
-            FACZW=COMFAC*1D0/(4096D0*PARU(1)**2*4D0*XW1)*(AEM/XW)**4*
-     &      (SH/SQMW)**2*SQRT(SQMZ/SQMW)*SH2
-            IF(MSTP(46).LE.0) FACZW=0D0
-            IF(MSTP(46).EQ.1) FACZW=FACZW*((ATHRE+ASWRE+AUWRE+A4RE)**2+
-     &      (ATHIM+ASWIM+AUWIM+A4IM)**2)
-            IF(MSTP(46).EQ.2) FACZW=FACZW*((ASWRE+AUWRE+A4RE)**2+
-     &      (ASWIM+AUWIM+A4IM)**2)
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FACZW=COMFAC*AEM**2/(64D0*PARU(1)**2*XW**2*XW1)*16D0*
-     &      ABS(A20U+3D0*A11U*DBLE(CTH))**2
-          ENDIF
-          FACZW=FACZW*WIDS(23,2)
- 
-          DO 270 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 270
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            AVI=AI**2+VI**2
-            KCHWI=ISIGN(1,KCHG(IABS(I),1)*ISIGN(1,I))
-            DO 260 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 260
-              EJ=KCHG(IABS(J),1)/3D0
-              AJ=SIGN(1D0,EJ)
-              VJ=AI-4D0*EJ*XWV
-              AVJ=AJ**2+VJ**2
-              KCHWJ=ISIGN(1,KCHG(IABS(J),1)*ISIGN(1,J))
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACZW*AVI*VINT(180+J)*WIDS(24,(5-KCHWJ)/2)
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=2
-              SIGH(NCHN)=FACZW*VINT(180+I)*WIDS(24,(5-KCHWI)/2)*AVJ
-  260       CONTINUE
-  270     CONTINUE
-  280     CONTINUE
- 
-        ELSEIF(ISUB.EQ.75) THEN
-C...W+ + W- -> gamma + gamma
- 
-        ELSEIF(ISUB.EQ.76) THEN
-C...W+ + W- -> Z0 + Z0
-          IF(SH.LE.4.01D0*SQMZ) GOTO 310
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=SQRT((1D0-4D0*SQMW/SH)*(1D0-4D0*SQMZ/SH))
-            CTH2=CTH**2
-            TH=-(0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH-BE2*CTH))
-            UH=-(0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH+BE2*CTH))
-            IF(MAX(TH,UH).GT.-1D0) GOTO 310
-            SHANG=4D0*SQRT(SQMW/(SQMZ*XW1))*(1D0-2D0*SQMW/SH)*
-     &      (1D0-2D0*SQMZ/SH)
-            ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
-            ASHIM=-(GMMH/((SH-SQMH)**2+GMMH**2)*SHANG)
-            ATWRE=XW1/SQMZ*SH/(TH-SQMW)*((CTH-BE2)**2*(3D0/2D0+BE2/2D0*
-     &      CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
-     &      ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
-     &      (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2+
-     &      2D0*(SQMW+SQMZ)/SH*BE2*CTH))
-            ATWIM=0D0
-            AUWRE=XW1/SQMZ*SH/(UH-SQMW)*((CTH+BE2)**2*(3D0/2D0-BE2/2D0*
-     &      CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
-     &      ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
-     &      (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2-
-     &      2D0*(SQMW+SQMZ)/SH*BE2*CTH))
-            AUWIM=0D0
-            A4RE=2D0*XW1/SQMZ*(3D0-CTH2-4D0*(SQMW+SQMZ)/SH)
-            A4IM=0D0
-            FACZZ=COMFAC*1D0/(4096D0*PARU(1)**2)*(AEM/XW)**4*
-     &      (SH/SQMW)**2*SH2
-            IF(MSTP(46).LE.0) FACZZ=FACZZ*(ASHRE**2+ASHIM**2)
-            IF(MSTP(46).EQ.1) FACZZ=FACZZ*((ASHRE+ATWRE+AUWRE+A4RE)**2+
-     &      (ASHIM+ATWIM+AUWIM+A4IM)**2)
-            IF(MSTP(46).EQ.2) FACZZ=FACZZ*((ATWRE+AUWRE+A4RE)**2+
-     &      (ATWIM+AUWIM+A4IM)**2)
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FACZZ=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*(64D0/9D0)*
-     &      ABS(A00U-A20U)**2
-          ENDIF
-          FACZZ=FACZZ*WIDS(23,1)
- 
-          DO 300 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 300
-            EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
-            DO 290 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 290
-              EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
-              IF(EI*EJ.GT.0D0) GOTO 290
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=0.5D0*FACZZ*VINT(180+I)*VINT(180+J)
-  290       CONTINUE
-  300     CONTINUE
-  310     CONTINUE
- 
-        ELSEIF(ISUB.EQ.77) THEN
-C...W+/- + W+/- -> W+/- + W+/-
-          IF(SH.LE.4.01D0*SQMW) GOTO 340
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=1D0-4D0*SQMW/SH
-            BE4=BE2**2
-            CTH2=CTH**2
-            CTH3=CTH**3
-            TH=-(0.5D0*SH*BE2*(1D0-CTH))
-            UH=-(0.5D0*SH*BE2*(1D0+CTH))
-            IF(MAX(TH,UH).GT.-1D0) GOTO 340
-            SHANG=(1D0+BE2)**2
-            ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
-            ASHIM=-(GMMH/((SH-SQMH)**2+GMMH**2)*SHANG)
-            THANG=(BE2-CTH)**2
-            ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
-            ATHIM=-(GMMH/((TH-SQMH)**2+GMMH**2)*THANG)
-            UHANG=(BE2+CTH)**2
-            AUHRE=(UH-SQMH)/((UH-SQMH)**2+GMMH**2)*UHANG
-            AUHIM=-(GMMH/((UH-SQMH)**2+GMMH**2)*UHANG)
-            SGZANG=1D0/SQMW*BE2*(3D0-BE2)**2*CTH
-            ASGRE=XW*SGZANG
-            ASGIM=0D0
-            ASZRE=XW1*SH/(SH-SQMZ)*SGZANG
-            ASZIM=0D0
-            TGZANG=1D0/SQMW*(BE2*(4D0-2D0*BE2+BE4)+BE2*(4D0-10D0*BE2+
-     &      BE4)*CTH+(2D0-11D0*BE2+10D0*BE4)*CTH2+BE2*CTH3)
-            ATGRE=0.5D0*XW*SH/TH*TGZANG
-            ATGIM=0D0
-            ATZRE=0.5D0*XW1*SH/(TH-SQMZ)*TGZANG
-            ATZIM=0D0
-            UGZANG=1D0/SQMW*(BE2*(4D0-2D0*BE2+BE4)-BE2*(4D0-10D0*BE2+
-     &      BE4)*CTH+(2D0-11D0*BE2+10D0*BE4)*CTH2-BE2*CTH3)
-            AUGRE=0.5D0*XW*SH/UH*UGZANG
-            AUGIM=0D0
-            AUZRE=0.5D0*XW1*SH/(UH-SQMZ)*UGZANG
-            AUZIM=0D0
-            A4ARE=1D0/SQMW*(1D0+2D0*BE2-6D0*BE2*CTH-CTH2)
-            A4AIM=0D0
-            A4SRE=2D0/SQMW*(1D0+2D0*BE2-CTH2)
-            A4SIM=0D0
-            FWW=COMFAC*1D0/(4096D0*PARU(1)**2)*(AEM/XW)**4*
-     &      (SH/SQMW)**2*SH2
-            IF(MSTP(46).LE.0) THEN
-              AWWARE=ASHRE
-              AWWAIM=ASHIM
-              AWWSRE=0D0
-              AWWSIM=0D0
-            ELSEIF(MSTP(46).EQ.1) THEN
-              AWWARE=ASHRE+ATHRE+ASGRE+ASZRE+ATGRE+ATZRE+A4ARE
-              AWWAIM=ASHIM+ATHIM+ASGIM+ASZIM+ATGIM+ATZIM+A4AIM
-              AWWSRE=-ATHRE-AUHRE+ATGRE+ATZRE+AUGRE+AUZRE+A4SRE
-              AWWSIM=-ATHIM-AUHIM+ATGIM+ATZIM+AUGIM+AUZIM+A4SIM
-            ELSE
-              AWWARE=ASGRE+ASZRE+ATGRE+ATZRE+A4ARE
-              AWWAIM=ASGIM+ASZIM+ATGIM+ATZIM+A4AIM
-              AWWSRE=ATGRE+ATZRE+AUGRE+AUZRE+A4SRE
-              AWWSIM=ATGIM+ATZIM+AUGIM+AUZIM+A4SIM
-            ENDIF
-            AWWA2=AWWARE**2+AWWAIM**2
-            AWWS2=AWWSRE**2+AWWSIM**2
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FWWA=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*(64D0/9D0)*
-     &      ABS(A00U+0.5D0*A20U+4.5D0*A11U*DBLE(CTH))**2
-            FWWS=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*64D0*ABS(A20U)**2
-          ENDIF
- 
-          DO 330 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 330
-            EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
-            DO 320 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 320
-              EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
-              IF(EI*EJ.LT.0D0) THEN
-C...W+W-
-                IF(MSTP(45).EQ.1) GOTO 320
-                IF(MSTP(46).LE.2) FACWW=FWW*AWWA2*WIDS(24,1)
-                IF(MSTP(46).GE.3) FACWW=FWWA*WIDS(24,1)
-              ELSE
-C...W+W+/W-W-
-                IF(MSTP(45).EQ.2) GOTO 320
-                IF(MSTP(46).LE.2) FACWW=FWW*AWWS2
-                IF(MSTP(46).GE.3) FACWW=FWWS
-                IF(EI.GT.0D0) FACWW=FACWW*WIDS(24,4)
-                IF(EI.LT.0D0) FACWW=FACWW*WIDS(24,5)
-              ENDIF
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACWW*VINT(180+I)*VINT(180+J)
-              IF(EI*EJ.GT.0D0) SIGH(NCHN)=0.5D0*SIGH(NCHN)
-  320       CONTINUE
-  330     CONTINUE
-  340     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.120) THEN
-        IF(ISUB.EQ.102) THEN
-C...g + g -> h0 (or H0, or A0)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          WDTP13=0D0
-          DO 345 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.21.AND.KFDP(IDC,2).EQ.21.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP13=PMAS(KFHIGG,2)*BRAT(IDC)
-  345     CONTINUE
-          IF(WDTP13.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> g g channel')  
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          HI=SHR*WDTP13/32D0
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 350
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=HI*FACBW*HF
-  350     CONTINUE
- 
-        ELSEIF(ISUB.EQ.103) THEN
-C...gamma + gamma -> h0 (or H0, or A0)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          WDTP14=0D0
-          DO 355 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.22.AND.KFDP(IDC,2).EQ.22.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP14=PMAS(KFHIGG,2)*BRAT(IDC)
-  355     CONTINUE
-          IF(WDTP14.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> gamma gamma channel')  
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          HI=SHR*WDTP14*2D0
-          IF(KFAC(1,22)*KFAC(2,22).EQ.0) GOTO 360
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=22
-          ISIG(NCHN,2)=22
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=HI*FACBW*HF
-  360     CONTINUE
- 
-        ELSEIF(ISUB.EQ.110) THEN
-C...f + fbar -> gamma + h0
-          THUH=MAX(TH*UH,SH*CKIN(3)**2)
-          FACHG=COMFAC*(3D0*AEM**4)/(2D0*PARU(1)**2*XW*SQMW)*SH*THUH
-          FACHG=FACHG*WIDS(KFHIGG,2)
-C...Calculate loop contributions for intermediate gamma* and Z0
-          CIGTOT=DCMPLX(0D0,0D0)
-          CIZTOT=DCMPLX(0D0,0D0)
-          JMAX=3*MSTP(1)+1
-          DO 370 J=1,JMAX
-            IF(J.LE.2*MSTP(1)) THEN
-              FNC=1D0
-              EJ=KCHG(J,1)/3D0
-              AJ=SIGN(1D0,EJ+0.1D0)
-              VJ=AJ-4D0*EJ*XWV
-              BALP=SQM4/(2D0*PMAS(J,1))**2
-              BBET=SH/(2D0*PMAS(J,1))**2
-            ELSEIF(J.LE.3*MSTP(1)) THEN
-              FNC=3D0
-              JL=2*(J-2*MSTP(1))-1
-              EJ=KCHG(10+JL,1)/3D0
-              AJ=SIGN(1D0,EJ+0.1D0)
-              VJ=AJ-4D0*EJ*XWV
-              BALP=SQM4/(2D0*PMAS(10+JL,1))**2
-              BBET=SH/(2D0*PMAS(10+JL,1))**2
-            ELSE
-              BALP=SQM4/(2D0*PMAS(24,1))**2
-              BBET=SH/(2D0*PMAS(24,1))**2
-            ENDIF
-            BABI=1D0/(BALP-BBET)
-            IF(BALP.LT.1D0) THEN
-              F0ALP=DCMPLX(DBLE(ASIN(SQRT(BALP))),0D0)
-              F1ALP=F0ALP**2
-            ELSE
-              F0ALP=DCMPLX(DBLE(LOG(SQRT(BALP)+SQRT(BALP-1D0))),
-     &        -DBLE(0.5D0*PARU(1)))
-              F1ALP=-(F0ALP**2)
-            ENDIF
-            F2ALP=DBLE(SQRT(ABS(BALP-1D0)/BALP))*F0ALP
-            IF(BBET.LT.1D0) THEN
-              F0BET=DCMPLX(DBLE(ASIN(SQRT(BBET))),0D0)
-              F1BET=F0BET**2
-            ELSE
-              F0BET=DCMPLX(DBLE(LOG(SQRT(BBET)+SQRT(BBET-1D0))),
-     &        -DBLE(0.5D0*PARU(1)))
-              F1BET=-(F0BET**2)
-            ENDIF
-            F2BET=DBLE(SQRT(ABS(BBET-1D0)/BBET))*F0BET
-            IF(J.LE.3*MSTP(1)) THEN
-              FIF=DBLE(0.5D0*BABI)+DBLE(BABI**2)*(DBLE(0.5D0*(1D0-BALP+
-     &        BBET))*(F1BET-F1ALP)+DBLE(BBET)*(F2BET-F2ALP))
-              CIGTOT=CIGTOT+DBLE(FNC*EJ**2)*FIF
-              CIZTOT=CIZTOT+DBLE(FNC*EJ*VJ)*FIF
-            ELSE
-              TXW=XW/XW1
-              CIGTOT=CIGTOT-0.5*(DBLE(BABI*(1.5D0+BALP))+DBLE(BABI**2)*
-     &        (DBLE(1.5D0-3D0*BALP+4D0*BBET)*(F1BET-F1ALP)+
-     &        DBLE(BBET*(2D0*BALP+3D0))*(F2BET-F2ALP)))
-              CIZTOT=CIZTOT-DBLE(0.5D0*BABI*XW1)*(DBLE(5D0-TXW+2D0*BALP*
-     &        (1D0-TXW))*(1D0+DBLE(2D0*BABI*BBET)*(F2BET-F2ALP))+
-     &        DBLE(BABI*(4D0*BBET*(3D0-TXW)-(2D0*BALP-1D0)*(5D0-TXW)))*
-     &        (F1BET-F1ALP))
-            ENDIF
-  370     CONTINUE
-          CIGTOT=CIGTOT/DBLE(SH)
-          CIZTOT=CIZTOT*DBLE(XWC)/DCMPLX(DBLE(SH-SQMZ),DBLE(GMMZ))
-C...Loop over initial flavours
-          DO 380 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 380
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            FCOI=1D0
-            IF(IABS(I).LE.10) FCOI=FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACHG*FCOI*(ABS(DBLE(EI)*CIGTOT+DBLE(VI)*
-     &      CIZTOT)**2+AI**2*ABS(CIZTOT)**2)
-  380     CONTINUE
- 
-        ELSEIF(ISUB.EQ.111) THEN
-C...f + fbar -> g + h0 (q + qbar -> g + h0 only)
-          IF(MSTP(38).NE.0) THEN
-C...Simple case: only do gg <-> h exactly.
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          WDTP13=0D0
-          DO 385 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.21.AND.KFDP(IDC,2).EQ.21.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP13=PMAS(KFHIGG,2)*BRAT(IDC)
-  385     CONTINUE
-          IF(WDTP13.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> g g channel')  
-          FACGH=COMFAC*FACA*(2D0/9D0)*AS*(WDTP13/SQRT(SQM4))*
-     &    (TH**2+UH**2)/(SH*SQM4)
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          GMMHC=SQRT(SQM4)*WDTP(0)
-          HBW4C=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/
-     &    ((SQM4-SQMH)**2+GMMHC**2)
-          FACGH=FACGH*HBW4C/HBW4
-          ELSE
-C...Messy case: do full loop integrals
-          A5STUR=0D0
-          A5STUI=0D0
-          DO 390 I=1,2*MSTP(1)
-            SQMQ=PMAS(I,1)**2
-            EPSS=4D0*SQMQ/SH
-            EPSH=4D0*SQMQ/SQMH
-            CALL PYWAUX(1,EPSS,W1SR,W1SI)
-            CALL PYWAUX(1,EPSH,W1HR,W1HI)
-            CALL PYWAUX(2,EPSS,W2SR,W2SI)
-            CALL PYWAUX(2,EPSH,W2HR,W2HI)
-            A5STUR=A5STUR+EPSH*(1D0+SH/(TH+UH)*(W1SR-W1HR)+
-     &      (0.25D0-SQMQ/(TH+UH))*(W2SR-W2HR))
-            A5STUI=A5STUI+EPSH*(SH/(TH+UH)*(W1SI-W1HI)+
-     &      (0.25D0-SQMQ/(TH+UH))*(W2SI-W2HI))
-  390     CONTINUE
-          FACGH=COMFAC*FACA/(144D0*PARU(1)**2)*AEM/XW*AS**3*SQMH/SQMW*
-     &    SQMH/SH*(UH**2+TH**2)/(UH+TH)**2*(A5STUR**2+A5STUI**2)
-          FACGH=FACGH*WIDS(25,2)
-          ENDIF
-          DO 400 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &      KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 400
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACGH
-  400     CONTINUE
- 
-        ELSEIF(ISUB.EQ.112) THEN
-C...f + g -> f + h0 (q + g -> q + h0 only)
-          IF(MSTP(38).NE.0) THEN
-C...Simple case: only do gg <-> h exactly.
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          WDTP13=0D0
-          DO 405 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.21.AND.KFDP(IDC,2).EQ.21.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP13=PMAS(KFHIGG,2)*BRAT(IDC)
-  405     CONTINUE
-          IF(WDTP13.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> g g channel')  
-          FACQH=COMFAC*FACA*(1D0/12D0)*AS*(WDTP13/SQRT(SQM4))*
-     &    (SH**2+UH**2)/(-(TH*SQM4))
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          GMMHC=SQRT(SQM4)*WDTP(0)
-          HBW4C=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/
-     &    ((SQM4-SQMH)**2+GMMHC**2)
-          FACQH=FACQH*HBW4C/HBW4
-          ELSE
-C...Messy case: do full loop integrals
-          A5TSUR=0D0
-          A5TSUI=0D0
-          DO 410 I=1,2*MSTP(1)
-            SQMQ=PMAS(I,1)**2
-            EPST=4D0*SQMQ/TH
-            EPSH=4D0*SQMQ/SQMH
-            CALL PYWAUX(1,EPST,W1TR,W1TI)
-            CALL PYWAUX(1,EPSH,W1HR,W1HI)
-            CALL PYWAUX(2,EPST,W2TR,W2TI)
-            CALL PYWAUX(2,EPSH,W2HR,W2HI)
-            A5TSUR=A5TSUR+EPSH*(1D0+TH/(SH+UH)*(W1TR-W1HR)+
-     &      (0.25D0-SQMQ/(SH+UH))*(W2TR-W2HR))
-            A5TSUI=A5TSUI+EPSH*(TH/(SH+UH)*(W1TI-W1HI)+
-     &      (0.25D0-SQMQ/(SH+UH))*(W2TI-W2HI))
-  410     CONTINUE
-          FACQH=COMFAC*FACA/(384D0*PARU(1)**2)*AEM/XW*AS**3*SQMH/SQMW*
-     &    SQMH/(-TH)*(UH**2+SH**2)/(UH+SH)**2*(A5TSUR**2+A5TSUI**2)
-          FACQH=FACQH*WIDS(25,2)
-          ENDIF
-          DO 430 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 430
-            DO 420 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 420
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 420
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACQH
-  420       CONTINUE
-  430     CONTINUE
- 
-        ELSEIF(ISUB.EQ.113) THEN
-C...g + g -> g + h0
-          IF(MSTP(38).NE.0) THEN
-C...Simple case: only do gg <-> h exactly.
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          WDTP13=0D0
-          DO 435 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.21.AND.KFDP(IDC,2).EQ.21.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP13=PMAS(KFHIGG,2)*BRAT(IDC)
-  435     CONTINUE
-          IF(WDTP13.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> g g channel')  
-          FACGH=COMFAC*FACA*(3D0/16D0)*AS*(WDTP13/SQRT(SQM4))*
-     &    (SH**4+TH**4+UH**4+SQM4**4)/(SH*TH*UH*SQM4)
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          GMMHC=SQRT(SQM4)*WDTP(0)
-          HBW4C=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/
-     &    ((SQM4-SQMH)**2+GMMHC**2)
-          FACGH=FACGH*HBW4C/HBW4
-          ELSE
-C...Messy case: do full loop integrals
-          A2STUR=0D0
-          A2STUI=0D0
-          A2USTR=0D0
-          A2USTI=0D0
-          A2TUSR=0D0
-          A2TUSI=0D0
-          A4STUR=0D0
-          A4STUI=0D0
-          DO 440 I=1,2*MSTP(1)
-            SQMQ=PMAS(I,1)**2
-            EPSS=4D0*SQMQ/SH
-            EPST=4D0*SQMQ/TH
-            EPSU=4D0*SQMQ/UH
-            EPSH=4D0*SQMQ/SQMH
-            IF(EPSH.LT.1D-6) GOTO 440
-            CALL PYWAUX(1,EPSS,W1SR,W1SI)
-            CALL PYWAUX(1,EPST,W1TR,W1TI)
-            CALL PYWAUX(1,EPSU,W1UR,W1UI)
-            CALL PYWAUX(1,EPSH,W1HR,W1HI)
-            CALL PYWAUX(2,EPSS,W2SR,W2SI)
-            CALL PYWAUX(2,EPST,W2TR,W2TI)
-            CALL PYWAUX(2,EPSU,W2UR,W2UI)
-            CALL PYWAUX(2,EPSH,W2HR,W2HI)
-            CALL PYI3AU(EPSS,TH/UH,Y3STUR,Y3STUI)
-            CALL PYI3AU(EPSS,UH/TH,Y3SUTR,Y3SUTI)
-            CALL PYI3AU(EPST,SH/UH,Y3TSUR,Y3TSUI)
-            CALL PYI3AU(EPST,UH/SH,Y3TUSR,Y3TUSI)
-            CALL PYI3AU(EPSU,SH/TH,Y3USTR,Y3USTI)
-            CALL PYI3AU(EPSU,TH/SH,Y3UTSR,Y3UTSI)
-            CALL PYI3AU(EPSH,SQMH/SH*TH/UH,YHSTUR,YHSTUI)
-            CALL PYI3AU(EPSH,SQMH/SH*UH/TH,YHSUTR,YHSUTI)
-            CALL PYI3AU(EPSH,SQMH/TH*SH/UH,YHTSUR,YHTSUI)
-            CALL PYI3AU(EPSH,SQMH/TH*UH/SH,YHTUSR,YHTUSI)
-            CALL PYI3AU(EPSH,SQMH/UH*SH/TH,YHUSTR,YHUSTI)
-            CALL PYI3AU(EPSH,SQMH/UH*TH/SH,YHUTSR,YHUTSI)
-            W3STUR=YHSTUR-Y3STUR-Y3UTSR
-            W3STUI=YHSTUI-Y3STUI-Y3UTSI
-            W3SUTR=YHSUTR-Y3SUTR-Y3TUSR
-            W3SUTI=YHSUTI-Y3SUTI-Y3TUSI
-            W3TSUR=YHTSUR-Y3TSUR-Y3USTR
-            W3TSUI=YHTSUI-Y3TSUI-Y3USTI
-            W3TUSR=YHTUSR-Y3TUSR-Y3SUTR
-            W3TUSI=YHTUSI-Y3TUSI-Y3SUTI
-            W3USTR=YHUSTR-Y3USTR-Y3TSUR
-            W3USTI=YHUSTI-Y3USTI-Y3TSUI
-            W3UTSR=YHUTSR-Y3UTSR-Y3STUR
-            W3UTSI=YHUTSI-Y3UTSI-Y3STUI
-            B2STUR=SQMQ/SQMH**2*(SH*(UH-SH)/(SH+UH)+2D0*TH*UH*
-     &      (UH+2D0*SH)/(SH+UH)**2*(W1TR-W1HR)+(SQMQ-SH/4D0)*
-     &      (0.5D0*W2SR+0.5D0*W2HR-W2TR+W3STUR)+SH2*(2D0*SQMQ/
-     &      (SH+UH)**2-0.5D0/(SH+UH))*(W2TR-W2HR)+0.5D0*TH*UH/SH*
-     &      (W2HR-2D0*W2TR)+0.125D0*(SH-12D0*SQMQ-4D0*TH*UH/SH)*W3TSUR)
-            B2STUI=SQMQ/SQMH**2*(2D0*TH*UH*(UH+2D0*SH)/(SH+UH)**2*
-     &      (W1TI-W1HI)+(SQMQ-SH/4D0)*(0.5D0*W2SI+0.5D0*W2HI-W2TI+
-     &      W3STUI)+SH2*(2D0*SQMQ/(SH+UH)**2-0.5D0/(SH+UH))*
-     &      (W2TI-W2HI)+0.5D0*TH*UH/SH*(W2HI-2D0*W2TI)+0.125D0*
-     &      (SH-12D0*SQMQ-4D0*TH*UH/SH)*W3TSUI)
-            B2SUTR=SQMQ/SQMH**2*(SH*(TH-SH)/(SH+TH)+2D0*UH*TH*
-     &      (TH+2D0*SH)/(SH+TH)**2*(W1UR-W1HR)+(SQMQ-SH/4D0)*
-     &      (0.5D0*W2SR+0.5D0*W2HR-W2UR+W3SUTR)+SH2*(2D0*SQMQ/
-     &      (SH+TH)**2-0.5D0/(SH+TH))*(W2UR-W2HR)+0.5D0*UH*TH/SH*
-     &      (W2HR-2D0*W2UR)+0.125D0*(SH-12D0*SQMQ-4D0*UH*TH/SH)*W3USTR)
-            B2SUTI=SQMQ/SQMH**2*(2D0*UH*TH*(TH+2D0*SH)/(SH+TH)**2*
-     &      (W1UI-W1HI)+(SQMQ-SH/4D0)*(0.5D0*W2SI+0.5D0*W2HI-W2UI+
-     &      W3SUTI)+SH2*(2D0*SQMQ/(SH+TH)**2-0.5D0/(SH+TH))*
-     &      (W2UI-W2HI)+0.5D0*UH*TH/SH*(W2HI-2D0*W2UI)+0.125D0*
-     &      (SH-12D0*SQMQ-4D0*UH*TH/SH)*W3USTI)
-            B2TSUR=SQMQ/SQMH**2*(TH*(UH-TH)/(TH+UH)+2D0*SH*UH*
-     &      (UH+2D0*TH)/(TH+UH)**2*(W1SR-W1HR)+(SQMQ-TH/4D0)*
-     &      (0.5D0*W2TR+0.5D0*W2HR-W2SR+W3TSUR)+TH2*(2D0*SQMQ/
-     &      (TH+UH)**2-0.5D0/(TH+UH))*(W2SR-W2HR)+0.5D0*SH*UH/TH*
-     &      (W2HR-2D0*W2SR)+0.125D0*(TH-12D0*SQMQ-4D0*SH*UH/TH)*W3STUR)
-            B2TSUI=SQMQ/SQMH**2*(2D0*SH*UH*(UH+2D0*TH)/(TH+UH)**2*
-     &      (W1SI-W1HI)+(SQMQ-TH/4D0)*(0.5D0*W2TI+0.5D0*W2HI-W2SI+
-     &      W3TSUI)+TH2*(2D0*SQMQ/(TH+UH)**2-0.5D0/(TH+UH))*
-     &      (W2SI-W2HI)+0.5D0*SH*UH/TH*(W2HI-2D0*W2SI)+0.125D0*
-     &      (TH-12D0*SQMQ-4D0*SH*UH/TH)*W3STUI)
-            B2TUSR=SQMQ/SQMH**2*(TH*(SH-TH)/(TH+SH)+2D0*UH*SH*
-     &      (SH+2D0*TH)/(TH+SH)**2*(W1UR-W1HR)+(SQMQ-TH/4D0)*
-     &      (0.5D0*W2TR+0.5D0*W2HR-W2UR+W3TUSR)+TH2*(2D0*SQMQ/
-     &      (TH+SH)**2-0.5D0/(TH+SH))*(W2UR-W2HR)+0.5D0*UH*SH/TH*
-     &      (W2HR-2D0*W2UR)+0.125D0*(TH-12D0*SQMQ-4D0*UH*SH/TH)*W3UTSR)
-            B2TUSI=SQMQ/SQMH**2*(2D0*UH*SH*(SH+2D0*TH)/(TH+SH)**2*
-     &      (W1UI-W1HI)+(SQMQ-TH/4D0)*(0.5D0*W2TI+0.5D0*W2HI-W2UI+
-     &      W3TUSI)+TH2*(2D0*SQMQ/(TH+SH)**2-0.5D0/(TH+SH))*
-     &      (W2UI-W2HI)+0.5D0*UH*SH/TH*(W2HI-2D0*W2UI)+0.125D0*
-     &      (TH-12D0*SQMQ-4D0*UH*SH/TH)*W3UTSI)
-            B2USTR=SQMQ/SQMH**2*(UH*(TH-UH)/(UH+TH)+2D0*SH*TH*
-     &      (TH+2D0*UH)/(UH+TH)**2*(W1SR-W1HR)+(SQMQ-UH/4D0)*
-     &      (0.5D0*W2UR+0.5D0*W2HR-W2SR+W3USTR)+UH2*(2D0*SQMQ/
-     &      (UH+TH)**2-0.5D0/(UH+TH))*(W2SR-W2HR)+0.5D0*SH*TH/UH*
-     &      (W2HR-2D0*W2SR)+0.125D0*(UH-12D0*SQMQ-4D0*SH*TH/UH)*W3SUTR)
-            B2USTI=SQMQ/SQMH**2*(2D0*SH*TH*(TH+2D0*UH)/(UH+TH)**2*
-     &      (W1SI-W1HI)+(SQMQ-UH/4D0)*(0.5D0*W2UI+0.5D0*W2HI-W2SI+
-     &      W3USTI)+UH2*(2D0*SQMQ/(UH+TH)**2-0.5D0/(UH+TH))*
-     &      (W2SI-W2HI)+0.5D0*SH*TH/UH*(W2HI-2D0*W2SI)+0.125D0*
-     &      (UH-12D0*SQMQ-4D0*SH*TH/UH)*W3SUTI)
-            B2UTSR=SQMQ/SQMH**2*(UH*(SH-UH)/(UH+SH)+2D0*TH*SH*
-     &      (SH+2D0*UH)/(UH+SH)**2*(W1TR-W1HR)+(SQMQ-UH/4D0)*
-     &      (0.5D0*W2UR+0.5D0*W2HR-W2TR+W3UTSR)+UH2*(2D0*SQMQ/
-     &      (UH+SH)**2-0.5D0/(UH+SH))*(W2TR-W2HR)+0.5D0*TH*SH/UH*
-     &      (W2HR-2D0*W2TR)+0.125D0*(UH-12D0*SQMQ-4D0*TH*SH/UH)*W3TUSR)
-            B2UTSI=SQMQ/SQMH**2*(2D0*TH*SH*(SH+2D0*UH)/(UH+SH)**2*
-     &      (W1TI-W1HI)+(SQMQ-UH/4D0)*(0.5D0*W2UI+0.5D0*W2HI-W2TI+
-     &      W3UTSI)+UH2*(2D0*SQMQ/(UH+SH)**2-0.5D0/(UH+SH))*
-     &      (W2TI-W2HI)+0.5D0*TH*SH/UH*(W2HI-2D0*W2TI)+0.125D0*
-     &      (UH-12D0*SQMQ-4D0*TH*SH/UH)*W3TUSI)
-            B4STUR=0.25D0*EPSH*(-(2D0/3D0)+0.25D0*(EPSH-1D0)*
-     &      (W2SR-W2HR+W3STUR))
-            B4STUI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2SI-W2HI+W3STUI)
-            B4TUSR=0.25D0*EPSH*(-(2D0/3D0)+0.25D0*(EPSH-1D0)*
-     &      (W2TR-W2HR+W3TUSR))
-            B4TUSI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2TI-W2HI+W3TUSI)
-            B4USTR=0.25D0*EPSH*(-(2D0/3D0)+0.25D0*(EPSH-1D0)*
-     &      (W2UR-W2HR+W3USTR))
-            B4USTI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2UI-W2HI+W3USTI)
-            A2STUR=A2STUR+B2STUR+B2SUTR
-            A2STUI=A2STUI+B2STUI+B2SUTI
-            A2USTR=A2USTR+B2USTR+B2UTSR
-            A2USTI=A2USTI+B2USTI+B2UTSI
-            A2TUSR=A2TUSR+B2TUSR+B2TSUR
-            A2TUSI=A2TUSI+B2TUSI+B2TSUI
-            A4STUR=A4STUR+B4STUR+B4USTR+B4TUSR
-            A4STUI=A4STUI+B4STUI+B4USTI+B4TUSI
-  440     CONTINUE
-          FACGH=COMFAC*FACA*3D0/(128D0*PARU(1)**2)*AEM/XW*AS**3*
-     &    SQMH/SQMW*SQMH**3/(SH*TH*UH)*(A2STUR**2+A2STUI**2+A2USTR**2+
-     &    A2USTI**2+A2TUSR**2+A2TUSI**2+A4STUR**2+A4STUI**2)
-          FACGH=FACGH*WIDS(25,2)
-          ENDIF
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 450
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=FACGH
-  450     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.170) THEN
-        IF(ISUB.EQ.121) THEN
-C...g + g -> Q + Qbar + h0
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 460
-          IA=KFPR(ISUBSV,2)
-          PMF=PYMRUN(IA,SH)
-          FACQQH=COMFAC*(4D0*PARU(1)*AEM/XW)*(4D0*PARU(1)*AS)**2*
-     &    (0.5D0*PMF/PMAS(24,1))**2
-          WID2=1D0
-          IF(IA.EQ.6.OR.IA.EQ.7.OR.IA.EQ.8) WID2=WIDS(IA,1)
-          FACQQH=FACQQH*WID2
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
-            IKFI=1
-            IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
-            IF(IA.GT.10) IKFI=3
-            FACQQH=FACQQH*PARU(150+10*IHIGG+IKFI)**2
-            IF(IMSS(1).NE.0.AND.IA.EQ.5) THEN
-              FACQQH=FACQQH/(1D0+RMSS(41))**2
-              IF(IHIGG.NE.3) THEN
-                FACQQH=FACQQH*(1D0+RMSS(41)*PARU(152+10*IHIGG)/
-     &          PARU(151+10*IHIGG))**2
-              ENDIF
-            ENDIF
-          ENDIF
-          CALL PYQQBH(WTQQBH)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=FACQQH*WTQQBH*FACBW
-  460     CONTINUE
- 
-        ELSEIF(ISUB.EQ.122) THEN
-C...q + qbar -> Q + Qbar + h0
-          IA=KFPR(ISUBSV,2)
-          PMF=PYMRUN(IA,SH)
-          FACQQH=COMFAC*(4D0*PARU(1)*AEM/XW)*(4D0*PARU(1)*AS)**2*
-     &    (0.5D0*PMF/PMAS(24,1))**2
-          WID2=1D0
-          IF(IA.EQ.6.OR.IA.EQ.7.OR.IA.EQ.8) WID2=WIDS(IA,1)
-          FACQQH=FACQQH*WID2
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
-            IKFI=1
-            IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
-            IF(IA.GT.10) IKFI=3
-            FACQQH=FACQQH*PARU(150+10*IHIGG+IKFI)**2
-            IF(IMSS(1).NE.0.AND.IA.EQ.5) THEN
-              FACQQH=FACQQH/(1D0+RMSS(41))**2
-              IF(IHIGG.NE.3) THEN
-                FACQQH=FACQQH*(1D0+RMSS(41)*PARU(152+10*IHIGG)/
-     &          PARU(151+10*IHIGG))**2
-              ENDIF
-            ENDIF
-          ENDIF
-          CALL PYQQBH(WTQQBH)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          DO 470 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &      KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 470
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACQQH*WTQQBH*FACBW
-  470     CONTINUE
- 
-        ELSEIF(ISUB.EQ.123) THEN
-C...f + f' -> f + f' + h0 (or H0, or A0) (Z0 + Z0 -> h0 as
-C...inner process)
-          FACNOR=COMFAC*(4D0*PARU(1)*AEM/(XW*XW1))**3*SQMZ/32D0
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACNOR=FACNOR*
-     &    PARU(154+10*IHIGG)**2
-          FACPRP=1D0/((VINT(215)-VINT(204)**2)*
-     &    (VINT(216)-VINT(209)**2))**2
-          FACZZ1=FACNOR*FACPRP*(0.5D0*TAUP*VINT(2))*VINT(219)
-          FACZZ2=FACNOR*FACPRP*VINT(217)*VINT(218)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          DO 490 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 490
-            IA=IABS(I)
-            DO 480 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 480
-              JA=IABS(J)
-              EI=KCHG(IA,1)*ISIGN(1,I)/3D0
-              AI=SIGN(1D0,KCHG(IA,1)+0.5D0)*ISIGN(1,I)
-              VI=AI-4D0*EI*XWV
-              EJ=KCHG(JA,1)*ISIGN(1,J)/3D0
-              AJ=SIGN(1D0,KCHG(JA,1)+0.5D0)*ISIGN(1,J)
-              VJ=AJ-4D0*EJ*XWV
-              FACLR1=(VI**2+AI**2)*(VJ**2+AJ**2)+4D0*VI*AI*VJ*AJ
-              FACLR2=(VI**2+AI**2)*(VJ**2+AJ**2)-4D0*VI*AI*VJ*AJ
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=(FACLR1*FACZZ1+FACLR2*FACZZ2)*FACBW
-  480       CONTINUE
-  490     CONTINUE
- 
-        ELSEIF(ISUB.EQ.124) THEN
-C...f + f' -> f" + f"' + h0 (or H0, or A0) (W+ + W- -> h0 as
-C...inner process)
-          FACNOR=COMFAC*(4D0*PARU(1)*AEM/XW)**3*SQMW
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACNOR=FACNOR*
-     &    PARU(155+10*IHIGG)**2
-          FACPRP=1D0/((VINT(215)-VINT(204)**2)*
-     &    (VINT(216)-VINT(209)**2))**2
-          FACWW=FACNOR*FACPRP*(0.5D0*TAUP*VINT(2))*VINT(219)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          DO 510 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 510
-            EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
-            DO 500 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 500
-              EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
-              IF(EI*EJ.GT.0D0) GOTO 500
-              FACLR=VINT(180+I)*VINT(180+J)
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACLR*FACWW*FACBW
-  500       CONTINUE
-  510     CONTINUE
- 
-        ELSEIF(ISUB.EQ.143) THEN
-C...f + fbar' -> H+/-
-          SQMHC=PMAS(37,1)**2
-          CALL PYWIDT(37,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMHC)**2+HS**2)
-          HP=AEM/(8D0*XW)*SH/SQMW*SH
-          DO 530 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 530
-            IA=IABS(I)
-            IM=(MOD(IA,10)+1)/2
-            DO 520 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 520
-              JA=IABS(J)
-              JM=(MOD(JA,10)+1)/2
-              IF(I*J.GT.0.OR.IA.EQ.JA.OR.IM.NE.JM) GOTO 520
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 520
-              IF(MOD(IA,2).EQ.0) THEN
-                IU=IA
-                IL=JA
-              ELSE
-                IU=JA
-                IL=IA
-              ENDIF
-              RML=PYMRUN(IL,SH)**2/SH
-              RMU=PYMRUN(IU,SH)**2/SH
-              HI=HP*(RML*PARU(141)**2+RMU/PARU(141)**2)
-              IF(IA.LE.10) HI=HI*FACA/3D0
-              KCHHC=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4))
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=HI*FACBW*HF
-  520       CONTINUE
-  530     CONTINUE
- 
-        ELSEIF(ISUB.EQ.161) THEN
-C...f + g -> f' + H+/- (b + g -> t + H+/- only)
-C...(choice of only b and t to avoid kinematics problems)
-          FHCQ=COMFAC*FACA*AS*AEM/XW*1D0/24
-C...H propagator: as simulated in PYOFSH and as desired
-          SQMHC=PMAS(37,1)**2
-          GMMHC=PMAS(37,1)*PMAS(37,2)
-          HBW4=GMMHC/((SQM4-SQMHC)**2+GMMHC**2)
-          CALL PYWIDT(37,SQM4,WDTP,WDTE)
-          GMMHCC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMHCC/((SQM4-SQMHC)**2+GMMHCC**2)
-          FHCQ=FHCQ*HBW4C/HBW4
-          Q2RM=SH
-          IF(MSTP(32).EQ.12) Q2RM=PARP(194)
-          DO 550 I=MMINA,MMAXA
-            IA=IABS(I)
-            IF(IA.NE.5) GOTO 550
-            SQML=PYMRUN(IA,Q2RM)**2
-            IUA=IA+MOD(IA,2)
-            SQMQ=PYMRUN(IUA,Q2RM)**2
-            FACHCQ=FHCQ*(SQML*PARU(141)**2+SQMQ/PARU(141)**2)/SQMW*
-     &      (SH/(SQMQ-UH)+2D0*SQMQ*(SQMHC-UH)/(SQMQ-UH)**2+(SQMQ-UH)/SH-
-     &      2D0*SQMQ/(SQMQ-UH)+2D0*(SQMHC-UH)/(SQMQ-UH)*
-     &      (SQMHC-SQMQ-SH)/SH)
-            KCHHC=ISIGN(1,KCHG(IA,1)*ISIGN(1,I))
-            DO 540 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 540
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 540
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACHCQ*WIDS(37,(5-KCHHC)/2)
-              IF(IUA.EQ.6) SIGH(NCHN)=SIGH(NCHN)*WIDS(6,(5+KCHHC)/2)
-  540       CONTINUE
-  550     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.402) THEN
-        IF(ISUB.EQ.401) THEN
-C...  g + g -> t + bbar + H-
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 560
-          IA=KFPR(ISUBSV,2)
-          CALL PYSTBH(WTTBH)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=(1D0/PARU(1))*VINT(2)*HS/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &       FACBW=0D0
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=2d0*COMFAC*WTTBH*FACBW
-c     Since we don't know yet if H+ or H-, assume H+
-c     when calculating suppression due to closed channels.
-          SIGH(NCHN)=SIGH(NCHN)*WIDS(37,2)*WIDS(6,3)
-          IF(ABS(WIDS(37,2)-WIDS(37,3))
-     &       .GE.1D-6*(WIDS(37,2)+WIDS(37,3)).OR.
-     &       ABS(WIDS(6,2)-WIDS(6,3))
-     &       .GE.1D-6*(WIDS(6,2)+WIDS(6,3))) THEN
-            WRITE(*,*)'Error: Process 401 cannot handle different'
-            WRITE(*,*)'decays for H+ and H- or t and tbar.'
-            WRITE(*,*)'Execution stopped.'
-            STOP
-          END IF
- 560      CONTINUE
- 
-        ELSEIF(ISUB.EQ.402) THEN
-C...  q + qbar -> t + bbar + H-
-          IA=KFPR(ISUBSV,2)
-          CALL PYSTBH(WTTBH)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=(1D0/PARU(1))*VINT(2)*HS/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &       FACBW=0D0
-          DO 570 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &         KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 570
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=2d0*COMFAC*WTTBH*FACBW
-c     Since we don't know yet if H+ or H-, assume H+
-c     when calculating suppression due to closed channels.
-            SIGH(NCHN)=SIGH(NCHN)*WIDS(37,2)*WIDS(6,3)
-            IF(ABS(WIDS(37,2)-WIDS(37,3))/(WIDS(37,2)+WIDS(37,3))
-     &         .GE.1D-6.OR.
-     &         ABS(WIDS(6,2)-WIDS(6,3))/(WIDS(6,2)+WIDS(6,3))
-     &         .GE.1D-6) THEN
-              WRITE(*,*)'Error: Process 402 cannot handle different'
-              WRITE(*,*)'decays for H+ and H- or t and tbar.'
-              WRITE(*,*)'Execution stopped.'
-              STOP
-            END IF
- 570      CONTINUE
-        ENDIF
-      ENDIF
- 
-      RETURN
-      END
-
-
diff --git a/Generators/PythiaExo_i/CMakeLists.txt b/Generators/PythiaExo_i/CMakeLists.txt
deleted file mode 100644
index 9851a30e093b7069a5592c177fffa3696b0e4391..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/CMakeLists.txt
+++ /dev/null
@@ -1,196 +0,0 @@
-################################################################################
-# Package: PythiaExo_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( PythiaExo_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs(
-   PUBLIC
-   GaudiKernel
-   Generators/AcerMC_i
-   Generators/GeneratorModules
-   Generators/Pythia_i
-   Generators/Tauola_i
-   PRIVATE
-   Control/AthenaKernel
-   Control/StoreGate
-   Generators/AlpGen_i
-   Generators/ExoGraviton_i
-   Generators/GeneratorFortranCommon
-   Generators/GeneratorUtils
-   Generators/GravADD_i
-   Generators/MadGraph_i
-   Generators/TruthUtils
-   Generators/CompHep_i
-   Generators/MadCUP_i
-   Generators/Matchig_i
-   Generators/HvGen_i
-   Tools/PathResolver )
-
-# External dependencies:
-find_package( Boost COMPONENTS filesystem thread system )
-find_package( CLHEP )
-find_package( GSL )
-find_package( HepMC COMPONENTS HepMC HepMCfio )
-find_package( Lhapdf )
-find_package( Pythia6 )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_component( PythiaTau3Mu_i
-   src/PythiaTau3Mu.cxx src/Pydat1.cxx src/Pydatr.cxx src/Pydat2.cxx
-   src/Pydat3_62.cxx src/Pyssmt.cxx src/Pysubs.cxx src/Pypars.cxx
-   src/Pymssm.cxx src/Pyint1.cxx src/Pyint2.cxx src/Pyint5.cxx
-   src/Pytcsm.cxx src/upinit_py.F src/upevnt_py.F src/upveto_py.F
-   src/cldcay.F src/gpydat2.F src/gpydatr.F src/gpypars.F
-   src/gpysubs.F src/gpydat1.F src/gpydat3_62.F src/gpymssm.F
-   src/gpyssmt.F src/gpyint1.F src/gpyint2.F src/gpyint5.F
-   src/gpytcsm.F src/initpyblock.F src/openrandom.F
-   src/opdcay.F src/pyr.F src/extproc.F src/gatlastaula_decres_py.F
-   src/atopyt.F src/opensusyfile.F src/PythiaDummies/pyevwt.F
-   src/PythiaDummies/pykcut.F src/PythiaDummies/pytime.F
-   src/PythiaDummies/sugra.F src/PythiaDummies/visaje.F
-   src/PythiaDummies/ssmssm.F src/PythiaDummies/fhhiggscorr.F
-   src/PythiaDummies/fhsetflags.F src/PythiaDummies/fhsetpara.F
-   src/PythiaModified/pytaud.F src/PythiaTau3Mu_i_entries.cxx
-   INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${GSL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-   ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   LINK_LIBRARIES ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES}
-   ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel
-   AcerMC_i GeneratorModulesLib Pythia_iLib Tauola_iLib AthenaKernel StoreGateLib
-   AlpGen_i ExoGraviton_i GeneratorFortranCommonLib GravADD_i MadGraph_i
-   TruthUtils PathResolver CompHep_i MadCUP_i Matchig_i HvGen_i )
-
-atlas_add_component( PythiaMono_i
-   src/PythiaMono.cxx src/Pydat1.cxx src/Pydatr.cxx src/Pydat2.cxx
-   src/Pydat3_62.cxx src/Pyssmt.cxx src/Pysubs.cxx src/Pypars.cxx
-   src/Pymssm.cxx src/Pyint1.cxx src/Pyint2.cxx src/Pyint5.cxx
-   src/Pytcsm.cxx src/upinit_py.F src/upevnt_py.F src/upveto_py.F
-   src/cldcay.F src/gpydat2.F src/gpydatr.F src/gpypars.F
-   src/gpysubs.F src/gpydat1.F src/gpydat3_62.F src/gpymssm.F
-   src/gpyssmt.F src/gpyint1.F src/gpyint2.F src/gpyint5.F
-   src/gpytcsm.F src/initpyblock.F src/openrandom.F src/opdcay.F
-   src/pyr.F src/extproc.F src/gatlastaula_decres_py.F src/atopyt.F
-   src/opensusyfile.F src/PythiaDummies/pyevwt.F src/PythiaDummies/pykcut.F
-   src/PythiaDummies/pytaud.F src/PythiaDummies/pytime.F
-   src/PythiaDummies/sugra.F src/PythiaDummies/visaje.F
-   src/PythiaDummies/ssmssm.F src/PythiaDummies/fhhiggscorr.F
-   src/PythiaDummies/fhsetflags.F src/PythiaDummies/fhsetpara.F
-   src/PythiaModified/pysgwz.F src/PythiaMono_i_entries.cxx
-   INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${GSL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-   ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   LINK_LIBRARIES ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES}
-   ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel
-   AcerMC_i GeneratorModulesLib Pythia_iLib Tauola_iLib AthenaKernel StoreGateLib
-   AlpGen_i ExoGraviton_i GeneratorFortranCommonLib GravADD_i MadGraph_i
-   TruthUtils PathResolver CompHep_i MadCUP_i Matchig_i HvGen_i )
-
-atlas_add_component( PythiaGS_i
-   src/PythiaGS.cxx src/Pydat1.cxx src/Pydatr.cxx src/Pydat2.cxx
-   src/Pydat3_62.cxx src/Pyssmt.cxx src/Pysubs.cxx src/Pypars.cxx
-   src/Pymssm.cxx src/Pyint1.cxx src/Pyint2.cxx src/Pyint5.cxx
-   src/Pytcsm.cxx src/upinit_py.F src/upevnt_py.F src/upveto_py.F
-   src/cldcay.F src/gpydat2.F src/gpydatr.F src/gpypars.F
-   src/gpysubs.F src/gpydat1.F src/gpydat3_62.F src/gpymssm.F
-   src/gpyssmt.F src/gpyint1.F src/gpyint2.F src/gpyint5.F
-   src/gpytcsm.F src/initpyblock.F src/openrandom.F src/opdcay.F
-   src/pyr.F src/extproc.F src/gatlastaula_decres_py.F src/atopyt.F
-   src/opensusyfile.F src/PythiaDummies/pytime.F src/PythiaDummies/sugra.F
-   src/PythiaDummies/visaje.F src/PythiaDummies/ssmssm.F
-   src/PythiaDummies/fhhiggscorr.F src/PythiaDummies/fhsetflags.F
-   src/PythiaDummies/fhsetpara.F src/PythiaModified/pytaud.F
-   src/PythiaGS_i_entries.cxx
-   src/PythiaGravADD/Aeik.c src/PythiaGravADD/pyeffevt.F
-   src/PythiaGravADD/GravScat.F
-   INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${GSL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-   ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   LINK_LIBRARIES ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES}
-   ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel
-   AcerMC_i GeneratorModulesLib Pythia_iLib Tauola_iLib AthenaKernel StoreGateLib
-   AlpGen_i ExoGraviton_i GeneratorFortranCommonLib GravADD_i MadGraph_i
-   TruthUtils PathResolver CompHep_i MadCUP_i Matchig_i HvGen_i )
-
-atlas_add_component( PythiaLLP_i
-   src/PythiaLLP.cxx src/Pydat1.cxx src/Pydatr.cxx src/Pydat2.cxx
-   src/Pydat3_62.cxx src/Pyssmt.cxx src/Pysubs.cxx src/Pypars.cxx
-   src/Pymssm.cxx src/Pyint1.cxx src/Pyint2.cxx src/Pyint5.cxx
-   src/Pytcsm.cxx src/upinit_py.F src/upevnt_py.F src/upveto_py.F
-   src/cldcay.F src/gpydat2.F src/gpydatr.F src/gpypars.F src/gpysubs.F
-   src/gpydat1.F src/gpydat3_62.F src/gpymssm.F src/gpyssmt.F
-   src/gpyint1.F src/gpyint2.F src/gpyint5.F src/gpytcsm.F
-   src/initpyblock.F src/openrandom.F src/opdcay.F src/pyr.F src/extproc.F
-   src/gatlastaula_decres_py.F src/atopyt.F src/opensusyfile.F
-   src/PythiaDummies/pyevwt.F src/PythiaDummies/pykcut.F
-   src/PythiaDummies/pytaud.F src/PythiaDummies/pytime.F
-   src/PythiaDummies/sugra.F src/PythiaDummies/visaje.F
-   src/PythiaDummies/ssmssm.F src/PythiaDummies/fhhiggscorr.F
-   src/PythiaDummies/fhsetflags.F src/PythiaDummies/fhsetpara.F
-   src/PythiaModified/initpyupda.F src/PythiaLLP_i_entries.cxx
-   INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${GSL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-   ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   LINK_LIBRARIES ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES}
-   ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel
-   AcerMC_i GeneratorModulesLib Pythia_iLib Tauola_iLib AthenaKernel StoreGateLib
-   AlpGen_i ExoGraviton_i GeneratorFortranCommonLib GravADD_i MadGraph_i
-   TruthUtils PathResolver CompHep_i MadCUP_i Matchig_i HvGen_i )
-
-atlas_add_component( PythiaResMod_i
-   src/PythiaResMod.cxx src/atlasTuneResMod.cxx src/setPythiaTuneResMod.cxx
-   src/Pydat1.cxx src/Pydatr.cxx src/Pydat2.cxx src/Pydat3_62.cxx
-   src/Pyssmt.cxx src/Pysubs.cxx src/Pypars.cxx src/Pymssm.cxx
-   src/Pyint1.cxx src/Pyint2.cxx src/Pyint5.cxx src/Pytcsm.cxx
-   src/upinit_py.F src/upevnt_py.F src/upveto_py.F src/cldcay.F
-   src/gpydat2.F src/gpydatr.F src/gpypars.F src/gpysubs.F src/gpydat1.F
-   src/gpydat3_62.F src/gpymssm.F src/gpyssmt.F src/gpyint1.F
-   src/gpyint2.F src/gpyint5.F src/gpytcsm.F src/initpyblock.F
-   src/openrandom.F src/opdcay.F src/pyr.F src/extproc.F
-   src/setecm.F src/gatlastaula_decres_py.F src/atopyt.F
-   src/opensusyfile.F src/parout.F src/special_exo.F
-   src/PythiaDummies/pyevwt.F src/PythiaDummies/pykcut.F
-   src/PythiaDummies/pytaud.F src/PythiaDummies/pytime.F
-   src/PythiaDummies/sugra.F src/PythiaDummies/visaje.F
-   src/PythiaDummies/ssmssm.F src/PythiaDummies/fhhiggscorr.F
-   src/PythiaDummies/fhsetflags.F src/PythiaDummies/fhsetpara.F
-   src/PythiaModified/pyrhad.F src/PythiaModified/pysthad.F
-   src/PythiaModified/pysgex.F src/PythiaResMod_i_entries.cxx
-   INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${GSL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-   ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   LINK_LIBRARIES ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES}
-   ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel
-   AcerMC_i GeneratorModulesLib Pythia_iLib Tauola_iLib AthenaKernel StoreGateLib
-   AlpGen_i ExoGraviton_i GeneratorFortranCommonLib GravADD_i MadGraph_i
-   TruthUtils PathResolver CompHep_i MadCUP_i Matchig_i HvGen_i )
-
-atlas_add_component( PythiaTopMdiff_i
-   src/PythiaTopMdiff.cxx src/atlasTuneTopMdiff.cxx
-   src/setPythiaTuneTopMdiff.cxx src/Pydat1.cxx src/Pydatr.cxx src/Pydat2.cxx
-   src/Pydat3_62.cxx src/Pyssmt.cxx src/Pysubs.cxx src/Pypars.cxx
-   src/Pymssm.cxx src/Pyint1.cxx src/Pyint2.cxx src/Pyint5.cxx
-   src/Pytcsm.cxx src/upinit_py.F src/upevnt_py.F src/upveto_py.F
-   src/cldcay.F src/gpydat2.F src/gpydatr.F src/gpypars.F src/gpysubs.F
-   src/gpydat1.F src/gpydat3_62.F src/gpymssm.F src/gpyssmt.F src/gpyint1.F
-   src/gpyint2.F src/gpyint5.F src/gpytcsm.F src/initpyblock.F src/openrandom.F
-   src/opdcay.F src/pyr.F src/extproc.F src/setecm.F src/gatlastaula_decres_py.F
-   src/atopyt.F src/opensusyfile.F src/parout.F src/special_exo.F
-   src/PythiaDummies/pyevwt.F src/PythiaDummies/pykcut.F
-   src/PythiaDummies/pytaud.F src/PythiaDummies/pytime.F
-   src/PythiaDummies/sugra.F src/PythiaDummies/visaje.F
-   src/PythiaDummies/ssmssm.F src/PythiaDummies/fhhiggscorr.F
-   src/PythiaDummies/fhsetflags.F src/PythiaDummies/fhsetpara.F
-   src/PythiaModified/pyscat.F src/PythiaModified/pyofsh.F
-   src/PythiaTopMdiff_i_entries.cxx 
-   INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${GSL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-   ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   LINK_LIBRARIES ${Boost_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES}
-   ${PYTHIA6_LIBRARIES} ${LHAPDF_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel
-   AcerMC_i GeneratorModulesLib Pythia_iLib Tauola_iLib AthenaKernel StoreGateLib
-   AlpGen_i ExoGraviton_i GeneratorFortranCommonLib GravADD_i MadGraph_i
-   TruthUtils PathResolver CompHep_i MadCUP_i Matchig_i HvGen_i )
-
-# Install files from the package:
-atlas_install_headers( PythiaExo_i )
-atlas_install_joboptions( share/*.py )
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Lhefinfo.h b/Generators/PythiaExo_i/PythiaExo_i/Lhefinfo.h
deleted file mode 100644
index b31d0f0a698568e780fff19f83e315d24d9cda70..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Lhefinfo.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef LHEFINFO_h
-#define LHEFINFO_h
-
-extern "C" {
-  void* lhefinfo_address_();
-}
-
-/**
-@class      Lhefinfo.hh
-
-@brief      Class definition for Lhefinfo common block.
-
-@author     Sebastian Piec 
-*/
-
-class Lhefinfo {
-public:
-  Lhefinfo();
-  ~Lhefinfo();
-  
-  inline void init(); // inlined for speed of access (small function)
-
-  int& id1();
-  int& id2();
-  double& x1();
-  double& x2();
-  double& scalePdf();
-  double& xPdf1();
-  double& xPdf2();
-
-private: 
-  struct LHEFINFO;
-  friend struct LHEFINFO;
-
-  struct LHEFINFO 
-  {
-    int id1, id2;
-    double x1, x2;
-    double scalePdf, xPdf1, xPdf2;
-  };
-
-  static LHEFINFO* s_lhefinfo;
-};
-
-#include "Pythia_i/Lhefinfo.icc"
-
-#endif
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat1.h b/Generators/PythiaExo_i/PythiaExo_i/Pydat1.h
deleted file mode 100644
index 4550e6e281b1c97e77a4213906fb3e200f9fbdb8..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat1.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pydat1_h
-#define Pydat1_h
-
-extern "C" {
-  void* pydat1_address_(void);
-}
-
-/**
-@class      Pydat1.hh
-
-@brief      Class definition for Pydat1, which is used
-      to modify the Pythia Pydat1 common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-class Pydat1 {
-public:
-  Pydat1();
-  ~Pydat1();
-  int& mstu(int n);
-  double& paru(int n);
-  int& mstj(int n);
-  double& parj(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMstu() const {return s_lenMstu;}
-  int lenParu() const {return s_lenParu;}
-  int lenMstj() const {return s_lenMstj;}
-  int lenParj() const {return s_lenParj;}
-private: 
-
-  // Lengths of MSTU and PARU COMMONS
-  static const int s_lenMstu = 200;
-  static const int s_lenParu = 200;
-  static const int s_lenMstj = 200;
-  static const int s_lenParj = 200;
-
-  struct PYDAT1;
-  friend struct PYDAT1;
-
-  struct PYDAT1 {
-  int mstu[s_lenMstu];
-  double paru[s_lenParu];
-  int mstj[s_lenMstj];
-  double parj[s_lenParj];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDAT1* s_pydat1;
-};
-
-#include "PythiaExo_i/Pydat1.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat1.icc b/Generators/PythiaExo_i/PythiaExo_i/Pydat1.icc
deleted file mode 100644
index befac7203b5832a25db5bb595a8a0da0f68c5a66..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat1.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat1
-
-// initialise pointer
-void Pydat1::init(void) {
-  if (!s_pydat1) s_pydat1 = static_cast<PYDAT1*>(pydat1_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat2.h b/Generators/PythiaExo_i/PythiaExo_i/Pydat2.h
deleted file mode 100644
index 5c5437ca7705915681d1875caa636545434129af..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat2.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pydat2_h
-#define Pydat2_h
-
-extern "C" {
-  void* pydat2_address_(void);
-}
-/**
-@class      Pydat2.hh
-
-@brief      Class definition for Pydat2, which is used
-      to modify the Pythia Pydat2 common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pydat2 {
-public:
-  Pydat2();
-  ~Pydat2();
-
-  int& kchg(int kc, int i);
-  double& pmas(int kc, int i);
-  double& parf(int n);
-  double& vckm(int i, int j);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int depthKchg() const {return s_depthKchg;}
-  int lenPmas() const {return s_lenPmas;}
-  int depthPmas() const {return s_depthPmas;}
-  int lenParf() const {return s_lenParf;}
-  int lenVckm() const {return s_lenVckm;}
-private: 
-
-  // Lengths of array in PYDAT2 common
-  static const int s_lenPmas   = 500;
-  static const int s_depthPmas = 4;
-  static const int s_depthKchg = 4;
-  static const int s_lenParf   = 2000;
-  static const int s_lenVckm = 4;
-
-  struct PYDAT2;
-  friend struct PYDAT2;
-  struct PYDAT2 {
-  int kchg[s_depthKchg][s_lenPmas];
-  double pmas[s_depthPmas][s_lenPmas];
-  double parf[s_lenParf];
-  double vckm[s_lenVckm][s_lenVckm];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDAT2* s_pydat2;
-};
-
-#include "PythiaExo_i/Pydat2.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat2.icc b/Generators/PythiaExo_i/PythiaExo_i/Pydat2.icc
deleted file mode 100644
index 83bd076d14ab26ea5327ccae1f2c8caacb510964..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat2.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat2
-
-// initialise pointer
-void Pydat2::init(void) {
-  if (!s_pydat2) s_pydat2 = static_cast<PYDAT2*>(pydat2_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat3.h b/Generators/PythiaExo_i/PythiaExo_i/Pydat3.h
deleted file mode 100644
index 100bccceb828fb20663bd578f376e39d4c381598..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat3.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pydat3_h
-#define Pydat3_h
-
-extern "C" {
-  void* pydat3_address_(void);
-}
-/**
-@class      Pydat3.hh
-
-@brief      Class definition for Pydat3, which is used
-      to modify the Pythia Pydat3 common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pydat3 {
-public:
-  Pydat3();
-  ~Pydat3();
-
-  int& mdcy(int kc, int i);
-  int& mdme(int idc, int i);
-  double& brat(int idc);
-  int& kfdp(int idc, int kf);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMdcy() const {return s_lenMdcy;}
-  int depthMdcy() const {return s_depthMdcy;}
-  int lenMdme() const {return s_lenMdme;}
-  int depthMdme() const {return s_depthMdme;}
-  int lenBrat() const {return s_lenBrat;}
-  int lenKfdp() const {return s_lenKfdp;}
-  int depthKfdp() const {return s_depthKfdp;}
-private: 
-
-  // Lengths of array in PYDAT2 common
-  static const int s_lenMdcy = 500;
-  static const int s_depthMdcy = 3;
-  static const int s_lenMdme = 8000;
-  static const int s_depthMdme = 2;
-  static const int s_lenBrat = 8000;
-  static const int s_lenKfdp = 8000;
-  static const int s_depthKfdp = 5;
-
-  struct PYDAT3;
-  friend struct PYDAT3;
-  struct PYDAT3 {
-    int mdcy[s_depthMdcy][s_lenMdcy];
-    int mdme[s_depthMdme][s_lenMdme];
-    double brat[s_lenBrat];
-    int kfdp[s_depthKfdp][s_lenKfdp];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDAT3* s_pydat3;
-};
-
-#include "PythiaExo_i/Pydat3.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat3.icc b/Generators/PythiaExo_i/PythiaExo_i/Pydat3.icc
deleted file mode 100644
index 78bb20f45ba050f6062d39f186fdb8a52d08c98f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat3.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat3
-
-// initialise pointer
-void Pydat3::init(void) {
-  if (!s_pydat3) s_pydat3 = static_cast<PYDAT3*>(pydat3_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat3_61.h b/Generators/PythiaExo_i/PythiaExo_i/Pydat3_61.h
deleted file mode 100644
index 6f96b78ff6a2230586588c5dfb551ffafd17c3f4..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat3_61.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pydat3_h
-#define Pydat3_h
-
-extern "C" {
-  void* pydat3_address_(void);
-}
-
-/**
-
-@class      Pydat3.hh
-
-@brief      Class definition for Pydat3, which is used
-      to modify the Pythia Pydat3 common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pydat3 {
-public:
-  Pydat3();
-  ~Pydat3();
-
-  int& mdcy(int kc, int i);
-  int& mdme(int idc, int i);
-  double& brat(int idc);
-  int& kfdp(int idc, int kf);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMdcy() const {return _lenMdcy;}
-  int depthMdcy() const {return _depthMdcy;}
-  int lenMdme() const {return _lenMdme;}
-  int depthMdme() const {return _depthMdme;}
-  int lenBrat() const {return _lenBrat;}
-  int lenKfdp() const {return _lenKfdp;}
-  int depthKfdp() const {return _depthKfdp;}
-private: 
-
-  // Lengths of array in PYDAT2 common
-  static const int _lenMdcy = 500;
-  static const int _depthMdcy = 3;
-  static const int _lenMdme = 4000;
-  static const int _depthMdme = 2;
-  static const int _lenBrat = 4000;
-  static const int _lenKfdp = 4000;
-  static const int _depthKfdp = 5;
-
-  struct PYDAT3;
-  friend struct PYDAT3;
-  struct PYDAT3 {
-    int mdcy[_depthMdcy][_lenMdcy];
-    int mdme[_depthMdme][_lenMdme];
-    double brat[_lenBrat];
-    int kfdp[_depthKfdp][_lenKfdp];
-  };
-  int _dummy;
-  double _realdummy;
-  static PYDAT3* _pydat3;
-};
-
-#include "PythiaExo_i/Pydat3.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat3_61.icc b/Generators/PythiaExo_i/PythiaExo_i/Pydat3_61.icc
deleted file mode 100644
index b609dd187f48400c5fca60d59f555d22103017cf..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat3_61.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat3
-
-// initialise pointer
-void Pydat3::init(void) {
-  if (!_pydat3) _pydat3 = static_cast<PYDAT3*>(pydat3_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat3_62.h b/Generators/PythiaExo_i/PythiaExo_i/Pydat3_62.h
deleted file mode 100644
index fff468afe012278484e39eb1583053abb456eb42..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat3_62.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pydat3_h
-#define Pydat3_h
-
-extern "C" {
-  void* pydat3_address_(void);
-}
-
-/**
-@class Pydat3.hh
-
-@brief Description:
-      Class definition for Pydat3, which is used
-      to modify the Pythia Pydat3 common.
-
- Environment:
-      CDF Run 2
-
-@author       Chris Green,   Purdue University
-      
-Stan Thompson, Glasgow University    
-
-
- Pythia Common access method
-*/
-
-class Pydat3 {
-public:
-  Pydat3();
-  ~Pydat3();
-
-  int& mdcy(int kc, int i);
-  int& mdme(int idc, int i);
-  double& brat(int idc);
-  int& kfdp(int idc, int kf);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMdcy() const {return s_lenMdcy;}
-  int depthMdcy() const {return s_depthMdcy;}
-  int lenMdme() const {return s_lenMdme;}
-  int depthMdme() const {return s_depthMdme;}
-  int lenBrat() const {return s_lenBrat;}
-  int lenKfdp() const {return s_lenKfdp;}
-  int depthKfdp() const {return s_depthKfdp;}
-private: 
-
-  // Lengths of array in PYDAT2 common
-  static const int s_lenMdcy = 500;
-  static const int s_depthMdcy = 3;
-  static const int s_lenMdme = 8000;
-  static const int s_depthMdme = 2;
-  static const int s_lenBrat = 8000;
-  static const int s_lenKfdp = 8000;
-  static const int s_depthKfdp = 5;
-
-  struct PYDAT3;
-  friend struct PYDAT3;
-  struct PYDAT3 {
-    int mdcy[s_depthMdcy][s_lenMdcy];
-    int mdme[s_depthMdme][s_lenMdme];
-    double brat[s_lenBrat];
-    int kfdp[s_depthKfdp][s_lenKfdp];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDAT3* s_pydat3;
-};
-
-#include "PythiaExo_i/Pydat3.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydat3_62.icc b/Generators/PythiaExo_i/PythiaExo_i/Pydat3_62.icc
deleted file mode 100644
index b609dd187f48400c5fca60d59f555d22103017cf..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydat3_62.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat3
-
-// initialise pointer
-void Pydat3::init(void) {
-  if (!_pydat3) _pydat3 = static_cast<PYDAT3*>(pydat3_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydatr.h b/Generators/PythiaExo_i/PythiaExo_i/Pydatr.h
deleted file mode 100644
index 2225981a3e81161bc8173b9336ea70a9d59e7f4a..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydatr.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pydatr_h
-#define Pydatr_h
-
-extern "C" {
-  void* pydatr_address_(void);
-}
-
-/**
-@class     Pydatr.hh
-
-@brief Description:
-      Class definition for Pydatr, which is used
-      to modify the Pythia Pydatr common.
-
- Environment:
-      CDF Run 2
-
-@author
-      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-class Pydatr {
-public:
-  Pydatr();
-  ~Pydatr();
-  int& mrpy(int n);
-  double& rrpy(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMrpy() const {return s_lenMrpy;}
-  int lenRrpy() const {return s_lenRrpy;}
-private: 
-
-  // Lengths of array in PYDATR common
-  static const int s_lenMrpy = 6;
-  static const int s_lenRrpy = 100;
-  struct PYDATR;
-  friend struct PYDATR;
-  struct PYDATR {
-  int mrpy[s_lenMrpy];
-  double rrpy[s_lenRrpy];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDATR* s_pydatr;
-};
-
-#include "PythiaExo_i/Pydatr.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pydatr.icc b/Generators/PythiaExo_i/PythiaExo_i/Pydatr.icc
deleted file mode 100644
index 273eee3d694b727b589a2290c5bd308403d3ac76..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pydatr.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydatr
-
-// initialise pointer
-void Pydatr::init(void) {
-  if (!s_pydatr) s_pydatr = static_cast<PYDATR*>(pydatr_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pyint1.h b/Generators/PythiaExo_i/PythiaExo_i/Pyint1.h
deleted file mode 100644
index 6d1c0c8dbbd3194307f9e498919068b1a7aa6d3a..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pyint1.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pyint1_h
-#define Pyint1_h
-extern "C" {
-  void* pyint1_address_(void);
-}
-/**
-@class      Pyint1.h
-
-@brief      Class definition for Pyint1, which is used
-      to modify the Pythia Pyint1 common.
-
- Environment:
-     ATLAS/ATHENA
-
-@author      Elzbieta Richter-Was, Cracow INP  
-
- Pythia Common access method
-*/
-
-class Pyint1 {
-public:
-  Pyint1();
-  ~Pyint1();
-  int& mint(int n);
-  double& vint(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMint() const {return s_lenMint;}
-  int lenVint() const {return s_lenVint;}
-private: 
-
-  // Lengths of MINT and VINT COMMONS
-  static const int s_lenMint = 400;
-  static const int s_lenVint = 400;
- 
-  struct PYINT1;
-  friend struct PYINT1;
-
-  struct PYINT1 {
-  int mint[s_lenMint];
-  double vint[s_lenVint];
-  };        
-  int m_dummy;
-  double m_realdummy;
-  static PYINT1* s_pyint1;
-};
-#include "PythiaExo_i/Pyint1.icc"
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pyint1.icc b/Generators/PythiaExo_i/PythiaExo_i/Pyint1.icc
deleted file mode 100644
index dd8770f0b54868191317f6bb79d734748be95ed0..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pyint1.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pyint1
-
-// initialise pointer
-void Pyint1::init(void) {
-  if (!s_pyint1) s_pyint1 = static_cast<PYINT1*>(pyint1_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pyint2.h b/Generators/PythiaExo_i/PythiaExo_i/Pyint2.h
deleted file mode 100644
index 3a98dd04e2be2721f90c3d5f64570873dc7eeb58..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pyint2.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pyint2_h
-#define Pyint2_h
-
-extern "C" {
-  void* pyint2_address_(void);
-}
-/**
-
-@class      Pyint2.h
-
-@brief      Class definition for Pyint2, which is used
-      to modify the Pythia Pyint2 common.
-
- Environment:
-      ATLAS/ATHENA
-
-@author      Ian Hinchliffe LBNL  
-
- Pythia Common access method
-*/
-
-class Pyint2 {
-public:
-  Pyint2();
-  ~Pyint2();
-  int& iset(int n);
-  int& kfpr(int n, int i);
-  double& coef(int n, int i);
-  int& icol(int n,int i,int j);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenIset() const {return s_lenIset;}
-  int depthKfpr() const {return s_depthKfpr;}
-  int lenKfpr() const {return s_lenKfpr;}
-  int lenCoef() const {return s_lenCoef;}
-  int depthCoef() const {return s_depthCoef;}
-  int lenIcol() const {return s_lenIcol;}
-  int depthIcol() const {return s_depthIcol;}
-  int widthIcol() const {return s_widthIcol;}
-private: 
-
-  // Lengths of ISET and KFPR COMMONS
-  static const int s_lenIset = 500;
-  static const int s_lenKfpr = 500;
-  static const int s_depthKfpr = 2; 
-  static const int s_lenCoef = 500;
-  static const int s_depthCoef = 20; 
-  static const int s_lenIcol = 40;
-  static const int s_depthIcol = 4; 
-  static const int s_widthIcol = 2; 
-
-  struct PYINT2;
-  friend struct PYINT2;
-
-  struct PYINT2 {
-  int iset[s_lenIset];
-  int kfpr[s_depthKfpr][s_lenKfpr];
-  double coef[s_depthCoef][s_lenCoef];
-  int icol[s_widthIcol][s_depthIcol][s_lenIcol];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYINT2* s_pyint2;
-};
-
-#include "PythiaExo_i/Pyint2.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pyint2.icc b/Generators/PythiaExo_i/PythiaExo_i/Pyint2.icc
deleted file mode 100644
index 7687be646c47a55e902d941a9fd30a6755feadbe..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pyint2.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pyint2
-
-// initialise pointer
-void Pyint2::init(void) {
-  if (!s_pyint2) s_pyint2 = static_cast<PYINT2*>(pyint2_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pyint5.h b/Generators/PythiaExo_i/PythiaExo_i/Pyint5.h
deleted file mode 100644
index 78e0bfa53ead6858343e830c4dc5d1029509efe6..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pyint5.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pyint5_h
-#define Pyint5_h
-
-extern "C" {
-  void* pyint5_address_(void);
-}
-/**
-@class      Pyint5.h
-
-@brief      Class definition for Pyint5, which is used
-      to modify the Pythia Pyint5 common.
-
- Environment:
-      ATLAS/ATHENA
-
-@author      Ian Hinchliffe LBNL  
-
- Pythia Common access method
-*/
-
-class Pyint5 {
-public:
-  Pyint5();
-  ~Pyint5();
-  int& ngenpd();
-  int& ngen(int n, int i);
-  double& xsec(int n, int i);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int depthNgen() const {return s_depthNgen;}
-  int lenNgen() const {return s_lenNgen;}
-  int lenXsec() const {return s_lenXsec;}
-  int depthXsec() const {return s_depthXsec;}
-private: 
-
-  // Lengths of NGENPD and NGEN COMMONS
-  static const int s_lenNgen = 501;
-  static const int s_depthNgen = 3; 
-  static const int s_lenXsec = 501;
-  static const int s_depthXsec = 3; 
-
-  struct PYINT5;
-  friend struct PYINT5;
-
-  struct PYINT5 {
-  int ngenpd;
-  int ngen[s_depthNgen][s_lenNgen];
-  double xsec[s_depthXsec][s_lenXsec];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYINT5* s_pyint5;
-};
-
-#include "PythiaExo_i/Pyint5.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pyint5.icc b/Generators/PythiaExo_i/PythiaExo_i/Pyint5.icc
deleted file mode 100644
index 73afaa3afe5963410da6e5f4afb1a68012c63772..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pyint5.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pyint5
-
-// initialise pointer
-void Pyint5::init(void) {
-  if (!s_pyint5) s_pyint5 = static_cast<PYINT5*>(pyint5_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pymsrv.h b/Generators/PythiaExo_i/PythiaExo_i/Pymsrv.h
deleted file mode 100644
index d365eccc53719364fdd100e22a99785034f54f42..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pymsrv.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//--------------------------------------------------------------------------
-// File and Version Information:
-//      Pymsrv.hh
-//
-// Description:
-//      Class definition for Pymsrv, which is used
-//      to modify the Pythia Pymsrv common.
-//
-//
-// Author List:
-//      Claus Horn
-//
-//------------------------------------------------------------------------
-// Pythia Common access method
-#ifndef PYMSRV_H
-#define PYMSRV_H
-
-extern "C" {
-  void* pymsrv_address_(void);
-}
-
-class Pymsrv {
-public:
-  Pymsrv();
-  ~Pymsrv();
-
-  double& rvlam(int n);
-  double& rvlamp(int n);
-  double& rvlamb(int n);
-
-  int lenRVlam() const {return 27;}
-  int lenRVlamp() const {return 27;}
-  int lenRVlamb() const {return 27;}
-
-  inline void init();
-
-private: 
-
-  struct PYMSRV;
-  friend struct PYMSRV;
-
-  struct PYMSRV {
-    double rvlam[3][3][3];
-    double rvlamp[3][3][3];
-    double rvlamb[3][3][3];
-  };
-
-  double m_dummy;
-  double m_realdummy;
-
-  static PYMSRV* s_pymsrv;
-};
-
-#include "Pythia_i/Pymsrv.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pymsrv.icc b/Generators/PythiaExo_i/PythiaExo_i/Pymsrv.icc
deleted file mode 100644
index c12fd8bc7d1dff0706678fe388c6fe613a8da9c6..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pymsrv.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pymsrv
-
-// initialise pointer
-void Pymsrv::init(void) {
-  if (!s_pymsrv) s_pymsrv = static_cast<PYMSRV*>(pymsrv_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pymssm.h b/Generators/PythiaExo_i/PythiaExo_i/Pymssm.h
deleted file mode 100644
index 3e86b8684438edfc32313ea3a5b321951a002e04..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pymssm.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef PYMSSM_H
-#define PYMSSM_H
-
-extern "C" {
-  void* pymssm_address_(void);
-}
-/**
-@class      Pymssm.hh
-
-@brief      Class definition for Pymssm, which is used
-      to modify the Pythia Pymssm common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-class Pymssm {
-public:
-  Pymssm();
-  ~Pymssm();
-
-  int& imss(int n);
-  double& rmss(int n);
-
-  int lenImss() const {return s_lenImss;}
-  int lenRmss() const {return s_lenRmss;}
-
-  inline void init();
-
-private: 
-
-  static const int s_lenImss = 100;
-  static const int s_lenRmss = 100;
-
-  struct PYMSSM;
-  friend struct PYMSSM;
-
-  struct PYMSSM {
-    int imss[s_lenImss];
-    double rmss[s_lenRmss];
-  };
-
-  int m_dummy;
-  double m_realdummy;
-
-  static PYMSSM* s_pymssm;
-};
-
-#include "PythiaExo_i/Pymssm.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pymssm.icc b/Generators/PythiaExo_i/PythiaExo_i/Pymssm.icc
deleted file mode 100644
index f7657d2ce9477772def020ed3eb9499394d73824..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pymssm.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pymssm
-
-// initialise pointer
-void Pymssm::init(void) {
-  if (!s_pymssm) s_pymssm = static_cast<PYMSSM*>(pymssm_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pypars.h b/Generators/PythiaExo_i/PythiaExo_i/Pypars.h
deleted file mode 100644
index 06b7142a76d74f5c3d4a90c1dd4c9aed8d5616e6..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pypars.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pypars_h
-#define Pypars_h
-
-extern "C" {
-  void* pypars_address_(void);
-}
-/**
-@class      Pypars.hh
-
-@brief      Class definition for Pypars, which is used
-      to modify the Pythia Pypars common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pypars {
-public:
-  Pypars();
-  ~Pypars();
-  int& mstp(int n);
-  double& parp(int n);
-  int& msti(int n);
-  double& pari(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMstp() const {return s_lenMstp;}
-  int lenParp() const {return s_lenParp;}
-  int lenMsti() const {return s_lenMsti;}
-  int lenPari() const {return s_lenPari;}
-private: 
-
-  // Lengths of MSTU and PARU COMMONS
-  static const int s_lenMstp = 200;
-  static const int s_lenParp = 200;
-  static const int s_lenMsti = 200;
-  static const int s_lenPari = 200;
-
-  struct PYPARS;
-  friend struct PYPARS;
-  struct PYPARS {
-  int mstp[s_lenMstp];
-  double parp[s_lenParp];
-  int msti[s_lenMsti];
-  double pari[s_lenPari];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYPARS* s_pypars;
-};
-
-#include "PythiaExo_i/Pypars.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pypars.icc b/Generators/PythiaExo_i/PythiaExo_i/Pypars.icc
deleted file mode 100644
index fa7d61023695bf45bdd7e29a6903f942e3a95d68..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pypars.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pypars
-
-// initialise pointer
-void Pypars::init(void) {
-  if (!s_pypars) s_pypars = static_cast<PYPARS*>(pypars_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pypevwt.h b/Generators/PythiaExo_i/PythiaExo_i/Pypevwt.h
deleted file mode 100644
index 69c6fd600aa14071ce2e00ae4622911548a1b4be..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pypevwt.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYPEVWT_H
-#define PYPEVWT_H
-
-extern "C"{
-  void* pypevwt_address_(void);
-}
-
-/**
-@class      Pypevwt.h
-
-@brief      Class definition for Pypevwt, which is used
-            to modify the Pythia Pypevwt common block that holds variables related
-            to event weighting.
-        
-@author     Eric Feng (Chicago):  Eric.Feng@cern.ch,   March 2010
-
-*/
-
-class Pypevwt 
-{
-  //______________________________________________________________________
-  //public methods and members
-  public:
-
-  //constructor and destructor
-  Pypevwt();
-  ~Pypevwt();
-  
-  int& ievwt(int n);
-  double& revwt(int n);
-
-  int lenIevwt() const {return s_lenIevwt;}
-  int lenRevwt() const {return s_lenRevwt;}
-
-  //PYPEVWT* _pypevwt initialization
-  inline void init();
-  //______________________________________________________________________
-  //private methods and members
- private: 
-  
-  static const int s_lenIevwt = 100;
-  static const int s_lenRevwt = 100;
-
-  //PYPEVWT common block declaration and members
-  struct PYPEVWT;
-  friend struct PYPEVWT;
-
-  struct PYPEVWT
-  {
-    int ievwt[s_lenIevwt];
-    double revwt[s_lenRevwt];
-  };
-
-  int m_dummy;
-  double m_realdummy;
-
-  static PYPEVWT* s_pypevwt;
-};
-
-#include "Pythia_i/Pypevwt.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pypevwt.icc b/Generators/PythiaExo_i/PythiaExo_i/Pypevwt.icc
deleted file mode 100644
index 1dec09ba1e1678ed615a0052fde6ac40aa726215..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pypevwt.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pypevwt
-
-// initialise pointer
-void Pypevwt::init(void) {
-  if (!s_pypevwt) s_pypevwt = static_cast<PYPEVWT*>(pypevwt_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pypued.h b/Generators/PythiaExo_i/PythiaExo_i/Pypued.h
deleted file mode 100644
index 0ea86430c149c077b94024e2a3943c786a586f27..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pypued.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYPUED_H
-#define PYPUED_H
-
-extern "C"{
-  void* pypued_address_(void);
-}
-
-/**
-@class      Pypued.hh
-
-@brief      Class definition for Pypued, which is used
-            to modify the Pythia Pypued common block, which holds variables related
-            to the Universal Extra Dimensions model.
-@author
-
-            L. Mijovic (liza.mijovic@cern.ch), Oct. 2008
-
-*/
-
-class Pypued 
-{
-  //______________________________________________________________________
-  //public methods and members
-  public:
-
-  //constructor and destructor
-  Pypued();
-  ~Pypued();
-  
-  int& iued(int n);
-  double& rued(int n);
-
-  int lenIued() const {return s_lenIued;}
-  int lenRued() const {return s_lenRued;}
-
-  //PYPUED* _pypued initialization
-  inline void init();
-  //______________________________________________________________________
-  //private methods and members
- private: 
-  
-  static const int s_lenIued = 100;
-  static const int s_lenRued = 100;
-
-  //PYPUED common block declaration and members
-  struct PYPUED;
-  friend struct PYPUED;
-
-  struct PYPUED
-  {
-    int iued[s_lenIued];
-    double rued[s_lenRued];
-  };
-
-  int m_dummy;
-  double m_realdummy;
-
-  static PYPUED* s_pypued;
-};
-
-#include "Pythia_i/Pypued.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pypued.icc b/Generators/PythiaExo_i/PythiaExo_i/Pypued.icc
deleted file mode 100644
index e613b6b81ed2c2d191a720853839d2ad93071ec3..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pypued.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pypued
-
-// initialise pointer
-void Pypued::init(void) {
-  if (!s_pypued) s_pypued = static_cast<PYPUED*>(pypued_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pyssmt.h b/Generators/PythiaExo_i/PythiaExo_i/Pyssmt.h
deleted file mode 100644
index 47ef9962b9e75cdf44565594a69c20c1e8e1719f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pyssmt.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef PYSSMT_H
-#define PYSSMT_H
-
-extern "C" {
-  void* pyssmt_address_(void);
-}
-/**
-
-@class      Pyssmt.hh
-
-@brief      Class definition for Pyssmt, which is used
-      to modify the Pythia Pyssmt common.
-
- Environment:
-      CDF Run 2
-
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-class Pyssmt {
-public:
-  Pyssmt();
-  ~Pyssmt();
-
-  const double& zmix(int i, int j) const;
-  const double& umix(int i, int j) const;
-  const double& vmix(int i, int j) const;
-  const double& smz(int i) const;
-  const double& smw(int i) const;
-  const double& sfmix(int i, int j) const;
-
-  inline void init();
-
-private: 
-
-  static const int s_sizeZmix = 4;
-  static const int s_sizeUmix = 2;
-  static const int s_sizeVmix = 2;
-  static const int s_lenSmz = 4;
-  static const int s_lenSmw = 2;
-  static const int s_lenSfmix = 4;
-  static const int s_widthSfmix = 16;
-
-  struct PYSSMT;
-  friend struct PYSSMT;
-
-  struct PYSSMT {
-    double zmix[s_sizeZmix][s_sizeZmix];
-    double umix[s_sizeUmix][s_sizeUmix];
-    double vmix[s_sizeVmix][s_sizeVmix];
-    double smz[s_lenSmz];
-    double smw[s_lenSmw];
-    double sfmix[s_lenSfmix][s_widthSfmix];
-  };
-
-  mutable int m_dummy;
-  mutable double m_realdummy;
-
-  static PYSSMT const * s_pyssmt;
-};
-
-#include "PythiaExo_i/Pyssmt.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pyssmt.icc b/Generators/PythiaExo_i/PythiaExo_i/Pyssmt.icc
deleted file mode 100644
index b29d597c6453df77ae20f913a55fe99906d6cc71..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pyssmt.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pyssmt
-
-// initialise pointer
-void Pyssmt::init(void) {
-  if (!s_pyssmt) s_pyssmt = static_cast<PYSSMT*>(pyssmt_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pysubs.h b/Generators/PythiaExo_i/PythiaExo_i/Pysubs.h
deleted file mode 100644
index 835f891dd5bf5328483352153f6e84484c00b584..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pysubs.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pysubs_h
-#define Pysubs_h
-
-extern "C" {
-  void* pysubs_address_(void);
-}
-
-/**
-@class      Pysubs.hh
-
-@brief      Class definition for Pysubs, which is used
-      to modify the Pythia Pysubs common.
-
- Environment:
-     CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pysubs {
-public:
-  Pysubs();
-  ~Pysubs();
-  int& msel(); 
-  int& msub(int n);
-  int& kfin(int iside, int jflav);
-  double& ckin(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMsub() const {return s_lenMsub;}
-  int lenCkin() const {return s_lenCkin;}
-  int lenKfin() const {return s_lenKfin;}
-  int depthKfin() const {return s_depthKfin;}
-private: 
-
-  // Lengths of array in PYSUBS common
-  static const int s_lenMsub = 500;
-  static const int s_lenCkin = 200;
-  static const int s_lenKfin = 81;
-  static const int s_depthKfin = 2;
-
-  struct PYSUBS;
-  friend struct PYSUBS;
-  struct PYSUBS {
-  int msel;
-  int padding;
-  int msub[s_lenMsub];
-  int kfin[s_lenKfin][s_depthKfin];
-  double ckin[s_lenCkin];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYSUBS* s_pysubs;
-};
-
-#include "PythiaExo_i/Pysubs.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pysubs.icc b/Generators/PythiaExo_i/PythiaExo_i/Pysubs.icc
deleted file mode 100644
index ba48892423c5e63ef4e2ce9a4245c6110146692a..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pysubs.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pysubs
-
-// initialise pointer
-void Pysubs::init(void) {
-  if (!s_pysubs) s_pysubs = static_cast<PYSUBS*>(pysubs_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pytcsm.h b/Generators/PythiaExo_i/PythiaExo_i/Pytcsm.h
deleted file mode 100644
index 813a52e86bb316bb356f2adf20193a86b8b04daa..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pytcsm.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYTCSM_H
-#define PYTCSM_H
-
-extern "C" {
-  void* pytcsm_address_(void);
-}
-/**
-@class   Pytcsm.hh
-
-@brief Description:
-      Class definition for Pytcsm, which is used
-      to modify the Pythia Pytcsm common.
-
-@author      Georgios Stavropoulos, U.C. Berkeley
-
- Pythia Common access method
-*/
-class Pytcsm {
-public:
-  Pytcsm();
-  ~Pytcsm();
-
-  int& itcm(int n);
-  double& rtcm(int n);
-
-  int lenItcm() const {return s_lenItcm;}
-  int lenRtcm() const {return s_lenRtcm;}
-
-  inline void init();
-
-private: 
-
-  static const int s_lenItcm = 100;
-  static const int s_lenRtcm = 100;
-
-  struct PYTCSM;
-  friend struct PYTCSM;
-
-  struct PYTCSM {
-    int itcm[s_lenItcm];
-    double rtcm[s_lenRtcm];
-  };
-
-  int m_dummy;
-  double m_realdummy;
-
-  static PYTCSM* s_pytcsm;
-};
-
-#include "PythiaExo_i/Pytcsm.icc"
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/Pytcsm.icc b/Generators/PythiaExo_i/PythiaExo_i/Pytcsm.icc
deleted file mode 100644
index d6ab0487e908c2aff171eaef95dd78ebda31a55b..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/Pytcsm.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pytcsm
-
-// initialise pointer
-void Pytcsm::init(void) {
-  if (!s_pytcsm) s_pytcsm = static_cast<PYTCSM*>(pytcsm_address_());
-}
-
diff --git a/Generators/PythiaExo_i/PythiaExo_i/PythiaGS.h b/Generators/PythiaExo_i/PythiaExo_i/PythiaGS.h
deleted file mode 100644
index e7216bd35d6db1932b75f9910c493f5fb2d56e9b..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/PythiaGS.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYTHIAEXO_I_PYTHIAGS_H
-#define PYTHIAEXO_I_PYTHIAGS_H
-
-#include "GeneratorModules/GenModule.h"
-#include "PythiaExo_i/Pydat1.h"
-#include "PythiaExo_i/Pydat2.h"
-#include "PythiaExo_i/Pydat3.h"
-#include "PythiaExo_i/Pysubs.h"
-#include "PythiaExo_i/Pypars.h"
-#include "PythiaExo_i/Pydatr.h"
-#include "PythiaExo_i/Pymssm.h"
-#include "PythiaExo_i/Pyint1.h"
-#include "PythiaExo_i/Pyint2.h"
-#include "PythiaExo_i/Pyint5.h"
-#include "PythiaExo_i/Pytcsm.h"
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-using std::string;
-typedef std::vector<std::string> CommandVector;
-//typedef struct { int gravev;  } massesGRAVADD;
-
-class IAtRndmGenSvc;
-
-
-class PythiaGS:public GenModule {
-public:
-  PythiaGS(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~PythiaGS();
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-
-  // Accessors to PYTHIA COMMONS
-  // reference to Pydat1, Pysubs and Pypars
-  Pydat1& pydat1();
-  Pydat2& pydat2();
-  Pydat3& pydat3();
-  Pysubs& pysubs();
-  Pypars& pypars();
-  Pydatr& pydatr();
-  Pymssm& pymssm();
-  Pyint1& pyint1();
-  Pyint2& pyint2();
-  Pyint5& pyint5();
-  Pytcsm& pytcsm();
-  // accessor for external processes
-  AcerMC_acset& acermc_acset();
-
-  static IAtRndmGenSvc* 	p_AtRndmGenSvc;
-  static std::string	pythia_stream;
-
-protected:
-
-  // inputs to pyinit
-  std::string m_frame;
-  std::string m_external; //to specify the specific process when m_frame is set to user
-  std::string m_beam;
-  std::string m_target;
-  double  m_win;
-  int m_gsonly;
-
-  // various input parameters
-  int  m_msel;
-  int  m_firstlistevent;
-  int  m_lastlistevent;
-  int  m_eventlistlevel;
-  std::vector<int>  m_pystatlistlevel;
-  int  m_initlistlevel;
-  int  m_randomseed;
-  std::string  m_envval1;
-  int  m_fortout;
-
-  std::string  m_RndmFileName;
-  int	m_RndmFileNumber;
-  int	m_RndmSwitch;
-  int	m_RndmFirstEvent;
-  int	m_RndmSkipEvents;
-  int	m_RndmMOVE;
-  int	m_RndmFileLength;
-
-  std::vector<long int> m_seeds;
-
-  // event counter
-  int m_events ;
-  Pysubs m_pysubs;
-  // Decay table handling
-  //  AbsParmEnum _decayFileMode;
-  // AbsParmFilename _decayFile;
-  // Pydat1 data, methods
-  Pydat1 m_pydat1;
-  // Pypars data, methods
-  Pypars m_pypars;
-  // Pydat2 data, methods
-  Pydat2 m_pydat2;
-  // Pydat3 data, methods
-  Pydat3 m_pydat3;
-  // Pydatr access for random numbers (only set the 1st seed just now
-  Pydatr m_pydatr;
-  // Pyint1 access for data
-  Pyint1 m_pyint1;
-  // Pyint2 access for data
-  Pyint2 m_pyint2;
-  // Pyint5 access for data
-  Pyint5 m_pyint5;
-  // SUSY access
-  Pymssm m_pymssm;
-  // PYTCSM access
-  Pytcsm m_pytcsm;
-  // external proces
-  int m_ExternalProcess;
-  AcerMC_acset m_acermc_acset;
-
-  // Private helper method to initialize talk-to
-  //	void _initializeTalkTo();
-
-  // Commands to setup pythia
-  CommandVector m_pythiaCommandVector;
-
-  // Control to set the ATLAS defaults
-  bool m_AtlasDefaults;
-
-  // The susy file name
-  std::string m_read_Filesusy;
-
-  // Method to Manage the random seed IO from/to a file
-  void	RandomNumberIO(void);
-
-  // I/O to HEPEVT
-  void store_Atlas_HEPEVT(void);
-
-  static Atlas_HEPEVT* s_atlas_HEPEVT;
-  // massesGRAVADD masses_;
-
-  double m_sum_pari10;
-  double m_sum_w;
-
-};
-
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/PythiaLLP.h b/Generators/PythiaExo_i/PythiaExo_i/PythiaLLP.h
deleted file mode 100644
index e9a649db2f5e9eb0bad04367d47438d197c64762..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/PythiaLLP.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYTHIAEXO_I_PYTHIALLP_H
-#define PYTHIAEXO_I_PYTHIALLP_H
-
-#include "GeneratorModules/GenModule.h"
-#include "PythiaExo_i/Pydat1.h"
-#include "PythiaExo_i/Pydat2.h"
-#include "PythiaExo_i/Pydat3.h"
-#include "PythiaExo_i/Pysubs.h"
-#include "PythiaExo_i/Pypars.h"
-#include "PythiaExo_i/Pydatr.h"
-#include "PythiaExo_i/Pymssm.h"
-#include "PythiaExo_i/Pyint1.h"
-#include "PythiaExo_i/Pyint2.h"
-#include "PythiaExo_i/Pyint5.h"
-#include "PythiaExo_i/Pytcsm.h"
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-using std::string; // @todo ...and then it _isn't_ used without std::!
-typedef std::vector<std::string> CommandVector;
-
-class IAtRndmGenSvc;
-
-
-class PythiaLLP : public GenModule {
-public:
-  PythiaLLP(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~PythiaLLP();
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-
-  // Accessors to PYTHIA COMMONS
-  // reference to Pydat1, Pysubs and Pypars
-  Pydat1& pydat1();
-  Pydat2& pydat2();
-  Pydat3& pydat3();
-  Pysubs& pysubs();
-  Pypars& pypars();
-  Pydatr& pydatr();
-  Pymssm& pymssm();
-  Pyint1& pyint1();
-  Pyint2& pyint2();
-  Pyint5& pyint5();
-  Pytcsm& pytcsm();
-  // accessor for external processes
-  AcerMC_acset& acermc_acset();
-
-  static IAtRndmGenSvc* 	p_AtRndmGenSvc;
-  static std::string	pythia_stream;
-
-protected:
-
-  // inputs to pyinit
-  std::string m_frame;
-  std::string m_external; //to specify the specific process when m_frame is set to user
-  std::string m_beam;
-  std::string m_target;
-  double  m_win;
-
-  // various input parameters
-  int  m_msel;
-  int  m_firstlistevent;
-  int  m_lastlistevent;
-  int  m_eventlistlevel;
-  std::vector<int>  m_pystatlistlevel;
-  int  m_initlistlevel;
-  int  m_randomseed;
-  std::string  m_envval1;
-  int  m_fortout;
-
-  std::string  m_RndmFileName;
-  int	m_RndmFileNumber;
-  int	m_RndmSwitch;
-  int	m_RndmFirstEvent;
-  int	m_RndmSkipEvents;
-  int	m_RndmMOVE;
-  int	m_RndmFileLength;
-
-  std::vector<long int> m_seeds;
-
-  // event counter
-  int m_events ;
-  Pysubs m_pysubs;
-  // Decay table handling
-  //  AbsParmEnum _decayFileMode;
-  // AbsParmFilename _decayFile;
-  // Pydat1 data, methods
-  Pydat1 m_pydat1;
-  // Pypars data, methods
-  Pypars m_pypars;
-  // Pydat2 data, methods
-  Pydat2 m_pydat2;
-  // Pydat3 data, methods
-  Pydat3 m_pydat3;
-  // Pydatr access for random numbers (only set the 1st seed just now
-  Pydatr m_pydatr;
-  // Pyint1 access for data
-  Pyint1 m_pyint1;
-  // Pyint2 access for data
-  Pyint2 m_pyint2;
-  // Pyint5 access for data
-  Pyint5 m_pyint5;
-  // SUSY access
-  Pymssm m_pymssm;
-  // PYTCSM access
-  Pytcsm m_pytcsm;
-  // external proces
-  int m_ExternalProcess;
-  AcerMC_acset m_acermc_acset;
-
-  // Private helper method to initialize talk-to
-  //	void _initializeTalkTo();
-
-  // Commands to setup pythia
-  CommandVector m_pythiaCommandVector;
-
-  // Control to set the ATLAS defaults
-  bool m_AtlasDefaults;
-
-  // The susy file name
-  std::string m_read_Filesusy;
-
-  //
-  std::string m_LLP_PYUPDA_file;
-
-  // Method to Manage the random seed IO from/to a file
-  void	RandomNumberIO(void);
-
-  // I/O to HEPEVT
-  void store_Atlas_HEPEVT(void);
-
-  static Atlas_HEPEVT* s_atlas_HEPEVT;
-};
-
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/PythiaMono.h b/Generators/PythiaExo_i/PythiaExo_i/PythiaMono.h
deleted file mode 100644
index 594cafdfaebcee4a3db25de1c4e4eb768241585a..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/PythiaMono.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYTHIAEXO_I_PYTHIAMONO_H
-#define PYTHIAEXO_I_PYTHIAMONO_H
-#include "GeneratorModules/GenModule.h"
-#include "PythiaExo_i/Pydat1.h"
-#include "PythiaExo_i/Pydat2.h"
-#include "PythiaExo_i/Pydat3.h"
-#include "PythiaExo_i/Pysubs.h"
-#include "PythiaExo_i/Pypars.h"
-#include "PythiaExo_i/Pydatr.h"
-#include "PythiaExo_i/Pymssm.h"
-// #include "PythiaExo_i/Pypued.h"
-// #include "PythiaExo_i/Pymsrv.h"
-#include "PythiaExo_i/Pyint1.h"
-#include "PythiaExo_i/Pyint2.h"
-#include "PythiaExo_i/Pyint5.h"
-#include "PythiaExo_i/Pytcsm.h"
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-using std::string;
-typedef std::vector<std::string> CommandVector;
-
-class IAtRndmGenSvc;
-
-
-class PythiaMono : public GenModule {
-public:
-  PythiaMono(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~PythiaMono();
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-
-  // Accessors to PYTHIA COMMONS
-  // reference to Pydat1, Pysubs and Pypars
-  Pydat1& pydat1();
-  Pydat2& pydat2();
-  Pydat3& pydat3();
-  Pysubs& pysubs();
-  Pypars& pypars();
-  Pydatr& pydatr();
-  Pymssm& pymssm();
-  //  Pypued& pypued();
-  //  Pymsrv& pymsrv();
-  Pyint1& pyint1();
-  Pyint2& pyint2();
-  Pyint5& pyint5();
-  Pytcsm& pytcsm();
-  // accessor for external processes
-  AcerMC_acset& acermc_acset();
-
-  static IAtRndmGenSvc* p_AtRndmGenSvc;
-  static std::string pythia_stream;
-
-protected:
-
-  // inputs to pyinit
-  std::string m_frame;
-  std::string m_external; //to specify the specific process when m_frame is set to user
-  std::string m_beam;
-  std::string m_target;
-  double  m_win;
-
-  // various input parameters
-  int  m_msel;
-  int  m_firstlistevent;
-  int  m_lastlistevent;
-  int  m_eventlistlevel;
-  std::vector<int>  m_pystatlistlevel;
-  int  m_initlistlevel;
-  int  m_randomseed;
-  std::string  m_envval1;
-  int  m_fortout;
-
-  std::string  m_RndmFileName;
-  int	m_RndmFileNumber;
-  int	m_RndmSwitch;
-  int	m_RndmFirstEvent;
-  int	m_RndmSkipEvents;
-  int	m_RndmMOVE;
-  int	m_RndmFileLength;
-
-  std::vector<long int> m_seeds;
-
-  // event counter
-  int m_events ;
-  Pysubs m_pysubs;
-  // Decay table handling
-  //  AbsParmEnum _decayFileMode;
-  // AbsParmFilename _decayFile;
-  // Pydat1 data, methods
-  Pydat1 m_pydat1;
-  // Pypars data, methods
-  Pypars m_pypars;
-  // Pydat2 data, methods
-  Pydat2 m_pydat2;
-  // Pydat3 data, methods
-  Pydat3 m_pydat3;
-  // Pydatr access for random numbers (only set the 1st seed just now
-  Pydatr m_pydatr;
-  // Pyint1 access for data
-  Pyint1 m_pyint1;
-  // Pyint2 access for data
-  Pyint2 m_pyint2;
-  // Pyint5 access for data
-  Pyint5 m_pyint5;
-  // SUSY access
-  Pymssm m_pymssm;
-  // UED access
-  //  Pypued m_pypued;
-  // RPV
-  //  Pymsrv m_pymsrv;
-  // PYTCSM access
-  Pytcsm m_pytcsm;
-  // external proces
-  int m_ExternalProcess;
-  AcerMC_acset m_acermc_acset;
-
-  // Private helper method to initialize talk-to
-  //	void _initializeTalkTo();
-
-  // Commands to setup pythia
-  CommandVector m_pythiaCommandVector;
-
-  // Control to set the ATLAS defaults
-  bool m_AtlasDefaults;
-
-  // The susy file name
-  std::string m_read_Filesusy;
-
-  // Method to Manage the random seed IO from/to a file
-  void	RandomNumberIO(void);
-
-  // I/O to HEPEVT
-  void store_Atlas_HEPEVT(void);
-
-  static Atlas_HEPEVT* s_atlas_HEPEVT;
-};
-
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/PythiaResMod.h b/Generators/PythiaExo_i/PythiaExo_i/PythiaResMod.h
deleted file mode 100644
index d10eeceece609082eb0c6718786858c7a72e9b18..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/PythiaResMod.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENERATORMODULESPYTHIARESMOD_H
-#define GENERATORMODULESPYTHIARESMOD_H
-
-#include "GeneratorModules/GenModule.h"
-
-#include "PythiaExo_i/Pydat1.h"
-#include "PythiaExo_i/Pydat2.h"
-#include "PythiaExo_i/Pydat3.h"
-#include "PythiaExo_i/Pysubs.h"
-#include "PythiaExo_i/Pypars.h"
-#include "PythiaExo_i/Pydatr.h"
-#include "PythiaExo_i/Pymssm.h"
-#include "PythiaExo_i/Pypued.h"
-#include "PythiaExo_i/Pypevwt.h"
-#include "PythiaExo_i/Pymsrv.h"
-#include "PythiaExo_i/Pyint1.h"
-#include "PythiaExo_i/Pyint2.h"
-#include "PythiaExo_i/Pyint5.h"
-#include "PythiaExo_i/Pytcsm.h"
-
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-/// @todo Not in a header file!
-using std::string;
-
-/// @todo Inside class (these are being declared as global symbols)
-typedef std::vector<std::string> CommandVector;
-typedef std::vector<std::string> PygiveCommandVector;
-
-// Forward declaration of RNG service interface
-class IAtRndmGenSvc;
-
-
-/***
-@brief ~ carbon copy of Pythia.h for ResMod class 
-PythiaModifies/pysgex.F modifications introduced for W' and Z' [ISUB 141,142]
-   set PythiaResMod.UseResMod=1 to use it
-***/
-
-
-class PythiaResMod : public GenModule {
-public:
-
-  /// @name Construction / destruction
-  //@{
-  /// Standard constructor
-  PythiaResMod(const std::string& name, ISvcLocator* pSvcLocator);
-  /// Destructor
-  virtual ~PythiaResMod();
-  //@}
-
-
-  /// @name Event loop methods
-  //@{
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-  //@}
-
-
-  /// @name Tune switches
-  /// @brief ATLAS tune and parameters implementation, introduced for MC09/MC08. See atlasTune.cxx
-  //@{
-
-  /// Set tune via function call 
-  StatusCode setPythiaTune();
-
-  /// Use current ATLAS tune 
-  StatusCode atlasTune();
-
-  //@}
-
-
-  /// @ name Accessors to PYTHIA COMMONS
-  //@{
-  Pydat1& pydat1();
-  Pydat2& pydat2();
-  Pydat3& pydat3();
-  Pysubs& pysubs();
-  Pypars& pypars();
-  Pydatr& pydatr();
-  Pymssm& pymssm();
-  Pypued& pypued();
-  Pypevwt& pypevwt();
-  Pymsrv& pymsrv();
-  Pyint1& pyint1();
-  Pyint2& pyint2();
-  Pyint5& pyint5();
-  Pytcsm& pytcsm();
-  //@}
-
-  /// Accessor for external processes
-  AcerMC_acset& acermc_acset();
-
-  // Pointer to AtRndmGenSvc
-  static IAtRndmGenSvc* p_AtRndmGenSvc;
-  static std::string pythia_stream;
-
-
-protected:
-
-  // Settable Properties
-
-  /// @name Inputs to @c pyinit
-  //@{
-  std::string m_frame;
-  std::string m_external; //to specify the specific process when m_frame is set to user
-  std::string m_beam;
-  std::string m_target;
-  double m_win;
-  int m_UseResMod;
-  //@}
-
-
-  /// Tune setting, assumed form is  m_Default_Tune_Name=TUNETYPE_TUNEINDEX
-  std::string m_Tune_Name;  
-
-  /// PYGIVE argument as C string
-  const char* m_pygive_cstr;
-  const char* m_pygive_init_cstr;
-  const char* m_pygive_gen_cstr;
-
-  /// @name Various input parameters
-  //@{
-  int  m_msel;
-  int  m_firstlistevent;
-  int  m_lastlistevent;
-  int  m_eventlistlevel;
-  std::vector<int>  m_pystatlistlevel;
-  int  m_initlistlevel;
-  int  m_randomseed;
-  std::string  m_envval1;
-  int  m_fortout;
-  //@}
-
-  /// @name Random file numbers, offsets, etc.
-  //@{
-  std::string  m_RndmFileName;
-  int	m_RndmFileNumber;
-  int	m_RndmSwitch;
-  int	m_RndmFirstEvent;
-  int	m_RndmSkipEvents;
-  int	m_RndmMOVE;
-  int	m_RndmFileLength;
-  //@}
-
-  /// RNG seeds
-  std::vector<long int> m_seeds;
-
-  /// Event counter
-  int m_events;
-
-  /// @name Common blocks
-  //@{
-  /// Subprocess switches
-  Pysubs m_pysubs;
-  /// Pydat1 data, methods 
-  Pydat1 m_pydat1;  
-  /// Pypars data, methods 
-  Pypars m_pypars;
-  /// Pydat2 data, methods 
-  Pydat2 m_pydat2;
-  /// Pydat3 data, methods 
-  Pydat3 m_pydat3;  
-  /// Pydatr access for random numbers (only set the 1st seed just now
-  Pydatr m_pydatr;
-  /// Pyint1 access for data
-  Pyint1 m_pyint1;
-  /// Pyint2 access for data
-  Pyint2 m_pyint2;	
-  /// Pyint5 access for data
-  Pyint5 m_pyint5;	
-  /// SUSY access
-  Pymssm m_pymssm; 
-  /// UED access
-  Pypued m_pypued;
-  // Event weight access
-  Pypevwt m_pypevwt; 
-  /// RPV
-  Pymsrv m_pymsrv; 
-  /// PYTCSM access
-  Pytcsm m_pytcsm; 
-  //@}
-
-  /// External process
-  int m_ExternalProcess; 
-  AcerMC_acset m_acermc_acset;
-
-//sgluon
-  bool m_addParticle;
-
-  // Commands to setup pythia
-  CommandVector m_pythiaCommandVector;
-  // Commands to setup pythia / make param. querries - via PYGIVE:
-  // pass parameters or querry parameter value before PYINIT
-  PygiveCommandVector m_PygiveCommandVector;
-  // querry parameter value after PYINIT e.g. to check if initializaton resets the value
-  PygiveCommandVector m_Param_Query_AfterInit;
-  // querry parameter value after PYEVNT e.g. to get event-specific param. value
-  PygiveCommandVector m_Param_Query_AfterGen;
-
-  /// @deprecated ???
-  bool m_AtlasDefaults;
-
-  /// @name Tunes implemented as switches
-  /// @deprecated Kept for backward compatibility -- strongly prefer to use Tune_Name flag 
-  //@{
-  /** use ATLAS PYTHIA technical settings [default:true]
-      eventRecord, errors*/
-  bool m_useAtlasPythiaRecomm, m_Default_useAtlasPythiaRecomm; 
-  /**use ATLAS PYTHIA parameters [default:true]
-      masses, dec. widths, etc. */
-  bool m_useAtlasPythiaCommon,m_Default_useAtlasPythiaCommon; 
-  /** complete mc09 tune Pythia parameters set [default:true]*/
-  bool m_useAtlasPythiaTune09,m_Default_useAtlasPythiaTune09;
-  /**complete mc08 tune Pythia parameters set [default:false]
-     if set to true overrides mc09 tune, 
-     mc09 should be set to false in order to use mc08 only */
-  bool m_useAtlasPythiaTune08,m_Default_useAtlasPythiaTune08;
-  /** use no ATLAS PYTHIA settings, apart from pynit inputs [default:false]*/
-  bool m_useNoAtlasPythiaParam,m_Default_useNoAtlasPythiaParam;
-
-
-  ///call pytune directly in case any parameters set py the tune are to be overwritten from jO
-  //@{
-  int m_direct_call_to_pytune;
-  //@}
-
-  /// The susy file name
-  std::string m_read_Filesusy; 
-
-  //-----------------------------------------------------------------------------
-
-  /// @name Other class members (not properties)
-  //@{
-
-  // more tune-related vars:
-  //m_Tune_Index  see AtlasTune.cxx for catalogue
-  //m_Default_Tune_Name=TUNETYPE_TUNEINDEX
-  //so that (after parsing in Pythia.cxx): m_Tune_Type=TUNETYPE and m_Tune_Index=TUNEINDEX
-  int  m_Tune_Index;
-  std::string m_Tune_Type;
-  // needed in tune setting for protection against tune-seting inf. loop
-  int m_atlasTune_loop_prot;
-  //tune to be assumed by default and in cases of invalid TUNETYPE or TUNEINDEX when TUNETYPE=="ATLAS"
-  std::string m_Default_Tune_Name, m_Default_Tune_Type; int m_Default_Tune_Index;
-  // dummy starting tune string
-  std::string m_Starting_Tune_Name, m_Starting_Tune_Type; int m_Starting_Tune_Index;
-  // backward compatibility with early 08/09 jO when tunes were impl. as switches:
-  // to be updated if MC08 and MC09 tunes Tune_Type or Tune_Index are changed 
-  std::string m_mc0809_Tune_Type;
-  int m_mc09_Tune_Index;
-  int m_mc08_Tune_Index;
-  // 
-
-  //@}
-
-  // multiply x-section by a num. factor
-  // add both in the MetaData print-out 
-  double m_Default_xsscale, m_xsscale; 
-
-  // print out manually set x-section from the MetaData 
-  double m_Default_SetCrossSection, m_SetCrossSection;
-
-  /// Method to Manage the random seed IO from/to a file
-  void RandomNumberIO();
-
-  /// I/O to HEPEVT
-  void store_Atlas_HEPEVT();
-
-  /// TAUOLA HEPEVT
-  static Atlas_HEPEVT* s_atlas_HEPEVT;
-};
-
-
-#endif
diff --git a/Generators/PythiaExo_i/PythiaExo_i/PythiaTau3Mu.h b/Generators/PythiaExo_i/PythiaExo_i/PythiaTau3Mu.h
deleted file mode 100644
index 089062540c69135df724ae951cddb145d3783d90..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/PythiaTau3Mu.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#pragma once
-#include "Pythia_i/Pythia.h"
-#include "GeneratorModules/GenModule.h"
-
-class PythiaTau3Mu:public Pythia {
- public:
-  PythiaTau3Mu(const std::string& name, ISvcLocator* pSvcLocator);
-  ~PythiaTau3Mu();
-};
diff --git a/Generators/PythiaExo_i/PythiaExo_i/PythiaTopMdiff.h b/Generators/PythiaExo_i/PythiaExo_i/PythiaTopMdiff.h
deleted file mode 100644
index f7b84f581da38425be07f908f289aba501adbb63..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/PythiaExo_i/PythiaTopMdiff.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENERATORMODULESPYTHIATOPMDIFF_H
-#define GENERATORMODULESPYTHIATOPMDIFF_H
-
-#include "GeneratorModules/GenModule.h"
-
-#include "PythiaExo_i/Pydat1.h"
-#include "PythiaExo_i/Pydat2.h"
-#include "PythiaExo_i/Pydat3.h"
-#include "PythiaExo_i/Pysubs.h"
-#include "PythiaExo_i/Pypars.h"
-#include "PythiaExo_i/Pydatr.h"
-#include "PythiaExo_i/Pymssm.h"
-#include "PythiaExo_i/Pypued.h"
-#include "PythiaExo_i/Pypevwt.h"
-#include "PythiaExo_i/Pymsrv.h"
-#include "PythiaExo_i/Pyint1.h"
-#include "PythiaExo_i/Pyint2.h"
-#include "PythiaExo_i/Pyint5.h"
-#include "PythiaExo_i/Pytcsm.h"
-
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-/// @todo Not in a header file!
-using std::string;
-
-/// @todo Inside class (these are being declared as global symbols)
-typedef std::vector<std::string> CommandVector;
-typedef std::vector<std::string> PygiveCommandVector;
-
-// Forward declaration of RNG service interface
-class IAtRndmGenSvc;
-
-
-/***
-@brief ~ carbon copy of Pythia.h for Top class 
-PythiaModifies/pyofsh.F pyscat.F modifications introduced in order to enable t and tbar to have different masses
-   set PythiaTopMdiff.UseTopMdiff=1 to use it
-***/
-
-
-class PythiaTopMdiff : public GenModule {
-public:
-
-  /// @name Construction / destruction
-  //@{
-  /// Standard constructor
-  PythiaTopMdiff(const std::string& name, ISvcLocator* pSvcLocator);
-  /// Destructor
-  virtual ~PythiaTopMdiff();
-  //@}
-
-
-  /// @name Event loop methods
-  //@{
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-  //@}
-
-
-  /// @name Tune switches
-  /// @brief ATLAS tune and parameters implementation, introduced for MC09/MC08. See atlasTune.cxx
-  //@{
-
-  /// Set tune via function call 
-  StatusCode setPythiaTune();
-
-  /// Use current ATLAS tune 
-  StatusCode atlasTune();
-
-  //@}
-
-
-  /// @ name Accessors to PYTHIA COMMONS
-  //@{
-  Pydat1& pydat1();
-  Pydat2& pydat2();
-  Pydat3& pydat3();
-  Pysubs& pysubs();
-  Pypars& pypars();
-  Pydatr& pydatr();
-  Pymssm& pymssm();
-  Pypued& pypued();
-  Pypevwt& pypevwt();
-  Pymsrv& pymsrv();
-  Pyint1& pyint1();
-  Pyint2& pyint2();
-  Pyint5& pyint5();
-  Pytcsm& pytcsm();
-  //@}
-
-  /// Accessor for external processes
-  AcerMC_acset& acermc_acset();
-
-  // Pointer to AtRndmGenSvc
-  static IAtRndmGenSvc* p_AtRndmGenSvc;
-  static std::string pythia_stream;
-
-
-protected:
-
-  // Settable Properties
-
-  /// @name Inputs to @c pyinit
-  //@{
-  std::string m_frame;
-  std::string m_external; //to specify the specific process when m_frame is set to user
-  std::string m_beam;
-  std::string m_target;
-  double m_win;
-  int m_UseTopMdiff;
-  //@}
-
-
-  /// Tune setting, assumed form is  m_Default_Tune_Name=TUNETYPE_TUNEINDEX
-  std::string m_Tune_Name;  
-
-  /// PYGIVE argument as C string
-  const char* m_pygive_cstr;
-  const char* m_pygive_init_cstr;
-  const char* m_pygive_gen_cstr;
-
-  /// @name Various input parameters
-  //@{
-  int  m_msel;
-  int  m_firstlistevent;
-  int  m_lastlistevent;
-  int  m_eventlistlevel;
-  std::vector<int>  m_pystatlistlevel;
-  int  m_initlistlevel;
-  int  m_randomseed;
-  std::string  m_envval1;
-  int  m_fortout;
-  //@}
-
-  /// @name Random file numbers, offsets, etc.
-  //@{
-  std::string  m_RndmFileName;
-  int	m_RndmFileNumber;
-  int	m_RndmSwitch;
-  int	m_RndmFirstEvent;
-  int	m_RndmSkipEvents;
-  int	m_RndmMOVE;
-  int	m_RndmFileLength;
-  //@}
-
-  /// RNG seeds
-  std::vector<long int> m_seeds;
-
-  /// Event counter
-  int m_events;
-
-  /// @name Common blocks
-  //@{
-  /// Subprocess switches
-  Pysubs m_pysubs;
-  /// Pydat1 data, methods 
-  Pydat1 m_pydat1;  
-  /// Pypars data, methods 
-  Pypars m_pypars;
-  /// Pydat2 data, methods 
-  Pydat2 m_pydat2;
-  /// Pydat3 data, methods 
-  Pydat3 m_pydat3;  
-  /// Pydatr access for random numbers (only set the 1st seed just now
-  Pydatr m_pydatr;
-  /// Pyint1 access for data
-  Pyint1 m_pyint1;
-  /// Pyint2 access for data
-  Pyint2 m_pyint2;	
-  /// Pyint5 access for data
-  Pyint5 m_pyint5;	
-  /// SUSY access
-  Pymssm m_pymssm; 
-  /// UED access
-  Pypued m_pypued;
-  // Event weight access
-  Pypevwt m_pypevwt; 
-  /// RPV
-  Pymsrv m_pymsrv; 
-  /// PYTCSM access
-  Pytcsm m_pytcsm; 
-  //@}
-
-  /// External process
-  int m_ExternalProcess; 
-  AcerMC_acset m_acermc_acset;
-
-//sgluon
-  bool m_addParticle;
-
-  // Commands to setup pythia
-  CommandVector m_pythiaCommandVector;
-  // Commands to setup pythia / make param. querries - via PYGIVE:
-  // pass parameters or querry parameter value before PYINIT
-  PygiveCommandVector m_PygiveCommandVector;
-  // querry parameter value after PYINIT e.g. to check if initializaton resets the value
-  PygiveCommandVector m_Param_Query_AfterInit;
-  // querry parameter value after PYEVNT e.g. to get event-specific param. value
-  PygiveCommandVector m_Param_Query_AfterGen;
-
-  /// @deprecated ???
-  bool m_AtlasDefaults;
-
-  /// @name Tunes implemented as switches
-  /// @deprecated Kept for backward compatibility -- strongly prefer to use Tune_Name flag 
-  //@{
-  /** use ATLAS PYTHIA technical settings [default:true]
-      eventRecord, errors*/
-  bool m_useAtlasPythiaRecomm, m_Default_useAtlasPythiaRecomm; 
-  /**use ATLAS PYTHIA parameters [default:true]
-      masses, dec. widths, etc. */
-  bool m_useAtlasPythiaCommon,m_Default_useAtlasPythiaCommon; 
-  /** complete mc09 tune Pythia parameters set [default:true]*/
-  bool m_useAtlasPythiaTune09,m_Default_useAtlasPythiaTune09;
-  /**complete mc08 tune Pythia parameters set [default:false]
-     if set to true overrides mc09 tune, 
-     mc09 should be set to false in order to use mc08 only */
-  bool m_useAtlasPythiaTune08,m_Default_useAtlasPythiaTune08;
-  /** use no ATLAS PYTHIA settings, apart from pynit inputs [default:false]*/
-  bool m_useNoAtlasPythiaParam,m_Default_useNoAtlasPythiaParam;
-
-
-  ///call pytune directly in case any parameters set py the tune are to be overwritten from jO
-  //@{
-  int m_direct_call_to_pytune;
-  //@}
-
-  /// The susy file name
-  std::string m_read_Filesusy; 
-
-  //-----------------------------------------------------------------------------
-
-  /// @name Other class members (not properties)
-  //@{
-
-  // more tune-related vars:
-  //m_Tune_Index  see AtlasTune.cxx for catalogue
-  //m_Default_Tune_Name=TUNETYPE_TUNEINDEX
-  //so that (after parsing in Pythia.cxx): m_Tune_Type=TUNETYPE and m_Tune_Index=TUNEINDEX
-  int  m_Tune_Index;
-  std::string m_Tune_Type;
-  // needed in tune setting for protection against tune-seting inf. loop
-  int m_atlasTune_loop_prot;
-  //tune to be assumed by default and in cases of invalid TUNETYPE or TUNEINDEX when TUNETYPE=="ATLAS"
-  std::string m_Default_Tune_Name, m_Default_Tune_Type; int m_Default_Tune_Index;
-  // dummy starting tune string
-  std::string m_Starting_Tune_Name, m_Starting_Tune_Type; int m_Starting_Tune_Index;
-  // backward compatibility with early 08/09 jO when tunes were impl. as switches:
-  // to be updated if MC08 and MC09 tunes Tune_Type or Tune_Index are changed 
-  std::string m_mc0809_Tune_Type;
-  int m_mc09_Tune_Index;
-  int m_mc08_Tune_Index;
-  // 
-
-  //@}
-
-  // multiply x-section by a num. factor
-  // add both in the MetaData print-out 
-  double m_Default_xsscale, m_xsscale; 
-
-  // print out manually set x-section from the MetaData 
-  double m_Default_SetCrossSection, m_SetCrossSection;
-
-  /// Method to Manage the random seed IO from/to a file
-  void RandomNumberIO();
-
-  /// I/O to HEPEVT
-  void store_Atlas_HEPEVT();
-
-  /// TAUOLA HEPEVT
-  static Atlas_HEPEVT* s_atlas_HEPEVT;
-};
-
-
-#endif
diff --git a/Generators/PythiaExo_i/share/LLP_leptonJets.pyupda.in b/Generators/PythiaExo_i/share/LLP_leptonJets.pyupda.in
deleted file mode 100644
index d4077ead14dfd782d39d44159b753caae26cfd2f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/LLP_leptonJets.pyupda.in
+++ /dev/null
@@ -1,13 +0,0 @@
-        35       H0                             0  0  0   200.00000     0.01000     0.10000  0.00001E+00  2  1
-              1   0     0.399800   6000111   6000111         0         0         0
-              0   0     0.300000   6001022   6001022         0         0         0
-              0   0     0.300000   6001022   6001022   6001022         0         0
-              0   0     0.000100   6001022   6001022   6001022   6001022         0
-              1   0     0.000100        21        21
-   6000111  ~v_pion                             0  0  0     4.00000     0.01000     0.10000  1.00000E-03  2  1
-              1   0     1.000000   6001022   6001022         0         0         0
-   6001022  ~Uboson                             0  0  0     0.60000     0.01000     0.10000  5.00000E+00  2  1
-              1   0     0.400000        11       -11         0         0         
-              1   0     0.400000        13       -13         0         0         0
-              1   0     0.200000       211      -211         0         0         0
-
diff --git a/Generators/PythiaExo_i/share/LLP_leptonJets_jobOptions.py b/Generators/PythiaExo_i/share/LLP_leptonJets_jobOptions.py
deleted file mode 100644
index 9c32f4bf7a8cd829dc4e3a348acbaa751e81f6dc..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/LLP_leptonJets_jobOptions.py
+++ /dev/null
@@ -1,63 +0,0 @@
-###########################################################
-##  jobOptions for evgen of the process:                 ##
-##  h --> v-pion v-pion (v-pion --> u-boson)             ##
-##                                                       ##
-##  author: Daniel Ventura, U. Washington                ##
-##          ventura@cern.ch                              ##
-###########################################################
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-# Number of events to be processed (default is 10)
-NumEvts = 10
-###############################################
-#
-# Initialize Pythia
-#
-
-theApp.EvtMax = NumEvts
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512","PYTHIA_INIT 820021 2347532"]
-
-
-
-#include ( "EvgenJobOptions/MC8_Pythia_Common.py" )
-from PythiaExo_i.PythiaLLP_iConf import PythiaLLP
-topAlg += PythiaLLP()
-Pythia = topAlg.PythiaLLP
-
-# HV Higgs lepton-jets production
-Pythia.LLPpyupda = "LLP_leptonJets.pyupda.in"
-Pythia.PythiaCommand += ["pysubs msel 0"]
-Pythia.PythiaCommand += ["pydat1 parj 22 2"]
-Pythia.PythiaCommand += ["pydat1 parj 71 500000"] #max ct of particles
-Pythia.PythiaCommand += ["pypars mstp 127 1"]
-
-#Create gg --> H0 --> vpi vpi 
-Pythia.PythiaCommand += ["pysubs msub 152 1"]
-
-#set the mass of the H0
-Pythia.PythiaCommand += ["pydat2 pmas 35 1 120.D0"]
-
-#set the mass of the v-pion
-Pythia.PythiaCommand += ["pydat2 pmas 6000111  1 4.D0"]
-
-#set the lifetime of the v-pion (c tau in mm)
-Pythia.PythiaCommand += ["pydat2 pmas 6000111 4 0.D0"]
-
-#set the mass of the u-boson
-Pythia.PythiaCommand += ["pydat2 pmas 6001022 1 0.6D0"]
-Pythia.PythiaCommand += ["pydat2 pmas 6001022 4 80.D0"]
-
-#--------------------------------------------------------------
-
-# Configuration for EvgenJobTransforms
-
-#--------------------------------------------------------------
-
-from EvgenJobOptions.PythiaEvgenConfig import evgenConfig
-evgenConfig.efficiency = 0.95
-
diff --git a/Generators/PythiaExo_i/share/PythiaResModGluon.py b/Generators/PythiaExo_i/share/PythiaResModGluon.py
deleted file mode 100644
index 41c85000474e49e37ae746b1c6219459522780ea..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/PythiaResModGluon.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# example MC11 jO file that shows how to use PythiaResMod class
-# - for W',Z',f + fbar -> G* [ISUB 141,142,391,392]:
-# -- take out Breit-Wigner dependence +
-# -- suppress low mass events from parton luminosities
-# -- PythiaModified/pysgex.F modif. introduced by Oliver Stelzer-Chilton & Daniel Hayden, Exotics group
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from PythiaExo_i.PythiaResMod_iConf import PythiaResMod
-topAlg += PythiaResMod()
-PythiaResMod = topAlg.PythiaResMod
-
-theApp.EvtMax = 100
-
-#----------------------------------------------------------------------------------------------------------------------
-# enable using the modified pysgex.F
-#(default: UseResMod=0; do not use modified pysgex.F)
-#(UseResMod=1; use modified pysgex.F for W',Z',f + fbar -> G*)
-PythiaResMod.UseResMod=1
-
-
-# Graviton resonance mass (in GeV)
-GravitonMass = 1000
-
-#other commands for PythiaResMod are as they are for Pythia alg.
-# Z prime specific parameters for pythia :
-PythiaResMod.PythiaCommand += [
-                        "pysubs msel 0",
-# 391 and 392 are the graviton subprocesses qqbar/gg
-                        "pysubs msub 391 1",
-                        "pysubs msub 392 1",
-                        "pydat3 mdcy 347 1 1",
-# I  5000039  Graviton*    (m =  1000.000 GeV)  -->
-                        "pydat3 mdme 4084 1 0",
-                        "pydat3 mdme 4085 1 0",
-                        "pydat3 mdme 4086 1 0",
-                        "pydat3 mdme 4087 1 0",
-                        "pydat3 mdme 4088 1 0",
-                        "pydat3 mdme 4089 1 0",
-                        "pydat3 mdme 4090 1 0",
-                        "pydat3 mdme 4091 1 0",
-# select decay to e-e+:
-                        "pydat3 mdme 4092 1 1",
-                        "pydat3 mdme 4093 1 0",
-                        "pydat3 mdme 4094 1 0",
-                        "pydat3 mdme 4095 1 0",
-                        "pydat3 mdme 4096 1 0",
-                        "pydat3 mdme 4097 1 0",
-                        "pydat3 mdme 4098 1 0",
-                        "pydat3 mdme 4099 1 0",
-                        "pydat3 mdme 4100 1 0",
-                        "pydat3 mdme 4101 1 0",
-                        "pydat3 mdme 4102 1 0",
-                        "pydat3 mdme 4103 1 0",
-# PARP(50) : (D=0.054) dimensionless coupling, which enters quadratically
-#                     in all partial widths of the excited graviton G* resonance,
-#                     is kappa_mG* = sqrt(2)*x1*k/MPl~, where x1~3.83 is the first zero
-#                     of the J1 Bessel function and MPl~ is the modified
-#                     Planck mass scale [Ran99, Bij01].
-#                     default corresponds to k/Mpl~=0.01 in hep-ph/0006114
-                        "pypars parp 50 0.54",
-# cutoff for QED FSR in Pythia to 20000 GeV (='infinity', photos takes care of it).
-                        "pydat2 pmas 5000039 1 "+str(GravitonMass)
-                        ]
-
-PythiaResMod.PythiaCommand +=  ["pydat1 parj 90 200000",
-                                "pydat3 mdcy 15 1 0"] 
-
-include ( "MC11JobOptions/MC11_Tauola_Fragment.py" )
-include ( "MC11JobOptions/MC11_Photos_Fragment.py" )
diff --git a/Generators/PythiaExo_i/share/PythiaResModZprime.py b/Generators/PythiaExo_i/share/PythiaResModZprime.py
deleted file mode 100644
index 15dced01de15a6db414834e826abd8fc065d9a66..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/PythiaResModZprime.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# example MC11 jO file that shows how to use PythiaResMod class
-# PythiaResMod class:
-# * for W',Z' [ISUB 141,142]:
-# * - take out Breit-Wigner dependence +
-# * - supress low mass events from parton luminosities
-# implementation: PythiaModified/pysgex.F
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from PythiaExo_i.PythiaResMod_iConf import PythiaResMod
-topAlg += PythiaResMod()
-PythiaResMod = topAlg.PythiaResMod
-
-theApp.EvtMax = 10
-
-#----------------------------------------------------------------------------------------------------------------------
-# enable using the modified pysgex.F
-#(default: UseResMod=0; do not use modified pysgex.F)
-#(UseResMod=1; use modified pysgex.F)
-PythiaResMod.UseResMod=1
-
-# Zprime resonance mass (in GeV)
-ZprimeMass = 1000
-
-# Minimum mass for Drell-Yan production (in GeV)
-ckin1 = 100
-
-# relevant proc. setup
-PythiaResMod.PythiaCommand += [
-       "pysubs msel 0",
-       "pysubs msub 141 1",   # Z',Z,g with interference
-       # Z' decays - quarks
-       "pydat3 mdme 289 1 0",
-       "pydat3 mdme 290 1 0",
-       "pydat3 mdme 291 1 0",
-       "pydat3 mdme 292 1 0",
-       "pydat3 mdme 293 1 0",
-       "pydat3 mdme 294 1 0",
-       # Z' decays - leptons
-       "pydat3 mdme 297 1 0",
-       "pydat3 mdme 298 1 0",
-       "pydat3 mdme 299 1 1", #Z'-> mu+ mu-
-       "pydat3 mdme 300 1 0",
-       "pydat3 mdme 301 1 0", #Z'-> tau+ tau-
-       "pydat3 mdme 302 1 0",
-       # tau decays are left open
-       "pysubs ckin 1 "+str(ckin1),  # sqrhat > 500
-       #    "pysubs ckin 13 -3",  #
-       #    "pysubs ckin 14 3",   # eta cuts
-       #    "pysubs ckin 15 -3",  # |eta| < 3
-       #    "pysubs ckin 16 3",   #
-       "pydat1 mstu 1 0",
-       "pydat1 mstu 2 0",
-       "pydat2 pmas 32 1 "+str(ZprimeMass)
-       ]
-
-PythiaResMod.PythiaCommand +=  ["pydat1 parj 90 200000",
-                                "pydat3 mdcy 15 1 0"]
-
-include ( "MC11JobOptions/MC11_Tauola_Fragment.py" )
-include ( "MC11JobOptions/MC11_Photos_Fragment.py" )
diff --git a/Generators/PythiaExo_i/share/PythiaTopMdiff.py b/Generators/PythiaExo_i/share/PythiaTopMdiff.py
deleted file mode 100644
index e48f8a27955336d53eb8296d0682260538fbb3cc..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/PythiaTopMdiff.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# example MC11 jO file that shows how to use PythiaTopMdiff class
-# PythiaTopMdiff class:
-# In pyofsh.F and pyscat.F:
-# - for  qqbar (gg) -> QQbar [ISUB 81 (82)]:     
-# -- pyofsh.F : ISUB 81,82: set top partner to 3000006, spectrum to be filled via SLHA
-# -- pyscat.F : account for qqbar (gg) -> QQbar vs qqbar (gg) -> QbarQ 
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from PythiaExo_i.PythiaTopMdiff_iConf import PythiaTopMdiff
-topAlg += PythiaTopMdiff()
-PythiaTopMdiff = topAlg.PythiaTopMdiff
-
-theApp.EvtMax = 10
-
-#----------------------------------------------------------------------------------------------------------------------
-# enable using the modifications in 
-#(default: UseTopMdiff=0; do not use TopMdiff modifications in pyofsh.F and pyscat.F)
-#(UseTopMdiff=1; use modified )
-PythiaTopMdiff.UseTopMdiff=1
-
-PythiaTopMdiff.PythiaCommand += [ "pyinit win 7000" ]
-
-# relevant proc. setup
-PythiaTopMdiff.PythiaCommand += [ "pypars mstp 7 6",    # Heavy Flavour production top 
-                                  "pymssm imss 1 11",   # Turn on use of SLHA
-                                  # "pymssm imss 21 63",: done by default by Pythia_i  
-                                  # "pymssm imss 22 63", : done by default by Pythia_i  
-                                  #"pyinit dumpr 1 5",
-                                  #"pyinit pylistf 1"]
-                                  ]
-
-PythiaTopMdiff.SusyInputFile = "t_tb162_5_test.slha"
-
-PythiaTopMdiff.PythiaCommand +=  ["pydat1 parj 90 200000",
-                                  "pydat3 mdcy 15 1 0"]
-                                  
-include ( "MC11JobOptions/MC11_Tauola_Fragment.py" )
-include ( "MC11JobOptions/MC11_Photos_Fragment.py" )
diff --git a/Generators/PythiaExo_i/share/jobOptions.GravADD.py b/Generators/PythiaExo_i/share/jobOptions.GravADD.py
deleted file mode 100644
index 69647cb55accfe2fc7f0503ffe4b0ca14df6a793..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/jobOptions.GravADD.py
+++ /dev/null
@@ -1,66 +0,0 @@
-###############################################################
-#
-# GRAVADD JOB OPTIONS FILE
-#==============================================================
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-NumEvts = 100
-##########################################################
-theApp.EvtMax = NumEvts
-
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from PythiaExo_i.PythiaGS_iConf import PythiaGS
-job +=PythiaGS()
-job.PythiaGS.PythiaCommand =[
-    "pydat1 mstu 21 1",
-    "pysubs ckin 3 35.",
-    "gravADD 2 7000.",
-    "gravADD 4 1000.",
-    "gravADD 3 4.",
-    "pyinit user GRAVADD",
-    "pypars mstp 52 2",     #  proton external PDF library
-    "pypars mstp 54 2",     #  proton external PDF library
-    "pypars mstp 56 2",     #  proton external PDF library
-    "pypars mstp 51 10042", #  CTEQ6L
-    "pypars mstp 53 10042", #  
-    "pypars mstp 55 10042", #   
-    "pydat2 pmas 6 1 172.5", # PDG2007 TOP mass
-    "pydat2 pmas 24 1 80.403", # PDG2007 W mass
-    "pydat2 pmas 24 2 2.141", # PDG2007 W width
-    "pydat2 pmas 23 1 91.1876", # PDG2007 Z0 mass
-    "pydat2 pmas 23 2 2.4952", # PDG2007 Z0 width 
-    "pypars mstp 81 21", # MI new model
-    "pypars mstp 82 4", # MI
-    "pypars mstp 70 0", # regularization scheme for ISR
-    "pypars mstp 72 1", # maximum scale for radiation off FSR dipoles
-    "pypars mstp 90 0", # strategy to compensate the prim kt 
-    "pypars parp 78 0.3", # parameter controlling the amount of colour reconnection in FS
-    "pypars parp 80 0.1",
-    "pypars parp 82 2.3", # regularization scale pt0 for spectrum MI
-    "pypars parp 83 0.8", # parameters of the assumed matter overlap between the two colliding hadrons.
-    "pypars parp 84 0.7",
-    "pypars mstp 88 1" , # account for an assumed dominance of valence quarks at low transverse momentum scales
-    "pypars parp 90 0.25",
-    "pydat1 parj 81 0.29",
-    "pypars mstp 95 6",
-    "pydat1 mstj 11 4",
-    "pydat1 mstj 22 2",
-    "pydat1 parj 41 0.3",
-    "pydat1 parj 42 0.58",
-    "pydat1 parj 46 0.75",
-    "pypars mstp 84 1",
-    "pypars mstp 85 1",
-    "pypars mstp 86 2",
-    "pypars mstp 87 4",
-    "pypars mstp 89 1",
-    "pypars parp 89 1800"
-    ] 
-
-from EvgenJobOptions.PythiaGSEvgenConfig import evgenConfig
-
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/PythiaExo_i/share/jobOptions.pythiaMono.py b/Generators/PythiaExo_i/share/jobOptions.pythiaMono.py
deleted file mode 100644
index 78f2a208b7c416f5d45009fea6971b4ca691e64f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/jobOptions.pythiaMono.py
+++ /dev/null
@@ -1,152 +0,0 @@
-###############################################
-#
-# JobOptions for Drell-Yan monopole production
-# through gamma/Z*
-#
-# Author: Daniel Goldin
-#
-###############################################
-
-###############################################
-#
-# Set output level threshold (1=VERBOSE, 2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-#
-
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-# MC8_Pythia_Common.py not included as it messes up
-# the monopole generation. It is included in the
-# background analysis
-
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = 3
-
-###############################################
-#
-# User-defined inputs
-
-# Mono mass
-MONOPOLEMASS = 500.
-# Number of events to be processed (default is 10)
-NumEvts = 100
-
-###############################################
-#
-# Initialize Pythia
-#
-
-theApp.EvtMax = NumEvts
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512","PYTHIA_INIT 820021 2347532"]
-
-from PythiaExo_i.PythiaMono_iConf import PythiaMono
-topAlg += PythiaMono()
-
-###################################################
-#
-# Pythia commands
-# gamma/Z* interference must be off but Z*->mu mu
-# should still be included
-#
-
-topAlg.PythiaMono.PythiaCommand = [
-
-    # Turn on q q_bar -> gamma/Z*
-    "pysubs msub 1 1",
-
-    # Virtual gamma only (turn off gamma/Z* interference)
-    "pypars mstp 43 1",
-
-    # Kine threshold cut
-    "pysubs ckin 1 " + str(2*MONOPOLEMASS+1),
-
-    # Mono mass (in place of monopoles we use "heavy" muons)
-    "pydat2 pmas 13 1 " + str(MONOPOLEMASS),
-
-    #     Turn on customized subprocesses
-    "pysubs msel 0",
-
-    # turn off some processes
-
-    # no initial state showers
-    "pypars mstp 61 0",
-    # no final state showers
-    "pypars mstp 71 0",
-    # no multiple interactions
-    "pypars mstp 81 0",
-    # no hadronization
-    "pypars mstp 111 0",
-    
-    #     Turn off mu decays
-    "pydat3 mdme  83 1 0",
-    "pydat3 mdme  84 1 0",
-    "pydat3 mdme  85 1 0",
-    "pydat3 mdme  86 1 0",   
-    # gamma decays
-    "pydat3 mdme 162 1 0",
-    "pydat3 mdme 163 1 0",
-    "pydat3 mdme 164 1 0",
-    "pydat3 mdme 165 1 0",  
-    "pydat3 mdme 166 1 0",
-    "pydat3 mdme 167 1 0",
-    "pydat3 mdme 168 1 0",
-    "pydat3 mdme 169 1 0",  
-    "pydat3 mdme 170 1 0",
-    #     gamma -> mu+mu-
-    "pydat3 mdme 171 1 1",
-    "pydat3 mdme 172 1 0",
-    "pydat3 mdme 173 1 0",  
-    # Z decays
-    "pydat3 mdme 174 1 0",
-    "pydat3 mdme 175 1 0",
-    "pydat3 mdme 176 1 0",
-    "pydat3 mdme 177 1 0",
-    "pydat3 mdme 178 1 0",
-    "pydat3 mdme 179 1 0",
-    "pydat3 mdme 182 1 0",
-    "pydat3 mdme 183 1 0", 
-    #     Z0 -> mu+mu-
-    "pydat3 mdme 184 1 1",
-    "pydat3 mdme 185 1 0", 
-    "pydat3 mdme 186 1 0",
-    "pydat3 mdme 187 1 0",
-    "pydat3 mdme 188 1 0",
-    "pydat3 mdme 189 1 0",
-
-    # Dump event and initial settings
-    "pyinit pylisti 12",
-    "pyinit pylistf 1",
-    "pystat 1 3 4 5",
-    "pyinit dumpr 1 5"
-    ]
-
-# ASCII MC Event dump
-# from TruthExamples.TruthExamplesConf import DumpMC
-# topAlg += DumpMC()
-
-##############################################################
-# Translate particles codes
-# Assign heavy muon (PDG ID = 13) new ID = 50, which
-# corresponds uniquely to a monopole and used
-# to propagate in GEANT
-#############################################################
-theApp.Dlls += [ "HepMCTools" ]
-theApp.TopAlg += [ "TranslateMonoID" ]
-TranslateMonoID = Algorithm( "TranslateMonoID" )
-TranslateMonoID.OutputLevel = 1
-
-####################################################################
-#
-# POOL/ROOT output
-#
-
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.OutputFile = "pythia.pool.root"
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]
-Stream1.OutputFile = "pythia_MONO_GeV_"+str(MONOPOLEMASS)+"GeV_"+str(NumEvts)+"evts.pool.root"
-
-####################################################################
diff --git a/Generators/PythiaExo_i/share/jobOptions.pythiaMono.py.1 b/Generators/PythiaExo_i/share/jobOptions.pythiaMono.py.1
deleted file mode 100644
index 4994cdbba07a28f118d03c33e2c8621e36049a28..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/jobOptions.pythiaMono.py.1
+++ /dev/null
@@ -1,148 +0,0 @@
-###############################################
-#
-# JobOptions for Drell-Yan monopole production
-#
-# Author: Daniel Goldin
-#
-###############################################
-
-###############################################
-#
-# Set output level threshold (1=VERBOSE, 2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
-#
-
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = 3
-
-###############################################
-#
-# User-defined inputs
-#
-
-# Center-of-Momentum Energy (in GeV)
-CMENERGY = 14000.
-# Mono mass
-MONOPOLEMASS = 350.
-# Number of events to be processed (default is 10)
-NumEvts = 1000
-
-###############################################
-#
-# Initialize Pythia
-#
-
-theApp.EvtMax = NumEvts
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512","PYTHIA_INIT 820021 2347532"]
-
-from AthenaCommon.AlgSequence import AlgSequence
-job = AlgSequence()
-from PythiaExo_i.PythiaMono_iConf import PythiaMono
-job += PythiaMono()
-
-###################################################
-#
-# Pythia commands
-# gamma/Z* interference must be off but Z*->mu mu
-# should still be included
-#
-
-job.PythiaMono.PythiaCommand = [
-
-    # CM Energy (in GeV)
-    "pyinit win " + str(CMENERGY),
-
-    # Turn on q q_bar -> gamma/Z*
-    "pysubs msub 1 1",
-
-    # Virtual gamma only (turn off gamma/Z* interference)
-    "pypars mstp 43 1",
-
-    # Kine threshold cut
-    "pysubs ckin 1 " + str(2*MONOPOLEMASS+1),
-
-    # Mono mass (in place of monopoles we use "heavy" muons)
-    "pydat2 pmas 13 1 " + str(MONOPOLEMASS),
-
-    #     Turn on customized subprocesses
-    "pysubs msel 0",
-
-    # turn off some processes
-    # no initial state showers
-    "pypars mstp 61 0",
-    # no final state showers
-    "pypars mstp 71 0",
-    # no multiple interactions
-    "pypars mstp 81 0",
-    # no hadronization
-    "pypars mstp 111 0",
-    
-    #     Turn off mu decays
-    "pydat3 mdme  83 1 0",
-    "pydat3 mdme  84 1 0",
-    "pydat3 mdme  85 1 0",
-    "pydat3 mdme  86 1 0",   
-    # gamma decays
-    "pydat3 mdme 162 1 0",
-    "pydat3 mdme 163 1 0",
-    "pydat3 mdme 164 1 0",
-    "pydat3 mdme 165 1 0",  
-    "pydat3 mdme 166 1 0",
-    "pydat3 mdme 167 1 0",
-    "pydat3 mdme 168 1 0",
-    "pydat3 mdme 169 1 0",  
-    "pydat3 mdme 170 1 0",
-    #     gamma -> mu+mu-
-    "pydat3 mdme 171 1 1",
-    "pydat3 mdme 172 1 0",
-    "pydat3 mdme 173 1 0",  
-    # Z decays
-    "pydat3 mdme 174 1 0",
-    "pydat3 mdme 175 1 0",
-    "pydat3 mdme 176 1 0",
-    "pydat3 mdme 177 1 0",
-    "pydat3 mdme 178 1 0",
-    "pydat3 mdme 179 1 0",
-    "pydat3 mdme 182 1 0",
-    "pydat3 mdme 183 1 0", 
-    #     Z0 -> mu+mu-
-    "pydat3 mdme 184 1 1",
-    "pydat3 mdme 185 1 0", 
-    "pydat3 mdme 186 1 0",
-    "pydat3 mdme 187 1 0",
-    "pydat3 mdme 188 1 0",
-    "pydat3 mdme 189 1 0",
-
-    # Output format
-    "pyinit pylistf 1",
-    "pystat 1"
-    ]
-
-# ASCII MC Event dump
-# from TruthExamples.TruthExamplesConf import DumpMC
-# job += DumpMC()
-
-##############################################################
-# Translate particles codes
-# Assign heavy muon (PDG ID = 13) new ID = 50
-#############################################################
-theApp.Dlls += [ "HepMCTools" ]
-theApp.TopAlg += [ "TranslateMonoID" ]
-TranslateMonoID = Algorithm( "TranslateMonoID" )
-TranslateMonoID.OutputLevel = 1
-
-
-####################################################################
-#
-# POOL/ROOT output
-#
-
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.OutputFile = "pythia.pool.root"
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]
-Stream1.OutputFile = "pythia_MONO_CM_"+str(CMENERGY)+"GeV_"+str(MONOPOLEMASS)+"GeV_"+str(NumEvts)+"evts.pool.root"
-
-####################################################################
diff --git a/Generators/PythiaExo_i/share/jobOptions.pythiaTau3Mu.py b/Generators/PythiaExo_i/share/jobOptions.pythiaTau3Mu.py
deleted file mode 100644
index abab679b4883832139c292e422fa29d0a897a9f4..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/jobOptions.pythiaTau3Mu.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# W -> tau nu production with tau->mu mu mu deacy
-
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-# include ( "EvgenJobOptions/MC8_Pythia_Common.py" ) 
-
-#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-from PythiaExo_i.PythiaTau3Mu_iConf import PythiaTau3Mu
-topAlg += PythiaTau3Mu()
-Pythia = topAlg.PythiaTau3Mu
-
-Pythia.PythiaCommand       =  ["pysubs msel 0",          # Users decay choice.
-                               "pydat1 mstj 28 2",       # use pytaud 
-                               "pydat1 parj 90 20000",   # Turn off FSR.
-                               "pysubs msub 2 1",        # Create W bosons.
-                               "pydat3 mdme 190 1 0",
-                               "pydat3 mdme 191 1 0",
-                               "pydat3 mdme 192 1 0",
-                               "pydat3 mdme 194 1 0",
-                               "pydat3 mdme 195 1 0",
-                               "pydat3 mdme 196 1 0",
-                               "pydat3 mdme 198 1 0",
-                               "pydat3 mdme 199 1 0",
-                               "pydat3 mdme 200 1 0",
-                               "pydat3 mdme 206 1 0",    # Switch for W->enu.
-                               "pydat3 mdme 207 1 0",    # Switch for W->munu.
-                               "pydat3 mdme 208 1 1",    # Switch for W->taunu.
-                               "pydat3 mdme 209 1 0"]
-#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-from EvgenJobOptions.PythiaEvgenConfig import evgenConfig
-evgenConfig.efficiency = 0.9
-#from TruthExamples.TruthExamplesConf import TestHepMC
-#topAlg +=  TestHepMC(CmEnergy=10000000.)
-
diff --git a/Generators/PythiaExo_i/share/t_tb162_5_test.slha b/Generators/PythiaExo_i/share/t_tb162_5_test.slha
deleted file mode 100644
index 729181b4f765881f741d0ac736d40826e6a97e6a..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/share/t_tb162_5_test.slha
+++ /dev/null
@@ -1,26 +0,0 @@
-BLOCK QNUMBERS 3000006 # faket
-         1 -2  #
-         2 2  #
-         3 3  #
-         4 1  #
-#
-#
-#
-BLOCK MASS  # Mass Spectrum
-# PDG code           mass       particle
-         6     182.500000000   # b-quark pole mass calculated from mb(mb)_Msbar
-       3000006     162.500000000   # b-quark pole mass calculated from mb(mb)_Msbar
-#
-
-#   PDG           Width
-
-
-DECAY    3000006     1.07329
-
-
-#     BR       NDA       ID1      ID2
-    
-
-      0.000030   2       -24       -1    # (BR tbar -> W-  db)
-      0.001764   2       -24       -3    # (BR tbar -> W-  sb)  
-      0.998206   2       -24       -5    # (BR tbar -> W-  bb) 
diff --git a/Generators/PythiaExo_i/src/Pydat1.cxx b/Generators/PythiaExo_i/src/Pydat1.cxx
deleted file mode 100644
index 01c6c459f40f21ba392044ca15d17dd74842b2ae..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pydat1.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydat1
-#include "PythiaExo_i/Pydat1.h"
-
-// set pointer to zero at start
-Pydat1::PYDAT1* Pydat1::s_pydat1 =0;
-
-// Constructor
-Pydat1::Pydat1() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
-
-// Destructor
-Pydat1::~Pydat1() 
-{
-}
-
-// access mstu in common
-int& Pydat1::mstu(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMstu()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat1->mstu[n-1];
-}
-
-// access paru in common
-double& Pydat1::paru(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenParu()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat1->paru[n-1];
-}
-
-// access mstj in common
-int& Pydat1::mstj(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMstj()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat1->mstj[n-1];
-}
-
-// access parj in common
-double& Pydat1::parj(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenParj()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat1->parj[n-1];
-}
-
diff --git a/Generators/PythiaExo_i/src/Pydat2.cxx b/Generators/PythiaExo_i/src/Pydat2.cxx
deleted file mode 100644
index 7f1a5d9819428e5fd45721155aa91b7870acd67e..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pydat2.cxx
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydat2
-#include "PythiaExo_i/Pydat2.h"
-
-#include <cstdlib>
-
-// set pointer to zero at start
-Pydat2::PYDAT2* Pydat2::s_pydat2 =0;
-
-// Constructor
-Pydat2::Pydat2() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
-
-// Destructor
-Pydat2::~Pydat2() 
-{
-}
-
-// access kchg in common
-int& Pydat2::kchg(int kc, int i) {
-  init(); // check COMMON is initialized
-  if( kc < 1 || kc > lenPmas() ||
-      i  < 1 || i  > depthKchg())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat2->kchg[i-1][kc-1];
-}
-// access pmas in common
-double& Pydat2::pmas(int kc, int i) {
-  init(); // check COMMON is initialized
-  if( kc < 1 || kc > lenPmas() ||
-      i  < 1 || i  > depthPmas())
- {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat2->pmas[i-1][kc-1];
-}
-
-// access parf in common
-double& Pydat2::parf(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenParf()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat2->parf[n-1];
-
-}// access vckm in common
-double& Pydat2::vckm(int i,int j) {
-  init(); // check COMMON is initialized
-  if(i < 1 || i > lenVckm() ||
-     j < 1 || j > lenVckm()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat2->vckm[j-1][i-1];
-}
-
diff --git a/Generators/PythiaExo_i/src/Pydat3_62.cxx b/Generators/PythiaExo_i/src/Pydat3_62.cxx
deleted file mode 100644
index c97b67861c465cd1155ff03e16d92b41ec80b3ab..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pydat3_62.cxx
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydat3  version for 6.2xxx
-#include "PythiaExo_i/Pydat3_62.h"
-#include <cstdlib>
-
-// set pointer to zero at start
-Pydat3::PYDAT3* Pydat3::s_pydat3 =0;
-
-// Constructor
-Pydat3::Pydat3() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
-
-// Destructor
-Pydat3::~Pydat3() 
-{
-}
-
-// access mdcy in common
-int& Pydat3::mdcy(int kc, int i) {
-  init(); // check COMMON is initialized
-  if( kc < 1 || kc > lenMdcy() ||
-      i  < 1 || i  > depthMdcy())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->mdcy[i-1][kc-1];
-}
-// access mdme in common
-int& Pydat3::mdme(int idc, int i) {
-  init(); // check COMMON is initialized
-  if( idc < 1 || idc > lenMdme() ||
-      i  < 1 || i  > depthMdme())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->mdme[i-1][idc-1];
-}
-// access brat in common
-double& Pydat3::brat(int idc) {
-  init(); // check COMMON is initialized
-  if(idc < 1 || idc > lenBrat()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat3->brat[idc-1];
-
-}
-// access kfdp in common
-int& Pydat3::kfdp(int idc, int kf) {
-  init(); // check COMMON is initialized
-  if( idc < 1 || idc > lenKfdp() ||
-      kf  < 1 || kf  > depthKfdp())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->kfdp[kf-1][idc-1];
-}
-
diff --git a/Generators/PythiaExo_i/src/Pydatr.cxx b/Generators/PythiaExo_i/src/Pydatr.cxx
deleted file mode 100644
index 19747f9a5cd1a7eb32ee4cdb6ae423e6a4c7c807..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pydatr.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydatr
-#include "PythiaExo_i/Pydatr.h"
-
-// set pointer to zero at start
-Pydatr::PYDATR* Pydatr::s_pydatr =0;
-
-// Constructor
-Pydatr::Pydatr() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
-
-// Destructor
-Pydatr::~Pydatr() 
-{
-}
-
-// access mrpy in common
-int& Pydatr::mrpy(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMrpy()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydatr->mrpy[n-1];
-}
-
-// access rrpy in common
-double& Pydatr::rrpy(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenRrpy()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydatr->rrpy[n-1];
-}
-
diff --git a/Generators/PythiaExo_i/src/Pyint1.cxx b/Generators/PythiaExo_i/src/Pyint1.cxx
deleted file mode 100644
index d2d4785bd0fa79e999e98eb5681d16ff403f53a8..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pyint1.cxx
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pyint1
-#include "PythiaExo_i/Pyint1.h"
-
-// set pointer to zero at start
-Pyint1::PYINT1* Pyint1::s_pyint1 =0;
-
-// Constructor
-Pyint1::Pyint1() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
- 
-// Destructor
-Pyint1::~Pyint1() 
-{
-}
-
-// access mint in common
-int& Pyint1::mint(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMint()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pyint1->mint[n-1];
-}
-
-// access iset in common
-double& Pyint1::vint(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenVint()) {
-  m_realdummy = -999;
-  return m_realdummy;
-  }
-  return s_pyint1->vint[n-1];
-}
diff --git a/Generators/PythiaExo_i/src/Pyint2.cxx b/Generators/PythiaExo_i/src/Pyint2.cxx
deleted file mode 100644
index e815193b3496038413ea44af6e417b12abae3945..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pyint2.cxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pyint2
-#include "PythiaExo_i/Pyint2.h"
-
-// set pointer to zero at start
-Pyint2::PYINT2* Pyint2::s_pyint2 =0;
-
-// Constructor
-Pyint2::Pyint2() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
- 
-// Destructor
-Pyint2::~Pyint2() 
-{
-}
-
-// access iset in common
-int& Pyint2::iset(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenIset()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pyint2->iset[n-1];
-}
-
-// access kfpr in common
-  int& Pyint2::kfpr(int n, int i) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenKfpr() ||
-     i <1 || i >depthKfpr()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pyint2->kfpr[i-1][n-1];
-}
-
-// access coef in common
-double& Pyint2::coef(int n, int i) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenCoef() ||
-     i <1 || i > depthCoef()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pyint2->coef[i-1][n-1];
-}
-
-// access icol in common
-int& Pyint2::icol(int n, int i ,int j) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenIcol() ||
-     i <1 || i > depthIcol() ||
-     j < 1 || j > widthIcol() ) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pyint2->icol[j-1][i-1][n-1];
-}
-
diff --git a/Generators/PythiaExo_i/src/Pyint5.cxx b/Generators/PythiaExo_i/src/Pyint5.cxx
deleted file mode 100644
index dae94443b3990267bdbf5f7dd946363231411000..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pyint5.cxx
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pyint5
-#include "PythiaExo_i/Pyint5.h"
-
-// set pointer to zero at start
-Pyint5::PYINT5* Pyint5::s_pyint5 =0;
-
-// Constructor
-Pyint5::Pyint5() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
- 
-// Destructor
-Pyint5::~Pyint5() 
-{
-}
-
-// access ngenpd in common
-int& Pyint5::ngenpd() {
-  init(); // check COMMON is initialized
-  return s_pyint5->ngenpd;
-}
-
-// access ngen in common
-  int& Pyint5::ngen(int n, int i) {
-  init(); // check COMMON is initialized
-  if(n < 0 || n > lenNgen() ||
-     i <1 || i >depthNgen()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-//    return s_pyint5->ngen[i][n-1];
-  return s_pyint5->ngen[i-1][n];
-}
-
-// access xsec in common
-double& Pyint5::xsec(int n, int i) {
-  init(); // check COMMON is initialized
-  if(n < 0 || n > lenXsec() ||
-     i <1 || i > depthXsec()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-//    return s_pyint5->xsec[i][n-1];
-  return s_pyint5->xsec[i-1][n];
-}
-
-
-
diff --git a/Generators/PythiaExo_i/src/Pymssm.cxx b/Generators/PythiaExo_i/src/Pymssm.cxx
deleted file mode 100644
index e0f183bda14ca177b2e1ea08a74a9693b62f1a39..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pymssm.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PythiaExo_i/Pymssm.h"
-#include <iostream>
-
-Pymssm::PYMSSM* Pymssm::s_pymssm = 0;
-
-Pymssm::Pymssm() 
-  : 
-  m_dummy(-999)
-  , m_realdummy(-999.0) 
-{
-  init();
-}
-
-Pymssm::~Pymssm()
-{
-}
-
-int& Pymssm::imss(int n) {
-  if (n<0 || n>=s_lenImss) {
-    std::cout
-      << "Pymssm: attempt to read or write IMSS out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    return s_pymssm->imss[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
-
-double& Pymssm::rmss(int n) {
-  if (n<0 || n>=s_lenRmss) {
-    std::cout
-      << "Pymssm: attempt to read or write RMSS out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pymssm->rmss[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
diff --git a/Generators/PythiaExo_i/src/Pypars.cxx b/Generators/PythiaExo_i/src/Pypars.cxx
deleted file mode 100644
index 55c063b2043b2537f521b90f5390056e56e8972e..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pypars.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pypars
-#include "PythiaExo_i/Pypars.h"
-
-// set pointer to zero at start
-Pypars::PYPARS* Pypars::s_pypars =0;
-
-// Constructor
-Pypars::Pypars() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
-
-// Destructor
-Pypars::~Pypars() 
-{
-}
-
-// access mstp in common
-int& Pypars::mstp(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMstp()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pypars->mstp[n-1];
-}
-
-// access parp in common
-double& Pypars::parp(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenParp()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pypars->parp[n-1];
-}
-
-// access msti in common
-int& Pypars::msti(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMsti()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pypars->msti[n-1];
-}
-
-// access pari in common
-double& Pypars::pari(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenPari()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pypars->pari[n-1];
-}
-
diff --git a/Generators/PythiaExo_i/src/Pyssmt.cxx b/Generators/PythiaExo_i/src/Pyssmt.cxx
deleted file mode 100644
index 4209da39beb599022e08ecbd06489bcfb2a072b6..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pyssmt.cxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PythiaExo_i/Pyssmt.h"
-#include <iostream>
-Pyssmt::PYSSMT const * Pyssmt::s_pyssmt = 0;
-
-const double& Pyssmt::zmix(int i, int j) const {
-  if (i<0 || i>s_sizeZmix || j<0 || j>s_sizeZmix) {
-    std::cout 
-      << "Pyssmt: attempt to read or write ZMIX out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->zmix[j-1][i-1];
-  }
-}
-
-const double& Pyssmt::umix(int i, int j) const {
-  if (i<0 || i>s_sizeUmix || j<0 || j>s_sizeUmix) {
-    std::cout
-      << "Pyssmt: attempt to read or write UMIX out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->umix[j-1][i-1];
-  }
-}
-
-const double& Pyssmt::vmix(int i, int j) const {
-  if (i<0 || i>s_sizeVmix || j<0 || j>s_sizeVmix) {
-    std::cout
-      << "Pyssmt: attempt to read or write VMIX out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->vmix[j-1][i-1];
-  }
-}
-
-const double& Pyssmt::smz(int i) const {
-  if (i<0 || i>s_lenSmz) {
-    std::cout
-      << "Pyssmt: attempt to read or write SMZ out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->smz[i-1];
-  }
-}
-
-const double& Pyssmt::smw(int i) const {
-  if (i<0 || i>s_lenSmw) {
-    std::cout
-      << "Pyssmt: attempt to read or write SMW out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->smw[i-1];
-  }
-}
-
-
diff --git a/Generators/PythiaExo_i/src/Pysubs.cxx b/Generators/PythiaExo_i/src/Pysubs.cxx
deleted file mode 100644
index 18e70be9cc50bf7d553469f4004e733c5ad8e529..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pysubs.cxx
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access Pythia common Pysubs
-#include "PythiaExo_i/Pysubs.h"
-
-//#ifdef DEFECT_OLD_STDC_HEADERS
-//extern "C" {
-//#include <stdlib.h>
-//}
-//#else
-#include <cstdlib>
-//#endif
-
-// set pointer to zero at start
-Pysubs::PYSUBS* Pysubs::s_pysubs =0;
-
-// Constructor
-Pysubs::Pysubs() 
-{
-  m_dummy = -999;
-  m_realdummy = -999.;
-}
-
-// Destructor
-Pysubs::~Pysubs() 
-{
-}
-
-// access msel in common
-int& Pysubs::msel() {
-  init(); // check COMMON is initialized
-  return s_pysubs->msel;
-}
-
-// access msub in common
-int& Pysubs::msub(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMsub()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pysubs->msub[n-1];
-}
-
-// access kfin in common
-int& Pysubs::kfin(int iside, int jflav) {
-  init(); // check COMMON is initialized
-  int half_lenKfin = lenKfin()/2;
-  if(std::abs(jflav) > half_lenKfin ||
-     iside < 1 || iside > depthKfin())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pysubs->kfin[jflav+half_lenKfin][iside-1];
-}
-
-// access ckin in common
-double& Pysubs::ckin(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenCkin()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pysubs->ckin[n-1];
-}
-
diff --git a/Generators/PythiaExo_i/src/Pytcsm.cxx b/Generators/PythiaExo_i/src/Pytcsm.cxx
deleted file mode 100644
index 67afd7e216a48e2a26f47835d650b177570dfec1..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/Pytcsm.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PythiaExo_i/Pytcsm.h"
-#include <iostream>
-
-Pytcsm::PYTCSM* Pytcsm::s_pytcsm = 0;
-
-Pytcsm::Pytcsm() 
-  : 
-  m_dummy(-999)
-  , m_realdummy(-999.0) 
-{
-  init();
-}
-
-Pytcsm::~Pytcsm()
-{
-}
-
-int& Pytcsm::itcm(int n) {
-  if (n<0 || n>=s_lenItcm) {
-    std::cout
-      << "Pytcsm: attempt to read or write ITCM out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    return s_pytcsm->itcm[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
-
-double& Pytcsm::rtcm(int n) {
-  if (n<0 || n>=s_lenRtcm) {
-    std::cout
-      << "Pytcsm: attempt to read or write RTCM out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pytcsm->rtcm[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/fhhiggscorr.F b/Generators/PythiaExo_i/src/PythiaDummies/fhhiggscorr.F
deleted file mode 100644
index c564bfb0ca3ca2fe6b192e81ee8b792d20881849..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/fhhiggscorr.F
+++ /dev/null
@@ -1,26 +0,0 @@
-
-C*********************************************************************
-
-C...FHHIGGSCORR
-C...Dummy function, to be removed when FEYNHIGGS is to be linked.
-
-      SUBROUTINE FHHIGGSCORR(IERR, RMHIGG, SAEFF, UHIGGS)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-C...FeynHiggs variables
-      DOUBLE PRECISION RMHIGG(4), SAEFF, UHIGGS(3,3) 
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link FEYNHIGGS correctly.'/
-     &1X,'Dummy routine FHSETPARA in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/fhsetflags.F b/Generators/PythiaExo_i/src/PythiaDummies/fhsetflags.F
deleted file mode 100644
index cf2a6dd35214abbdfd4b014842251cc7f85b22c5..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/fhsetflags.F
+++ /dev/null
@@ -1,32 +0,0 @@
- 
-C*********************************************************************
- 
-C...FHSETFLAGS
-C...Dummy function, to be removed when FEYNHIGGS is to be linked.
-
-      SUBROUTINE FHSETFLAGS(IERR,IMSP,IFR,ITBR,IHMX,IP2A,ILP,ITR,IBR)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-Cmssmpart = 4     # full MSSM [recommended]
-Cfieldren = 0     # MSbar field ren. [strongly recommended]
-Ctanbren =  0     # MSbar TB-ren. [strongly recommended]
-Chiggsmix = 2     # 2x2 (h0-HH) mixing in the neutral Higgs sector
-Cp2approx = 0     # no approximation [recommended]
-Clooplevel= 2     # include 2-loop corrections
-Ctl_running_mt= 1 # running top mass in 2-loop corrections [recommended]
-Ctl_bot_resum = 1 # resummed MB in 2-loop corrections [recommended]
-
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link FEYNHIGGS correctly.'/
-     &1X,'Dummy routine FHSETFLAGS in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/fhsetpara.F b/Generators/PythiaExo_i/src/PythiaDummies/fhsetpara.F
deleted file mode 100644
index 6a4cbde5b8e051bca9be1c7b21ccf6fa1f45d373..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/fhsetpara.F
+++ /dev/null
@@ -1,27 +0,0 @@
-
-C*********************************************************************
-
-C...FHSETPARA
-C...Dummy function, to be removed when FEYNHIGGS is to be linked.
-
-      SUBROUTINE FHSETPARA(IER,SCF,DMT,DMB,DMW,DMZ,DTANB,DMA,DMH,DM3L, 
-     &     DM3E,DM3Q,DM3U,DM3D,DM2L,DM2E,DM2Q,DM2U, DM2D,DM1L,DM1E,DM1Q, 
-     &     DM1U,DM1D,DMU,ATAU,AT,AB,AMU,AC,AS,AE,AU,AD,
-     &     DM1,DM2,DM3,RLT,RLB,QTAU,QT,QB)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link FEYNHIGGS correctly.'/
-     &1X,'Dummy routine FHSETPARA in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/pyevwt.F b/Generators/PythiaExo_i/src/PythiaDummies/pyevwt.F
deleted file mode 100644
index a4e2a991cf200e509c6d74db225846a1e031bc2f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/pyevwt.F
+++ /dev/null
@@ -1,61 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYEVWT
-C...Dummy routine, which the user can replace in order to multiply the
-C...standard PYTHIA differential cross-section by a process- and
-C...kinematics-dependent factor WTXS. For MSTP(142)=1 this corresponds
-C...to generation of weighted events, with weight 1/WTXS, while for
-C...MSTP(142)=2 it corresponds to a modification of the underlying
-C...physics.
- 
-      SUBROUTINE PYEVWT(WTXS)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYDAT1/,/PYINT1/,/PYINT2/
- 
-C...Set default weight for WTXS.
-      WTXS=1D0
- 
-C...Read out subprocess number.
-      ISUB=MINT(1)
-      ISTSB=ISET(ISUB)
- 
-C...Read out tau, y*, cos(theta), tau' (where defined, else =0).
-      TAU=VINT(21)
-      YST=VINT(22)
-      CTH=0D0
-      IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
-      TAUP=0D0
-      IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
- 
-C...Read out x_1, x_2, x_F, shat, that, uhat, p_T^2.
-      X1=VINT(41)
-      X2=VINT(42)
-      XF=X1-X2
-      SHAT=VINT(44)
-      THAT=VINT(45)
-      UHAT=VINT(46)
-      PT2=VINT(48)
- 
-C...Modifications by user to be put here.
- 
-C...Stop program if this routine is ever called.
-C...You should not copy these lines to your own routine.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link your PYEVWT routine ',
-     &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/pykcut.F b/Generators/PythiaExo_i/src/PythiaDummies/pykcut.F
deleted file mode 100644
index 4bfee869c9ad1d7a0578f767d3089f09f3f0f2a1..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/pykcut.F
+++ /dev/null
@@ -1,78 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYKCUT
-C...Dummy routine, which the user can replace in order to make cuts on
-C...the kinematics on the parton level before the matrix elements are
-C...evaluated and the event is generated. The cross-section estimates
-C...will automatically take these cuts into account, so the given
-C...values are for the allowed phase space region only. MCUT=0 means
-C...that the event has passed the cuts, MCUT=1 that it has failed.
- 
-      SUBROUTINE PYKCUT(MCUT)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYDAT1/,/PYINT1/,/PYINT2/
- 
-C...Set default value (accepting event) for MCUT.
-      MCUT=0
- 
-C...Read out subprocess number.
-      ISUB=MINT(1)
-      ISTSB=ISET(ISUB)
- 
-C...Read out tau, y*, cos(theta), tau' (where defined, else =0).
-      TAU=VINT(21)
-      YST=VINT(22)
-      CTH=0D0
-      IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
-      TAUP=0D0
-      IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
- 
-C...Calculate x_1, x_2, x_F.
-      IF(ISTSB.LE.2.OR.ISTSB.GE.5) THEN
-        X1=SQRT(TAU)*EXP(YST)
-        X2=SQRT(TAU)*EXP(-YST)
-      ELSE
-        X1=SQRT(TAUP)*EXP(YST)
-        X2=SQRT(TAUP)*EXP(-YST)
-      ENDIF
-      XF=X1-X2
- 
-C...Calculate shat, that, uhat, p_T^2.
-      SHAT=TAU*VINT(2)
-      SQM3=VINT(63)
-      SQM4=VINT(64)
-      RM3=SQM3/SHAT
-      RM4=SQM4/SHAT
-      BE34=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
-      RPTS=4D0*VINT(71)**2/SHAT
-      BE34L=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4-RPTS))
-      RM34=2D0*RM3*RM4
-      RSQM=1D0+RM34
-      RTHM=(4D0*RM3*RM4+RPTS)/(1D0-RM3-RM4+BE34L)
-      THAT=(-0.5D0)*SHAT*MAX(RTHM,1D0-RM3-RM4-BE34*CTH)
-      UHAT=(-0.5D0)*SHAT*MAX(RTHM,1D0-RM3-RM4+BE34*CTH)
-      PT2=MAX(VINT(71)**2,0.25D0*SHAT*BE34**2*(1D0-CTH**2))
- 
-C...Decisions by user to be put here.
- 
-C...Stop program if this routine is ever called.
-C...You should not copy these lines to your own routine.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link your PYKCUT routine ',
-     &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/pytaud.F b/Generators/PythiaExo_i/src/PythiaDummies/pytaud.F
deleted file mode 100644
index ca82e68a093c5715dab43194734d82f2ba102293..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/pytaud.F
+++ /dev/null
@@ -1,46 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYTAUD
-C...Dummy routine, to be replaced by user, to handle the decay of a
-C...polarized tau lepton.
-C...Input:
-C...ITAU is the position where the decaying tau is stored in /PYJETS/.
-C...IORIG is the position where the mother of the tau is stored;
-C...     is 0 when the mother is not stored.
-C...KFORIG is the flavour of the mother of the tau;
-C...     is 0 when the mother is not known.
-C...Note that IORIG=0 does not necessarily imply KFORIG=0;
-C...     e.g. in B hadron semileptonic decays the W  propagator
-C...     is not explicitly stored but the W code is still unambiguous.
-C...Output:
-C...NDECAY is the number of decay products in the current tau decay.
-C...These decay products should be added to the /PYJETS/ common block,
-C...in positions N+1 through N+NDECAY. For each product I you must
-C...give the flavour codes K(I,2) and the five-momenta P(I,1), P(I,2),
-C...P(I,3), P(I,4) and P(I,5). The rest will be stored automatically.
- 
-      SUBROUTINE PYTAUD(ITAU,IORIG,KFORIG,NDECAY)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYJETS/,/PYDAT1/
- 
-C...Stop program if this routine is ever called.
-C...You should not copy these lines to your own routine.
-      NDECAY=ITAU+IORIG+KFORIG
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link your PYTAUD routine ',
-     &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/pytime.F b/Generators/PythiaExo_i/src/PythiaDummies/pytime.F
deleted file mode 100644
index 673070669c330bcae63cc9de303849d68bf3a605..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/pytime.F
+++ /dev/null
@@ -1,76 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYTIME
-C...Finds current date and time.
-C...Since this task is not standardized in Fortran 77, the routine
-C...is dummy, to be replaced by the user. Examples are given for
-C...the Fortran 90 routine and DEC Fortran 77, and what to do if
-C...you do not have access to suitable routines.
- 
-      SUBROUTINE PYTIME(IDATI)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-c      INTEGER PYK,PYCHGE,PYCOMP
-c      CHARACTER*8 ATIME
-C...Local array.
-      INTEGER IDATI(6),IDTEMP(3)
- 
-C...Example 0: if you do not have suitable routines.
-      DO 100 J=1,6
-      IDATI(J)=0
-  100 CONTINUE
- 
-C...Example 1: Fortran 90 routine.
-C      INTEGER IVAL(8)
-C      CALL DATE_AND_TIME(VALUES=IVAL)
-C      IDATI(1)=IVAL(1)
-C      IDATI(2)=IVAL(2)
-C      IDATI(3)=IVAL(3)
-C      IDATI(4)=IVAL(5)
-C      IDATI(5)=IVAL(6)
-C      IDATI(6)=IVAL(7)
- 
-C...Example 2: DEC Fortran 77. AIX.
-C      CALL IDATE(IMON,IDAY,IYEAR)
-C      IDATI(1)=IYEAR
-C      IDATI(2)=IMON
-C      IDATI(3)=IDAY
-C      CALL ITIME(IHOUR,IMIN,ISEC)
-C      IDATI(4)=IHOUR
-C      IDATI(5)=IMIN
-C      IDATI(6)=ISEC
- 
-C...Example 3: DEC Fortran, IRIX, IRIX64.
-C      CALL IDATE(IMON,IDAY,IYEAR)
-C      IDATI(1)=IYEAR
-C      IDATI(2)=IMON
-C      IDATI(3)=IDAY
-C      CALL TIME(ATIME)
-C      IHOUR=0
-C      IMIN=0
-C      ISEC=0
-C      READ(ATIME(1:2),'(I2)') IHOUR
-C      READ(ATIME(4:5),'(I2)') IMIN
-C      READ(ATIME(7:8),'(I2)') ISEC
-C      IDATI(4)=IHOUR
-C      IDATI(5)=IMIN
-C      IDATI(6)=ISEC
- 
-C...Example 4: GNU LINUX libU77, SunOS.
-      CALL IDATE(IDTEMP)
-      IDATI(1)=IDTEMP(3)
-      IDATI(2)=IDTEMP(2)
-      IDATI(3)=IDTEMP(1)
-      CALL ITIME(IDTEMP)
-      IDATI(4)=IDTEMP(1)
-      IDATI(5)=IDTEMP(2)
-      IDATI(6)=IDTEMP(3)
- 
-C...Common code to ensure right century.
-      IDATI(1)=2000+MOD(IDATI(1),100)
- 
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/ssmssm.F b/Generators/PythiaExo_i/src/PythiaDummies/ssmssm.F
deleted file mode 100644
index 9c04878feb7f8fc821f218dd0f736a1ca4462166..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/ssmssm.F
+++ /dev/null
@@ -1,29 +0,0 @@
- 
-C*********************************************************************
- 
-C...SSMSSM
-C...Dummy function, to be removed when ISAJET (ISASUSY) is to be linked.
-
-      SUBROUTINE SSMSSM(RDUM1,RDUM2,RDUM3,RDUM4,RDUM5,RDUM6,RDUM7,
-     &RDUM8,RDUM9,RDUM10,RDUM11,RDUM12,RDUM13,RDUM14,RDUM15,RDUM16,
-     &RDUM17,RDUM18,RDUM19,RDUM20,RDUM21,RDUM22,RDUM23,RDUM24,RDUM25,
-     &IDUM1,IDUM2)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      REAL RDUM1,RDUM2,RDUM3,RDUM4,RDUM5,RDUM6,RDUM7,RDUM8,RDUM9,
-     &RDUM10,RDUM11,RDUM12,RDUM13,RDUM14,RDUM15,RDUM16,RDUM17,RDUM18,
-     &RDUM19,RDUM20,RDUM21,RDUM22,RDUM23,RDUM24,RDUM25
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link ISAJET correctly.'/
-     &1X,'Dummy routine SSMSSM in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/sugra.F b/Generators/PythiaExo_i/src/PythiaDummies/sugra.F
deleted file mode 100644
index b32a4414a8669b2bfeaac7e949c0bc25db0d9127..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/sugra.F
+++ /dev/null
@@ -1,26 +0,0 @@
- 
-C*********************************************************************
- 
-C...SUGRA
-C...Dummy routine, to be removed when ISAJET (ISASUSY) is to be linked.
- 
-      SUBROUTINE SUGRA(MZERO,MHLF,AZERO,TANB,SGNMU,MTOP,IMODL)
-       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      REAL MZERO,MHLF,AZERO,TANB,SGNMU,MTOP
-      INTEGER IMODL
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link ISAJET correctly.'/
-     &1X,'Dummy routine SUGRA in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/upveto.F b/Generators/PythiaExo_i/src/PythiaDummies/upveto.F
deleted file mode 100644
index 22563542f03ada356185845332ea16c4b744a395..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/upveto.F
+++ /dev/null
@@ -1,46 +0,0 @@
-
-C*********************************************************************
- 
-C...UPVETO
-C...Dummy routine, to be replaced by user, to veto event generation 
-C...on the parton level, after parton showers but before multiple 
-C...interactions, beam remnants and hadronization is added.
-C...If resonances like W, Z, top, Higgs and SUSY particles are handed 
-C...undecayed from UPEVNT, or are generated by PYTHIA, they will also 
-C...be undecayed at this stage; if decayed their decay products will 
-C...have been allowed to shower. 
-
-C...All partons at the end of the shower phase are stored in the 
-C...HEPEVT commonblock. The interesting information is 
-C...NHEP = the number of such partons, in entries 1 <= i <= NHEP,
-C...IDHEP(I) = the particle ID code according to PDG conventions,
-C...PHEP(J,I) = the (p_x, p_y, p_z, E, m) of the particle.
-C...All ISTHEP entries are 1, while the rest is zeroed.
-
-C...The user decision is to be conveyed by the IVETO value.
-C...IVETO = 0 : retain current event and generate in full;
-C...      = 1 : abort generation of current event and move to next.
- 
-      SUBROUTINE UPVETO(IVETO)
-
-C...HEPEVT
-C      INCLUDE 'hepevt.inc'
-
-C...Next few lines allow you to see what info PYVETO extracted from 
-C...the full event record for the first two events. 
-C...Delete if you don't want it. 
-      INTEGER NLIST/0/
-      SAVE NLIST
-      IF(NLIST.LE.2) THEN
-        WRITE(*,*) ' Full event record at time of UPVETO call:'
-        CALL PYLIST(1)
-        WRITE(*,*) ' Part of event record made available to UPVETO:'
-        CALL PYLIST(5)
-        NLIST=NLIST+1
-      ENDIF
-
-C...Make decision here.
-      IVETO = 0
-
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaDummies/visaje.F b/Generators/PythiaExo_i/src/PythiaDummies/visaje.F
deleted file mode 100644
index 0bc7a3e4049262111072c4729a845b17631b8407..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaDummies/visaje.F
+++ /dev/null
@@ -1,29 +0,0 @@
- 
-C*********************************************************************
- 
-C...VISAJE
-C...Dummy function, to be removed when ISAJET (ISASUSY) is to be linked.
- 
-      FUNCTION VISAJE()
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      CHARACTER*40 VISAJE
- 
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Assign default value.
-      VISAJE='Undefined'
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link ISAJET correctly.'/
-     &1X,'Dummy function VISAJE in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaGS.cxx b/Generators/PythiaExo_i/src/PythiaGS.cxx
deleted file mode 100644
index ae68ece1fc8b4673440ec223d8fad3f8c76f1576..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaGS.cxx
+++ /dev/null
@@ -1,871 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//////////////////////////////////////////////////////////////////
-//
-// PythiaGS.cxx Description: Allows the user to generate gravitational 
-// scattering pythia events and store the result in the Transient Store.
-//
-// Adapted from Pythia.cxx by Nele Boelaert
-//
-//
-//
-//
-// Header for this module:-
-#include "PythiaExo_i/PythiaGS.h"
-#include "TruthUtils/GeneratorName.h"
-
-// Framework Related Headers:-
-// #include "GaudiKernel/MsgStream.h"
-
-// Other classes used by this class:-
-#include "StoreGate/StoreGateSvc.h"
- 
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "GeneratorUtils/StringParse.h"
-#include <stdlib.h>
-//-------------------------------
-// calls to fortran routines
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-// For GravADD
-#include "GravADD_i/GravADD.h"
-#include "GravADD_i/gammafn.h"
-
-
-// Pointer On AtRndmGenSvc
-IAtRndmGenSvc* 	PythiaGS::p_AtRndmGenSvc  = 0;
-std::string	PythiaGS::pythia_stream	=	"PYTHIA_INIT";
-//extern massesGRAVADD masses_; 
-
-extern "C" double atl_pyr_( int* /*idummy*/ )
-{
-  CLHEP::HepRandomEngine* engine = 	PythiaGS::p_AtRndmGenSvc->GetEngine(PythiaGS::pythia_stream);
-  return CLHEP::RandFlat::shoot(engine);
-}
-
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyinit_(const char*,
-               const char*, 
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference) 
-               int  
-               );
-  void pyevnt_();
-  void pyevnw_();
-  void pyeffevt_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  int  pycomp_(int*);
-//    void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-    void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void rinpar_(); // comphep 
-  void subnum_(); // comphep file
-  void rheader_(); // comphep initialization
-  void extproc_(int*);
-  void opensusyfile_(const char* ,int * , int);
-  void setecm_(double*); 
-  double wtgrav_(int&, double&,int&); 
-  int gravfl_();
-  void pyevwt_(double*);
-  void initgravadd_();
-  //void init_datapath_(const char*,const int&);	
-}
-
-
-// File scope declarations:-
-
-// set pointer to zero at start
-Atlas_HEPEVT*  PythiaGS::s_atlas_HEPEVT = new Atlas_HEPEVT();
-
-//--------------------------------------------------------------------------
-PythiaGS::PythiaGS(const std::string& name, 
-      ISvcLocator* pSvcLocator): GenModule(name,pSvcLocator)
-{
-//--------------------------------------------------------------------------  
-  pythia_stream	=	"PYTHIA_INIT";
-  declareProperty("SusyInputFile",    m_read_Filesusy = " ");
-  declareProperty("PythiaCommand",    m_pythiaCommandVector);
-  declareProperty("SetAtlasDefaults", m_AtlasDefaults = true );
-  m_firstlistevent = -1;
-  m_lastlistevent  = -1;
-
-  m_ExternalProcess = 0;
-  m_RndmFileLength=0;
-  m_RndmFileNumber=0;
-  m_RndmFirstEvent=1;
-  m_RndmMOVE=0;
-  m_RndmSkipEvents=0;
-  m_RndmSwitch=0;
-  m_eventlistlevel=0;
-  m_events = 0;
-  m_fortout=0;
-  m_gsonly = 0;
-  m_initlistlevel=11;
-  m_msel=6;
-  m_randomseed=19780503;
-  m_win=14000.;
-
-  m_sum_pari10=0.;
-  m_sum_w=0.;
-}
-//--------------------------------------------------------------------------
-PythiaGS::~PythiaGS(){
-//--------------------------------------------------------------------------
-}
-//-------------------------------------------------------------
-//--------------
-// Operations --
-//--------------
-Pydat1& PythiaGS::pydat1() {
-   return m_pydat1;
-}
-Pydat2& PythiaGS::pydat2() {
-   return m_pydat2;
-}
-Pydat3& PythiaGS::pydat3() {
-   return m_pydat3; 
-}
-Pysubs& PythiaGS::pysubs() {
-   return m_pysubs;
-}
-Pypars& PythiaGS::pypars() {
-   return m_pypars;
-}
-Pydatr& PythiaGS::pydatr() {
-   return m_pydatr;
-}
-Pymssm& PythiaGS::pymssm() {
-   return m_pymssm;
-}
-//Pypued& PythiaGS::pypued() {
-//   return m_pypued;
-//}
-//Pymsrv& PythiaGS::pymsrv() {
-//   return m_pymsrv;
-//}
-Pyint1& PythiaGS::pyint1() {
-   return m_pyint1;
-}
-Pyint2& PythiaGS::pyint2() {
-   return m_pyint2;
-}
-Pyint5& PythiaGS::pyint5() {
-   return m_pyint5;
-}
-Pytcsm& PythiaGS::pytcsm() {
-   return m_pytcsm;
-}
-AcerMC_acset& PythiaGS::acermc_acset() {
-   return m_acermc_acset;
-}
-
-//---------------------------------------------------------------------------
-StatusCode PythiaGS::genInitialize() {
-  //---------------------------------------------------------------------------
-  // Initialise the listing output, parameter and decay data input streams
-  //
-  //  MsgStream log(messageService(), name());
-  //  log << MSG::INFO
-  if(msgLvl(MSG::INFO)){ 
-   msg(MSG::INFO)  << " PYTHIA INITIALISING.  \n"  << endmsg;
-  }
-
-  m_sum_pari10=0.;
-  m_sum_w=0.;
-
-/*  std::string datapath =  PathResolverFindDataFile ("PythiaExo_i/f2abs.dat");
-  datapath = datapath.substr(0,datapath.length()-9);	
-  std::cout << "stringpath: " << datapath << "\n" ;	
-  init_datapath_(datapath.c_str(),datapath.length());	*/
-
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc",
-				  PythiaGS::p_AtRndmGenSvc,
-				  CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == PythiaGS::p_AtRndmGenSvc)
-  {
-   if(msgLvl(MSG::ERROR)){
-     msg(MSG::ERROR) << " Could not initialize Random Number Service" << endmsg;}
-      return RndmStatus;
-  }	
-  PythiaGS::pythia_stream	=	"PYTHIA_INIT";
-
-  // set up the input parameters to pyinit: these can be changed by the user
-  m_frame  = "CMS   ";
-  m_beam   = "P     ";
-  m_target = "P  ";
-  m_win=7000.;
-  m_initlistlevel=1;
-  m_pystatlistlevel.push_back(1);
-  m_fortout=0;
-  m_gsonly = 0;
-
-
-  m_RndmFileName=" ";
-  m_RndmFileNumber=0;
-  m_RndmSwitch=0;
-  m_RndmFirstEvent=1;
-  m_RndmSkipEvents=0;
-  m_RndmMOVE=0;
-  m_RndmFileLength=0;
-  m_ExternalProcess = 0;
-  
-  // end of setup to pyinit
-  //now set defaults
-  m_randomseed=19780503;
-  this->pydatr().mrpy(1) = m_randomseed; // can be overwritten by user
-  // default process is ttbar 
-  // these can be overwritten by user.
-  m_msel=6;
-  this->pysubs().msel() = m_msel;
-
-  // Set the ATLAS defaults
-  if (m_AtlasDefaults) {
-    //   Weighted events
-    this->pypars().mstp(142)  =1;
-    // subprocesses
-    this->pysubs().msel() = 0;
-    this->pysubs().msub(11)= 1;
-    this->pysubs().msub(12)= 1;
-    this->pysubs().msub(13)= 1;
-    this->pysubs().msub(28)= 1;
-    this->pysubs().msub(53)= 1;
-    this->pysubs().msub(68)= 1;
-
-    
-    this->pypars().mstp(81)=1;         
-    this->pypars().mstp(71)=1;         
-    this->pypars().mstp(61)=1;           
-    this->pypars().mstp(91)=1;             
-    this->pypars().mstp(111)=1;     
-
-    this->pypars().mstp(52)=2;      // (needed for CTEQ6L)
-    this->pypars().mstp(54)=2;      // (needed for CTEQ6L)
-    this->pypars().mstp(56)=2;      // (needed for CTEQ6L)
-    this->pypars().mstp(51)=10042;  // (needed for CTEQ6L)
-    this->pypars().mstp(53)=10042;  // (needed for CTEQ6L)
-    this->pypars().mstp(55)=10042;  // (needed for CTEQ6L)
-
-   
-  }
-
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-    if(msgLvl(MSG::INFO)){
-      msg(MSG::INFO) << " Command is: " << m_pythiaCommandVector[i]  << endmsg;}
-    StringParse mystring(m_pythiaCommandVector[i]);
-    string myblock=mystring.piece(1);
-    string myentry=mystring.piece(2);
-    string mystr=mystring.piece(3);
-    int myint1=mystring.intpiece(3);
-    int myint2=mystring.intpiece(4);
-    int myint3=mystring.intpiece(5);
-    int myint4=mystring.intpiece(6);
-    int myint5=mystring.intpiece(7);
-    double  myfl1=mystring.numpiece(4);
-    double  myfl2=mystring.numpiece(5);
-    double  myfl0=mystring.numpiece(3);
-// for GravADD_i user param. input
-    int myint6=mystring.intpiece(2);
-//
-    // Note that Pythia needs doubles hence the convert here
-    //    log << MSG:: INFO 
-    if(msgLvl(MSG::INFO)){
-      msg(MSG::INFO) << myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1 <<endmsg;}
-    if (myblock=="pyinit") {
-      if(myentry=="user"){
-	m_frame="USER  ";
-        m_external=mystr;
-	m_ExternalProcess = generator_int(mystr);
-	extproc_(&m_ExternalProcess);
-      }
-      else if(myentry=="FIXT"){
-	m_frame="FIXT";
-      }
-      else if(myentry=="pbar"){
-	m_beam="P~- ";
-      }
-      else if(myentry=="win"){
-	m_win=myfl0;
-      }      
-      else if(myentry=="pylisti"){
-	m_initlistlevel=myint1;
-      }      
-      else if(myentry=="pylistf"){
-	m_eventlistlevel=myint1;
-      }
-      else if(myentry=="dumpr"){
-	m_firstlistevent=myint1;
-	m_lastlistevent=myint2;
-      }
-      else if(myentry=="output"){
-	m_envval1=mystr;
-	m_fortout=49;
-	this->pydat1().mstu(11)=m_fortout;
-      }
-      else if(myentry=="rndm_IO"){
-	m_RndmFileName=mystr;
-	m_RndmFileNumber=36;
-	m_RndmSwitch=myint2;
-	m_RndmFirstEvent=myint3;
-	m_RndmSkipEvents=myint4;
-	m_RndmMOVE=myint5;
-	if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-	
-	if (m_RndmSwitch > 0)
-	{
-	    if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0)
-	    {
-	      //		log << MSG:: ERROR
-            if(msgLvl(MSG::ERROR)){
-            msg(MSG::ERROR) 
-		    << " INCOSISTENT SET OF rndm_IO PARAMETERS : FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF"
-		    << myentry <<endmsg ;}
-		m_RndmSwitch = 0;
-	    }
-	}
-      if(msgLvl(MSG::INFO)){
-	msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! " << endmsg;
-	msg(MSG::INFO) << " THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  " << endmsg;
-	msg(MSG::INFO) << " PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE" << endmsg;
-	msg(MSG::INFO) << " ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  " << endmsg;
-	msg(MSG::INFO) << " DETAILS LOOK IN  " << endmsg;
-	msg(MSG::INFO) << " http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf "
-	    << endmsg;
-	msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-
-	m_RndmSwitch = 0;
-      }
-      else {
-	//	log << MSG:: ERROR 
-       if(msgLvl(MSG::ERROR)){ 
-	 msg(MSG::ERROR) << "PYTHIA ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN AND RNDM_IO: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }    
-    }
-    else if (myblock == "pysubs") {
-      if(myentry == "msel"){
-	this->pysubs().msel()=myint1;
-      }
-      else if (myentry == "msub"){
-	this->pysubs().msub(myint1)=myint2;	 
-      }
-      else if (myentry == "ckin"){
-	this->pysubs().ckin(myint1)=myfl1;	 
-      }
-      else if (myentry == "kfin"){
-	this->pysubs().kfin(myint1,myint2)=myint3;	 
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR)  << "PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pypars"){
-      if(myentry == "mstp"){
-	this->pypars().mstp(myint1)=myint2;
-      }
-      else if(myentry == "msti"){
-	this->pypars().msti(myint1)=myint2;
-      }
-      else if(myentry == "parp"){
-	this->pypars().parp(myint1)=myfl1;
-      }
-      else if(myentry == "pari"){
-	this->pypars().pari(myint1)=myfl1;
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat1"){
-      if(myentry == "mstu"){
-	this->pydat1().mstu(myint1)=myint2;
-      }       
-      else if(myentry == "mstj"){
-	this->pydat1().mstj(myint1)=myint2;
-      }
-      else if(myentry == "paru"){
-	this->pydat1().paru(myint1)=myfl1;
-      }       
-      else if(myentry == "parj"){
-	this->pydat1().parj(myint1)=myfl1;
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat2"){
-      if(myentry == "kchg"){
-	this->pydat2().kchg(myint1,myint2)=myint3;
-      }       
-      else if(myentry == "pmas"){
-	this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      }
-      else if(myentry == "parf"){
-	this->pydat2().parf(myint1)=myfl1;
-      }       
-      else if(myentry == "vckm"){
-	this->pydat2().vckm(myint1,myint2)=myfl2;
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat3"){
-      if(myentry == "mdcy"){
-	this->pydat3().mdcy(myint1,myint2)=myint3;
-      }       
-      else if(myentry == "mdme"){
-	this->pydat3().mdme(myint1,myint2)=myint3;
-      }
-      else if(myentry == "brat"){
-	this->pydat3().brat(myint1)=myfl1;
-      }       
-      else if(myentry == "kfdp"){
-	this->pydat3().kfdp(myint1,myint2)=myint3;
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydatr"){
-      if(myentry == "mrpy"){
-      if(msgLvl(MSG::INFO)){
-	msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! " << endmsg;
-	msg(MSG::INFO) << " THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  " << endmsg;
-	msg(MSG::INFO) << " PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE" << endmsg;
-	msg(MSG::INFO) << " ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  " << endmsg;
-	msg(MSG::INFO) << " DETAILS LOOK IN  " << endmsg;
-	msg(MSG::INFO) << " http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf "
-	    << endmsg;
-	msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-	  
-	this->pydatr().mrpy(myint1)=myint2;
-      }       
-      else if(myentry == "rrpy"){
-	this->pydatr().rrpy(myint1)=myfl1;
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYDATR  HAS MRPY AND RRPY : YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pymssm"){
-      if (myentry=="imss"){
-	if (myint1 == 21 || myint1 == 22) {
-	  //	  log << MSG::WARNING
-          if(msgLvl(MSG::WARNING)){ 
-	    msg(MSG::WARNING) << "The seting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default" <<endmsg;}
-	} else {
- 	  this->pymssm().imss(myint1)=myint2;
-	}
-      }
-      else if (myentry=="rmss"){
-	this->pymssm().rmss(myint1)=myfl1;
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pyint2"){
-      if (myentry == "iset"){
-	this->pyint2().iset(myint1)=myint2; 
-      }
-      else if (myentry == "kfpr"){
-	this->pyint2().kfpr(myint1,myint2)=myint3;  
-      }
-      else if (myentry == "coef"){
-	this->pyint2().coef(myint1,myint2)=myfl2;  
-      }
-      else if (myentry == "icol"){
-	this->pyint2().icol(myint1,myint2,myint3)=myint4;  
-      }
-      else {
-      if(msgLvl(MSG::ERROR)){
-	msg(MSG::ERROR) << "PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pystat"){
-	m_pystatlistlevel.clear();
-	for (unsigned i = 2; i <= mystring.string_size(); ++i)
-	    m_pystatlistlevel.push_back(mystring.intpiece(i));
-    }
-    else if (myblock == "pytcsm"){
-      if (myentry == "itcm"){
-	this->pytcsm().itcm(myint1)=myint2; 
-      }
-      else if (myentry=="rtcm"){
-	this->pytcsm().rtcm(myint1)=myfl1;
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-
-    }
-
-    // AcerMC tt~ decay mode switching
-    else if (myblock == "acermc" && myentry=="acset12") {
-      if (m_ExternalProcess == 3) {
-	this->acermc_acset().acset12()=myint1;
-      }
-    }
-// for ExoGraviton user parameter setup
-    else if (myblock == "grav")
-     {
-//    	::WriteGravParam(myint6,myint1,(double)myfl0);
-     }
-      else if (myblock == "gravADD")
-	{
-	  ::writegravaddparam(myint6,myint1,(double)myfl0);
-	  //        std::cout << "gravADD params: " << myint6 << " " << myint1 << " " << (double)myfl0 << "\n"
-	  if (myint6==6 && myint1==1){
-	    m_gsonly=1;
-	  }
-	  if (myint6==2) {
-	    m_win = (double)myfl0;
-	  }	  
-	}
-    
-    else {
-      if(msgLvl(MSG::ERROR)){
-	msg(MSG::ERROR) << " ERROR in PYTHIA PARAMETERS   " << myblock << " is and invalid common block name !" << endmsg;}
-    }
-  }
-  // end of parsing
-  //------------------------------------------------------------------
-
-  // Set the logical Unit Number for the immss(1)=11 option and open the file
-  if (this->pymssm().imss(1) == 11) {
-    int syunit = 66;
-    this->pymssm().imss(21) = syunit;
-    this->pymssm().imss(22) = syunit;
-    const std::string& fileName = m_read_Filesusy; 
-    opensusyfile_(fileName.c_str(),&syunit,fileName.size()); 
-  }
-  
-  // !!!!! PROTECT AGAINST mstp(81)/mstp(82) Pythia looping
-  if (this->pypars().mstp(81) == 0 && this->pypars().mstp(82) > 2)
-  {
-      this->pypars().mstp(82) = 1;
-      if(msgLvl(MSG::INFO)){
-      msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA LOOPING !!!!!!!! " << endmsg;
-      msg(MSG::INFO) << " YOU HAVE SWITCHED OFF MULTIPLE INTERACTIONS, mstp(81) = 0 " << endmsg;
-      msg(MSG::INFO) << " THE DEFAULT ATLAS MULTIPLE INTERACTIONS SCENARIO, mstp(82) = 4 " << endmsg;
-      msg(MSG::INFO) << " CHANGED TO mstp(82) = 1, BECAUSE PYTHIA IS LOOPING WHEN " << endmsg;
-      msg(MSG::INFO) << " mstp(81) = 0 and mstp(82) > 2 " << endmsg;
-      msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-  }
-  
-  // Now call pyinit and set listing
-  // Note the `extra' arguments to pyinit on the end of the argument
-  // list which do *not* explicitly occur in the FORTRAN
-  // implementation of the function -- one for each character
-  // variable, in the same order (reference Randy Herber,
-  // herber@fnal.gov). Note also that the `extern "C"' function
-  // declaration matches the C usage rather than the FORTRAN
-  // definition of the PYINIT function and therefore includes the 3
-  // extra arguments.
-  // activate the block data  
-  const char* envval = m_envval1.c_str();
-  initpyblock_(&m_fortout,envval);
-
-  if (m_RndmSwitch > 0)
-  {
-      const char* RndmFileName = m_RndmFileName.c_str();
-      m_RndmFileLength = openrandom_(&m_RndmSwitch, &m_RndmFileNumber, RndmFileName);
-      if (m_RndmSwitch ==2 ) msg(MSG::INFO) << " THEY ARE " << m_RndmFileLength
-				 << " EVENTS STORED IN THE PYTHIA RANDOM NUMBER FILE \n"  << endmsg;
-  }
-  
-  const char* frame = m_frame.c_str();
-  const char* beam = m_beam.c_str();
-  double winval = m_win;
-  const char* target = m_target.c_str();
-  int minlist   = m_initlistlevel;
-  // special initialization for comphep
-  if(m_external=="comphep"){
-    rinpar_();
-    subnum_();
-    rheader_();
-  }
-  
-
-  // Save the PYTHIA_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = PythiaGS::p_AtRndmGenSvc->GetEngine(PythiaGS::pythia_stream);
-  const long*	sip	=	engine->getSeeds();
-  long	int	si1	=	sip[0];
-  long	int	si2	=	sip[1];
-
-  if (m_gsonly == 0){  // initialize to run black holes and gravitational scattering
-    pyinit_(frame,beam,target,&winval,
-	    strlen(frame),strlen(beam),strlen(target)
-	    );
-  }
-  else {   // unitialize to run gravitational scattering but no (!) black holes
-    initgravadd_();
-    pyinit_("CMS",beam,target,&winval,
-	    strlen(frame),strlen(beam),strlen(target)
-	 );  
-  }
-
-  // ... and set them back to the stream for proper save
-  PythiaGS::p_AtRndmGenSvc->CreateStream(si1, si2, PythiaGS::pythia_stream);
-
-  PythiaGS::pythia_stream	=	"PYTHIA";
-  
-  pylist_(&minlist);
-  m_events = 0;
-  //  cout << " kfpr ============ " << this->pyint2().kfpr(186,2) <<endl;
-  //cout << " kfpr ============ " << this->pyint2().kfpr(187,2) <<endl;
-  //decay table
-  const char  *p_envar1="PYDAT";
-  //  char  *p_envval1=0;
-  //p_envval1=
-  getenv(p_envar1);
-  //----------------------------------------------------------
-  // This is the decay table  file 
-  //
-  //   int mode=2;
-  //   int lun=37;
-  //   pyupda_(&mode,&lun);
-  //    cldcay_(&lun);
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-//   HepMC::HEPEVT_Wrapper::set_sizeof_int(4);
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-StatusCode PythiaGS::callGenerator() {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-  //  log << MSG::DEBUG 
-  if(msgLvl(MSG::DEBUG)){
-    msg(MSG::DEBUG) << " PYTHIA generating.  \n"  << endmsg;
-  }
-  // Write/Read the random numbers to/from file if requested
-  if (m_RndmSwitch > 0)	RandomNumberIO();
-
-  // Save the random number seeds in the event
-  CLHEP::HepRandomEngine*	engine	=	PythiaGS::p_AtRndmGenSvc->GetEngine(PythiaGS::pythia_stream);
-  const long*		s	=	engine->getSeeds();
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-  
-  // Generate event
-  //  pyevnt_();
-  pyeffevt_();	
-
-  // update event counter
-  ++m_events;
-  /* int mevlist=m_eventlistlevel; 
-  // Is the event to be listed
-  if ( m_events >= m_firstlistevent &&
-       m_events <= m_lastlistevent) {
-    log<< MSG:: INFO << "PYEVNT event no. " << m_events << " will be listed" << endmsg;
-    if (m_frame == "USER  ")
-    {
-	int uspr = 7;
-	pylist_(&uspr); // Special listing when external generator was selected
-    }
-    pylist_(&mevlist); // List this event if required
-  }  */  
-  // Tell lunhep to convert from PYJETS to HEPEVT
-  int mconv=1;				
-  // Do the conversion
-//    lunhep_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  pyhepc_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  if ( HepMC::HEPEVT_Wrapper::number_entries() <= 0 ) {
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    std::cout << "!!! " << generator_name(m_ExternalProcess) << " TERMINATES NORMALY: NO MORE EVENTS IN FILE !!!" << std::endl;
-    std::cout << "!!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE !!!" << std::endl;
-    std::cout << "!!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!!" << std::endl;
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    return StatusCode::FAILURE;
-  }
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-//   HepMC::HEPEVT_Wrapper::print_hepevt();
-  return StatusCode::SUCCESS;  
-}
-
-//---------------------------------------------------------------------------
-StatusCode PythiaGS::genFinalize() {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-if(msgLvl(MSG::INFO)){
-  msg(MSG::INFO) << " PYTHIA Ending.  \n"  << endmsg;
- }
-  for (std::vector<int>::iterator i = m_pystatlistlevel.begin(); i != m_pystatlistlevel.end(); ++i)
-  {
-   if(msgLvl(MSG::INFO)){ 
-     msg(MSG::INFO) <<"Call PYSTAT at endRun with level " << *i << endmsg;}
-      pystat_(&(*i));
-  }
-  std::cout << "MetaData: cross-section (nb)= " << 1000000. * this->pyint5().xsec(0,3)*m_sum_pari10/m_sum_w  << std::endl;
-  return StatusCode::SUCCESS;
-}
-//---------------------------------------------------------------------------
-StatusCode PythiaGS::fillEvt(HepMC::GenEvent* evt) {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-  if(msgLvl(MSG::DEBUG)){
-   msg(MSG::DEBUG) << " PYTHIA Atlas_HEPEVT Filling.  \n"  << endmsg;}
-  store_Atlas_HEPEVT();
-
-  if(msgLvl(MSG::INFO)){
-    msg(MSG::DEBUG) << " PYTHIA Filling.  \n"  << endmsg;}
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-
-  hepio.fill_next_event(evt);
-  int pr_id = PYTHIA + m_ExternalProcess + this->pyint1().mint(1);
-  if (m_ExternalProcess > 0) pr_id = PYTHIA + m_ExternalProcess;
-  int gravev = 0;  // flag to distinguish QCD, BH and GS events
-  m_sum_w +=this->pypars().pari(10);
-  if (this->pypars().msti(1) == 4) {  // weight set by BH generator
-    this->pypars().pari(10) = 1.0/this->pypars().parp(200);
-    gravev = 2;
-  }
-  else {  // reweight cross section with (sigma QCD + sigma GS) / (sigma GS)
-    int mymsti = this->pypars().msti(1);
-    double wt;
-    wtgrav_(mymsti,wt,gravev);
-    this->pypars().pari(10) = this->pypars().pari(10)*wt;
-  } 
-   m_sum_pari10 +=this->pypars().pari(10);
- 
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-  evt->weights().push_back(gravev);	
-
-  //PDF WEIGHTS - using Pdf Info object.. 
-  //pdf_id x_1, x_1, Q2, f_1, f_2 
-  int id1=this->pypars().msti(15);
-  int id2=this->pypars().msti(16);
-  double x1=this->pypars().pari(33);
-  double x2=this->pypars().pari(34);
-  double q=this->pypars().pari(23);
-  double pdf1=(double)this->pypars().mstp(51); //pdg id - awkward but..
-  double pdf2=0.; //dummy 
-  HepMC::PdfInfo tmp_pdi(id1,id2,x1,x2,q,pdf1,pdf2);
-  evt->set_pdf_info(tmp_pdi);
-  /*  std::cout << "pdfiinfo:"<<  evt->pdf_info()->id1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->id2() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->x1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->x2() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->scalePDF() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->pdf1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->pdf2() << std::endl;
-  */
-
-
-  // Convert cm->mm and GeV->MeV
-//   cmTomm(evt);
-  GeVToMeV(evt);
-  
- return StatusCode::SUCCESS;
-}
-
-void
-PythiaGS::RandomNumberIO()
-{
-  //    MsgStream log(messageService(), name());
-
-    // m_RndmSwitch == 1 : Write the random numbers of the selected events into
-    //                     the file m_RndmFileNumber
-    if (m_RndmSwitch == 1)
-    {
-	int WriteEvent = 	m_events - m_RndmFirstEvent + 1;
-	if (WriteEvent >= 0)
-	{
-	    WriteEvent	 =	WriteEvent%m_RndmSkipEvents;
-	    if (WriteEvent == 0) pyrget_(&m_RndmFileNumber, &m_RndmMOVE);
-	}
-    }
-    // m_RndmSwitch == 2 : Read the random numbers from the selected records from
-    //                     the file m_RndmFileNumber
-    else if (m_RndmSwitch == 2)
-    {
-	int MOVE	=	m_RndmMOVE;
-	if (MOVE == 0)
-	{
-	    if (m_RndmFirstEvent > 0)
-	    {
-		if (m_events == 0)
-		{
-		    MOVE	=	m_RndmFirstEvent - 1;
-		}
-		else
-		{
-		    MOVE	=	m_RndmSkipEvents;
-		}
-	    }
-	    int c_pos	=	this->pydatr().mrpy(6)+MOVE;
-	    if (c_pos < m_RndmFileLength)
-	    {
-              if(msgLvl(MSG::INFO)){
-		msg(MSG::INFO) << "EVENT " << m_events+1
-		   << " will be generated with the random seeds read from record "
-			       << c_pos+1 << " in file " << m_RndmFileName << endmsg; }
-		pyrset_(&m_RndmFileNumber, &MOVE);
-	    }
-	}
-	else
-	{
-	    pyrset_(&m_RndmFileNumber, &MOVE);
-	}
-	    
-    }
-}
-
-void
-PythiaGS::store_Atlas_HEPEVT(void)
-{
-
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->nhep()  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->isthep(10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->idhep(10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->jmohep(1,10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->jdahep(2,10)  << std::endl;
-
-  s_atlas_HEPEVT->fill();
-
-  Atlas_HEPEVT* Ahep = new Atlas_HEPEVT();
-  *(Ahep)=*(s_atlas_HEPEVT);
-  static const std::string keyid = "PythiaGS";
-  StatusCode sc = evtStore() ->record(Ahep, keyid);
-  if (!sc.isSuccess()) {
-    //    MsgStream msg(messageService(), name());
-    //    msg << MSG::WARNING 
-    if(msgLvl(MSG::WARNING)){
-      msg(MSG::WARNING) << " Could not record Atlas_HEPEVT" << endmsg;}
-  }
-
-}
diff --git a/Generators/PythiaExo_i/src/PythiaGS_i_entries.cxx b/Generators/PythiaExo_i/src/PythiaGS_i_entries.cxx
deleted file mode 100644
index bf762795206bd8d6e448a0ffb0e1b1fd4377e1b3..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaGS_i_entries.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-#include "PythiaExo_i/PythiaGS.h"
-
-DECLARE_COMPONENT( PythiaGS )
-
diff --git a/Generators/PythiaExo_i/src/PythiaGravADD/Aeik.c b/Generators/PythiaExo_i/src/PythiaGravADD/Aeik.c
deleted file mode 100644
index 36926fb1ef4f5360051cd00fb49b3cce3248aeb3..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaGravADD/Aeik.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// I compile this file using 
-// gcc -c Aeik.c
-// Link with fortran whilde compiling fortran-program
-// g77 -lgsl -lgslcblas Aeik.o LitetFortran.f
-
-
-#include <stdio.h>
-#include <math.h>
-// These have to be altered
-#include <gsl/gsl_sf.h>
-#include <gsl/gsl_integration.h>
-
-
-/*void myerrorhandler (const char * reason,
-		     const char * file,
-		     int line,
-		     int gsl_errno) {
-  static int n = 0;
-  ++n;
-  if ( n <= 10 || n == 100 || n == 1000 || n == 10000 )
-    printf("myerrorhandler %d: (%s) %s\n", n, file, reason);
-    }*/
-
-
-
-// This defines the integrand, with parameters
-double f (double b, void * params) {
-  double *pVec = (double *) params;
-  double shat = pVec[0];
-  double k = pVec[1];
-  double Ms = pVec[2];
-  double MD = pVec[3];
-  double n = pVec[4];
-  double Pi=3.14159;
-  double Xconst=-(pow(MD,-2 - n)*pow(Ms,n)*pow(Pi,-1 + n/2.)*shat*
-  		  exp(gsl_sf_lngamma(n/2.))/8.);
-  //  printf("Xconst = %e.\Xconst");
-  double f = 2.0*Pi*b*gsl_sf_bessel_J0(b*k)*(1.0-exp(Xconst*gsl_sf_hyperg_U(n/2.0, 1.0, Ms*Ms*b*b/4.0)));
-  return f;
-}
-
-// This procedure does the actual interation
-double aeik_(double *shat, double *k, double *Ms, double *MD,
-	     int *n, double * bmin)
-{
-  //Changeing epsrel helped more for errors
-  double result, error;    // To be returned
-  double epsabs = 1.0e-10;  //Allowed absolute error
-  double epsrel = 0.000001;   //Allowed relative error
-  size_t subintervals = 1000000;
-  
-  // gsl_set_error_handler(&myerrorhandler);
-
-  //  printf("c-function aeik_ invoked with arguments\n shat = %e, k = %e, Ms = %e, MD = %e, n = %e.\n", *shat, *k, *Ms, *MD,(double) *n);
-  
-  gsl_function F;
-  F.function = &f;
-  double pVec[5];
-  pVec[0] = *shat;
-  pVec[1] = *k;
-  pVec[2] = *Ms;
-  pVec[3] = *MD;
-  pVec[4] = (double) *n;
-
-  F.params = pVec; /* our integrand contains parameters */
-  
-  gsl_integration_workspace * ws  // memory space for use by the interator
-    = gsl_integration_workspace_alloc (subintervals);
-  
-  // using gsl function for integrals over intervals of form (a,infinity)
-  gsl_integration_qagiu (	&F, /* The interand */
-				*bmin, /* integral from 0 to infinity */
-                        	epsabs,  /* acceptable absolute error */
-                        	epsrel, /* acceptable relative error */  
-                        	subintervals, /* Maximum number of subintervals */
-                        	ws, 	/* workspace to use during integration */
-                        	&result, /* returns result here */
-                        	&error /* returns error estimate here */
-                        	);  
-  double integral=result*2.0* *shat;
-  //  printf("The result is %e with an estimated error bound of %e\n", result, error);
-
-  gsl_integration_workspace_free (ws);
-
-  return integral;
-}
-
-
diff --git a/Generators/PythiaExo_i/src/PythiaGravADD/GravScat.F b/Generators/PythiaExo_i/src/PythiaGravADD/GravScat.F
deleted file mode 100644
index ad3f2792797f0cfbbfb4c25d9205ba0a3a3781ec..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaGravADD/GravScat.F
+++ /dev/null
@@ -1,1161 +0,0 @@
-C...PYKCUT
-C...Dummy routine, which the user can replace in order to make cuts on
-C...the kinematics on the parton level before the matrix elements are
-C...evaluated and the event is generated. The cross-section estimates
-C...will automatically take these cuts into account, so the given
-C...values are for the allowed phase space region only. MCUT=0 means
-C...that the event has passed the cuts, MCUT=1 that it has failed.
-
-      SUBROUTINE PYKCUT(MCUT)
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-     
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYDAT1/,/PYINT1/,/PYINT2/
-
-C--common block for the probabilities of SM particles
-      DOUBLE PRECISION PQUARK,PLEPT,PNEUT,PGLUON,PGAMMA,PWBOSN,
-     & PZBOSN,PHIGGS,PFERM(3),PBOSON(5)
-      COMMON /BHPROB/PQUARK,PLEPT,PNEUT,PGLUON,PGAMMA,PWBOSN,
-     & PZBOSN,PHIGGS,PFERM,PBOSON
-C--common block for the main parameters
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT
-C--common block for decay of the black hole
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-      SAVE /BLACKH/,/BHPARM/,/BHPROB/
-C      write(*,*) 'in subroutine pycut, MPLNCK: ',MPLNCK
-C...Set default value (accepting event) for MCUT.
-      MCUT=0
-
-C...Read out subprocess number.
-      ISUB=MINT(1)
-      ISTSB=ISET(ISUB)
-
-C...Read out tau, y*, cos(theta), tau' (where defined, else =0).
-      TAU=VINT(21)
-      YST=VINT(22)
-      CTH=0D0
-      IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
-      TAUP=0D0
-      IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
-
-C...Calculate x_1, x_2, x_F.
-      IF(ISTSB.LE.2.OR.ISTSB.GE.5) THEN
-        X1=SQRT(TAU)*EXP(YST)
-        X2=SQRT(TAU)*EXP(-YST)
-      ELSE
-        X1=SQRT(TAUP)*EXP(YST)
-        X2=SQRT(TAUP)*EXP(-YST)
-      ENDIF
-      XF=X1-X2
-
-C...Calculate shat, that, uhat, p_T^2.
-      SHAT=TAU*VINT(2)
-      SQM3=VINT(63)
-      SQM4=VINT(64)
-      RM3=SQM3/SHAT
-      RM4=SQM4/SHAT
-      BE34=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
-      RPTS=4D0*VINT(71)**2/SHAT
-      BE34L=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4-RPTS))
-      RM34=2D0*RM3*RM4
-      RSQM=1D0+RM34
-      RTHM=(4D0*RM3*RM4+RPTS)/(1D0-RM3-RM4+BE34L)
-      THAT=-(0.5D0*SHAT*MAX(RTHM,1D0-RM3-RM4-BE34*CTH))
-      UHAT=-(0.5D0*SHAT*MAX(RTHM,1D0-RM3-RM4+BE34*CTH))
-      PT2=MAX(VINT(71)**2,0.25D0*SHAT*BE34**2*(1D0-CTH**2))
-
-C...Decisions by user to be put here.
-
-      IF ( TOTDIM.LE.3 ) RETURN
-
-      IF ( SQRT(SHAT).LT.MINMSS ) RETURN
-
-      PLPOW=2.0D0/(TOTDIM-3.0D0)
-
-      RHORSQ=(RHFACT*SQRT(SHAT))**PLPOW
-C...  If pT for the hard scattering (scale used in parton densiy) is
-C...  high enough use CHARYBDIS, VINT(52)=Q^2 of the hard subprocess
-      IF ( VINT(52)*RHORSQ*FACTOR.LE.1.0D0 ) RETURN
-
-      MCUT=1
-
-      RETURN
-      END
-
-
-C*********************************************************************
-
-C...PYEVWT
-C...Dummy routine, which the user can replace in order to multiply the
-C...standard PYTHIA differential cross-section by a process- and
-C...kinematics-dependent factor WTXS. For MSTP(142)=1 this corresponds
-C...to generation of weighted events, with weight 1/WTXS, while for
-C...MSTP(142)=2 it corresponds to a modification of the underlying
-C...physics.
-
-      SUBROUTINE PYEVWT(WTXS)
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYDAT1/,/PYINT1/,/PYINT2/
-
-C...Parameters used during the run, to be printed in the data files, therefore needed by WRIPAR
-      DOUBLE PRECISION UBMUL,WTPA
-    
-C...  For chosing clustering algorithm
-C      character CLALG*6
-      COMMON/RUNPAR/UBMUL,WTPA
-      SAVE /RUNPAR/ 
-      WTPA=1.0D0
-      
-
-C...Set default weight for WTXS.
-      WTXS=1D0
-
-C...Read out subprocess number.
-      ISUB=MINT(1)
-      ISTSB=ISET(ISUB)
-
-C...Read out tau, y*, cos(theta), tau' (where defined, else =0).
-      TAU=VINT(21)
-      YST=VINT(22)
-      CTH=0D0
-      IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
-      TAUP=0D0
-      IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
-
-C...Read out x_1, x_2, x_F, shat, that, uhat, p_T^2.
-      X1=VINT(41)
-      X2=VINT(42)
-      XF=X1-X2
-      SHAT=VINT(44)
-      THAT=VINT(45)
-      UHAT=VINT(46)
-      PT2=VINT(48)
-C...If Charybdis is not used the events (if(ISUB.ne.4)) should be
-C...weighted, else not
-c      IF( ISUB.NE.4 ) WTXS=(PT2**3)/(70.0D0*70.0D0)**3
-c      IF( ISUB.NE.4 ) WTXS=(PT2**3)/(SHAT/800.0D0)**3
-C      IF( ISUB.NE.4 ) WTXS=((PT2)**5)/((WTPA*SHAT/(X1*X2))/800.0D0)**5
-      IF( ISUB.NE.4 ) WTXS=((PT2)**3)/((WTPA*SHAT/(X1*X2))/800.0D0)**3
-C      write(*,*) 'in pyevwt: ',ISUB, WTXS, WTPA
-      RETURN
-      END
-
-
-C*********************************************************************
-C...WTGRAV
-C...03/09/09 changed by boelaert in order to return GRAVEV flag
-C...Routine which returnes the weight due to gravity 
-      SUBROUTINE WTGRAV(ISUB, WT, GRAVE)
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-C...Some parameters from CHARYBDIS commom block are needed
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-C...  Gravity parameters
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-C...Parameters used during the run, to be printed in the data files, therefore needed by WRIPAR
-C      DOUBLE PRECISION PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA
-C      INTEGER NEVE,NOINT,NCUT,TUNEA,NOQCD
-C...  For chosing clustering algorithm
-C      character CLALG*6
-C      COMMON/RUNPAR/PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA,
-C     $     NEVE,NCUT,TUNEA,NOINT,NOQCD,CLALG
-
-      INTEGER GRAVE
-      DOUBLE PRECISION WT
-C      SAVE /RUNPAR/,/MASSES/,/BLACKH/,/BHPARM/
-      SAVE /MASSES/,/BLACKH/,/BHPARM/
-C...Inline function definitions
-      include 'inlines.f'
-C      write(*,*) 'in subroutine pycut, wtgrav: ',MPLNCK
-C...Get shat from Pythia
-      SHAT=PARI(14)
-C      SHAT=VINT(44)
-CC...Get z=cos(theta) from Pythia
-      Z=PARI(41)
-C      Z=VINT(23)
-C...Get alpha_s
-      AS=PYALPS(PARI(22))
-C      AS=PYALPS(VINT(52))
-C...Get incoming flavours, negative for anti
-      IFI1=MSTI(15)
-C      IFI1=MINT(15)
-      IFI2=MSTI(16)
-C      IFI2=MINT(16)
-C...Get outgoing flavours
-      IFO1=MSTI(21)
-C      IFO1=MINT(21)
-      IFO2=MSTI(22)
-C      IFO2=MINT(22)
-
-C...WT is set to sigma_{grav+qcd}/sigma_qcd=(sigma_{grav+qcd}+sigma_{qcd})/sigma_{qcd} 
-C...for the different
-C...sub-processes
-      WT=1.0D0
-
-C...If we have 'effective' gravity or totgrav and SHAT.lt.MS**2
-      if(SHAT.lt.MS**2) then
-         IF ( ISUB.EQ.12 ) THEN
-C...  q + qbar -> q' + qbar'
-            WT=WTRAT(fqapb(z),gqapb(z),hqapb(z),1/36.0D0)
-         ELSEIF ( ISUB.EQ.11 ) THEN
-            IF((IFI1.EQ.IFI2).AND.(IFO1.EQ.IFO2).AND.(IFO1.EQ.IFI1))THEN
-C...  If q + q -> q + q (all are equal)
-               WT=WTRAT(fqqqq(z),gqqqq(z),hqqqq(z),1/72.0D0) 
-            ELSEIF((IFI1.EQ.-IFI2).AND.(IFO1.EQ.-IFO2).AND.
-     &              (ABS(IFI1).EQ.ABS(IFO1))) THEN
-C...  If q + qbar -> q + qbar
-               WT=WTRAT(fqaqa(z),gqaqa(z),hqaqa(z),1/36.0D0)
-            ELSE
-C...  (q + q' -> q + q') = (q + qbar' -> q + qbar')
-               WT=WTRAT(fqpqp(z),gqpqp(z),hqpqp(z),1/36.0D0)
-            ENDIF
-         ELSEIF ( ISUB.EQ.28 ) THEN
-C...  q + g -> q + g
-C...  qbar + g -> qbar + g 
-            WT=WTRAT(fqgqg(z),gqgqg(z),hqgqg(z),1/96.0D0)
-         ELSEIF ( (ISUB.EQ.53).OR.(ISUB.EQ.13) ) THEN
-C...  g + g -> q + qbar
-C...  or q + qbar -> g + g
-            WT=WTRAT(fggqa(z),gggqa(z),hggqa(z),1/256.0D0)
-         ELSEIF ( ISUB.EQ.68 ) THEN
-C...  g + g -> g + g
-            WT=WTRAT(fgggg(z),ggggg(z),hgggg(z),1/512.0D0)
-         ENDIF
-      endif
-
-C... If 'eikonal' gravitational scattering or totgrav at high energies
-      if(SHAT.ge.MS**2) then
-         IF ( ISUB.EQ.12 ) THEN
-C...  q + qbar -> q' + qbar'
-            WT=1.0D0
-            if ( noqcd.eq.1 ) WT=0.0D0
-         ELSEIF ( ISUB.EQ.11 ) THEN
-            IF((IFI1.EQ.IFI2).AND.(IFO1.EQ.IFO2).AND.(IFO1.EQ.IFI1))THEN
-C...  If q + q -> q + q (all are equal)
-               WT=WTEIK(fqqqq(z),hqqqq(z),1.0D0/72.0D0,0) 
-            ELSEIF((IFI1.EQ.-IFI2).AND.(IFO1.EQ.-IFO2).AND.
-     &              (ABS(IFI1).EQ.ABS(IFO1))) THEN
-C...  If q + qbar -> q + qbar
-               WT=WTEIK(fqaqa(z),hqaqa(z),1.0D0/36.0D0,0)
-            ELSE
-C...  (q + q' -> q + q') = (q + qbar' -> q + qbar')
-               WT=WTEIK(fqpqp(z),hqpqp(z),1.0D0/36.0D0,0)
-            ENDIF
-         ELSEIF ( ISUB.EQ.28 ) THEN
-C...  q + g -> q + g
-C...  qbar + g -> qbar + g 
-            WT=WTEIK(fqgqg(z),hqgqg(z),1.0D0/96.0D0,0)
-         ELSEIF ( (ISUB.EQ.53).OR.(ISUB.EQ.13) ) THEN
-C...  g + g -> q + qbar
-C...  or q + qbar -> g + g
-            WT=1.0D0
-            if ( noqcd.eq.1 ) WT=0.0D0
-         ELSEIF ( ISUB.EQ.68 ) THEN
-C...  g + g -> g + g
-c gluons need same color
-            WT=WTEIK(fgggg(z),hgggg(z),1.0D0/512.0D0,0)
-         ENDIF
-      endif
-
-      GRAVE = GRAVEV
-C      write (*,*) 'in wtgrav, GRAVEV: ', GRAVEV
-      RETURN
-      END
-
-C*********************************************************************
-C...WTRAT
-C...Routine which calculates the weight due to effective gravity 
-
-      DOUBLE PRECISION FUNCTION WTRAT(f,g,h,ks)
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-C...Some parameters from CHARYBDIS commom block are needed
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-C...KKMASS to be used for KK-mass maximum integration, and MSAT as Atwoods Ms
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-C...Parameters used during the run, to be printed in the data files, therefore needed by WRIPAR
-C      DOUBLE PRECISION ETCOND,UBMUL,WTPA
-C     INTEGER NEVE,NOINT,NOQCD,NCUT,TUNEA
-C.. Complex parameters needed to take eikonalization into account
-C      DOUBLE COMPLEX X, xgeof
-      DOUBLE COMPLEX  xgeof
-      DOUBLE PRECISION ks,k
-      SAVE /MASSES/,/BLACKH/, /BHPARM/
-
-      PI=3.141593D0
-      n=TOTDIM-4
-C...Get shat from Pythia
-      SHAT=PARI(14)
-     
-C...Get alpha_s
-      AS=PYALPS(PARI(22))
-C      write(*,*) 'in function WTRAT, alpha_s: ', AS
-C...Get z=cos(theta) from Pythia
-      z=PARI(41)
-      t=-(shat*(1.0d0-z)/2.0d0)
-      k=sqrt(-t)
-      WTRAT=1.0D0
-
-      IF ((TOTDIM-4).LT.2) THEN
-         RETURN
-      ELSEIF ((TOTDIM-4).EQ.2) THEN
-C...  I now divide Atwoods F (FF) by 2 to make Atwoods results better Agree with Giudice
-C...  Starting from Hans (hep-ph/9911350) article I get an expression for D(s) 
-C...  (equation 4 in hep-ph/9911231) wich is only half as big as that given by Atwood. 
-C...  This factor 2 I now absorb into F 
-         FF=LOG(shat/MSAT**2)
-      ELSEIF ((TOTDIM-4).GT.2) THEN
-         FF=2.0D0/(TOTDIM-4-2)
-      ENDIF
-
-C...  Interference term 
-      QCDGI=-(4.0D0*g*AS*FF*shat**2/
-     $     (MSAT**(TOTDIM-4+2)*KKMASS**(2-(TOTDIM-4))))
-
-C      IF(NOINT.eq.1.or.NOQCD.eq.1) QCDGI=0.0D0
-
-C...Error      cutfac=Gammafn((2.0D0 + n)/2.0D0)
-      cutfac=Gammafn(dble(n)/2.0D0)
-
-
-C...  no unitarization
-C...  Default cutoff KKMASS is now MP
-
-C...  Now with 'geometric' amplitude GG&MS 5.4
-C...  Gravity is universally attractive, and for small arguments,
-C.... there is no difference in sign between the channels,
-C...  GG and MS has calculated the Born amplitude to be negative
-C...  (eq 4.3), this is also the right sign to get an attractive
-C...  potential (eq 4.5)
-
-C...Complex return values seem difficult so we call a subroutine instead.
-        call geof(h,ks,0,xgeof)
-
-C...  Interference term, only real part interferes 
-        QCDGI=-(DBLE(xgeof)*tfac(Ms,t,n)*cutfac*4.0D0*g*AS*FF*
-     $       shat**2/
-     $       (MSAT**(TOTDIM-4+2)*MS**(2-(TOTDIM-4))))
-
-C        IF(NOINT.eq.1.or.NOQCD.eq.1) QCDGI=0.0D0
-C...  Make Aborn depend on s,t,u to ensure continuous transition
-C...  with A(t,Ms)/A(Ms) in tfac from AtwoodMpCutRescale.nb
-C...  Weight=(QCD+Interference +gravity)/QCD
-        QCD = f*AS**2
-        gravity = tfac(Ms,t,n)**2*cutfac**2*Abs(xgeof)**2*16*h*FF**2
-     $       *shat**4/
-     $       (MSAT**(TOTDIM-4+2)*MS**(2-(TOTDIM-4)))**2
-
-        WTRAT=(QCD+QCDGI+gravity)/qcd
-        if ( NOQCD.eq.1 ) WTRAT=gravity/qcd
-
-     
-
-      RETURN
-      END
-C*********************************************************************
-C...WTEIK
-C...Routine which calculates the weight due to 'eikonal' gravity 
-
-      DOUBLE PRECISION FUNCTION WTEIK(f,h,ks,ip)
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-
-C...Some parameters from CHARYBDIS commom block are needed
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-C      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL,Gammafn
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-C...GRAVEV is a flag to see if it was a gravitationally mediated event
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-C...The factor ks from Atwood et al hep-ph/99112
-      DOUBLE PRECISION ks
-      DOUBLE PRECISION MD
-C      DOUBLE PRECISION PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA
-C      INTEGER NEVE,NOINT,NCUT,TUNEA,NOQCD
-C...  For chosing clustering algorithm
-C      character CLALG*6
-C      COMMON/RUNPAR/PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA,
-C     $     NEVE,NCUT,TUNEA,NOINT,NOQCD,CLALG
-C...  Parameters usd if eikgrav or effgrav
-      DOUBLE PRECISION PLPOW, RHORSQ
-C      SAVE /RUNPAR/,/MASSES/,/BLACKH/, /BHPARM/
-      SAVE /MASSES/,/BLACKH/, /BHPARM/
- 
-
-      if(ip.eq.0) then
-C...  Get shat from Pythia
-         SHAT=PARI(14)
-C...  Get z=cos(theta) from Pythia
-         Z=PARI(41)
-C...  Get alpha_s
-         AS=PYALPS(PARI(22))
-      else
-        if ( NOQCD.eq.1 ) then
-          wteik = 1.0D99
-          return
-        endif
-C...  Get shat from Pythia
-         SHAT=VINT(44)
-C...  Get z=cos(theta) from Pythia
-         Z=VINT(23)
-C...  Get alpha_s
-         AS=PYALPS(VINT(52))
-      endif
-
-      t=-(shat*(1.0d0-z)/2.0d0)
-      q=sqrt(-t)
-
-      PI=3.141593D0
-      n=TOTDIM-4
-      SQCD=f*AS**2*PI*ks/2.0D0/SHAT
-
-      WTEIK=1.0D0
-
-      IF ((TOTDIM-4).LT.2.OR.(TOTDIM-4).GT.7) THEN
-        RETURN
-      ENDIF
-
-C...  Giudices Planck scale in terms of our
-      MD=2.0D0**((-3.0D0+n)/(n+2.0D0))*PI**((-1.0D0+n)/(n+2.0D0))*MPLNCK
-
-
-C...  Calculate cross section using the amplitude 2.5 in MSGG with
-C...  \chi from eq 4.7 
-C...  cf. 060714:1
-
-        PLPOW=2.0D0/(TOTDIM-3.0D0)
-        RHORSQ=(RHFACT*SQRT(shat))**PLPOW
-
-        SEIK=1.0D0/(16.0D0*Pi*shat**2)
-     $       *Aeik(shat,q,Ms,MD,n,sqrt(rhorsq))**2*shat/2.0D0
-
-      WTEIK=(SQCD+SEIK)/SQCD
-      if ( NOQCD.eq.1 ) WTEIK=SEIK/SQCD
-
-      RETURN
-      END
-C*********************************************************************
-C...  GCOLFX Routine to determine if a scattering is graviton-mediated
-C...  which fixes the corresponding colour flow it that is the case.
-      SUBROUTINE GCOLFX(ISUB,IPU1,IPU2)
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-C...Some parameters from CHARYBDIS commom block are needed
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-
-C...GRAVEV should be set to 0 for QCD-events
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-      SAVE /MASSES/,/BLACKH/,/BHPARM/
-C...Inline function definitions
-      include 'inlines.f'
-         
-C...Set flag for gravityevent to 0 (non-gravity)
-      GRAVEV=0
-      PARP(199)=0.0d0
-C...Exit immediately if this is not a 2->2 scattering.
-      IF ( N-IPU1.NE.3 ) RETURN
-
-C...Get shat from Pythia
-      SHAT=VINT(44)
-CC...Get z=cos(theta) from Pythia
-      Z=VINT(23)
-C...Get alpha_s
-      AS=PYALPS(VINT(52))
-C...Get incoming flavours, negative for anti
-      IFI1=MINT(15)
-      IFI2=MINT(16)
-C...Get outgoing flavours
-      IFO1=MINT(21)
-      IFO2=MINT(22)
-
-C...Scaled mandelstam variables.      
-      tz=-((1.0d0-z)/2.0d0)
-      uz=-((1.0d0+z)/2.0d0)
-      sz=1.0d0
-
-C...Color flow for 'efective gravity' and totgrav SHAT.lt.MS
-      if(SHAT.lt.MS**2) then
-      IF ( ISUB.EQ.12 ) THEN
-C...  q + qbar -> q' + qbar'
-        if ( igprob(fqapb(z),gqapb(z),hqapb(z),1/36.0D0).ne.0 )
-     $       call gcolfl(-1,ipu1,ipu2)
-      ELSEIF ( ISUB.EQ.11 ) THEN
-        IF((IFI1.EQ.IFI2).AND.(IFO1.EQ.IFO2).AND.(IFO1.EQ.IFI1)) THEN
-C...  If q + q -> q + q (all are equal)
-          if ( igprob(fqqqq(z),gqqqq(z),hqqqq(z),1/72.0D0).ne.0 ) then          
-C     Fast med geometriserade amplituder här **** HÄR ***
-              if ( pyr(0)*(Gfn(tz,uz)+Gfn(uz,tz)).lt.Gfn(tz,uz) ) then
-C...  t-channel
-                call gcolfl(1,ipu1,ipu2)
-              else
-C...  u-channel
-                call gcolfl(2,ipu1,ipu2)
-             
-            endif
-          endif
-        ELSEIF((IFI1.EQ.-IFI2).AND.(IFO1.EQ.-IFO2).AND.
-     &         (ABS(IFI1).EQ.ABS(IFO1))) THEN
-C...  If q + qbar -> q + qbar
-          if ( igprob(fqaqa(z),gqaqa(z),hqaqa(z),1/36.0D0).ne.0 ) then
- 
-C     Fast med geometriserade amplituder här **** HÄR ***
-              if ( PYR(0)*(Gfn(sz,tz)+Gfn(tz,sz)).lt.Gfn(sz,tz) ) then
-C...  s-channel
-                 call gcolfl(-1,ipu1,ipu2)
-              else
-C...  t-channel
-                 call gcolfl(1,ipu1,ipu2)
-              endif
-           
-        endif
-      ELSE
-C...  (q + q' -> q + q') = (q + qbar' -> q + qbar')
-          if ( igprob(fqpqp(z),gqpqp(z),hqpqp(z),1/36.0D0).ne.0 )
-     $         call gcolfl(1,ipu1,ipu2)
-        ENDIF
-      ELSEIF ( ISUB.EQ.28 ) THEN
-C...  q + g -> q + g
-C...  qbar + g -> qbar + g 
-        if ( igprob(fqgqg(z),gqgqg(z),hqgqg(z),1/96.0D0).ne.0 )
-     $       call gcolfl(1,ipu1,ipu2)
-      ELSEIF ( (ISUB.EQ.53).OR.(ISUB.EQ.13) ) THEN
-C...  g + g -> q + qbar
-C...  or q + qbar -> g + g
-        if ( igprob(fggqa(z),gggqa(z),hggqa(z),1/256.0D0).ne.0 )
-     $       call gcolfl(-1,ipu1,ipu2)
-      ELSEIF ( ISUB.EQ.68 ) THEN
-C...  g + g -> g + g
-        if ( igprob(fgggg(z),ggggg(z),hgggg(z),1/512.0D0).ne.0 ) then
-   
-C     Fast med geometriserade amplituder här **** HÄR ***
-            xs=16.0d0*(1.0d0+6*z**2+z**4)
-            xt=8.0d0*(17.0d0+4.0d0*z+6.0d0*z**2+4.0d0*z**3+z**4)
-            xu=8.0d0*(17.0d0-4.0d0*z+6.0d0*z**2-4.0d0*z**3+z**4)
- 
-          xr=pyr(0)*(xs+xt+xu)
-          if ( xr.lt.xs ) then
-C...  s-channel
-            call gcolfl(-1,ipu1,ipu2)
-          elseif ( xr.lt.xs+xt ) then
-C...  t-channel
-            call gcolfl(1,ipu1,ipu2)
-          else
-C...  u-channel
-            call gcolfl(2,ipu1,ipu2)
-          endif
-        endif
-      ENDIF
-      endif
-
-C...Color flow for eikonal grativty, only 't-channel'
-      if(SHAT.ge.MS**2) then
-         IF ( ISUB.EQ.11 ) THEN
-            IF((IFI1.EQ.IFI2).AND.(IFO1.EQ.IFO2).AND.(IFO1.EQ.IFI1))THEN
-C...  If q + q -> q + q (all are equal)
-               if (pyr(0)*wteik(fqqqq(z),hqqqq(z),1.0D0/72.0D0,1).gt.1 )
-     $             call gcolfl(1,ipu1,ipu2)
-            ELSEIF((IFI1.EQ.-IFI2).AND.(IFO1.EQ.-IFO2).AND.
-     &              (ABS(IFI1).EQ.ABS(IFO1))) THEN
-C...  If q + qbar -> q + qbar
-               if (pyr(0)*wteik(fqaqa(z),hqaqa(z),1.0D0/36.0D0,1).gt.1)
-     $             call gcolfl(1,ipu1,ipu2)
-            ELSE
-C...  (q + q' -> q + q') = (q + qbar' -> q + qbar')
-              if (pyr(0)*wteik(fqpqp(z),hqpqp(z),1.0D0/36.0D0,1).gt.1)
-     $              call gcolfl(1,ipu1,ipu2)
-            ENDIF
-         ELSEIF ( ISUB.EQ.28 ) THEN
-C...  q + g -> q + g
-C...  qbar + g -> qbar + g 
-            if (pyr(0)*wteik(fqgqg(z),hqgqg(z),1.0D0/96.0D0,1).gt.1)
-     $           call gcolfl(1,ipu1,ipu2)
-         ELSEIF ( ISUB.EQ.68 ) THEN
-C...  g + g -> g + g
-C...  t-channel
-           if ( pyr(0)*wteik(fgggg(z),hgggg(z),1.0D0/512.0D0,1).gt.1 )
-     $          call gcolfl(1,ipu1,ipu2)
-         ENDIF
-      endif
-C      write(*,*) 'in GCOLFX: ',PARP(199)
-      RETURN
-      END
-
-
-C*********************************************************************
-C...IGPROB
-C...Used for totgrav or effgrav
-C...Routine which calculates the probability that we had
-C...a gravity mediated scattering
-
-      INTEGER FUNCTION IGPROB(f,g,h,ks)
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-
-C...Some parameters from CHARYBDIS commom block are needed
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-
-C...KKMASS to be used for KK-mass maximum integration, and MSAT as Atwoods Ms
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-      DOUBLE PRECISION ks
-      DOUBLE COMPLEX xgeof
-C...Parameters used during the run, to be printed in the data files, therefore needed by WRIPAR
-C      DOUBLE PRECISION PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA
-C      INTEGER NEVE,NOINT,NCUT,TUNEA,NOQCD
-C...  For chosing clustering algorithm
-C      character CLALG*6
-C      COMMON/RUNPAR/PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA,
-C     $     NEVE,NCUT,TUNEA,NOINT,NOQCD,CLALG
-C      SAVE /RUNPAR/,/MASSES/,/BLACKH/,/BHPARM/
-       SAVE /MASSES/,/BLACKH/,/BHPARM/
-      if ( NOQCD.eq.1 ) then
-        IGPROB=1
-        return
-      endif
-
-      PI=3.141593D0
-      n=TOTDIM-4
-C...Get shat from Pythia
-C      SHAT=PARI(14)
-      SHAT=VINT(44)
-C...Get alpha_s
-C      AS=PYALPS(PARI(22))
-      AS=PYALPS(vint(52))
-C...Get z
-      Z=VINT(23)
-      t=-(shat*(1.0d0-z)/2.0d0)
-
-
-      IGPROB=0
-
-      IF ((TOTDIM-4).LT.2) THEN
-        RETURN
-      ELSEIF ((TOTDIM-4).EQ.2) THEN
-C... I now divide Atwoods F (FF) by 2 to make Atwoods results better Agree with Giudice
-C... Starting from Hans (hep-ph/9911350) article I get an expression for D(s) 
-C... (equation 4 in hep-ph/9911231) wich is only half as big as that given by Atwood. 
-C... This factor 2 I now absorb into F 
-        FF=LOG(shat/MSAT**2)
-      ELSEIF ((TOTDIM-4).GT.2) THEN
-        FF=2.0D0/(TOTDIM-4-2)
-      ENDIF
-
-C...  Factor from gaussian cut of in MS&GG
-C...ERROR      cutfac=Gammafn((2.0D0 + n)/2.0D0)
-      cutfac=Gammafn(dble(n)/2.0D0)
- 
-C       return här om detta var en vanlig QCD i region 3,4. *** HÄR ***
-
-         QCD=f*AS**2
-         call geof(h,ks,1,xgeof)
-         gravity=tfac(Ms,t,n)**2*cutfac**2*Abs(xgeof)**2*
-     $        16*h*FF**2*shat**4/
-     $     (MSAT**(TOTDIM-4+2)*MS**(2-(TOTDIM-4)))**2
-         IF ( gravity.LT.(QCD + gravity)*PYR(0) ) RETURN
-   
-
-      IGPROB=1
-
-  
-      RETURN
-      END
-
-C...GCOLFL
-C...Rearranges the colour flow of a standard QCD event as if it was
-C...mediated by a graviton. IF ITYP=0, there is no reconnection, if
-C...ITYP=1(2) we assume t(u)-channel graviton else an s-channel graviton.
-
-      SUBROUTINE GCOLFL(ITYP,IPU1,IPU2)
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-C...GRAVEV should be set to 1 to mark the event as gravitational
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-
-      IF ( ITYP.EQ.0.OR.N-IPU1.NE.3 ) RETURN
-
-C...GRAVEV is set to 1 to mark the event as gravitational
-      GRAVEV=1
-      PARP(199)=1.0d0
-C      PARP(199)=DBLE(GRAVEV)
-C      write (*,*) 'in GCOLFL, GRAVEV: ',GRAVEV,' PARP(199): ',PARP(199)
-      
-      IF ( ITYP.EQ.1 ) THEN
-C...  Same in and out.
-         IF ( PYK(IPU1,12).EQ.1.OR.PYK(IPU1,12).EQ.2 ) THEN
-            K(IPU1,4)=IPU1+2
-            K(IPU1+2,4)=IPU1*10000
-         ENDIF
-         IF ( PYK(IPU1,12).EQ.-1.OR.PYK(IPU1,12).EQ.2 ) THEN
-            K(IPU1,5)=IPU1+2
-            K(IPU1+2,5)=IPU1*10000
-         ENDIF
-        IF ( PYK(IPU2,12).EQ.1.OR.PYK(IPU2,12).EQ.2 ) THEN
-          K(IPU2,4)=IPU2+2
-          K(IPU2+2,4)=IPU2*10000
-        ENDIF
-        IF ( PYK(IPU2,12).EQ.-1.OR.PYK(IPU2,12).EQ.2 ) THEN
-          K(IPU2,5)=IPU2+2
-          K(IPU2+2,5)=IPU2*10000
-        ENDIF
-      ELSEIF ( ITYP.EQ.2 ) THEN
-C...Same in and out.
-        IF ( PYK(IPU1,12).EQ.1.OR.PYK(IPU1,12).EQ.2 ) THEN
-          K(IPU1,4)=IPU2+2
-          K(IPU2+2,4)=IPU1*10000
-        ENDIF
-        IF ( PYK(IPU1,12).EQ.-1.OR.PYK(IPU1,12).EQ.2 ) THEN
-          K(IPU1,5)=IPU2+2
-          K(IPU2+2,5)=IPU1*10000
-        ENDIF
-        IF ( PYK(IPU2,12).EQ.1.OR.PYK(IPU2,12).EQ.2 ) THEN
-          K(IPU2,4)=IPU1+2
-          K(IPU1+2,4)=IPU2*10000
-        ENDIF
-        IF ( PYK(IPU2,12).EQ.-1.OR.PYK(IPU2,12).EQ.2 ) THEN
-          K(IPU2,5)=IPU1+2
-          K(IPU1+2,5)=IPU2*10000
-        ENDIF
-      ELSE
-C...Annihilation.
-        IF ( PYK(IPU1,12).EQ.1.OR.PYK(IPU1,12).EQ.2 ) THEN
-          K(IPU1,4)=IPU2
-          K(IPU2,5)=IPU1
-        ENDIF
-        IF ( PYK(IPU1,12).EQ.-1.OR.PYK(IPU1,12).EQ.2 ) THEN
-          K(IPU1,5)=IPU2
-          K(IPU2,4)=IPU1
-        ENDIF
-        IF ( PYK(IPU1+2,12).EQ.1.OR.PYK(IPU1+2,12).EQ.2 ) THEN
-          K(IPU1+2,4)=(IPU2+2)*10000
-          K(IPU2+2,5)=(IPU1+2)*10000
-        ENDIF
-        IF ( PYK(IPU1+2,12).EQ.-1.OR.PYK(IPU1+2,12).EQ.2 ) THEN
-          K(IPU1+2,5)=(IPU2+2)*10000
-          K(IPU2+2,4)=(IPU1+2)*10000
-        ENDIF
-          
-      ENDIF
-
-      RETURN
-      END
-C*********************************************************************
-C ...init_datapath
-C        SUBROUTINE init_datapath(a,s)
-C        IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C        IMPLICIT INTEGER(I-N)
-C
-C      PARAMETER (NMAX=1000)
-C      character a*256,path*256 
-C      integer s, size 
-C        common /eikfnblk/ x(NMAX,6),f(NMAX,6),size,path
-C        save eikfnblk
-C       size = s
-C       path = a
-       
-C       RETURN
-C       END
-  
-C*********************************************************************
-C...  Geometric Amplitude GG&MS eq 5.4
-      subroutine geof(h,ks,ip,xgeof)
-
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-
-C...Some parameters from CHARYBDIS commom block are needed
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-
-C...KKMASS to be used for KK-mass maximum integration, and MSAT as Atwoods Ms
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-C...Parameters used during the run, to be printed in the data files, therefore needed by WRIPAR
-C      DOUBLE PRECISION PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA
-C      INTEGER NEVE,NOINT,NOQCD,NCUT,TUNEA
-C...  For chosing clustering algorithm
-C      character CLALG*6
-C      COMMON/RUNPAR/PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA,
-C     $     NEVE,NCUT,TUNEA,NOINT,NOQCD,CLALG
-C.. Complex parameters needed to take eikonalization into account
-      DOUBLE COMPLEX  X,xgeof
-      DOUBLE PRECISION ks,k
-C      SAVE /RUNPAR/,/MASSES/,/BLACKH/,/BHPARM/
-      SAVE /MASSES/,/BLACKH/,/BHPARM/
-
-      xgeof = (0.0d0,0.0d0)
-      PI=3.141593D0
-      n=TOTDIM-4
-      if(ip.eq.0) then
-C...  Get shat from Pythia
-         SHAT=PARI(14)
-C...  Get z=cos(theta) from Pythia
-         Z=PARI(41)
-C...  Get alpha_s
-         AS=PYALPS(PARI(22))
-      else
-C...  Get shat from Pythia
-         SHAT=VINT(44)
-C...  Get z=cos(theta) from Pythia
-         Z=VINT(23)
-C...  Get alpha_s
-         AS=PYALPS(VINT(52))
-      endif
-      t=-(shat*(1.0d0-z)/2.0d0)
-      k=sqrt(-t)
-
-C...  Factor X, cf eq 5.5 in MS GG
-C...  t and u-channels are the same, as we effectively have a 
-C...  \phi^4 -interaction. We treat s-channel similarly to assure
-C...  unitarization
-      X=1.0D0/(32.0D0*PI**2)*CMPLX(LOG(4.0d0*Ms**2/shat), PI)
-C...  Aborn is the result from Atwood multiplied with a factor from the 
-C...  fact that we are using a Gaussian cutoff 
-C...  The Gaussian cutoff gives this much more in the Amplitude:
-C...ERROR      cutfac=Gammafn((2.0D0 + n)/2.0D0)
-      cutfac=Gammafn(dble(n)/2.0D0)
-
-C...  Gravity is universally attractive, and for small arguments,
-C.... there is no difference in sign between the channels,
-C...  GG and MS has calculated the Born amplitude to be negative
-C...  (eq 4.3) this is also the right sign to get an attractive
-C...  potential (eq 4.5)
-
-C...  Factor F in Atwoods cross section
-      IF ((TOTDIM-4).LT.2) THEN
-         RETURN
-      ELSEIF ((TOTDIM-4).EQ.2) THEN
-C...  I now divide Atwoods F (FF) by 2 to make Atwoods results better Agree with Giudice
-C...  Starting from Hans (hep-ph/9911350) article I get an expression for D(s) 
-C...  (equation 4 in hep-ph/9911231) wich is only half as big as that given by Atwood. 
-C...  This factor 2 I now absorb into F 
-         FF=LOG(shat/MSAT**2)
-      ELSEIF ((TOTDIM-4).GT.2) THEN
-         FF=2.0D0/(TOTDIM-4-2)
-      ENDIF
-
-C...  Make Aborn depend on s,t,u to ensure continuous transition
-C...  From 060727:2, the (spin-dependent) Amplitude from Atwood using
-C...  AtwoodMpCutRescale.nb for conversion factors
-      AAtw=-((2**(5.0D0 - n)*FF*Sqrt(h)*Sqrt(ks)*Ms**(-2 + n)*
-     $     MPLNCK**(-2.0D0-n)*Pi**(1.0D0 - n/2.0D0)*shat**2)/
-     $     Gammafn(n/2.0D0))
-C...  With t-dependent, gaussian cutoff this gives  
-      Aborn=tfac(Ms,t,n)*cutfac*AAtw
-C...  Unitarization of cross section, cf eq 5.5 in MS GG
-      xgeof=1/(1-Aborn*X)
-
-      return
-      end
-C*********************************************************************
-C...  Multiplicative factor when t-dependence is taken into account in
-C...  Born amplitude Aborn(Ms,t)/Aborn(Ms)
-      DOUBLE PRECISION  function tfac(Ms,t,n)
-
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      DOUBLE PRECISION k, Ms , Igamma
-C...  with A(t,Ms)/A(Ms) in AtwoodMpCutRescale.nb
-
-      k=sqrt(-t)
-      tfac=(exp(k**2/Ms**2)*k**(-2 + n)*Ms**(2 - n)*
-     $     Gammafn(n/2.0D0)*Igamma(1.0D0 - n/2.0D0,k**2/Ms**2))/
-     $     Gammafn(-1.0D0 + n/2.0D0)
-
-      return
-      end
-C*********************************************************************
-C...  Function to tell which region 1,2,3,4 5  cf. GG&MS a 
-C...  gravitational scattering was in
-      INTEGER function IREG()
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      DOUBLE COMPLEX  X,abx
-
-C...  Need MPLNCK
-C...  To be used with CHARYBDIS
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT 
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-
-C...KKMASS to be used for KK-mass maximum integration, and MSAT as Atwoods Ms
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-      SAVE /MASSES/,/BLACKH/,/BHPARM/
-
-      PI=3.141593D0
-      S=PARI(14)
-      n=TOTDIM-4
-
-      IREG=0
-
-C...  Region 1 or 2 
-      if(s.gt.Ms**2) then
-C...  scd from GS3.nb
-         scd=(MPLNCK**(2.0D0 + n)*Pi**(n/2.0D0))/
-     $        (Ms**n*Gammafn(dble(n)/2.0D0))
-         if(s.gt.scd) then 
-            IREG=1 
-         else
-           IREG=2
-         endif
-C...  Region 3 or 4 or 5
-      else
-         X=1.0D0/(32.0D0*PI**2)*CMPLX(LOG(4.0d0*Ms**2/s), PI)
-         call getabx(abx)
-C...  Region 3
-         if (Abs(abx).le.1) then
-            IREG=3
-C...  Region 4 or 5
-         elseif(abs(Imag(X)).gt.abs(dble(X))) then 
-            IREG=4 
-         else
-           IREG=5
-         endif
-      endif
-               
-      return
-      end
-      
-C*********************************************************************
-C...  Geometric Amplitude GG&MS eq 5.4
-      subroutine getabx(abx)
-
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-
-C...Some parameters from CHARYBDIS commom block are needed
-      INTEGER MSSDEF,NBODY,IPRINT,MSSDEC
-      DOUBLE PRECISION MPLNCK,MINMSS,MAXMSS,INTMPL
-      LOGICAL TIMVAR,GTSCA,GRYBDY,KINCUT
-      COMMON /BHPARM/MPLNCK,MINMSS,MAXMSS,INTMPL,MSSDEF,NBODY,IPRINT,
-     &     MSSDEC,TIMVAR,GTSCA,GRYBDY,KINCUT  
-      DOUBLE PRECISION RHFACT,BHMASS,GENPOW,FACTOR
-      INTEGER TOTDIM
-      COMMON /BLACKH/ RHFACT,BHMASS,GENPOW,FACTOR,TOTDIM
-
-C...KKMASS to be used for KK-mass maximum integration, and MSAT as Atwoods Ms
-      DOUBLE PRECISION KKMASS,MSAT,PFACTOR,MS
-      INTEGER GRAVEV
-      COMMON/MASSES/KKMASS,MSAT,PFACTOR,MS,GRAVEV
-C...Parameters used during the run, to be printed in the data files, therefore needed by WRIPAR
-C      DOUBLE PRECISION PTCL,THRMIN,PSCUT,ETCOND,UBMUL,WTPA
-C      INTEGER NEVE,NOINT,NOQCD,NCUT,TUNEA
-C.. Complex parameters needed to take eikonalization into account
-      DOUBLE COMPLEX  X,abx
-      DOUBLE PRECISION ks,k
-      SAVE /MASSES/,/BLACKH/,/BHPARM/
-
-C...Inline function definitions
-      include 'inlines.f'
-
-      abx = (0.0d0,0.0d0)
-      PI=3.141593D0
-      n=TOTDIM-4
-C...  Get shat from Pythia
-      SHAT=PARI(14)
-C...  Get z=cos(theta) from Pythia
-      Z=PARI(41)
-C...  Get alpha_s
-      t=-(shat*(1.0d0-z)/2.0d0)
-      k=sqrt(-t)
-
-      isub=MSTI(1)
-
-      IF ( ISUB.EQ.12 ) THEN
-C...  q + qbar -> q' + qbar'
-        h=hqapb(z)
-        ks=1/36.0D0
-      ELSEIF ( ISUB.EQ.11 ) THEN
-        IF((IFI1.EQ.IFI2).AND.(IFO1.EQ.IFO2).AND.(IFO1.EQ.IFI1))THEN
-C...  If q + q -> q + q (all are equal)
-          h=hqqqq(z)
-          ks=1/72.0D0 
-        ELSEIF((IFI1.EQ.-IFI2).AND.(IFO1.EQ.-IFO2).AND.
-     &         (ABS(IFI1).EQ.ABS(IFO1))) THEN
-C...  If q + qbar -> q + qbar
-          h=hqaqa(z)
-          ks=1/36.0D0
-        ELSE
-C...  (q + q' -> q + q') = (q + qbar' -> q + qbar')
-          h=hqpqp(z)
-          ks=1/36.0D0
-        ENDIF
-      ELSEIF ( ISUB.EQ.28 ) THEN
-C...  q + g -> q + g
-C...  qbar + g -> qbar + g 
-        h=hqgqg(z)
-        ks=1/96.0D0
-      ELSEIF ( (ISUB.EQ.53).OR.(ISUB.EQ.13) ) THEN
-C...  g + g -> q + qbar
-C...  or q + qbar -> g + g
-        h=hggqa(z)
-        ks=1/256.0D0
-      ELSEIF ( ISUB.EQ.68 ) THEN
-C...  g + g -> g + g
-        h=hgggg(z)
-        ks=1/512.0D0
-      ENDIF
-
-C...  Factor X, cf eq 5.5 in MS GG
-C...  t and u-channels are the same, as we effectively have a 
-C...  \phi^4 -interaction. We treat s-channel similarly to assure
-C...  unitarization
-      X=1.0D0/(32.0D0*PI**2)*CMPLX(LOG(4.0d0*Ms**2/shat), PI)
-C...  Aborn is the result from Atwood multiplied with a factor from the 
-C...  fact that we are using a Gaussian cutoff 
-C...  The Gaussian cutoff gives this much more in the Amplitude:
-C...ERROR      cutfac=Gammafn((2.0D0 + n)/2.0D0)
-      cutfac=Gammafn(dble(n)/2.0D0)
-
-C...  Gravity is universally attractive, and for small arguments,
-C.... there is no difference in sign between the channels,
-C...  GG and MS has calculated the Born amplitude to be negative
-C...  (eq 4.3) this is also the right sign to get an attractive
-C...  potential (eq 4.5)
-
-C...  Factor F in Atwoods cross section
-      IF ((TOTDIM-4).LT.2) THEN
-         RETURN
-      ELSEIF ((TOTDIM-4).EQ.2) THEN
-C...  I now divide Atwoods F (FF) by 2 to make Atwoods results better Agree with Giudice
-C...  Starting from Hans (hep-ph/9911350) article I get an expression for D(s) 
-C...  (equation 4 in hep-ph/9911231) wich is only half as big as that given by Atwood. 
-C...  This factor 2 I now absorb into F 
-         FF=LOG(shat/MSAT**2)
-      ELSEIF ((TOTDIM-4).GT.2) THEN
-         FF=2.0D0/(TOTDIM-4-2)
-      ENDIF
-
-C...  Make Aborn depend on s,t,u to ensure continuous transition
-C...  From 060727:2, the (spin-dependent) Amplitude from Atwood using
-C...  AtwoodMpCutRescale.nb for conversion factors
-      AAtw=-((2**(5.0D0 - n)*FF*Sqrt(h)*Sqrt(ks)*Ms**(-2 + n)*
-     $     MPLNCK**(-2.0D0-n)*Pi**(1.0D0 - n/2.0D0)*shat**2)/
-     $     Gammafn(n/2.0D0))
-C...  With t-dependent, gaussian cutoff this gives  
-      Aborn=tfac(Ms,t,n)*cutfac*AAtw
-C...  Unitarization of cross section, cf eq 5.5 in MS GG
-      abx=Aborn*X
-
-      return
-      end
diff --git a/Generators/PythiaExo_i/src/PythiaGravADD/inlines.f b/Generators/PythiaExo_i/src/PythiaGravADD/inlines.f
deleted file mode 100644
index 551e30de1fa7d3c93cede83fa42d7736244e0b82..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaGravADD/inlines.f
+++ /dev/null
@@ -1,27 +0,0 @@
-C...Inline function definitions
-C      write(*,*) 'in inlines'
-      Gfn(s,t)=(s**4+10.0d0*s**3*t+42.0d0*s**2*t**2+
-     $     64.0d0*s*t**3+32.0d0*t**4)/4.0d0
-      hqapb(z)= (9.0D0/256)*(1 - 3*z**2 + 4*z**4)
-      hqpqp(z)=(9.0D0/2048)*(149 + 232*z+ 114*z**2+ 16*z**3 + z**4)
-      hqqqq(z)=(3.0D0/1024)*(547 + 306*z**2+ 3*z**4)
-      hqaqa(z)=(3.0D0/2048)*(443 + 692*z+ 354*z**2+116*z**3 + 107*z**4)
-      hggqa(z)=(3.0D0/8)*(1 - z**4)
-      hqgqg(z)=(3.0D0/8)*(1 + z)*(5 + 2*z + z**2)
-      hgggg(z)=(9.0D0/4)*(3 + z**2)**2
-      gqapb(z)=0.0D0
-      gqpqp(z)=0.0D0
-C...  Changed sign of the gqqqq and gqaqa-terms to agree with Giudice
-      gqqqq(z)=-(4.0D0*(5-3*z**2)/(1-z**2))
-      gqaqa(z)=-((1.0D0/4)*(11- 14*z-z**2)*(1+z**2)**2/(1-z))
-      gggqa(z)=4.0D0*(1+z**2)
-      gqgqg(z)=-(2.0D0*(5+2*z+z**2))
-C...  Multiply with factor 2 to agree with Giudice
-      ggggg(z)=-(2.0D0*120.0D0*(3+z**2))
-      fqapb(z)=8.0D0*(1+z**2)
-      fqpqp(z)=16.0D0*(5+2*z+z**2)/(1-z)**2
-      fqqqq(z)=(32.0D0/3)*(z**2+11)*(3*z**2+1)/(1-z**2)**2
-      fqaqa(z)=(8.0D0/3)*(7-4*z+z**2)*(5+4*z+3*z**2)/(1-z**2)**2
-      fggqa(z)=(16.0D0/3)*(9*z**2+7)*(1+z**2)/(1-z**2)
-      fqgqg(z)=(32.0D0/3)*(5+2*z+z**2)*(11+5*z+2*z**2)/(1+z)/(1-z**2)
-      fgggg(z)=288.0D0*(3+z**2)**3/(1-z**2)**2
diff --git a/Generators/PythiaExo_i/src/PythiaGravADD/pyeffevt.F b/Generators/PythiaExo_i/src/PythiaGravADD/pyeffevt.F
deleted file mode 100644
index 187dcc550871cbeb531f98abf9dbb90b52277bda..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaGravADD/pyeffevt.F
+++ /dev/null
@@ -1,421 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYEVNW
-C...Administers the generation of a high-pT event via calls to
-C...a number of subroutines for the new multiple interactions and
-C...showering framework.
- 
-      SUBROUTINE  PYEFFEVT
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYCOMP
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYCTAG/NCT,MCT(4000,2)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYINTM/KFIVAL(2,3),NMI(2),IMI(2,800,2),NVC(2,-6:6),
-     &     XASSOC(2,-6:6,240),XPSVC(-6:6,-1:240),PVCTOT(2,-1:1),
-     &     XMI(2,240),PT2MI(240),IMISEP(0:240)
-      SAVE /PYJETS/,/PYCTAG/,/PYDAT1/,/PYDAT2/,/PYDAT3/,
-     &     /PYPARS/,/PYINT1/,/PYINT2/,/PYINT4/,/PYINT5/,/PYINTM/
-C...Local arrays.
-      DIMENSION VTX(4)
- 
-C...Stop if no subprocesses on.
-      IF(MINT(121).EQ.1.AND.MSTI(53).EQ.1) THEN
-        WRITE(MSTU(11),5100)
-        STOP
-      ENDIF
- 
-C...Initial values for some counters.
-      N=0
-      MINT(5)=MINT(5)+1
-      MINT(7)=0
-      MINT(8)=0
-      MINT(30)=0
-      MINT(83)=0
-      MINT(84)=MSTP(126)
-      MSTU(24)=0
-      MSTU70=0
-      MSTJ14=MSTJ(14)
-C...Normally, use K(I,4:5) colour info rather than /PYCT/.
-      NCT=0
-      MINT(33)=0
- 
-C...Let called routines know call is from PYEVNW (not PYEVNT).
-      MINT(35)=3
- 
-C...If variable energies: redo incoming kinematics and cross-section.
-      MSTI(61)=0
-      IF(MSTP(171).EQ.1) THEN
-        CALL PYINKI(1)
-        IF(MSTI(61).EQ.1) THEN
-          MINT(5)=MINT(5)-1
-          RETURN
-        ENDIF
-        IF(MINT(121).GT.1) CALL PYSAVE(3,1)
-        CALL PYXTOT
-      ENDIF
- 
-C...Loop over number of pileup events; check space left.
-      IF(MSTP(131).LE.0) THEN
-        NPILE=1
-      ELSE
-        CALL PYPILE(2)
-        NPILE=MINT(81)
-      ENDIF
-      DO 300 IPILE=1,NPILE
-        IF(MINT(84)+100.GE.MSTU(4)) THEN
-          CALL PYERRM(11,
-     &    '(PYEVNW:) no more space in PYJETS for pileup events')
-          IF(MSTU(21).GE.1) GOTO 310
-        ENDIF
-        MINT(82)=IPILE
- 
-C...Generate variables of hard scattering.
-        MINT(51)=0
-        MSTI(52)=0
-  100   CONTINUE
-        IF(MINT(51).NE.0.OR.MSTU(24).NE.0) MSTI(52)=MSTI(52)+1
-        MINT(31)=0
-        MINT(39)=0
-        MINT(36)=0
-        MINT(51)=0
-        MINT(57)=0
-        CALL PYRAND
-        IF(MSTI(61).EQ.1) THEN
-          MINT(5)=MINT(5)-1
-          RETURN
-        ENDIF
-        IF(MINT(51).EQ.2) RETURN
-        ISUB=MINT(1)
-        IF(MSTP(111).EQ.-1) GOTO 290
- 
-C...Loopback point if PYPREP fails, especially for junction topologies.
-        NPREP=0
-        MNT31S=MINT(31)
-  110   NPREP=NPREP+1
-        MINT(31)=MNT31S
- 
-        IF((ISUB.LE.90.OR.ISUB.GE.95).AND.ISUB.NE.99) THEN
-C...Hard scattering (including low-pT):
-C...reconstruct kinematics and colour flow of hard scattering.
-          MINT31=MINT(31)
-  120     MINT(31)=MINT31
-          MINT(51)=0
-          CALL PYSCAT
-          IF(MINT(51).EQ.1) GOTO 100
-          NPARTD=N
-          NFIN=N
- 
-CLL...Change colour flow if this is deemed to be a gravitational scattering.
-          IPU1=MINT(84)+1
-          IPU2=MINT(84)+2
-          CALL GCOLFX(MINT(1),IPU1,IPU2)
-
-C...Intertwined initial state showers and multiple interactions.
-C...Force no IS showers if no pdfs defined: MSTP(61) -> 0 for PYEVOL.
-C...Force no MI if cross section not known: MSTP(81) -> 0 for PYEVOL.
-          MSTP61=MSTP(61)
-          IF (MINT(47).LT.2) MSTP(61)=0
-          MSTP81=MSTP(81)
-          IF (MINT(50).EQ.0) MSTP(81)=0
-          IF ((MSTP(61).GE.1.OR.MOD(MSTP(81),10).GE.0).AND.
-     &    MINT(111).NE.12) THEN
-C...Absolute max pT2 scale for evolution: phase space limit.
-            PT2MXS=0.25D0*VINT(2)
-C...Check if more constrained by ISR and MI max scales:
-            PT2MXS=MIN(PT2MXS,MAX(VINT(56),VINT(62)))
-C...Loopback point in case of failure in evolution.
-            LOOP=0
-  130       LOOP=LOOP+1
-            MINT(51)=0
-            IF(LOOP.GT.100) THEN
-              CALL PYERRM(9,'(PYEVNW:) failed to evolve shower or '
-     &             //'multiple interactions.')
-              MINT(51)=1
-              RETURN
-            ENDIF
- 
-C...Pre-initialization of interleaved MI/ISR/JI evolution, only done
-C...once per event. (E.g. compute constants and save variables to be
-C...restored later in case of failure.)
-            IF (LOOP.EQ.1) CALL PYEVOL(-1,DUMMY1,DUMMY2)
- 
-C...Initialize interleaved MI/ISR/JI evolution.
-C...PT2MAX: absolute upper limit for evolution - Initialization may
-C...        return a PT2MAX which is lower than this.
-C...PT2MIN: absolute lower limit for evolution - Initialization may
-C...        return a PT2MIN which is larger than this (e.g. Lambda_QCD).
-            PT2MAX=PT2MXS
-            PT2MIN=0D0
-            CALL PYEVOL(0,PT2MAX,PT2MIN)
-            IF (MINT(51).EQ.1) GOTO 130
- 
-C...Perform interleaved MI/ISR/JI evolution from PT2MAX to PT2MIN.
-C...In principle factorized, so can be stopped and restarted.
-C...Example: stop/start at pT=10 GeV. (Commented out for now.)
-C            PT2MED=MAX(10D0**2,PT2MIN)
-C            CALL PYEVOL(1,PT2MAX,PT2MED)
-C            IF (MINT(51).EQ.1) GOTO 160
-C            PT2MAX=PT2MED
-            CALL PYEVOL(1,PT2MAX,PT2MIN)
-            IF (MINT(51).EQ.1) GOTO 130
- 
-C...Finalize interleaved MI/ISR/JI evolution.
-            CALL PYEVOL(2,PT2MAX,PT2MIN)
-            IF (MINT(51).EQ.1) GOTO 130
- 
-          ENDIF
-          MSTP(61)=MSTP61
-          MSTP(81)=MSTP81
-          IF(MINT(51).EQ.1) GOTO 100
-C...(MINT(52) is actually obsolete in this routine. Set anyway
-C...to ensure PYDOCU stable.)
-          MINT(52)=N
-          MINT(53)=N
- 
-C...Beam remnants - new scheme.
-C  140     IF(MINT(50).EQ.1) THEN
-           IF(MINT(50).EQ.1) THEN
-            IF (ISUB.EQ.95) MINT(31)=1
- 
-C...Beam remnant flavour and colour assignments - new scheme.
-            CALL PYMIHK
-            IF(MINT(51).EQ.1.AND.MINT(57).GE.1.AND.MINT(57).LE.5)
-     &           GOTO 120
-            IF(MINT(51).EQ.1) GOTO 100
- 
-C...Primordial kT and beam remnant momentum sharing - new scheme.
-            CALL PYMIRM
-            IF(MINT(51).EQ.1.AND.MINT(57).GE.1.AND.MINT(57).LE.5)
-     &      GOTO 120
-            IF(MINT(51).EQ.1) GOTO 100
-            IF (ISUB.EQ.95) MINT(31)=0
-          ELSEIF(MINT(111).NE.12) THEN
-C...Hadron remnants and primordial kT - old model.
-C...Happens e.g. for direct photon on one side.
-            IPU1=IMI(1,1,1)
-            IPU2=IMI(2,1,1)
-            CALL PYREMN(IPU1,IPU2)
-            IF(MINT(51).EQ.1.AND.MINT(57).GE.1.AND.MINT(57).LE.5) GOTO
-     &           110
-            IF(MINT(51).EQ.1) GOTO 100
-C...PYREMN does not set colour tags for BRs, so needs to be done now.
-            DO 160 I=MINT(53)+1,N
-              DO 150 KCS=4,5
-                IDA=MOD(K(I,KCS),MSTU(5))
-                IF (IDA.NE.0) THEN
-                  MCT(I,KCS-3)=MCT(IDA,6-KCS)
-                ELSE
-                  MCT(I,KCS-3)=0
-                ENDIF
-  150         CONTINUE
-  160       CONTINUE
-C...Instruct PYPREP to use colour tags
-            MINT(33)=1
-C...Now delete any colour processing information if set (since partons
-C...otherwise not FS showered!)
-            DO 170 I=MINT(84)+1,N
-              IF (I.LE.N) THEN
-                K(I,4)=MOD(K(I,4),MSTU(5)**2)
-                K(I,5)=MOD(K(I,5),MSTU(5)**2)
-              ENDIF
-  170       CONTINUE
-          ENDIF
- 
-C...Showering of final state partons (optional).
-          ALAMSV=PARJ(81)
-          PARJ(81)=PARP(72)
-          IF(MSTP(71).GE.1.AND.ISET(ISUB).GE.1.AND.ISET(ISUB).LE.10)
-     &    THEN
-            QMAX=VINT(55)
-            IF(ISET(ISUB).EQ.2) QMAX=SQRT(PARP(71))*VINT(55)
-            CALL PYPTFS(1,QMAX,0D0,PTGEN)
-          ENDIF
-          PARJ(81)=ALAMSV
- 
-C...Decay of final state resonances.
-          MINT(32)=0
-          IF(MSTP(41).GE.1.AND.ISET(ISUB).LE.10) THEN
-            CALL PYRESD(0)
-            IF(MINT(51).NE.0) GOTO 100
- 
-C...External processes: handle successive showers.
-          ELSEIF(ISET(ISUB).EQ.11) THEN
-            CALL PYADSH(NFIN)
-          ENDIF
-          IF(MINT(51).EQ.1) GOTO 100
- 
-        ELSEIF(ISUB.NE.99) THEN
-C...Diffractive and elastic scattering.
-          CALL PYDIFF
- 
-        ELSE
-C...DIS scattering (photon flux external).
-          CALL PYDISG
-          IF(MINT(51).EQ.1) GOTO 100
-        ENDIF
- 
-C...Check that no odd resonance left undecayed.
-        MINT(54)=N
-        IF(MSTP(111).GE.1) THEN
-          NFIX=N
-          DO 180 I=MINT(84)+1,NFIX
-            IF(K(I,1).GE.1.AND.K(I,1).LE.10.AND.K(I,2).NE.21.AND.
-     &      K(I,2).NE.22) THEN
-              KCA=PYCOMP(K(I,2))
-              IF(MWID(KCA).NE.0.AND.MDCY(KCA,1).GE.1) THEN
-                CALL PYRESD(I)
-                IF(MINT(51).EQ.1) GOTO 100
-              ENDIF
-            ENDIF
-  180     CONTINUE
-        ENDIF
- 
-C...Boost hadronic subsystem to overall rest frame.
-C..(Only relevant when photon inside lepton beam.)
-        IF(MINT(141).NE.0.OR.MINT(142).NE.0) CALL PYGAGA(4,WTGAGA)
- 
-C...Recalculate energies from momenta and masses (if desired).
-        IF(MSTP(113).GE.1) THEN
-          DO 190 I=MINT(83)+1,N
-            IF(K(I,1).GT.0.AND.K(I,1).LE.10) P(I,4)=SQRT(P(I,1)**2+
-     &      P(I,2)**2+P(I,3)**2+P(I,5)**2)
-  190     CONTINUE
-          NRECAL=N
-        ENDIF
- 
-C...Colour reconnection before string formation
-        CALL PYFSCR(MINT(84)+1)
- 
-C...Rearrange partons along strings, check invariant mass cuts.
-        MSTU(28)=0
-        IF(MSTP(111).LE.0) MSTJ(14)=-1
-        CALL PYPREP(MINT(84)+1)
-        MSTJ(14)=MSTJ14
-        IF(MINT(51).EQ.1.AND.MSTU(24).EQ.1) THEN
-          MSTU(24)=0
-          GOTO 100
-        ENDIF
-        IF(MINT(51).EQ.1) GOTO 100
-        IF(MSTP(112).EQ.1.AND.MSTU(28).EQ.3) GOTO 100
-        IF(MSTP(125).EQ.0.OR.MSTP(125).EQ.1) THEN
-          DO 220 I=MINT(84)+1,N
-            IF(K(I,2).EQ.94) THEN
-              DO 210 I1=I+1,MIN(N,I+10)
-                IF(K(I1,3).EQ.I) THEN
-                  K(I1,3)=MOD(K(I1,4)/MSTU(5),MSTU(5))
-                  IF(K(I1,3).EQ.0) THEN
-                    DO 200 II=MINT(84)+1,I-1
-                        IF(K(II,2).EQ.K(I1,2)) THEN
-                          IF(MOD(K(II,4),MSTU(5)).EQ.I1.OR.
-     &                    MOD(K(II,5),MSTU(5)).EQ.I1) K(I1,3)=II
-                        ENDIF
-  200               CONTINUE
-                    IF(K(I+1,3).EQ.0) K(I+1,3)=K(I,3)
-                  ENDIF
-                ENDIF
-  210         CONTINUE
-            ENDIF
-  220     CONTINUE
-          CALL PYEDIT(12)
-          CALL PYEDIT(14)
-          IF(MSTP(125).EQ.0) CALL PYEDIT(15)
-          IF(MSTP(125).EQ.0) MINT(4)=0
-          DO 240 I=MINT(83)+1,N
-            IF(K(I,1).EQ.11.AND.K(I,4).EQ.0.AND.K(I,5).EQ.0) THEN
-              DO 230 I1=I+1,N
-                IF(K(I1,3).EQ.I.AND.K(I,4).EQ.0) K(I,4)=I1
-                IF(K(I1,3).EQ.I) K(I,5)=I1
-  230         CONTINUE
-            ENDIF
-  240     CONTINUE
-        ENDIF
- 
-C...Introduce separators between sections in PYLIST event listing.
-        IF(IPILE.EQ.1.AND.MSTP(125).LE.0) THEN
-          MSTU70=1
-          MSTU(71)=N
-        ELSEIF(IPILE.EQ.1) THEN
-          MSTU70=3
-          MSTU(71)=2
-          MSTU(72)=MINT(4)
-          MSTU(73)=N
-        ENDIF
- 
-C...Go back to lab frame (needed for vertices, also in fragmentation).
-        CALL PYFRAM(1)
- 
-C...Set nonvanishing production vertex (optional).
-        IF(MSTP(151).EQ.1) THEN
-          DO 250 J=1,4
-            VTX(J)=PARP(150+J)*SQRT((-2D0)*LOG(MAX(1D-10,PYR(0))))*
-     &      SIN(PARU(2)*PYR(0))
-  250     CONTINUE
-          DO 270 I=MINT(83)+1,N
-            DO 260 J=1,4
-              V(I,J)=V(I,J)+VTX(J)
-  260       CONTINUE
-  270     CONTINUE
-        ENDIF
- 
-C...Perform hadronization (if desired).
-        IF(MSTP(111).GE.1) THEN
-          CALL PYEXEC
-          IF(MSTU(24).NE.0) GOTO 100
-        ENDIF
-        IF(MSTP(113).GE.1) THEN
-          DO 280 I=NRECAL,N
-            IF(P(I,5).GT.0D0) P(I,4)=SQRT(P(I,1)**2+
-     &      P(I,2)**2+P(I,3)**2+P(I,5)**2)
-  280     CONTINUE
-        ENDIF
-        IF(MSTP(125).EQ.0.OR.MSTP(125).EQ.1) CALL PYEDIT(14)
- 
-C...Store event information and calculate Monte Carlo estimates of
-C...subprocess cross-sections.
-  290   IF(IPILE.EQ.1) CALL PYDOCU
- 
-C...Set counters for current pileup event and loop to next one.
-        MSTI(41)=IPILE
-        IF(IPILE.GE.2.AND.IPILE.LE.10) MSTI(40+IPILE)=ISUB
-        IF(MSTU70.LT.10) THEN
-          MSTU70=MSTU70+1
-          MSTU(70+MSTU70)=N
-        ENDIF
-        MINT(83)=N
-        MINT(84)=N+MSTP(126)
-        IF(IPILE.LT.NPILE) CALL PYFRAM(2)
-  300 CONTINUE
- 
-C...Generic information on pileup events. Reconstruct missing history.
-      IF(MSTP(131).EQ.1.AND.MSTP(133).GE.1) THEN
-        PARI(91)=VINT(132)
-        PARI(92)=VINT(133)
-        PARI(93)=VINT(134)
-        IF(MSTP(133).GE.2) PARI(93)=PARI(93)*XSEC(0,3)/VINT(131)
-      ENDIF
-      CALL PYEDIT(16)
- 
-C...Transform to the desired coordinate frame.
-  310 CALL PYFRAM(MSTP(124))
-      MSTU(70)=MSTU70
-      PARU(21)=VINT(1)
- 
-C...Error messages
- 5100 FORMAT(1X,'Error: no subprocess switched on.'/
-     &1X,'Execution stopped.')
- 
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaGravADD/pyeffevt.F.back b/Generators/PythiaExo_i/src/PythiaGravADD/pyeffevt.F.back
deleted file mode 100644
index 4dbb07019cacf927578695b21c5ed4692a95e5a2..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaGravADD/pyeffevt.F.back
+++ /dev/null
@@ -1,371 +0,0 @@
-
-C*********************************************************************
-
-C...PYEVNT
-C...Administers the generation of a high-pT event via calls to
-C...a number of subroutines.
-
-      SUBROUTINE PYEFFEVT
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYCTAG/NCT,MCT(4000,2)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      SAVE /PYJETS/,/PYDAT1/,/PYCTAG/,/PYDAT2/,/PYDAT3/,/PYPARS/,
-     &/PYINT1/,/PYINT2/,/PYINT4/,/PYINT5/
-C...Local array.
-      DIMENSION VTX(4)
-
-C...Optionally let PYEVNW do the whole job.
-      IF(MSTP(81).GE.20) THEN
-        CALL PYEVNW
-        RETURN
-      ENDIF
-
-C...Stop if no subprocesses on.
-      IF(MINT(121).EQ.1.AND.MSTI(53).EQ.1) THEN
-        WRITE(MSTU(11),5100)
-        CALL PYSTOP(1)
-      ENDIF
-
-C...Initial values for some counters.
-      MSTU(1)=0
-      MSTU(2)=0
-      N=0
-      MINT(5)=MINT(5)+1
-      MINT(7)=0
-      MINT(8)=0
-      MINT(30)=0
-      MINT(83)=0
-      MINT(84)=MSTP(126)
-      MSTU(24)=0
-      MSTU70=0
-      MSTJ14=MSTJ(14)
-C...Normally, use K(I,4:5) colour info rather than /PYCTAG/.
-      NCT=0
-      MINT(33)=0
-
-C...Let called routines know call is from PYEVNT (not PYEVNW).
-      MINT(35)=1
-      IF (MSTP(81).GE.10) MINT(35)=2
-
-C...If variable energies: redo incoming kinematics and cross-section.
-      MSTI(61)=0
-      IF(MSTP(171).EQ.1) THEN
-        CALL PYINKI(1)
-        IF(MSTI(61).EQ.1) THEN
-          MINT(5)=MINT(5)-1
-          RETURN
-        ENDIF
-        IF(MINT(121).GT.1) CALL PYSAVE(3,1)
-        CALL PYXTOT
-      ENDIF
-
-C...Loop over number of pileup events; check space left.
-      IF(MSTP(131).LE.0) THEN
-        NPILE=1
-      ELSE
-        CALL PYPILE(2)
-        NPILE=MINT(81)
-      ENDIF
-      DO 270 IPILE=1,NPILE
-        IF(MINT(84)+100.GE.MSTU(4)) THEN
-          CALL PYERRM(11,
-     &    '(PYEVNT:) no more space in PYJETS for pileup events')
-          IF(MSTU(21).GE.1) GOTO 280
-        ENDIF
-        MINT(82)=IPILE
-
-C...Generate variables of hard scattering.
-        MINT(51)=0
-        MSTI(52)=0
-  100   CONTINUE
-        IF(MINT(51).NE.0.OR.MSTU(24).NE.0) MSTI(52)=MSTI(52)+1
-        MINT(31)=0
-        MINT(39)=0
-        MINT(51)=0
-        MINT(57)=0
-        CALL PYRAND
-        IF(MSTI(61).EQ.1) THEN
-          MINT(5)=MINT(5)-1
-          RETURN
-        ENDIF
-        IF(MINT(51).EQ.2) RETURN
-        ISUB=MINT(1)
-        IF(MSTP(111).EQ.-1) GOTO 260
-
-C...Loopback point if PYPREP fails, especially for junction topologies.
-        NPREP=0
-        MNT31S=MINT(31)
-  110   NPREP=NPREP+1
-        MINT(31)=MNT31S
-
-        IF((ISUB.LE.90.OR.ISUB.GE.95).AND.ISUB.NE.99) THEN
-C...Hard scattering (including low-pT):
-C...reconstruct kinematics and colour flow of hard scattering.
-          MINT31=MINT(31)
-  120     MINT(31)=MINT31
-          MINT(51)=0
-          CALL PYSCAT
-          IF(MINT(51).EQ.1) GOTO 100
-          IPU1=MINT(84)+1
-          IPU2=MINT(84)+2
-          IF(ISUB.EQ.95) GOTO 140
-
-C...Reset statistics on activity in event.
-        DO 130 J=351,359
-          MINT(J)=0
-          VINT(J)=0D0
-  130   CONTINUE
-
-C...Begin addition by Leif
-C...Change colour flow if this is deemed to be a gravitational scattering.
-C        write(*,*) 'callig GCOLFX'
-          CALL GCOLFX(MINT(1),IPU1,IPU2)
-C...End addition by Leif
-
-C...Showering of initial state partons (optional).
-          NFIN=N
-          ALAMSV=PARJ(81)
-          PARJ(81)=PARP(72)
-          IF(MSTP(61).GE.1.AND.MINT(47).GE.2.AND.MINT(111).NE.12)
-     &    CALL PYSSPA(IPU1,IPU2)
-          PARJ(81)=ALAMSV
-          IF(MINT(51).EQ.1) GOTO 100
-
-C...Showering of final state partons (optional).
-          ALAMSV=PARJ(81)
-          PARJ(81)=PARP(72)
-          IF(MSTP(71).GE.1.AND.ISET(ISUB).GE.2.AND.ISET(ISUB).LE.10)
-     &    THEN
-            IPU3=MINT(84)+3
-            IPU4=MINT(84)+4
-            IF(ISET(ISUB).EQ.5) IPU4=-3
-            QMAX=VINT(55)
-            IF(ISET(ISUB).EQ.2) QMAX=SQRT(PARP(71))*VINT(55)
-            CALL PYSHOW(IPU3,IPU4,QMAX)
-          ELSEIF(ISET(ISUB).EQ.11) THEN
-            CALL PYADSH(NFIN)
-          ENDIF
-          PARJ(81)=ALAMSV
-
-C...Allow possibility for user to abort event generation.
-          IVETO=0
-          IF(IPILE.EQ.1.AND.MSTP(143).EQ.1) CALL PYVETO(IVETO)
-          IF(IVETO.EQ.1) GOTO 100
-
-C...Decay of final state resonances.
-          MINT(32)=0
-          IF(MSTP(41).GE.1.AND.ISET(ISUB).LE.10) CALL PYRESD(0)
-          IF(MINT(51).EQ.1) GOTO 100
-          MINT(52)=N
-
-
-C...Multiple interactions - PYTHIA 6.3 intermediate style.
-  140     IF(MSTP(81).GE.10.AND.MINT(50).EQ.1) THEN
-            IF(ISUB.EQ.95) MINT(31)=MINT(31)+1
-            CALL PYMIGN(6)
-            IF(MINT(51).EQ.1) GOTO 100
-            MINT(53)=N
-
-C...Beam remnant flavour and colour assignments - new scheme.
-            CALL PYMIHK
-            IF(MINT(51).EQ.1.AND.MINT(57).GE.1.AND.MINT(57).LE.5)
-     &      GOTO 120
-            IF(MINT(51).EQ.1) GOTO 100
-
-C...Primordial kT and beam remnant momentum sharing - new scheme.
-            CALL PYMIRM
-            IF(MINT(51).EQ.1.AND.MINT(57).GE.1.AND.MINT(57).LE.5)
-     &      GOTO 120
-            IF(MINT(51).EQ.1) GOTO 100
-            IF(ISUB.EQ.95) MINT(31)=MINT(31)-1
-
-C...Multiple interactions - PYTHIA 6.2 style.
-          ELSEIF(MINT(111).NE.12) THEN
-            IF (MSTP(81).GE.1.AND.MINT(50).EQ.1.AND.ISUB.NE.95) THEN
-              CALL PYMULT(6)
-              MINT(53)=N
-            ENDIF
-
-C...Hadron remnants and primordial kT.
-            CALL PYREMN(IPU1,IPU2)
-            IF(MINT(51).EQ.1.AND.MINT(57).GE.1.AND.MINT(57).LE.5) GOTO
-     &           110
-            IF(MINT(51).EQ.1) GOTO 100
-          ENDIF
-
-        ELSEIF(ISUB.NE.99) THEN
-C...Diffractive and elastic scattering.
-          CALL PYDIFF
-
-        ELSE
-C...DIS scattering (photon flux external).
-          CALL PYDISG
-          IF(MINT(51).EQ.1) GOTO 100
-        ENDIF
-
-C...Check that no odd resonance left undecayed.
-        MINT(54)=N
-        IF(MSTP(111).GE.1) THEN
-          NFIX=N
-          DO 150 I=MINT(84)+1,NFIX
-            IF(K(I,1).GE.1.AND.K(I,1).LE.10.AND.K(I,2).NE.21.AND.
-     &      K(I,2).NE.22) THEN
-              KCA=PYCOMP(K(I,2))
-              IF(MWID(KCA).NE.0.AND.MDCY(KCA,1).GE.1) THEN
-                CALL PYRESD(I)
-                IF(MINT(51).EQ.1) GOTO 100
-              ENDIF
-            ENDIF
-  150     CONTINUE
-        ENDIF
-
-C...Boost hadronic subsystem to overall rest frame.
-C..(Only relevant when photon inside lepton beam.)
-        IF(MINT(141).NE.0.OR.MINT(142).NE.0) CALL PYGAGA(4,WTGAGA)
-
-C...Recalculate energies from momenta and masses (if desired).
-        IF(MSTP(113).GE.1) THEN
-          DO 160 I=MINT(83)+1,N
-            IF(K(I,1).GT.0.AND.K(I,1).LE.10) P(I,4)=SQRT(P(I,1)**2+
-     &      P(I,2)**2+P(I,3)**2+P(I,5)**2)
-  160     CONTINUE
-          NRECAL=N
-        ENDIF
-
-C...Colour reconnection before string formation
-        IF (MSTP(95).GE.2) CALL PYFSCR(MINT(84)+1)
-
-C...Rearrange partons along strings, check invariant mass cuts.
-        MSTU(28)=0
-        IF(MSTP(111).LE.0) MSTJ(14)=-1
-        CALL PYPREP(MINT(84)+1)
-        MSTJ(14)=MSTJ14
-        IF(MINT(51).EQ.1.AND.MSTU(24).EQ.1) THEN
-          MSTU(24)=0
-          GOTO 100
-        ENDIF
-        IF (MINT(51).EQ.1.AND.NPREP.LE.5) GOTO 110
-        IF (MINT(51).EQ.1) GOTO 100
-        IF(MSTP(112).EQ.1.AND.MSTU(28).EQ.3) GOTO 100
-        IF(MSTP(125).EQ.0.OR.MSTP(125).EQ.1) THEN
-          DO 190 I=MINT(84)+1,N
-            IF(K(I,2).EQ.94) THEN
-              DO 180 I1=I+1,MIN(N,I+10)
-                IF(K(I1,3).EQ.I) THEN
-                  K(I1,3)=MOD(K(I1,4)/MSTU(5),MSTU(5))
-                  IF(K(I1,3).EQ.0) THEN
-                    DO 170 II=MINT(84)+1,I-1
-                        IF(K(II,2).EQ.K(I1,2)) THEN
-                          IF(MOD(K(II,4),MSTU(5)).EQ.I1.OR.
-     &                    MOD(K(II,5),MSTU(5)).EQ.I1) K(I1,3)=II
-                        ENDIF
-  170               CONTINUE
-                    IF(K(I+1,3).EQ.0) K(I+1,3)=K(I,3)
-                  ENDIF
-                ENDIF
-  180         CONTINUE
-            ENDIF
-  190     CONTINUE
-          CALL PYEDIT(12)
-          CALL PYEDIT(14)
-          IF(MSTP(125).EQ.0) CALL PYEDIT(15)
-          IF(MSTP(125).EQ.0) MINT(4)=0
-          DO 210 I=MINT(83)+1,N
-            IF(K(I,1).EQ.11.AND.K(I,4).EQ.0.AND.K(I,5).EQ.0) THEN
-              DO 200 I1=I+1,N
-                IF(K(I1,3).EQ.I.AND.K(I,4).EQ.0) K(I,4)=I1
-                IF(K(I1,3).EQ.I) K(I,5)=I1
-  200         CONTINUE
-            ENDIF
-  210     CONTINUE
-        ENDIF
-
-C...Introduce separators between sections in PYLIST event listing.
-        IF(IPILE.EQ.1.AND.MSTP(125).LE.0) THEN
-          MSTU70=1
-          MSTU(71)=N
-        ELSEIF(IPILE.EQ.1) THEN
-          MSTU70=3
-          MSTU(71)=2
-          MSTU(72)=MINT(4)
-          MSTU(73)=N
-        ENDIF
-
-C...Go back to lab frame (needed for vertices, also in fragmentation).
-        CALL PYFRAM(1)
-
-C...Set nonvanishing production vertex (optional).
-        IF(MSTP(151).EQ.1) THEN
-          DO 220 J=1,4
-            VTX(J)=PARP(150+J)*SQRT(-2D0*LOG(MAX(1D-10,PYR(0))))*
-     &      SIN(PARU(2)*PYR(0))
-  220     CONTINUE
-          DO 240 I=MINT(83)+1,N
-            DO 230 J=1,4
-              V(I,J)=V(I,J)+VTX(J)
-  230       CONTINUE
-  240     CONTINUE
-        ENDIF
-
-C...Perform hadronization (if desired).
-        IF(MSTP(111).GE.1) THEN
-          CALL PYEXEC
-          IF(MSTU(24).NE.0) GOTO 100
-        ENDIF
-        IF(MSTP(113).GE.1) THEN
-          DO 250 I=NRECAL,N
-            IF(P(I,5).GT.0D0) P(I,4)=SQRT(P(I,1)**2+
-     &      P(I,2)**2+P(I,3)**2+P(I,5)**2)
-  250     CONTINUE
-        ENDIF
-        IF(MSTP(125).EQ.0.OR.MSTP(125).EQ.1) CALL PYEDIT(14)
-
-C...Store event information and calculate Monte Carlo estimates of
-C...subprocess cross-sections.
-  260   IF(IPILE.EQ.1) CALL PYDOCU
-
-C...Set counters for current pileup event and loop to next one.
-        MSTI(41)=IPILE
-        IF(IPILE.GE.2.AND.IPILE.LE.10) MSTI(40+IPILE)=ISUB
-        IF(MSTU70.LT.10) THEN
-          MSTU70=MSTU70+1
-          MSTU(70+MSTU70)=N
-        ENDIF
-        MINT(83)=N
-        MINT(84)=N+MSTP(126)
-        IF(IPILE.LT.NPILE) CALL PYFRAM(2)
-  270 CONTINUE
-
-C...Generic information on pileup events. Reconstruct missing history.
-      IF(MSTP(131).EQ.1.AND.MSTP(133).GE.1) THEN
-        PARI(91)=VINT(132)
-        PARI(92)=VINT(133)
-        PARI(93)=VINT(134)
-        IF(MSTP(133).GE.2) PARI(93)=PARI(93)*XSEC(0,3)/VINT(131)
-      ENDIF
-      CALL PYEDIT(16)
-
-C...Transform to the desired coordinate frame.
-  280 CALL PYFRAM(MSTP(124))
-      MSTU(70)=MSTU70
-      PARU(21)=VINT(1)
-
-C...Error messages
- 5100 FORMAT(1X,'Error: no subprocess switched on.'/
-     &1X,'Execution stopped.')
-
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaLLP.cxx b/Generators/PythiaExo_i/src/PythiaLLP.cxx
deleted file mode 100644
index 6d43ce6bc8800dfd05b77ba9e30b264b9577be09..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaLLP.cxx
+++ /dev/null
@@ -1,1334 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// ------------------------------------------------------------- File:
-// GeneratorModules/PythiaLLP.cxx Description: Allows the user
-// to generate pythia events and store the result in the
-// Transient Store.
-//
-// Adapted from Pythia.cxx by Daniel Ventura
-
-//    Nov. 2009 included PYUPDA function
-//
-// AuthorList:U
-//         Ian Hinchliffe:  Initial Code June: 2000
-//         Modeled after the CDF code by Stan Thompson
-// parsing added August 2000
-// more switches added Feb 2001
-// Les Houches external process interface added May 2002
-// added access to pyint1 common Sept 2002
-// Direct use of generator codes - replaced with gen. names (E.M.Lobodzinska, Dec 2008)
-// added access to PYUPDA Nov. 2009 (Daniel Ventura)
-
-// Header for this module:-
-#include "PythiaExo_i/PythiaLLP.h"
-#include "TruthUtils/GeneratorName.h"
-
-// Framework Related Headers:-
-// #include "GaudiKernel/MsgStream.h"
-
-// Other classes used by this class:-
-#include "StoreGate/StoreGateSvc.h"
- 
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "GeneratorUtils/StringParse.h"
-#include <stdlib.h>
-//-------------------------------
-// calls to fortran routines
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-// Pointer On AtRndmGenSvc
-IAtRndmGenSvc* 	PythiaLLP::p_AtRndmGenSvc  = 0;
-std::string	PythiaLLP::pythia_stream	=	"PYTHIA_INIT";
-extern "C" double atl_pyr_( int* /*idummy*/ )
-{
-  CLHEP::HepRandomEngine* engine = 	PythiaLLP::p_AtRndmGenSvc->GetEngine(PythiaLLP::pythia_stream);
-  return CLHEP::RandFlat::shoot(engine);
-}
-
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyinit_(const char*,
-               const char*, 
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference) 
-               int  
-               );
-  void pyevnt_();
-  void pyevnw_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  int  pycomp_(int*);
-//    void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-    void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void rinpar_(); // comphep 
-  void subnum_(); // comphep file
-  void rheader_(); // comphep initialization
-  void extproc_(int*);
-  void opensusyfile_(const char* ,int * , int);
-  void initpyupda_(const char* , int);
-}
-
-// File scope declarations:-
-
-// set pointer to zero at start
-Atlas_HEPEVT*  PythiaLLP::s_atlas_HEPEVT = new Atlas_HEPEVT();
-
-//--------------------------------------------------------------------------
-PythiaLLP::PythiaLLP(const std::string& name, 
-      ISvcLocator* pSvcLocator): GenModule(name,pSvcLocator)
-{
-//--------------------------------------------------------------------------  
-  pythia_stream	=	"PYTHIA_INIT";
-  declareProperty("SetAtlasDefaults", m_AtlasDefaults = true );
-  declareProperty("SusyInputFile",    m_read_Filesusy = " ");
-  declareProperty("LLPpyupda", m_LLP_PYUPDA_file = "");
-  declareProperty("PythiaCommand",    m_pythiaCommandVector);
-
-  m_firstlistevent = -1;
-  m_lastlistevent  = -1;
-
-  m_ExternalProcess = 0;
-  m_RndmFileLength=0;
-  m_RndmFileNumber=0;
-  m_RndmFirstEvent=1;
-  m_RndmMOVE=0;
-  m_RndmSkipEvents=0;
-  m_RndmSwitch=0;
-  m_eventlistlevel=0;
-  m_events = 0;
-  m_fortout=0;
-  m_initlistlevel=11;
-  m_msel=6;
-  m_randomseed=19780503;
-  m_win=14000.;
-
-}
-//--------------------------------------------------------------------------
-PythiaLLP::~PythiaLLP(){
-//--------------------------------------------------------------------------
-}
-//-------------------------------------------------------------
-//--------------
-// Operations --
-//--------------
-Pydat1& PythiaLLP::pydat1() {
-   return m_pydat1;
-}
-Pydat2& PythiaLLP::pydat2() {
-   return m_pydat2;
-}
-Pydat3& PythiaLLP::pydat3() {
-   return m_pydat3; 
-}
-Pysubs& PythiaLLP::pysubs() {
-   return m_pysubs;
-}
-Pypars& PythiaLLP::pypars() {
-   return m_pypars;
-}
-Pydatr& PythiaLLP::pydatr() {
-   return m_pydatr;
-}
-Pymssm& PythiaLLP::pymssm() {
-   return m_pymssm;
-}
-Pyint1& PythiaLLP::pyint1() {
-   return m_pyint1;
-}
-Pyint2& PythiaLLP::pyint2() {
-   return m_pyint2;
-}
-Pyint5& PythiaLLP::pyint5() {
-   return m_pyint5;
-}
-Pytcsm& PythiaLLP::pytcsm() {
-   return m_pytcsm;
-}
-AcerMC_acset& PythiaLLP::acermc_acset() {
-   return m_acermc_acset;
-}
-
-//---------------------------------------------------------------------------
-StatusCode PythiaLLP::genInitialize() {
-  //---------------------------------------------------------------------------
-  // Initialise the listing output, parameter and decay data input streams
-  //
-  //  MsgStream log(messageService(), name());
-  // log << MSG::INFO << " PYTHIA INITIALISING.  \n"  << endmsg;
-  if(msgLvl(MSG::INFO)){
-    msg(MSG::INFO) << " PYTHIA INITIALISING.  \n " << endmsg;}
-
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc",
-				  PythiaLLP::p_AtRndmGenSvc,
-				  CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == PythiaLLP::p_AtRndmGenSvc)
-  {
-    //      log << MSG::ERROR << " Could not initialize Random Number Service" << endmsg;
-     if(msgLvl(MSG::ERROR)){
-       msg(MSG::ERROR) << " Could not initialize Random Number Service" << endmsg;}
-      return RndmStatus;
-  }	
-  PythiaLLP::pythia_stream	=	"PYTHIA_INIT";
-
-
-  // set up the input parameters to pyinit: these can be changed by the user
-  m_frame  = "CMS   ";
-  m_beam   = "P     ";
-  m_target = "P  ";
-  m_win=14000.;
-  m_initlistlevel=11;
-  m_pystatlistlevel.push_back(1);
-  m_fortout=0;
-
-  m_RndmFileName=" ";
-  m_RndmFileNumber=0;
-  m_RndmSwitch=0;
-  m_RndmFirstEvent=1;
-  m_RndmSkipEvents=0;
-  m_RndmMOVE=0;
-  m_RndmFileLength=0;
-  m_ExternalProcess = 0;
-  
-  // end of setup to pyinit
-  //now set defaults
-  m_randomseed=19780503;
-  this->pydatr().mrpy(1) = m_randomseed; // can be overwritten by user
-  // default process is ttbar 
-  // these can be overwritten by user.
-  m_msel=6;
-  this->pysubs().msel() = m_msel;
-
-  // Set the ATLAS defaults
-  if (m_AtlasDefaults) {
-
-    this->pydat2().pmas(6,1)  =175.;  // top quark mass
-    this->pydat2().pmas(24,1) =80.42; // W mass
-    this->pydat2().pmas(24,2) =2.124; // W width
-    this->pydat2().pmas(23,1) =91.19; // Z0 mass
-    this->pydat2().pmas(23,2) =2.495; // Z0 width
-    this->pypars().mstp(128)  =1;     // fix junk output for documentary particles
-    this->pydat1().mstu(21)   =1;     // error handling switch
-
-    this->pypars().mstp(81)   =21; // ATLAS default for MI and also for the associated 
-                                   // treatment of initial- and final-state showers
-                                   // and beam remnants. MI on; new model for PYEVNW.
-    
-    // Check the user request here and reset mstp(81)
-    for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-      StringParse mystring(m_pythiaCommandVector[i]);
-      string myblock=mystring.piece(1);
-      string myentry=mystring.piece(2);
-      int myint1=mystring.intpiece(3);
-      int myint2=mystring.intpiece(4);
-      if (myblock == "pypars"){
-	if(myentry == "mstp" && myint1 == 81){
-	  this->pypars().mstp(myint1)=myint2;
-	}
-      }
-    }
-    
-    // The new pyevnw routine is used which accesses the new scenario with pT-ordered showers and
-    // interleaved multiple interactions
-    if (this->pypars().mstp(81) >= 20) {
-      //      this->pypars().mstp(68)=1; Removed for 6.4xxx
-      this->pypars().mstp(70)=2;      // (virtuality scale for ISR)
-      this->pypars().mstp(72)=0;
-      this->pypars().mstp(82)=4;      // (mutiple interaction model)
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(88)=0;
-      this->pypars().mstp(89)=1;
-      this->pypars().mstp(90)=1;
-      this->pypars().mstp(95)=1;
-      this->pypars().parp(78)=0.2;
-      this->pypars().parp(80)=0.01;
-      this->pypars().parp(82)=1.9;    // (cut off scale)
-      this->pypars().parp(83)=0.3;
-      this->pypars().parp(84)=0.5;    // (matter distribution)
-      this->pypars().parp(89)=1800.;
-      this->pypars().parp(90)=0.22;   // (cut off scale)
-      this->pydat1().mstj(11)=3;      // (select peterson for charm fragmentation)
-      this->pydat1().mstj(22)=2;      // (Make K_S, Lambda stable)
-      this->pydat1().parj(54)=-0.07;  // (c hadronization)
-      this->pydat1().parj(55)=-0.006; // (b hadronization)
-      this->pydat1().parj(81)=0.14;
-      this->pypars().mstp(52)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(54)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(56)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(51)=10042;  // (needed for CTEQ6L)
-      this->pypars().mstp(53)=10042;  // (needed for CTEQ6L)
-      this->pypars().mstp(55)=10042;  // (needed for CTEQ6L)
-    } else {
-      this->pypars().mstp(81) = 1;
-      this->pypars().mstp(82) = 4;
-      this->pypars().mstp(86) = 2;
-      this->pypars().parp(67) = 3.;
-      this->pypars().parp(82) = 2.2;
-      this->pypars().parp(83) = 0.5;
-      this->pypars().parp(84) = 0.3;
-      this->pypars().parp(85) = 0.33;
-      this->pypars().parp(86) = 0.66;
-      this->pypars().parp(89) = 1800.;
-      this->pypars().parp(90) = 0.24;
-      this->pypars().mstp(52) = 2;
-      this->pypars().mstp(54) = 2;
-      this->pypars().mstp(56) = 2;
-      this->pypars().mstp(51) = 10042;
-      this->pypars().mstp(53) = 10042;
-      this->pypars().mstp(55) = 10042;
-      this->pydat1().mstj(11) = 3;
-      this->pydat1().mstj(22) = 2;
-      this->pydat1().parj(54) = -0.07;
-      this->pydat1().parj(55) = -0.006;
-    }
-  }
-
-
-  //
-  // Parse Commands and Set Values from Properties Service...
-  //
-  //   for(CommandVector::iterator it = m_pythiaCommandVector.begin(); 
-  //     it != m_pythiaCommand.end(); it++ ) { 
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-    //    log << MSG::INFO << " Command is: " << m_pythiaCommandVector[i]  << endmsg;
-    if(msgLvl(MSG::INFO)){
-      msg(MSG::INFO) << " Command is: " << m_pythiaCommandVector[i]  << endmsg;}
-    StringParse mystring(m_pythiaCommandVector[i]);
-    string myblock=mystring.piece(1);
-    string myentry=mystring.piece(2);
-    string mystr=mystring.piece(3);
-    int myint1=mystring.intpiece(3);
-    int myint2=mystring.intpiece(4);
-    int myint3=mystring.intpiece(5);
-    int myint4=mystring.intpiece(6);
-    int myint5=mystring.intpiece(7);
-    double  myfl1=mystring.numpiece(4);
-    double  myfl2=mystring.numpiece(5);
-    double  myfl0=mystring.numpiece(3);
-
-    // Note that PythiaLLP needs doubles hence the convert here
-    //  log << MSG:: INFO << myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1 <<endmsg;
-     if(msgLvl(MSG::INFO)){
-       msg(MSG::INFO)<< myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1 <<endmsg;}
-
-    if (myblock=="pyinit") {
-      if(myentry=="user"){
-	m_frame="USER  ";
-        m_external=mystr;
-	m_ExternalProcess = generator_int(mystr);
-	/*	if(mystr=="comphep"){
-	  m_ExternalProcess = COMPHEP;
-	} else if(mystr=="user"){ 
-	  m_ExternalProcess = USER;
-	} else if(mystr=="acermc"){ 
-	  m_ExternalProcess = ACERMC;
-	} else if(mystr=="alpgen"){ 
-	  m_ExternalProcess = ALPGEN;
-	}  else if (mystr == "madgraph") {
-	  m_ExternalProcess = MADGRAPH;
-	} else if(mystr== "madcup") {
-	  m_ExternalProcess = MADCUP;
-	} else if(mystr== "lhaext") {
-	  m_ExternalProcess = LHAEXT;
-	} else if(mystr== "matchig") {
-	  m_ExternalProcess = MATCHIG;
-	} else if(mystr== "hvgen") {
-	  m_ExternalProcess = HVGEN;
-        } else if(mystr== "lhef") {
-          m_ExternalProcess = LHEF;
-	} else if(mystr== "mcatnlo") {
-	  m_ExternalProcess = MCATNLO;
-	} else if(mystr== "charybdis") {
-	  m_ExternalProcess = CHARYBDIS;
-        } else if(mystr== "horace") {
-          m_ExternalProcess = HORACE;
-	}else {
-//	  log << MSG:: ERROR
-          if(msgLvl(MSG::ERROR)){
-           msg(MSG::ERROR)
-	      << "PYTHIA ERROR, entry PYINIT USER has comphep, acermc, alpgen, madgraph, madcup,  lhaext, hvgen, lhef and user as options: YOU HAVE SPECIFIED "
-	      << myentry <<endmsg ;}
-	      }*/
-	extproc_(&m_ExternalProcess);
-      }
-      else if(myentry=="FIXT"){
-	m_frame="FIXT";
-      }
-      else if(myentry=="pbar"){
-	m_beam="P~- ";
-      }
-      else if(myentry=="win"){
-	m_win=myfl0;
-      }      
-      else if(myentry=="pylisti"){
-	m_initlistlevel=myint1;
-      }      
-      else if(myentry=="pylistf"){
-	m_eventlistlevel=myint1;
-      }
-      else if(myentry=="dumpr"){
-	m_firstlistevent=myint1;
-	m_lastlistevent=myint2;
-      }
-      else if(myentry=="output"){
-	m_envval1=mystr;
-	m_fortout=49;
-	this->pydat1().mstu(11)=m_fortout;
-      }
-      else if(myentry=="rndm_IO"){
-	m_RndmFileName=mystr;
-	m_RndmFileNumber=36;
-	m_RndmSwitch=myint2;
-	m_RndmFirstEvent=myint3;
-	m_RndmSkipEvents=myint4;
-	m_RndmMOVE=myint5;
-	if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-	
-	if (m_RndmSwitch > 0)
-	{
-	    if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0)
-	    {
-	      //		log << MSG:: ERROR
-             if(msgLvl(MSG::ERROR)){
-               msg(MSG::ERROR)
-		    << " INCOSISTENT SET OF rndm_IO PARAMETERS : FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF"
-		    << myentry <<endmsg ;}
-		m_RndmSwitch = 0;
-	    }
-	}
-
-	//	log << MSG::INFO 
-         if(msgLvl(MSG::INFO)){
-         msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! " << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  " << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO)  << " PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE" << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  " << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " DETAILS LOOK IN  " << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf "
-	    << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;
-	 }
-	m_RndmSwitch = 0;
-      }
-      else {
-	//	log << MSG:: ERROR 
-       if(msgLvl(MSG::ERROR)){ 
-         msg(MSG::ERROR) << "PYTHIA ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN AND RNDM_IO: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }    
-    }
-    else if (myblock == "pysubs") {
-      if(myentry == "msel"){
-	this->pysubs().msel()=myint1;
-      }
-      else if (myentry == "msub"){
-	this->pysubs().msub(myint1)=myint2;	 
-      }
-      else if (myentry == "ckin"){
-	this->pysubs().ckin(myint1)=myfl1;	 
-      }
-      else if (myentry == "kfin"){
-	this->pysubs().kfin(myint1,myint2)=myint3;	 
-      }
-      else {
-	//	log << MSG:: ERROR 
-      if(msgLvl(MSG::ERROR)){ 
-	msg(MSG::ERROR) << "PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pypars"){
-      if(myentry == "mstp"){
-	this->pypars().mstp(myint1)=myint2;
-      }
-      else if(myentry == "msti"){
-	this->pypars().msti(myint1)=myint2;
-      }
-      else if(myentry == "parp"){
-	this->pypars().parp(myint1)=myfl1;
-      }
-      else if(myentry == "pari"){
-	this->pypars().pari(myint1)=myfl1;
-      }
-      else {
-	//	log << MSG:: ERROR 
-      if(msgLvl(MSG::ERROR)){
-        msg(MSG::ERROR) << "PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat1"){
-      if(myentry == "mstu"){
-	this->pydat1().mstu(myint1)=myint2;
-      }       
-      else if(myentry == "mstj"){
-	this->pydat1().mstj(myint1)=myint2;
-      }
-      else if(myentry == "paru"){
-	this->pydat1().paru(myint1)=myfl1;
-      }       
-      else if(myentry == "parj"){
-	this->pydat1().parj(myint1)=myfl1;
-      }
-      else {
-	//	log << MSG:: ERROR 
-      if(msgLvl(MSG::ERROR)){
-	msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat2"){
-      if(myentry == "kchg"){
-	this->pydat2().kchg(myint1,myint2)=myint3;
-      }       
-      else if(myentry == "pmas"){
-	this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      }
-      else if(myentry == "parf"){
-	this->pydat2().parf(myint1)=myfl1;
-      }       
-      else if(myentry == "vckm"){
-	this->pydat2().vckm(myint1,myint2)=myfl2;
-      }
-      else {
-	//	log << MSG:: ERROR 
-      if(msgLvl(MSG::ERROR)){
-	msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat3"){
-      if(myentry == "mdcy"){
-	this->pydat3().mdcy(myint1,myint2)=myint3;
-      }       
-      else if(myentry == "mdme"){
-	this->pydat3().mdme(myint1,myint2)=myint3;
-      }
-      else if(myentry == "brat"){
-	this->pydat3().brat(myint1)=myfl1;
-      }       
-      else if(myentry == "kfdp"){
-	this->pydat3().kfdp(myint1,myint2)=myint3;
-      }
-      else {
-	//	log << MSG:: ERROR 
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR)<< "PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydatr"){
-      if(myentry == "mrpy"){
-	//	log << MSG::INFO 
-         if(msgLvl(MSG::INFO)){
-         msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! " << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  " << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE" << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  " << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " DETAILS LOOK IN  " << endmsg;
-	 //	log << MSG::INFO 
-         msg(MSG::INFO) << " http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf "
-	    << endmsg;
-	 //	log << MSG::INFO 
-	 msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-	  
-	this->pydatr().mrpy(myint1)=myint2;
-      }       
-      else if(myentry == "rrpy"){
-	this->pydatr().rrpy(myint1)=myfl1;
-      }
-      else {
-	//	log << MSG:: ERROR 
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYDATR  HAS MRPY AND RRPY : YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pymssm"){
-      if (myentry=="imss"){
-	if (myint1 == 21 || myint1 == 22) {
-	  //	  log << MSG::WARNING 
-          if(msgLvl(MSG::WARNING)){
-           msg(MSG::WARNING)
-	     << "The seting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default" <<endmsg;}
-	} else {
- 	  this->pymssm().imss(myint1)=myint2;
-	}
-      }
-      else if (myentry=="rmss"){
-	this->pymssm().rmss(myint1)=myfl1;
-      }
-      else {
-	//	log << MSG:: ERROR 
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pyint2"){
-      if (myentry == "iset"){
-	this->pyint2().iset(myint1)=myint2; 
-      }
-      else if (myentry == "kfpr"){
-	this->pyint2().kfpr(myint1,myint2)=myint3;  
-      }
-      else if (myentry == "coef"){
-	this->pyint2().coef(myint1,myint2)=myfl2;  
-      }
-      else if (myentry == "icol"){
-	this->pyint2().icol(myint1,myint2,myint3)=myint4;  
-      }
-      else {
-	//      log << MSG:: ERROR 
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pystat"){
-	m_pystatlistlevel.clear();
-	for (unsigned i = 2; i <= mystring.string_size(); ++i)
-	    m_pystatlistlevel.push_back(mystring.intpiece(i));
-    }
-    else if (myblock == "pytcsm"){
-      if (myentry == "itcm"){
-	this->pytcsm().itcm(myint1)=myint2; 
-      }
-      else if (myentry=="rtcm"){
-	this->pytcsm().rtcm(myint1)=myfl1;
-      }
-      else {
-	//	log << MSG:: ERROR 
-       if(msgLvl(MSG::ERROR)){
-         msg(MSG::ERROR) << "PYTHIA ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-
-    }
-
-    // AcerMC tt~ decay mode switching
-    else if (myblock == "acermc" && myentry=="acset12") {
-      if (m_ExternalProcess == ACERMC) {
-	this->acermc_acset().acset12()=myint1;
-      }
-    }
-
-    else {
-      //      log << MSG:: ERROR
-     if(msgLvl(MSG::ERROR)){ 
-       msg(MSG::ERROR) << " ERROR in PYTHIA PARAMETERS   " << myblock << " is and invalid common block name !" << endmsg;}
-    }
-  }
-  // end of parsing
-  //------------------------------------------------------------------
-
-  // Set the logical Unit Number for the immss(1)=11 option and open the file
-  if (this->pymssm().imss(1) == 11) {
-    int syunit = 66;
-    this->pymssm().imss(21) = syunit;
-    this->pymssm().imss(22) = syunit;
-    const std::string& fileName = m_read_Filesusy; 
-    opensusyfile_(fileName.c_str(),&syunit,fileName.size()); 
-  }
-  // !!!!! PROTECT AGAINST mstp(81)/mstp(82) Pythia looping
-  if (this->pypars().mstp(81) == 0 && this->pypars().mstp(82) > 2)
-  {
-      this->pypars().mstp(82) = 1;
-      //      log << MSG::INFO 
-       if(msgLvl(MSG::INFO)){
-       msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA LOOPING !!!!!!!! " << endmsg;
-       //      log << MSG::INFO 
-       msg(MSG::INFO) << " YOU HAVE SWITCHED OFF MULTIPLE INTERACTIONS, mstp(81) = 0 " << endmsg;
-       //      log << MSG::INFO 
-       msg(MSG::INFO) << " THE DEFAULT ATLAS MULTIPLE INTERACTIONS SCENARIO, mstp(82) = 4 " << endmsg;
-       //      log << MSG::INFO 
-       msg(MSG::INFO) << " CHANGED TO mstp(82) = 1, BECAUSE PYTHIA IS LOOPING WHEN " << endmsg;
-       //      log << MSG::INFO 
-       msg(MSG::INFO) << " mstp(81) = 0 and mstp(82) > 2 " << endmsg;
-       //      log << MSG::INFO 
-       msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-  }
-  
-  // Now call pyinit and set listing
-  // Note the `extra' arguments to pyinit on the end of the argument
-  // list which do *not* explicitly occur in the FORTRAN
-  // implementation of the function -- one for each character
-  // variable, in the same order (reference Randy Herber,
-  // herber@fnal.gov). Note also that the `extern "C"' function
-  // declaration matches the C usage rather than the FORTRAN
-  // definition of the PYINIT function and therefore includes the 3
-  // extra arguments.
-  // activate the block data  
-  const char* envval = m_envval1.c_str();
-  initpyblock_(&m_fortout,envval);
-
-  if (m_RndmSwitch > 0)
-  {
-      const char* RndmFileName = m_RndmFileName.c_str();
-      m_RndmFileLength = openrandom_(&m_RndmSwitch, &m_RndmFileNumber, RndmFileName);
-      if (m_RndmSwitch ==2 )  msg(MSG::INFO) << " THEY ARE " << m_RndmFileLength
-				 << " EVENTS STORED IN THE PYTHIA RANDOM NUMBER FILE \n"  << endmsg;
-  }
-  
-  const char* frame = m_frame.c_str();
-  const char* beam = m_beam.c_str();
-  double winval = m_win;
-  const char* target = m_target.c_str();
-  int minlist   = m_initlistlevel;
-  // special initialization for comphep
-  if(m_external=="comphep"){
-    rinpar_();
-    subnum_();
-    rheader_();
-  }
-  
-  // end of comphep initialization
-//    std::cout << " ****** BEFORE PYINIT ********" << std::endl;
-//    std::cout << setiosflags(ios::fixed);
-//    std::cout << " MSTU(11) " 
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(11)  << " MSTU(20) "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(20)  << " MSTU(118) "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(118) << std::endl;
-//    std::cout << " PARU(108) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(108) << " PARU(117) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(117) << " PARU(118) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(118) << std::endl;
-//    for (int ii = 210; ii < 353; ++ii)
-//    {
-//        std::cout << " BRAT(" << ii << ") "
-//  		<< std::setw(10) << setprecision(8) << this->pydat3().brat(ii) << std::endl;
-//    }
-//    std::cout << " MDCY(310) " 
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,1) << ", "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,2) << ", "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,3);
-  
-//    std::cout << std::resetiosflags(std::ios::fixed)
-//  	    << std::endl;
-
-  // Save the PYTHIA_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = PythiaLLP::p_AtRndmGenSvc->GetEngine(PythiaLLP::pythia_stream);
-  const long*	sip	=	engine->getSeeds();
-  long	int	si1	=	sip[0];
-  long	int	si2	=	sip[1];
-
-  pyinit_(frame,beam,target,&winval,
-          strlen(frame),strlen(beam),strlen(target)
-          );
-
-  if(m_LLP_PYUPDA_file != "") {
-    const std::string& fileName = m_LLP_PYUPDA_file;
-    initpyupda_(fileName.c_str(),fileName.size());
-    for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-      //      log << MSG::INFO
-      if(msgLvl(MSG::INFO)){ 
-	msg(MSG::INFO) << " Command is: " << m_pythiaCommandVector[i]  << endmsg;}
-      StringParse mystring(m_pythiaCommandVector[i]);
-      string myblock=mystring.piece(1);
-      string myentry=mystring.piece(2);
-      string mystr=mystring.piece(3);
-      int myint1=mystring.intpiece(3);
-      int myint2=mystring.intpiece(4);
-      int myint3=mystring.intpiece(5);
-      int myint4=mystring.intpiece(6);
-      int myint5=mystring.intpiece(7);
-      double  myfl1=mystring.numpiece(4);
-      double  myfl2=mystring.numpiece(5);
-      double  myfl0=mystring.numpiece(3);
-      
-      // Note that Pythia needs doubles hence the convert here
-      //      log << MSG:: INFO 
-      if(msgLvl(MSG::INFO)){
-	msg(MSG::INFO) << myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1 <<endmsg;}
-      if (myblock=="pyinit") {
-	if(myentry=="user"){
-	  m_frame="USER  ";
-	  m_external=mystr;
-	  m_ExternalProcess = generator_int(mystr);
-	  /*	if(mystr=="comphep"){
-		m_ExternalProcess = COMPHEP;
-		} else if(mystr=="user"){ 
-		m_ExternalProcess = USER;
-		} else if(mystr=="acermc"){ 
-		m_ExternalProcess = ACERMC;
-		} else if(mystr=="alpgen"){ 
-		m_ExternalProcess = ALPGEN;
-		}  else if (mystr == "madgraph") {
-		m_ExternalProcess = MADGRAPH;
-		} else if(mystr== "madcup") {
-		m_ExternalProcess = MADCUP;
-		} else if(mystr== "lhaext") {
-		m_ExternalProcess = LHAEXT;
-		} else if(mystr== "matchig") {
-		m_ExternalProcess = MATCHIG;
-		} else if(mystr== "hvgen") {
-		m_ExternalProcess = HVEN;
-		} else if(mystr== "lhef") {
-		m_ExternalProcess = LHEF;
-		} else if(mystr== "mcatnlo") {
-		m_ExternalProcess = MCATNLO;
-		} else if(mystr== "charybdis") {
-		m_ExternalProcess = CHARYBDIS;
-		} else if(mystr== "horace") {
-		m_ExternalProcess = HORACE;
-		}else {
-//		log << MSG:: ERROR
-                if(msgLvl(MSG::ERROR)){
-                 msg(MSG::ERROR)
-		<< "PYTHIA ERROR, entry PYINIT USER has comphep, acermc, alpgen, madgraph, madcup, lhaext, hvgen, lhef and user as options: YOU HAVE SPECIFIED "
-		<< myentry <<endmsg ;}
-		}*/
-	  extproc_(&m_ExternalProcess);
-	}
-	else if(myentry=="FIXT"){
-	  m_frame="FIXT";
-	}
-	else if(myentry=="pbar"){
-	  m_beam="P~- ";
-	}
-	else if(myentry=="win"){
-	  m_win=myfl0;
-	}      
-	else if(myentry=="pylisti"){
-	  m_initlistlevel=myint1;
-	}      
-	else if(myentry=="pylistf"){
-	  m_eventlistlevel=myint1;
-	}
-	else if(myentry=="dumpr"){
-	  m_firstlistevent=myint1;
-	  m_lastlistevent=myint2;
-	}
-	else if(myentry=="output"){
-	  m_envval1=mystr;
-	  m_fortout=49;
-	  this->pydat1().mstu(11)=m_fortout;
-	}
-	else if(myentry=="rndm_IO"){
-	  m_RndmFileName=mystr;
-	  m_RndmFileNumber=36;
-	  m_RndmSwitch=myint2;
-	  m_RndmFirstEvent=myint3;
-	  m_RndmSkipEvents=myint4;
-	  m_RndmMOVE=myint5;
-	  if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-	  
-	  if (m_RndmSwitch > 0)
-	    {
-	      if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0)
-		{
-		  //		  log << MSG:: ERROR
-                 if(msgLvl(MSG::ERROR)){  
-                   msg(MSG::ERROR)
-		      << " INCOSISTENT SET OF rndm_IO PARAMETERS : FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF"
-		      << myentry <<endmsg ;}
-		  m_RndmSwitch = 0;
-		}
-	    }
-	  
-	  //	  log << MSG::INFO 
-          if(msgLvl(MSG::INFO)){
-           msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! " << endmsg;
-	   //	  log << MSG::INFO 
-           msg(MSG::INFO) << " THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  " << endmsg;
-	   //	  log << MSG::INFO 
-           msg(MSG::INFO) << " PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE" << endmsg;
-	   //	  log << MSG::INFO 
-           msg(MSG::INFO) << " ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  " << endmsg;
-	   //	  log << MSG::INFO 
-           msg(MSG::INFO) << " DETAILS LOOK IN  " << endmsg;
-	   //	  log << MSG::INFO 
-           msg(MSG::INFO) << " http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf "
-	      << endmsg;
-	   //	  log << MSG::INFO 
-           msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-	  
-	  m_RndmSwitch = 0;
-	}
-	else {
-	  //	  log << MSG:: ERROR
-         if(msgLvl(MSG::ERROR)){  
-	   msg(MSG::ERROR) << "PYTHIA ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN AND RNDM_IO: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}    
-      }
-      else if (myblock == "pysubs") {
-	if(myentry == "msel"){
-	  this->pysubs().msel()=myint1;
-	}
-	else if (myentry == "msub"){
-	  this->pysubs().msub(myint1)=myint2;	 
-	}
-	else if (myentry == "ckin"){
-	  this->pysubs().ckin(myint1)=myfl1;	 
-	}
-	else if (myentry == "kfin"){
-	  this->pysubs().kfin(myint1,myint2)=myint3;	 
-	}
-	else {
-	  //	  log << MSG:: ERROR 
-         if(msgLvl(MSG::ERROR)){ 
-	   msg(MSG::ERROR) << "PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-      }
-      else if (myblock == "pypars"){
-	if(myentry == "mstp"){
-	  this->pypars().mstp(myint1)=myint2;
-	}
-	else if(myentry == "msti"){
-	  this->pypars().msti(myint1)=myint2;
-	}
-	else if(myentry == "parp"){
-	  this->pypars().parp(myint1)=myfl1;
-	}
-	else if(myentry == "pari"){
-	  this->pypars().pari(myint1)=myfl1;
-	}
-	else {
-	  //	  log << MSG:: ERROR 
-         if(msgLvl(MSG::ERROR)){
-	   msg(MSG::ERROR) << "PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-      }
-      else if (myblock == "pydat1"){
-	if(myentry == "mstu"){
-	  this->pydat1().mstu(myint1)=myint2;
-	}       
-	else if(myentry == "mstj"){
-	  this->pydat1().mstj(myint1)=myint2;
-	}
-	else if(myentry == "paru"){
-	  this->pydat1().paru(myint1)=myfl1;
-	}       
-	else if(myentry == "parj"){
-	  this->pydat1().parj(myint1)=myfl1;
-	}
-	else {
-	  //	  log << MSG:: ERROR 
-          if(msgLvl(MSG::ERROR)){
-	    msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-      }
-      else if (myblock == "pydat2"){
-	if(myentry == "kchg"){
-	  this->pydat2().kchg(myint1,myint2)=myint3;
-	}       
-	else if(myentry == "pmas"){
-	  this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-	}
-	else if(myentry == "parf"){
-	  this->pydat2().parf(myint1)=myfl1;
-	}       
-	else if(myentry == "vckm"){
-	  this->pydat2().vckm(myint1,myint2)=myfl2;
-	}
-	else {
-	  //	  log << MSG:: ERROR 
-         if(msgLvl(MSG::ERROR)){
-	   msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-      }
-      else if (myblock == "pydat3"){
-	if(myentry == "mdcy"){
-	  this->pydat3().mdcy(myint1,myint2)=myint3;
-	}       
-	else if(myentry == "mdme"){
-	  this->pydat3().mdme(myint1,myint2)=myint3;
-	}
-	else if(myentry == "brat"){
-	  this->pydat3().brat(myint1)=myfl1;
-	}       
-	else if(myentry == "kfdp"){
-	  this->pydat3().kfdp(myint1,myint2)=myint3;
-	}
-	else {
-	  //	  log << MSG:: ERROR 
-          if(msgLvl(MSG::ERROR)){ 
-	    msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-      }
-      else if (myblock == "pydatr"){
-	if(myentry == "mrpy"){
-	  //	  log << MSG::INFO 
-          if(msgLvl(MSG::INFO)){
-          msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! " << endmsg;
-	  //	  log << MSG::INFO 
-	          msg(MSG::INFO) << " THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  " << endmsg;
-	    //	   log << MSG::INFO 
-          msg(MSG::INFO) << " PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE" << endmsg;
-	  //	  log << MSG::INFO
-           msg(MSG::INFO) << " ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  " << endmsg;
-	   //	  log << MSG::INFO 
-           msg(MSG::INFO) << " DETAILS LOOK IN  " << endmsg;
-	   //	  log << MSG::INFO 
-           msg(MSG::INFO) << " http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf "
-	      << endmsg;
-	   //	  log << MSG::INFO 
-	   msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-	  
-	  this->pydatr().mrpy(myint1)=myint2;
-	}       
-	else if(myentry == "rrpy"){
-	  this->pydatr().rrpy(myint1)=myfl1;
-	}
-	else {
-	  //	  log << MSG:: ERROR 
-          if(msgLvl(MSG::ERROR)){
-	    msg(MSG::ERROR) << "PYTHIA ERROR, block PYDATR  HAS MRPY AND RRPY : YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-      }
-      else if (myblock == "pymssm"){
-	if (myentry=="imss"){
-	  if (myint1 == 21 || myint1 == 22) {
-	    //	    log << MSG::WARNING 
-            if(msgLvl(MSG::WARNING)){
-	      msg(MSG::WARNING) << "The seting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default" <<endmsg;}
-	  } else {
-	    this->pymssm().imss(myint1)=myint2;
-	  }
-	}
-	else if (myentry=="rmss"){
-	  this->pymssm().rmss(myint1)=myfl1;
-	}
-	else {
-	  //	  log << MSG:: ERROR 
-          if(msgLvl(MSG::ERROR)){
-	    msg(MSG::ERROR)<< "PYTHIA ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-      }
-      else if (myblock == "pyint2"){
-	if (myentry == "iset"){
-	  this->pyint2().iset(myint1)=myint2; 
-	}
-	else if (myentry == "kfpr"){
-	  this->pyint2().kfpr(myint1,myint2)=myint3;  
-	}
-	else if (myentry == "coef"){
-	  this->pyint2().coef(myint1,myint2)=myfl2;  
-	}
-	else if (myentry == "icol"){
-	  this->pyint2().icol(myint1,myint2,myint3)=myint4;  
-	}
-	else {
-	  //	  log << MSG:: ERROR 
-       if(msgLvl(MSG::ERROR)){
-	 msg(MSG::ERROR) << "PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-      }
-      else if (myblock == "pystat"){
-	m_pystatlistlevel.clear();
-	for (unsigned i = 2; i <= mystring.string_size(); ++i)
-	  m_pystatlistlevel.push_back(mystring.intpiece(i));
-      }
-      else if (myblock == "pytcsm"){
-	if (myentry == "itcm"){
-	  this->pytcsm().itcm(myint1)=myint2; 
-	}
-	else if (myentry=="rtcm"){
-	  this->pytcsm().rtcm(myint1)=myfl1;
-	}
-	else {
-	  //	  log << MSG:: ERROR
-         if(msgLvl(MSG::ERROR)){ 
-	   msg(MSG::ERROR) << "PYTHIA ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-	}
-	
-      }
-      
-      // AcerMC tt~ decay mode switching
-      else if (myblock == "acermc" && myentry=="acset12") {
-	if (m_ExternalProcess == ACERMC) {
-	  this->acermc_acset().acset12()=myint1;
-	}
-      }
-      
-      else {
-	//	log << MSG:: ERROR
-        if(msgLvl(MSG::ERROR)){ 
-	  msg(MSG::ERROR) << " ERROR in PYTHIA PARAMETERS   " << myblock << " is and invalid common block name !" << endmsg;}
-      }
-    }
-  }
-  
-  
-  // ... and set them back to the stream for proper save
-  PythiaLLP::p_AtRndmGenSvc->CreateStream(si1, si2, PythiaLLP::pythia_stream);
-
-  PythiaLLP::pythia_stream	=	"PYTHIA";
-  
-//    std::cout << " ****** AFTER PYINIT ********" << std::endl;
-//    std::cout << setiosflags(ios::fixed);
-//    std::cout << " MSTU(11) " 
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(11)  << " MSTU(20) "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(20)  << " MSTU(118) "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(118) << std::endl;
-//    std::cout << " PARU(108) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(108) << " PARU(117) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(117) << " PARU(118) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(118) << std::endl;
-//    for (int ii = 210; ii < 353; ++ii)
-//    {
-//        std::cout << " BRAT(" << ii << ") "
-//  		<< std::setw(10) << setprecision(8) << this->pydat3().brat(ii) << std::endl;
-//    }
-//    std::cout << " MDCY(310) " 
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,1) << ", "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,2) << ", "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,3);
-  
-//    std::cout << std::resetiosflags(std::ios::fixed)
-//  	    << std::endl;
-  
-  pylist_(&minlist);
-  m_events = 0;
-  //  cout << " kfpr ============ " << this->pyint2().kfpr(186,2) <<endl;
-  //cout << " kfpr ============ " << this->pyint2().kfpr(187,2) <<endl;
-  //decay table
-  const char  *p_envar1="PYDAT";
-  //  char  *p_envval1=0;
-  //  p_envval1=
-  getenv(p_envar1);
-  //----------------------------------------------------------
-  // This is the decay table  file 
-  //
-  //   int mode=2;
-  //   int lun=37;
-  //   pyupda_(&mode,&lun);
-  //    cldcay_(&lun);
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-//   HepMC::HEPEVT_Wrapper::set_sizeof_int(4);
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-StatusCode PythiaLLP::callGenerator() {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-  //  log << MSG::DEBUG 
-   if(msgLvl(MSG::DEBUG)){
-     msg(MSG::DEBUG) << " PYTHIA generating.  \n"  << endmsg;}
-
-  // Write/Read the random numbers to/from file if requested
-  if (m_RndmSwitch > 0)	RandomNumberIO();
-
-  // Save the random number seeds in the event
-  CLHEP::HepRandomEngine*	engine	=	PythiaLLP::p_AtRndmGenSvc->GetEngine(PythiaLLP::pythia_stream);
-  const long*		s	=	engine->getSeeds();
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-  
-  // Generate event
-  pyevnt_();
-
-  // update event counter
-  ++m_events;
-  int mevlist=m_eventlistlevel; 
-  // Is the event to be listed
-  if ( m_events >= m_firstlistevent &&
-       m_events <= m_lastlistevent) {
-    //    log<< MSG:: INFO 
-     if(msgLvl(MSG::INFO)){
-       msg(MSG::INFO) << "PYEVNT event no. " << m_events << " will be listed" << endmsg;}
-    if (m_frame == "USER  ")
-    {
-	int uspr = 7;
-	pylist_(&uspr); // Special listing when external generator was selected
-    }
-    pylist_(&mevlist); // List this event if required
-  }   
-  // Tell lunhep to convert from PYJETS to HEPEVT
-  int mconv=1;				
-  // Do the conversion
-//    lunhep_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  pyhepc_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  if ( HepMC::HEPEVT_Wrapper::number_entries() <= 0 ) {
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    std::cout << "!!! " << generator_name(m_ExternalProcess) << " TERMINATES NORMALY: NO MORE EVENTS IN FILE !!!" << std::endl;
-    std::cout << "!!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE !!!" << std::endl;
-    std::cout << "!!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!!" << std::endl;
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    return StatusCode::FAILURE;
-  }
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-//   HepMC::HEPEVT_Wrapper::print_hepevt();
-  return StatusCode::SUCCESS;  
-}
-
-//---------------------------------------------------------------------------
-StatusCode PythiaLLP::genFinalize() {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-  //  log << MSG::INFO 
-   if(msgLvl(MSG::INFO)){
-     msg(MSG::INFO) << " PYTHIA Ending.  \n"  << endmsg;}
-  for (std::vector<int>::iterator i = m_pystatlistlevel.begin(); i != m_pystatlistlevel.end(); ++i)
-  {
-    //      log << MSG::INFO
-    if(msgLvl(MSG::INFO)){ 
-      msg(MSG::INFO) <<"Call PYSTAT at endRun with level " << *i << endmsg;}
-      pystat_(&(*i));
-  }
-  std::cout << "MetaData: cross-section (nb)= " << 1000000. * this->pyint5().xsec(0,3) << std::endl;
-  return StatusCode::SUCCESS;
-}
-//---------------------------------------------------------------------------
-StatusCode PythiaLLP::fillEvt(HepMC::GenEvent* evt) {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-
-  //  log << MSG::DEBUG
-   if(msgLvl(MSG::DEBUG)){
-     msg(MSG::DEBUG) << " PYTHIA Atlas_HEPEVT Filling.  \n"  << endmsg;}
-  store_Atlas_HEPEVT();
-
-  //  log << MSG::DEBUG 
-  if(msgLvl(MSG::DEBUG)){
-    msg(MSG::DEBUG) << " PYTHIA Filling.  \n"  << endmsg;}
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-  //HepMC::IO_Ascii output("dump.dat",ios::out);
-
-  // Fill event into HepMC and transient store
-//   std::cout << "====================================================================" << std::endl;
-//   std::cout << "                 === Event dump IN PYTHIA: ===                      " << std::endl;
-//   std::cout << "====================================================================" << std::endl;
-//   HepMC::HEPEVT_Wrapper::print_hepevt();
-
-  hepio.fill_next_event(evt);
-  int pr_id = PYTHIA + m_ExternalProcess + this->pyint1().mint(1);
-  if (m_ExternalProcess > 0) pr_id = PYTHIA + m_ExternalProcess;
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-  //evt -> print();
-  //cout << " ----------------- END " << endl;
-  
-  //PDF WEIGHTS - using  Pdf Info object.. 
-  //pdf_id x_1, x_1, Q2, f_1, f_2 
-  int id1=this->pypars().msti(15);
-  int id2=this->pypars().msti(16);
-  double x1=this->pypars().pari(33);
-  double x2=this->pypars().pari(34);
-  double q=this->pypars().pari(23);
-  double pdf1=(double)this->pypars().mstp(51); //pdg id - awkward but..
-  double pdf2=0.; //dummy 
-  HepMC::PdfInfo tmp_pdi(id1,id2,x1,x2,q,pdf1,pdf2);
-  evt->set_pdf_info(tmp_pdi);
-  /*  std::cout << "pdfiinfo:"<<  evt->pdf_info()->id1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->id2() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->x1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->x2() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->scalePDF() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->pdf1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->pdf2() << std::endl;
-  */
-
-  //  output << evt;
-
-  // Convert cm->mm and GeV->MeV
-//   cmTomm(evt);
-  GeVToMeV(evt);
-  
- return StatusCode::SUCCESS;
-}
-
-void
-PythiaLLP::RandomNumberIO()
-{
-  //    MsgStream log(messageService(), name());
-
-    // m_RndmSwitch == 1 : Write the random numbers of the selected events into
-    //                     the file m_RndmFileNumber
-    if (m_RndmSwitch == 1)
-    {
-	int WriteEvent = 	m_events - m_RndmFirstEvent + 1;
-	if (WriteEvent >= 0)
-	{
-	    WriteEvent	 =	WriteEvent%m_RndmSkipEvents;
-	    if (WriteEvent == 0) pyrget_(&m_RndmFileNumber, &m_RndmMOVE);
-	}
-    }
-    // m_RndmSwitch == 2 : Read the random numbers from the selected records from
-    //                     the file m_RndmFileNumber
-    else if (m_RndmSwitch == 2)
-    {
-	int MOVE	=	m_RndmMOVE;
-	if (MOVE == 0)
-	{
-	    if (m_RndmFirstEvent > 0)
-	    {
-		if (m_events == 0)
-		{
-		    MOVE	=	m_RndmFirstEvent - 1;
-		}
-		else
-		{
-		    MOVE	=	m_RndmSkipEvents;
-		}
-	    }
-	    int c_pos	=	this->pydatr().mrpy(6)+MOVE;
-	    if (c_pos < m_RndmFileLength)
-	    {
-	      //		log<< MSG:: INFO
-             if(msgLvl(MSG::INFO)){ 
-             msg(MSG::INFO) << "EVENT " << m_events+1
-		   << " will be generated with the random seeds read from record "
-			    << c_pos+1 << " in file " << m_RndmFileName << endmsg;}
-		pyrset_(&m_RndmFileNumber, &MOVE);
-	    }
-	}
-	else
-	{
-	    pyrset_(&m_RndmFileNumber, &MOVE);
-	}
-	    
-    }
-}
-
-void
-PythiaLLP::store_Atlas_HEPEVT(void)
-{
-
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->nhep()  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->isthep(10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->idhep(10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->jmohep(1,10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->jdahep(2,10)  << std::endl;
-
-  s_atlas_HEPEVT->fill();
-
-  Atlas_HEPEVT* Ahep = new Atlas_HEPEVT();
-  *(Ahep)=*(s_atlas_HEPEVT);
-  static const std::string keyid = "Pythia";
-  StatusCode sc = evtStore()->record(Ahep, keyid);
-  if (!sc.isSuccess()) {
-    //    MsgStream msg(messageService(), name());
-    //    msg << MSG::WARNING 
-    if(msgLvl(MSG::WARNING)){
-      msg(MSG::WARNING)<< " Could not record Atlas_HEPEVT" << endmsg;}
-  }
-
-}
diff --git a/Generators/PythiaExo_i/src/PythiaLLP_i_entries.cxx b/Generators/PythiaExo_i/src/PythiaLLP_i_entries.cxx
deleted file mode 100644
index 3be316fc823457a27dff0830e0e73709f53835fe..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaLLP_i_entries.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-#include "PythiaExo_i/PythiaLLP.h"
-
-DECLARE_COMPONENT( PythiaLLP )
-
diff --git a/Generators/PythiaExo_i/src/PythiaModified/initpyupda.F b/Generators/PythiaExo_i/src/PythiaModified/initpyupda.F
deleted file mode 100644
index bbf2189722e4025bcf0e070c2401073499a6ea54..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaModified/initpyupda.F
+++ /dev/null
@@ -1,26 +0,0 @@
-C...UPINIT
-C...Routine called by PYINIT to set up user-defined processes.
-      
-      SUBROUTINE INITPYUPDA(filnam)
-      character*(*)  filnam
-
-
-C--GUP common block
-#include "GeneratorFortranCommon/heprup.inc"
-
-C...EXTERNAL statement links PYDATA on most machines
-      EXTERNAL PYDATA
-
-C     PYTHIA Particles Properties common Blocks
-      INTEGER KCHG,MDCY,MDME,KFDP
-      DOUBLE PRECISION PMAS,PARF,VCKM,BRAT
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-
-      WRITE(*,*) filnam
-      OPEN(UNIT=76,STATUS='OLD',FILE=filnam)
-      CALL PYUPDA(3,76)
-      CLOSE(76)
-
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaModified/pyofsh.F b/Generators/PythiaExo_i/src/PythiaModified/pyofsh.F
deleted file mode 100644
index ee9ab35ff42ad9fea7f77ed43fa7bd4dab526e5d..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaModified/pyofsh.F
+++ /dev/null
@@ -1,424 +0,0 @@
-C***********************************************************************
- 
-C...PYOFSH
-C...Calculates partial width and differential cross-section maxima
-C...of channels/processes not allowed on mass-shell, and selects
-C...masses in such channels/processes.
-
-C ATLAS - locally modified version, enabled for /SPTMDF/ISTMDF.EQ.1
- 
-      SUBROUTINE PYOFSH(MOFSH,KFMO,KFD1,KFD2,PMMO,RET1,RET2)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,
-     &/PYINT2/,/PYINT5/
-
-C ATLAS-specific commonB:
-      COMMON/SPTMDF/ISTMDF
-      SAVE /SPTMDF/
-
-C...Local arrays.
-      DIMENSION KFD(2),MBW(2),PMD(2),PGD(2),PMG(2),PML(2),PMU(2),
-     &PMH(2),ATL(2),ATU(2),ATH(2),RMG(2),INX1(100),XPT1(100),
-     &FPT1(100),INX2(100),XPT2(100),FPT2(100),WDTP(0:400),
-     &WDTE(0:400,0:5)
- 
-C...Find if particles equal, maximum mass, matrix elements, etc.
-      MINT(51)=0
-      ISUB=MINT(1)
-
-C...  ATLAS : partner's properties steered from SLHA	
-      IF (ISTMDF.EQ.1) THEN
-         IF((ISUB.EQ.81.OR.ISUB.EQ.82).AND.KFD1.EQ.6)
-     &        KFD2=3000006
-      ENDIF
-
-      KFD(1)=IABS(KFD1)
-      KFD(2)=IABS(KFD2)
-      MEQL=0
-      IF(KFD(1).EQ.KFD(2)) MEQL=1
-      MLM=0
-      IF(MOFSH.GE.2.AND.MEQL.EQ.1) MLM=INT(1.5D0+PYR(0))
-      IF(MOFSH.LE.2.OR.MOFSH.EQ.5) THEN
-        NOFF=44
-        PMMX=PMMO
-      ELSE
-        NOFF=40
-        PMMX=VINT(1)
-        IF(CKIN(2).GT.CKIN(1)) PMMX=MIN(CKIN(2),VINT(1))
-      ENDIF
-      MMED=0
-      IF((KFMO.EQ.25.OR.KFMO.EQ.35.OR.KFMO.EQ.36).AND.MEQL.EQ.1.AND.
-     &(KFD(1).EQ.23.OR.KFD(1).EQ.24)) MMED=1
-      IF((KFMO.EQ.32.OR.IABS(KFMO).EQ.34).AND.(KFD(1).EQ.23.OR.
-     &KFD(1).EQ.24).AND.(KFD(2).EQ.23.OR.KFD(2).EQ.24)) MMED=2
-      IF((KFMO.EQ.32.OR.IABS(KFMO).EQ.34).AND.(KFD(2).EQ.25.OR.
-     &KFD(2).EQ.35.OR.KFD(2).EQ.36)) MMED=3
-      LOOP=1
- 
-C...Find where Breit-Wigners are required, else select discrete masses.
-  100 DO 110 I=1,2
-        KFCA=PYCOMP(KFD(I))
-        IF(KFCA.GT.0) THEN
-          PMD(I)=PMAS(KFCA,1)
-          PGD(I)=PMAS(KFCA,2)
-        ELSE
-          PMD(I)=0D0
-          PGD(I)=0D0
-        ENDIF
-        IF(MSTP(42).LE.0.OR.PGD(I).LT.PARP(41)) THEN
-          MBW(I)=0
-          PMG(I)=PMD(I)
-          RMG(I)=(PMG(I)/PMMX)**2
-        ELSE
-          MBW(I)=1
-        ENDIF
-  110 CONTINUE
- 
-C...Find allowed mass range and Breit-Wigner parameters.
-      DO 120 I=1,2
-        IF(MOFSH.EQ.1.AND.LOOP.EQ.1.AND.MBW(I).EQ.1) THEN
-          PML(I)=PARP(42)
-          PMU(I)=PMMX-PARP(42)
-          IF(MBW(3-I).EQ.0) PMU(I)=MIN(PMU(I),PMMX-PMD(3-I))
-          IF(PMU(I).LT.PML(I)+PARJ(64)) MBW(I)=-1
-        ELSEIF(MBW(I).EQ.1.AND.MOFSH.NE.5) THEN
-          ILM=I
-          IF(MLM.EQ.2) ILM=3-I
-          PML(I)=MAX(CKIN(NOFF+2*ILM-1),PARP(42))
-          IF(MBW(3-I).EQ.0) THEN
-            PMU(I)=PMMX-PMD(3-I)
-          ELSE
-            PMU(I)=PMMX-MAX(CKIN(NOFF+5-2*ILM),PARP(42))
-          ENDIF
-          IF(CKIN(NOFF+2*ILM).GT.CKIN(NOFF+2*ILM-1)) PMU(I)=
-     &    MIN(PMU(I),CKIN(NOFF+2*ILM))
-          IF(I.EQ.MLM) PMU(I)=MIN(PMU(I),0.5D0*PMMX)
-          IF(MEQL.EQ.0) PMH(I)=MIN(PMU(I),0.5D0*PMMX)
-          IF(PMU(I).LT.PML(I)+PARJ(64)) MBW(I)=-1
-          IF(MBW(I).EQ.1) THEN
-            ATL(I)=ATAN((PML(I)**2-PMD(I)**2)/(PMD(I)*PGD(I)))
-            ATU(I)=ATAN((PMU(I)**2-PMD(I)**2)/(PMD(I)*PGD(I)))
-            IF(MEQL.EQ.0) ATH(I)=ATAN((PMH(I)**2-PMD(I)**2)/(PMD(I)*
-     &      PGD(I)))
-          ENDIF
-        ELSEIF(MBW(I).EQ.1.AND.MOFSH.EQ.5) THEN
-          ILM=I
-          IF(MLM.EQ.2) ILM=3-I
-          PML(I)=MAX(CKIN(48+I),PARP(42))
-          PMU(I)=PMMX-MAX(CKIN(51-I),PARP(42))
-          IF(MBW(3-I).EQ.0) PMU(I)=MIN(PMU(I),PMMX-PMD(3-I))
-          IF(I.EQ.MLM) PMU(I)=MIN(PMU(I),0.5D0*PMMX)
-          IF(MEQL.EQ.0) PMH(I)=MIN(PMU(I),0.5D0*PMMX)
-          IF(PMU(I).LT.PML(I)+PARJ(64)) MBW(I)=-1
-          IF(MBW(I).EQ.1) THEN
-            ATL(I)=ATAN((PML(I)**2-PMD(I)**2)/(PMD(I)*PGD(I)))
-            ATU(I)=ATAN((PMU(I)**2-PMD(I)**2)/(PMD(I)*PGD(I)))
-            IF(MEQL.EQ.0) ATH(I)=ATAN((PMH(I)**2-PMD(I)**2)/(PMD(I)*
-     &      PGD(I)))
-          ENDIF
-        ENDIF
-  120 CONTINUE
-      IF(MBW(1).LT.0.OR.MBW(2).LT.0.OR.(MBW(1).EQ.0.AND.MBW(2).EQ.0))
-     &THEN
-        CALL PYERRM(3,'(PYOFSH:) no allowed decay product masses')
-        MINT(51)=1
-        RETURN
-      ENDIF
- 
-C...Calculation of partial width of resonance.
-      IF(MOFSH.EQ.1) THEN
- 
-C..If only one integration, pick that to be the inner.
-        IF(MBW(1).EQ.0) THEN
-          PM2=PMD(1)
-          PMD(1)=PMD(2)
-          PGD(1)=PGD(2)
-          PML(1)=PML(2)
-          PMU(1)=PMU(2)
-        ELSEIF(MBW(2).EQ.0) THEN
-          PM2=PMD(2)
-        ENDIF
- 
-C...Start outer loop of integration.
-        IF(MBW(1).EQ.1.AND.MBW(2).EQ.1) THEN
-          ATL2=ATAN((PML(2)**2-PMD(2)**2)/(PMD(2)*PGD(2)))
-          ATU2=ATAN((PMU(2)**2-PMD(2)**2)/(PMD(2)*PGD(2)))
-          NPT2=1
-          XPT2(1)=1D0
-          INX2(1)=0
-          FMAX2=0D0
-        ENDIF
-  130   IF(MBW(1).EQ.1.AND.MBW(2).EQ.1) THEN
-          PM2S=PMD(2)**2+PMD(2)*PGD(2)*TAN(ATL2+XPT2(NPT2)*(ATU2-ATL2))
-          PM2=MIN(PMU(2),MAX(PML(2),SQRT(MAX(0D0,PM2S))))
-        ENDIF
-        RM2=(PM2/PMMX)**2
- 
-C...Start inner loop of integration.
-        PML1=PML(1)
-        PMU1=MIN(PMU(1),PMMX-PM2)
-        IF(MEQL.EQ.1) PMU1=MIN(PMU1,PM2)
-        ATL1=ATAN((PML1**2-PMD(1)**2)/(PMD(1)*PGD(1)))
-        ATU1=ATAN((PMU1**2-PMD(1)**2)/(PMD(1)*PGD(1)))
-        IF(PML1+PARJ(64).GE.PMU1.OR.ATL1+1D-7.GE.ATU1) THEN
-          FUNC2=0D0
-          GOTO 180
-        ENDIF
-        NPT1=1
-        XPT1(1)=1D0
-        INX1(1)=0
-        FMAX1=0D0
-  140   PM1S=PMD(1)**2+PMD(1)*PGD(1)*TAN(ATL1+XPT1(NPT1)*(ATU1-ATL1))
-        PM1=MIN(PMU1,MAX(PML1,SQRT(MAX(0D0,PM1S))))
-        RM1=(PM1/PMMX)**2
- 
-C...Evaluate function value - inner loop.
-        FUNC1=SQRT(MAX(0D0,(1D0-RM1-RM2)**2-4D0*RM1*RM2))
-        IF(MMED.EQ.1) FUNC1=FUNC1*((1D0-RM1-RM2)**2+8D0*RM1*RM2)
-        IF(MMED.EQ.2) FUNC1=FUNC1**3*(1D0+10D0*RM1+10D0*RM2+RM1**2+
-     &  RM2**2+10D0*RM1*RM2)
-        IF(FUNC1.GT.FMAX1) FMAX1=FUNC1
-        FPT1(NPT1)=FUNC1
- 
-C...Go to next position in inner loop.
-        IF(NPT1.EQ.1) THEN
-          NPT1=NPT1+1
-          XPT1(NPT1)=0D0
-          INX1(NPT1)=1
-          GOTO 140
-        ELSEIF(NPT1.LE.8) THEN
-          NPT1=NPT1+1
-          IF(NPT1.LE.4.OR.NPT1.EQ.6) ISH1=1
-          ISH1=ISH1+1
-          XPT1(NPT1)=0.5D0*(XPT1(ISH1)+XPT1(INX1(ISH1)))
-          INX1(NPT1)=INX1(ISH1)
-          INX1(ISH1)=NPT1
-          GOTO 140
-        ELSEIF(NPT1.LT.100) THEN
-          ISN1=ISH1
-  150     ISH1=ISH1+1
-          IF(ISH1.GT.NPT1) ISH1=2
-          IF(ISH1.EQ.ISN1) GOTO 160
-          DFPT1=ABS(FPT1(ISH1)-FPT1(INX1(ISH1)))
-          IF(DFPT1.LT.PARP(43)*FMAX1) GOTO 150
-          NPT1=NPT1+1
-          XPT1(NPT1)=0.5D0*(XPT1(ISH1)+XPT1(INX1(ISH1)))
-          INX1(NPT1)=INX1(ISH1)
-          INX1(ISH1)=NPT1
-          GOTO 140
-        ENDIF
- 
-C...Calculate integral over inner loop.
-  160   FSUM1=0D0
-        DO 170 IPT1=2,NPT1
-          FSUM1=FSUM1+0.5D0*(FPT1(IPT1)+FPT1(INX1(IPT1)))*
-     &    (XPT1(INX1(IPT1))-XPT1(IPT1))
-  170   CONTINUE
-        FUNC2=FSUM1*(ATU1-ATL1)/PARU(1)
-  180   IF(MBW(1).EQ.1.AND.MBW(2).EQ.1) THEN
-          IF(FUNC2.GT.FMAX2) FMAX2=FUNC2
-          FPT2(NPT2)=FUNC2
- 
-C...Go to next position in outer loop.
-          IF(NPT2.EQ.1) THEN
-            NPT2=NPT2+1
-            XPT2(NPT2)=0D0
-            INX2(NPT2)=1
-            GOTO 130
-          ELSEIF(NPT2.LE.8) THEN
-            NPT2=NPT2+1
-            IF(NPT2.LE.4.OR.NPT2.EQ.6) ISH2=1
-            ISH2=ISH2+1
-            XPT2(NPT2)=0.5D0*(XPT2(ISH2)+XPT2(INX2(ISH2)))
-            INX2(NPT2)=INX2(ISH2)
-            INX2(ISH2)=NPT2
-            GOTO 130
-          ELSEIF(NPT2.LT.100) THEN
-            ISN2=ISH2
-  190       ISH2=ISH2+1
-            IF(ISH2.GT.NPT2) ISH2=2
-            IF(ISH2.EQ.ISN2) GOTO 200
-            DFPT2=ABS(FPT2(ISH2)-FPT2(INX2(ISH2)))
-            IF(DFPT2.LT.PARP(43)*FMAX2) GOTO 190
-            NPT2=NPT2+1
-            XPT2(NPT2)=0.5D0*(XPT2(ISH2)+XPT2(INX2(ISH2)))
-            INX2(NPT2)=INX2(ISH2)
-            INX2(ISH2)=NPT2
-            GOTO 130
-          ENDIF
- 
-C...Calculate integral over outer loop.
-  200     FSUM2=0D0
-          DO 210 IPT2=2,NPT2
-            FSUM2=FSUM2+0.5D0*(FPT2(IPT2)+FPT2(INX2(IPT2)))*
-     &      (XPT2(INX2(IPT2))-XPT2(IPT2))
-  210     CONTINUE
-          FSUM2=FSUM2*(ATU2-ATL2)/PARU(1)
-          IF(MEQL.EQ.1) FSUM2=2D0*FSUM2
-        ELSE
-          FSUM2=FUNC2
-        ENDIF
- 
-C...Save result; second integration for user-selected mass range.
-        IF(LOOP.EQ.1) WIDW=FSUM2
-        WID2=FSUM2
-        IF(LOOP.EQ.1.AND.(CKIN(46).GE.CKIN(45).OR.CKIN(48).GE.CKIN(47)
-     &  .OR.MAX(CKIN(45),CKIN(47)).GE.1.01D0*PARP(42))) THEN
-          LOOP=2
-          GOTO 100
-        ENDIF
-        RET1=WIDW
-        RET2=WID2/WIDW
- 
-C...Select two decay product masses of a resonance.
-      ELSEIF(MOFSH.EQ.2.OR.MOFSH.EQ.5) THEN
-  220   DO 230 I=1,2
-          IF(MBW(I).EQ.0) GOTO 230
-          PMBW=PMD(I)**2+PMD(I)*PGD(I)*TAN(ATL(I)+PYR(0)*
-     &    (ATU(I)-ATL(I)))
-          PMG(I)=MIN(PMU(I),MAX(PML(I),SQRT(MAX(0D0,PMBW))))
-          RMG(I)=(PMG(I)/PMMX)**2
-  230   CONTINUE
-        IF((MEQL.EQ.1.AND.PMG(MAX(1,MLM)).GT.PMG(MIN(2,3-MLM))).OR.
-     &  PMG(1)+PMG(2)+PARJ(64).GT.PMMX) GOTO 220
- 
-C...Weight with matrix element (if none known, use beta factor).
-        FLAM=SQRT(MAX(0D0,(1D0-RMG(1)-RMG(2))**2-4D0*RMG(1)*RMG(2)))
-        IF(MMED.EQ.1) THEN
-          WTBE=FLAM*((1D0-RMG(1)-RMG(2))**2+8D0*RMG(1)*RMG(2))
-        ELSEIF(MMED.EQ.2) THEN
-          WTBE=FLAM**3*(1D0+10D0*RMG(1)+10D0*RMG(2)+RMG(1)**2+
-     &    RMG(2)**2+10D0*RMG(1)*RMG(2))
-        ELSEIF(MMED.EQ.3) THEN
-          WTBE=FLAM*(RMG(1)+FLAM**2/12D0)
-        ELSE
-          WTBE=FLAM
-        ENDIF
-        IF(WTBE.LT.PYR(0)) GOTO 220
-        RET1=PMG(1)
-        RET2=PMG(2)
- 
-C...Find suitable set of masses for initialization of 2 -> 2 processes.
-      ELSEIF(MOFSH.EQ.3) THEN
-        IF(MBW(1).NE.0.AND.MBW(2).EQ.0) THEN
-          PMG(1)=MIN(PMD(1),0.5D0*(PML(1)+PMU(1)))
-          PMG(2)=PMD(2)
-        ELSEIF(MBW(2).NE.0.AND.MBW(1).EQ.0) THEN
-          PMG(1)=PMD(1)
-          PMG(2)=MIN(PMD(2),0.5D0*(PML(2)+PMU(2)))
-        ELSE
-          IDIV=-1
-  240     IDIV=IDIV+1
-          PMG(1)=MIN(PMD(1),0.1D0*(IDIV*PML(1)+(10-IDIV)*PMU(1)))
-          PMG(2)=MIN(PMD(2),0.1D0*(IDIV*PML(2)+(10-IDIV)*PMU(2)))
-          IF(IDIV.LE.9.AND.PMG(1)+PMG(2).GT.0.9D0*PMMX) GOTO 240
-        ENDIF
-        RET1=PMG(1)
-        RET2=PMG(2)
- 
-C...Evaluate importance of excluded tails of Breit-Wigners.
-        IF(MEQL.EQ.0.AND.MBW(1).EQ.1.AND.MBW(2).EQ.1.AND.PMD(1)+PMD(2)
-     &  .GT.PMMX.AND.PMH(1).GT.PML(1).AND.PMH(2).GT.PML(2)) MEQL=2
-        IF(MEQL.LE.1) THEN
-          VINT(80)=1D0
-          DO 250 I=1,2
-            IF(MBW(I).NE.0) VINT(80)=VINT(80)*1.25D0*(ATU(I)-ATL(I))/
-     &      PARU(1)
-  250     CONTINUE
-        ELSE
-          VINT(80)=(1.25D0/PARU(1))**2*MAX((ATU(1)-ATL(1))*
-     &    (ATH(2)-ATL(2)),(ATH(1)-ATL(1))*(ATU(2)-ATL(2)))
-        ENDIF
-        IF((ISUB.EQ.15.OR.ISUB.EQ.19.OR.ISUB.EQ.30.OR.ISUB.EQ.35).AND.
-     &  MSTP(43).NE.2) VINT(80)=2D0*VINT(80)
-        IF(ISUB.EQ.22.AND.MSTP(43).NE.2) VINT(80)=4D0*VINT(80)
-        IF(MEQL.GE.1) VINT(80)=2D0*VINT(80)
- 
-C...Pick one particle to be the lighter (if improves efficiency).
-      ELSEIF(MOFSH.EQ.4) THEN
-        IF(MEQL.EQ.0.AND.MBW(1).EQ.1.AND.MBW(2).EQ.1.AND.PMD(1)+PMD(2)
-     &  .GT.PMMX.AND.PMH(1).GT.PML(1).AND.PMH(2).GT.PML(2)) MEQL=2
-  260   IF(MEQL.EQ.2) MLM=INT(1.5D0+PYR(0))
- 
-C...Select two masses according to Breit-Wigner + flat in s + 1/s.
-        DO 270 I=1,2
-          IF(MBW(I).EQ.0) GOTO 270
-          PMV=PMU(I)
-          IF(MEQL.EQ.2.AND.I.EQ.MLM) PMV=PMH(I)
-          ATV=ATU(I)
-          IF(MEQL.EQ.2.AND.I.EQ.MLM) ATV=ATH(I)
-          RBR=PYR(0)
-          IF((ISUB.EQ.15.OR.ISUB.EQ.19.OR.ISUB.EQ.22.OR.ISUB.EQ.30.OR.
-     &    ISUB.EQ.35).AND.MSTP(43).NE.2) RBR=2D0*RBR
-          IF(RBR.LT.0.8D0) THEN
-            PMSR=PMD(I)**2+PMD(I)*PGD(I)*TAN(ATL(I)+PYR(0)*(ATV-ATL(I)))
-            PMG(I)=MIN(PMV,MAX(PML(I),SQRT(MAX(0D0,PMSR))))
-          ELSEIF(RBR.LT.0.9D0) THEN
-            PMG(I)=SQRT(MAX(0D0,PML(I)**2+PYR(0)*(PMV**2-PML(I)**2)))
-          ELSEIF(RBR.LT.1.5D0) THEN
-            PMG(I)=PML(I)*(PMV/PML(I))**PYR(0)
-          ELSE
-            PMG(I)=SQRT(MAX(0D0,PML(I)**2*PMV**2/(PML(I)**2+PYR(0)*
-     &      (PMV**2-PML(I)**2))))
-          ENDIF
-  270   CONTINUE
-        IF((MEQL.GE.1.AND.PMG(MAX(1,MLM)).GT.PMG(MIN(2,3-MLM))).OR.
-     &  PMG(1)+PMG(2)+PARJ(64).GT.PMMX) THEN
-          IF(MINT(48).EQ.1.AND.MSTP(171).EQ.0) THEN
-            NGEN(0,1)=NGEN(0,1)+1
-            NGEN(MINT(1),1)=NGEN(MINT(1),1)+1
-            GOTO 260
-          ELSE
-            MINT(51)=1
-            RETURN
-          ENDIF
-        ENDIF
-        RET1=PMG(1)
-        RET2=PMG(2)
- 
-C...Give weight for selected mass distribution.
-        VINT(80)=1D0
-        DO 280 I=1,2
-          IF(MBW(I).EQ.0) GOTO 280
-          PMV=PMU(I)
-          IF(MEQL.EQ.2.AND.I.EQ.MLM) PMV=PMH(I)
-          ATV=ATU(I)
-          IF(MEQL.EQ.2.AND.I.EQ.MLM) ATV=ATH(I)
-          F0=PMD(I)*PGD(I)/((PMG(I)**2-PMD(I)**2)**2+
-     &    (PMD(I)*PGD(I))**2)/PARU(1)
-          F1=1D0
-          F2=1D0/PMG(I)**2
-          F3=1D0/PMG(I)**4
-          FI0=(ATV-ATL(I))/PARU(1)
-          FI1=PMV**2-PML(I)**2
-          FI2=2D0*LOG(PMV/PML(I))
-          FI3=1D0/PML(I)**2-1D0/PMV**2
-          IF((ISUB.EQ.15.OR.ISUB.EQ.19.OR.ISUB.EQ.22.OR.ISUB.EQ.30.OR.
-     &    ISUB.EQ.35).AND.MSTP(43).NE.2) THEN
-            VINT(80)=VINT(80)*20D0/(8D0+(FI0/F0)*(F1/FI1+6D0*F2/FI2+
-     &      5D0*F3/FI3))
-          ELSE
-            VINT(80)=VINT(80)*10D0/(8D0+(FI0/F0)*(F1/FI1+F2/FI2))
-          ENDIF
-          VINT(80)=VINT(80)*FI0
-  280   CONTINUE
-        IF(MEQL.GE.1) VINT(80)=2D0*VINT(80)
-      ENDIF
- 
-      RETURN
-      END
- 
-C***********************************************************************
diff --git a/Generators/PythiaExo_i/src/PythiaModified/pyrhad.F b/Generators/PythiaExo_i/src/PythiaModified/pyrhad.F
deleted file mode 100644
index e322ddfef95f922c123cfc07f9c497cf6f8260cd..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaModified/pyrhad.F
+++ /dev/null
@@ -1,1699 +0,0 @@
-C*********************************************************************
- 
-C...PYGGPRO
-C Sets the PROBGG parameter in the fragmentation
-
-C...  Double precision and integer declarations.
-      SUBROUTINE PYGGPRO(PROB)
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-
-
-      PROBGG=PROB
-
-      write(*,*) 'Gluino ball formation probability has been set to '
-     &     ,PROBGG
-
-      RETURN
-      END
-
-
- 
-C*********************************************************************
- 
-C...PYGLFR
-C...Fragments the string near to a gluino, to form a gluino-hadron, 
-C...either by producing a new g-g pair or two new q-qbar ones.
-
-      SUBROUTINE PYGLFRRE(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYDAT4/CHAF(500,2)
-      CHARACTER CHAF*16
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-      CHARACTER*16 CHRHAD
-
-
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.7D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-c      write(*,*) 'In PYGLFRRE'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-         ENDIF
-C JK 
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-         PMGB=P(IGL,5)+0.7
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+993
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            IF(KFSVMX.eq.KFSVMN.and.KFSVMX.gt.1) then
-               KFSVMN=1
-               KFSVMX=1
-            endif
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+3
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+2,
-     &           -KFSAV(1))
-            if(iabs(K(N+1,2)).ne.1093212) goto 90
-         ENDIF
-
-        CALL PYNAME(K(N+1,2),CHRHAD)
-        print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-c        print*, 'RMA KC = ',PYCOMP(K(N+1,2))
-c        print*, 'RMA CHAF = ',CHAF(PYCOMP(K(N+1,2)),1),', '
-c     &       ,CHAF(PYCOMP(K(N+1,2)),1)
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-
-      CALL PYEXEC
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
-      
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
-
-C*********************************************************************
-
-
- 
-C...PYGLDC
-C...Decays the gluino inside a gluino-hadron.
- 
-      SUBROUTINE PYGLDC
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-
-C...Optional offset of constituent quark/diquark mass,
-C...representing gluon cloud around gluino not part of the decay.
-      PMOFF = 0.2D0
-
-C...The probability that it has spin 1.
-C...(Except for identical flavours, where spin 1 is only possibility.)
-C...(Recall that all R-baryon codes were given as if spin 1, sloppily.)
-      PROBS1=0.5D0
-
-C...Loop through to find R-hadrons.
-      DO 150 I=1,N
-C...If only one of the R-hadrons should decay inside the detector, 
-C...you could here pick at random whether to allow the one with 
-C...K(I,1) = 6 or the one with =7. (Where the random choice of course
-C...could depend on the position of an imagined displaced vertex.)
-        IF(K(I,1).EQ.6.OR.K(I,1).EQ.7) THEN
-
-C...Begin resolve R-hadron flavour content to q + qbar or q + qq.
-          KFRH=(IABS(K(I,2))-KSUSY1)/10
-C...Gluino - g : split g to u ubar or d dbar.
-          IF(KFRH.LT.100) THEN
-            KF1=1+INT(0.5D0+PYR(0))             
-            KF2=-KF1
-          ELSEIF(KFRH.LT.1000) THEN
-C...Gluino-meson: split to q + qbar.
-            KFRH=KFRH-900
-            KF1=KFRH/10
-            KF2=-MOD(KFRH,10)
-            IF(MOD(KF1,2).EQ.1) THEN
-              KF1=MOD(KFRH,10)
-              KF2=-(KFRH/10)
-            ENDIF
-c...Gluino-baryon: split to q + qq (diquark). Pick diquark at random.
-          ELSE 
-            KFRH=KFRH-9000
-            KFA=KFRH/100
-            KFB=MOD(KFRH/10,10) 
-            KFC=MOD(KFRH,10)
-            RDIQ=3D0*PYR(0)
-            IF(RDIQ.LT.1D0) THEN
-              KF1=KFA
-              KF2=1000*KFB+100*KFC+3
-              IF(KFB.NE.KFC.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ELSEIF(RDIQ.LT.2D0) THEN
-              KF1=KFB
-              KF2=1000*KFA+100*KFC+3
-              IF(KFA.NE.KFC.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ELSE
-              KF1=KFC
-              KF2=1000*KFA+100*KFB+3
-              IF(KFA.NE.KFB.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ENDIF
-          ENDIF
-C...Flip for anti-R-hadron. 
-          IF(K(I,2).LT.0) THEN
-            KFSV=KF1
-            KF1=-KF2
-            KF2=-KFSV
-          ENDIF 
-
-C...Subdivide R-hadron into gluino + 2 light (di)quarks in new slots. 
-          DO 120 I1=N+1,N+3
-            K(I1,1)=3
-            K(I1,3)=I
-            K(I1,4)=0
-            K(I1,5)=0
-            DO 110 J=1,5
-              V(I1,J)=0D0
-  110       CONTINUE
-  120     CONTINUE 
-
-C...Store new flavours.
-          K(N+1,2)=KSUSY1+21
-          K(N+2,2)=KF1
-          K(N+3,2)=KF2
-
-C...Set up colour flow.
-          K(N+1,4)=MSTU(5)*(N+3) 
-          K(N+1,5)=MSTU(5)*(N+2) 
-          K(N+2,4)=MSTU(5)*(N+1) 
-          K(N+3,5)=MSTU(5)*(N+1)
-
-C...Define effective quark/diquark masses.
-          MSTJ(93)=1 
-          PM1=PYMASS(KF1)+PMOFF         
-          MSTJ(93)=1 
-          PM2=PYMASS(KF2)+PMOFF         
-         
-C...Share gluino"hadron" momentum with two light quarks.
-          FAC1=PM1/P(I,5)
-          FAC2=PM2/P(I,5)
-          DO 130 J=1,5
-            P(N+1,J)=(1D0-FAC1-FAC2)*P(I,J)
-            P(N+2,J)=FAC1*P(I,J)
-            P(N+3,J)=FAC2*P(I,J)
-  130     CONTINUE
-
-C...If you want a displaced vertex, you could also write that info
-C...into the V array, but you have to calculate that vertex yourself.
-
-C...Mark R-hadron decayed and update number counter.
-          K(I,1)=K(I,1)+10
-          K(I,4)=N+1
-          K(I,5)=N+3
-          N=N+3
-
-C...Let gluino decay now.
-          CALL PYRESD(N-2)
-
-C...End of loop over two R-hadrons.
-        ENDIF
- 150  CONTINUE
-
-C...And then the decay products can fragment, etc.
-      CALL PYEXEC
-
-    
-      RETURN
-      END       
-
-
-CCCCCCCCCCCC
-
-C*********************************************************************
- 
-C...PYGLFR
-C... Gluino fragmentation for Regge model
- 
-      SUBROUTINE PYGLFR(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-      CHARACTER*16 CHRHAD
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.7D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-      write(*,*) 'In PYGLFR'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-         ENDIF
-C JK 
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-         PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+993
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+3
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+4,
-     &           -KFSAV(1))
-         ENDIF
-        CALL PYNAME(K(N+1,2),CHRHAD)
-        print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-
-
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-
-      CALL PYEXEC
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
-      
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
-
-cccccccccccc
-
-C*********************************************************************
- 
-C...PYGLFRIN
-C... Gluino fragmentation for Regge model
- 
-      SUBROUTINE PYGLFRIN(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-      CHARACTER*16 CHRHAD
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.33D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-      write(*,*) 'In PYGLFRIN'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-C JK 
-         ENDIF
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-c         PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-         if(IABS(KFSAV(1)).lt.10.and.IABS(KFSAV(2)).lt.10) then
-            if(IABS(KFSAV(1)).ne.3.and.IABS(KFSAV(2)).ne.3) then
-               PMGB=P(IGL,5)+0.33
-            else
-               PMGB=P(IGL,5)+0.46
-            endif
-         else
-            PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-         endif
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+991
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            IF(KFSVMX.eq.KFSVMN.and.KFSVMX.gt.1) then
-               KFSVMN=1
-               KFSVMX=1
-            endif
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+1
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFSPIN=(MOD(KFSVMX,10)-1)/2
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
- 235        continue
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+2*KFSPIN
-     &           +2, -KFSAV(1))
-            if(KFA.eq.KFC.and.KFA.eq.KFB) goto 90
-            if(CHRHAD.eq.' '.and.KFA.eq.3) then
-               KFA=1
- 238           if(KFC.gt.KFA.or.KFB.gt.KFA.or.KFC.gt.KFB) then
-                  if(KFB.gt.KFA) then
-                     KFTMP=KFA
-                     KFA=KFB
-                     KFB=KFTMP
-                  endif
-                  if(KFC.gt.KFB) then
-                     KFTMP=KFB
-                     KFB=KFC
-                     KFC=KFTMP
-                  endif
-                  goto 238
-               endif
-               goto 235
-            endif
-            CALL PYNAME(K(N+1,2),CHRHAD)
-            if(CHRHAD(1:1).ne.'~') goto 90
-         ENDIF
-         CALL PYNAME(K(N+1,2),CHRHAD)
-         if(CHRHAD(1:1).ne.'~') goto 90
-         print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-         P(N+1,5)=PYMASS(K(N+1,2))
-         P(N+1,4)=SQRT(
-     &        P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2+P(N+1,5)**2
-     &        )
-         
-         
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-
-      CALL PYEXEC
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
-      
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaModified/pyscat.F b/Generators/PythiaExo_i/src/PythiaModified/pyscat.F
deleted file mode 100644
index fc8586672ed7043b84a70ad8a589cb030f6eeb1f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaModified/pyscat.F
+++ /dev/null
@@ -1,3046 +0,0 @@
-C*********************************************************************
- 
-C...PYSCAT
-C...Finds outgoing flavours and event type; sets up the kinematics
-C...and colour flow of the hard scattering
-
-C ATLAS - locally modified version, enabled for /SPTMDF/ISTMDF.EQ.1
- 
-      SUBROUTINE PYSCAT
- 
-C...Double precision and integer declarations
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers.
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
-     &KEXCIT=4000000,KDIMEN=5000000)
-C...Parameter statement for maximum size of showers.
-      PARAMETER (MAXNUR=1000)
- 
-C...User process event common block.
-      INTEGER MAXNUP
-      PARAMETER (MAXNUP=500)
-      INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
-      DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
-      COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
-     &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
-     &VTIMUP(MAXNUP),SPINUP(MAXNUP)
-      SAVE /HEPEUP/
- 
-C...Commonblocks.
-      COMMON/PYPART/NPART,NPARTD,IPART(MAXNUR),PTPART(MAXNUR)
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
-     &SFMIX(16,4),ZMIXI(4,4),UMIXI(2,2),VMIXI(2,2)
-      COMMON/PYTCSM/ITCM(0:99),RTCM(0:99)
-      COMMON/PYPUED/IUED(0:99),RUED(0:99)
-      SAVE /PYPART/,/PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,
-     &/PYPARS/,/PYINT1/,/PYINT2/,/PYINT3/,/PYINT4/,/PYINT5/,/PYSSMT/,
-     &/PYTCSM/,/PYPUED/
-
-C ATLAS-specific commonB:
-      COMMON/SPTMDF/ISTMDF
-      SAVE /SPTMDF/
-
-C...Local arrays and saved variables
-      DIMENSION WDTP(0:400),WDTE(0:400,0:5),PMQ(2),Z(2),CTHE(2),
-     &PHI(2),KUPPO(100),VINTSV(41:66),ILAB(100)
-      INTEGER IOKFLA(6),IIFLAV
-C...UED related declarations:
-C...equivalences between ordered particles (451->475)
-C...and UED particle code (5 000 000 + id)
-      DIMENSION IUEDEQ(475),MUED(2)
-      DATA (IUEDEQ(I),I=451,475)/
-     & 6100001,6100002,6100003,6100004,6100005,6100006, 
-     & 5100001,5100002,5100003,5100004,5100005,5100006, 
-     & 6100011,6100013,6100015,                         
-     & 5100012,5100011,5100014,5100013,5100016,5100015, 
-     & 5100021,5100022,5100023,5100024/                 
-      SAVE VINTSV
- 
-C...Read out process
-      ISUB=MINT(1)
-      ISUBSV=ISUB
- 
-C...Restore information for low-pT processes
-      IF(ISUB.EQ.95.AND.MINT(57).GE.1) THEN
-        DO 100 J=41,66
-  100   VINT(J)=VINTSV(J)
-      ENDIF
- 
-C...Convert H' or A process into equivalent H one
-      IHIGG=1
-      KFHIGG=25
-      IF((ISUB.GE.151.AND.ISUB.LE.160).OR.(ISUB.GE.171.AND.
-     &ISUB.LE.190)) THEN
-        IHIGG=2
-        IF(MOD(ISUB-1,10).GE.5) IHIGG=3
-        KFHIGG=33+IHIGG
-        IF(ISUB.EQ.151.OR.ISUB.EQ.156) ISUB=3
-        IF(ISUB.EQ.152.OR.ISUB.EQ.157) ISUB=102
-        IF(ISUB.EQ.153.OR.ISUB.EQ.158) ISUB=103
-        IF(ISUB.EQ.171.OR.ISUB.EQ.176) ISUB=24
-        IF(ISUB.EQ.172.OR.ISUB.EQ.177) ISUB=26
-        IF(ISUB.EQ.173.OR.ISUB.EQ.178) ISUB=123
-        IF(ISUB.EQ.174.OR.ISUB.EQ.179) ISUB=124
-        IF(ISUB.EQ.181.OR.ISUB.EQ.186) ISUB=121
-        IF(ISUB.EQ.182.OR.ISUB.EQ.187) ISUB=122
-        IF(ISUB.EQ.183.OR.ISUB.EQ.188) ISUB=111
-        IF(ISUB.EQ.184.OR.ISUB.EQ.189) ISUB=112
-        IF(ISUB.EQ.185.OR.ISUB.EQ.190) ISUB=113
-      ENDIF
- 
-      IF(ISUB.EQ.401.OR.ISUB.EQ.402) KFHIGG=KFPR(ISUB,1)
- 
-C...Convert bottomonium process into equivalent charmonium ones.
-      IF(ISUB.GE.461.AND.ISUB.LE.479) ISUB=ISUB-40
- 
-C...Choice of subprocess, number of documentation lines
-      IDOC=6+ISET(ISUB)
-      IF(ISUB.EQ.95) IDOC=8
-      IF(ISET(ISUB).EQ.5) IDOC=9
-      IF(ISET(ISUB).EQ.11) IDOC=4+NUP
-      MINT(3)=IDOC-6
-      IF(IDOC.GE.9.AND.ISET(ISUB).LE.4) IDOC=IDOC+2
-      MINT(4)=IDOC
-      IPU1=MINT(84)+1
-      IPU2=MINT(84)+2
-      IPU3=MINT(84)+3
-      IPU4=MINT(84)+4
-      IPU5=MINT(84)+5
-      IPU6=MINT(84)+6
- 
-C...Reset K, P and V vectors. Store incoming particles
-      DO 120 JT=1,MSTP(126)+100
-        I=MINT(83)+JT
-        IF(I.GT.MSTU(4)) GOTO 120
-        DO 110 J=1,5
-          K(I,J)=0
-          P(I,J)=0D0
-          V(I,J)=0D0
-  110   CONTINUE
-  120 CONTINUE
-      DO 140 JT=1,2
-        I=MINT(83)+JT
-        K(I,1)=21
-        K(I,2)=MINT(10+JT)
-        DO 130 J=1,5
-          P(I,J)=VINT(285+5*JT+J)
-  130   CONTINUE
-  140 CONTINUE
-      MINT(6)=2
-      KFRES=0
- 
-C...Store incoming partons in their CM-frame. Save pdf value.
-      SH=VINT(44)
-      SHR=SQRT(SH)
-      SHP=VINT(26)*VINT(2)
-      SHPR=SQRT(SHP)
-      SHUSER=SHR
-      IF(ISET(ISUB).GE.3.AND.ISET(ISUB).LE.5) SHUSER=SHPR
-      DO 150 JT=1,2
-        I=MINT(84)+JT
-        K(I,1)=14
-        K(I,2)=MINT(14+JT)
-        K(I,3)=MINT(83)+2+JT
-        P(I,3)=0.5D0*SHUSER*(-1D0)**(JT-1)
-        P(I,4)=0.5D0*SHUSER
-        IF(MINT(14+JT).GE.-40.AND.MINT(14+JT).LE.40) THEN
-         VINT(38+JT)=XSFX(JT,MINT(14+JT))
-        ELSE
-         VINT(38+JT)=1D0
-        ENDIF
-  150 CONTINUE
- 
-C...Copy incoming partons to documentation lines
-      DO 170 JT=1,2
-        I1=MINT(83)+4+JT
-        I2=MINT(84)+JT
-        K(I1,1)=21
-        K(I1,2)=K(I2,2)
-        K(I1,3)=I1-2
-        DO 160 J=1,5
-          P(I1,J)=P(I2,J)
-  160   CONTINUE
-  170 CONTINUE
- 
-C...Choose new quark/lepton flavour for relevant annihilation graphs
-      IF(ISUB.EQ.12.OR.ISUB.EQ.53.OR.ISUB.EQ.54.OR.ISUB.EQ.58.OR.
-     &ISUB.EQ.314.OR.ISUB.EQ.319.OR.ISUB.EQ.316.OR.
-     &(ISUB.GE.135.AND.ISUB.LE.140).OR.ISUB.EQ.382.OR.ISUB.EQ.385) THEN
-        IGLGA=21
-        IF(ISUB.EQ.58.OR.(ISUB.GE.137.AND.ISUB.LE.140)) IGLGA=22
-        CALL PYWIDT(IGLGA,SH,WDTP,WDTE)
-  180   RKFL=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))*PYR(0)
-        DO 190 I=1,MDCY(IGLGA,3)
-          KFLF=KFDP(I+MDCY(IGLGA,2)-1,1)
-          RKFL=RKFL-(WDTE(I,1)+WDTE(I,2)+WDTE(I,4))
-          IF(RKFL.LE.0D0) GOTO 200
-  190   CONTINUE
-  200   CONTINUE
-        IF((ISUB.EQ.53.OR.ISUB.EQ.385.OR.ISUB.EQ.314.OR.ISUB.EQ.319
-     &      .OR.ISUB.EQ.316).AND.MINT(2).LE.2) THEN
-          IF(KFLF.GE.4) GOTO 180
-        ELSEIF((ISUB.EQ.53.OR.ISUB.EQ.385.OR.ISUB.EQ.314.OR.ISUB.EQ.319.
-     &       OR.ISUB.EQ.316).AND.MINT(2).LE.4) THEN
-          KFLF=4
-          MINT(2)=MINT(2)-2
-        ELSEIF(ISUB.EQ.53.OR.ISUB.EQ.385.OR.ISUB.EQ.314.OR.ISUB.EQ.319.
-     &        OR.ISUB.EQ.316) THEN
-          KFLF=5
-          MINT(2)=MINT(2)-4
-        ELSEIF(ISUB.EQ.382.AND.ITCM(5).EQ.1.AND.IABS(MINT(15)).LE.2
-     &  .AND.IABS(KFLF).GE.3) THEN
-          FACQQB=VINT(58)**2*4D0/9D0*(VINT(45)**2+VINT(46)**2)/
-     &    VINT(44)**2
-          FACCIB=VINT(46)**2/RTCM(41)**4
-          IF(FACQQB/(FACQQB+FACCIB).LT.PYR(0)) GOTO 180
-        ELSEIF(ISUB.EQ.382.AND.ITCM(5).EQ.5.AND.MINT(2).EQ.2) THEN
-          KFLF=5
-          MINT(2)=1
-        ELSEIF(ISUB.EQ.382.AND.ITCM(5).EQ.5.AND.MINT(2).EQ.1) THEN
-          IF(KFLF.EQ.5) GOTO 180
-        ELSEIF(ISUB.EQ.54.OR.ISUB.EQ.135.OR.ISUB.EQ.136) THEN
-          IF((KCHG(PYCOMP(KFLF),1)/2D0)**2.LT.PYR(0)) GOTO 180
-        ELSEIF(ISUB.EQ.58.OR.(ISUB.GE.137.AND.ISUB.LE.140)) THEN
-          IF((KCHG(PYCOMP(KFLF),1)/3D0)**2.LT.PYR(0)) GOTO 180
-        ENDIF
-      ENDIF
- 
-C...Final state flavours and colour flow: default values
-      JS=1
-      MINT(21)=MINT(15)
-      MINT(22)=MINT(16)
-      MINT(23)=0
-      MINT(24)=0
-      KCC=20
-      KCS=ISIGN(1,MINT(15))
- 
-      IF(ISET(ISUB).EQ.11) THEN
-C...User-defined processes: find products
-        MINT(3)=0
-        DO 210 IUP=3,NUP
-          IF(ISTUP(IUP).LT.1.OR.ISTUP(IUP).GT.3) THEN
-          ELSEIF(NUP.EQ.5.AND.IUP.GE.4.AND.MOTHUP(1,4).EQ.3) THEN
-            MINT(21+IUP)=IDUP(IUP)
-          ELSEIF(ISTUP(IUP).EQ.1.AND.(ISTUP(MOTHUP(1,IUP)).EQ.2.OR.
-     &    ISTUP(MOTHUP(1,IUP)).EQ.3).AND.IDUP(MOTHUP(1,IUP)).NE.0) THEN
-          ELSEIF(IDUP(IUP).EQ.0) THEN
-          ELSE
-            MINT(3)=MINT(3)+1
-            IF(MINT(3).LE.6) MINT(20+MINT(3))=IDUP(IUP)
-          ENDIF
-  210   CONTINUE
- 
-      ELSEIF(ISUB.LE.10) THEN
-        IF(ISUB.EQ.1) THEN
-C...f + fbar -> gamma*/Z0
-          KFRES=23
- 
-        ELSEIF(ISUB.EQ.2) THEN
-C...f + fbar' -> W+/-
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          KFRES=ISIGN(24,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.3) THEN
-C...f + fbar -> h0 (or H0, or A0)
-          KFRES=KFHIGG
- 
-        ELSEIF(ISUB.EQ.4) THEN
-C...gamma + W+/- -> W+/-
- 
-        ELSEIF(ISUB.EQ.5) THEN
-C...Z0 + Z0 -> h0
-          XH=SH/SHP
-          MINT(21)=MINT(15)
-          MINT(22)=MINT(16)
-          PMQ(1)=PYMASS(MINT(21))
-          PMQ(2)=PYMASS(MINT(22))
-  220     JT=INT(1.5D0+PYR(0))
-          ZMIN=2D0*PMQ(JT)/SHPR
-          ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
-     &    (SHPR*(SHPR-PMQ(3-JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
-          IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
-     &    (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 220
-          SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 220
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
-          CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
-          Z(3-JT)=1D0-XH/(1D0-Z(JT))
-          SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 220
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
-          CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
-          PHIR=PARU(2)*PYR(0)
-          CPHI=COS(PHIR)
-          ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
-     &    SQRT(1D0-CTHE(2)**2)*CPHI
-          Z1=2D0-Z(JT)
-          Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
-          Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
-          Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
-     &    PMQ(3-JT)**2/SHP))
-          ZMIN=2D0*PMQ(3-JT)/SHPR
-          ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 220
-          KCC=22
-          KFRES=25
- 
-        ELSEIF(ISUB.EQ.6) THEN
-C...Z0 + W+/- -> W+/-
- 
-        ELSEIF(ISUB.EQ.7) THEN
-C...W+ + W- -> Z0
- 
-        ELSEIF(ISUB.EQ.8) THEN
-C...W+ + W- -> h0
-          XH=SH/SHP
-  230     DO 260 JT=1,2
-            I=MINT(14+JT)
-            IA=IABS(I)
-            IF(IA.LE.10) THEN
-              RVCKM=VINT(180+I)*PYR(0)
-              DO 240 J=1,MSTP(1)
-                IB=2*J-1+MOD(IA,2)
-                IPM=(5-ISIGN(1,I))/2
-                IDC=J+MDCY(IA,2)+2
-                IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 240
-                MINT(20+JT)=ISIGN(IB,I)
-                RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
-                IF(RVCKM.LE.0D0) GOTO 250
-  240         CONTINUE
-            ELSE
-              IB=2*((IA+1)/2)-1+MOD(IA,2)
-              MINT(20+JT)=ISIGN(IB,I)
-            ENDIF
-  250       PMQ(JT)=PYMASS(MINT(20+JT))
-  260     CONTINUE
-          JT=INT(1.5D0+PYR(0))
-          ZMIN=2D0*PMQ(JT)/SHPR
-          ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
-     &    (SHPR*(SHPR-PMQ(3-JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          IF(ZMIN.GE.ZMAX) GOTO 230
-          Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
-          IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
-     &    (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 230
-          SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 230
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(24,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
-          CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
-          Z(3-JT)=1D0-XH/(1D0-Z(JT))
-          SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 230
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(24,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
-          CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
-          PHIR=PARU(2)*PYR(0)
-          CPHI=COS(PHIR)
-          ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
-     &    SQRT(1D0-CTHE(2)**2)*CPHI
-          Z1=2D0-Z(JT)
-          Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
-          Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
-          Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
-     &    PMQ(3-JT)**2/SHP))
-          ZMIN=2D0*PMQ(3-JT)/SHPR
-          ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 230
-          KCC=22
-          KFRES=25
- 
-        ELSEIF(ISUB.EQ.10) THEN
-C...f + f' -> f + f' (gamma/Z/W exchange); th = (p(f)-p(f))**2
-          IF(MINT(2).EQ.1) THEN
-            KCC=22
-          ELSE
-C...W exchange: need to mix flavours according to CKM matrix
-            DO 280 JT=1,2
-              I=MINT(14+JT)
-              IA=IABS(I)
-              IF(IA.LE.10) THEN
-                RVCKM=VINT(180+I)*PYR(0)
-                DO 270 J=1,MSTP(1)
-                  IB=2*J-1+MOD(IA,2)
-                  IPM=(5-ISIGN(1,I))/2
-                  IDC=J+MDCY(IA,2)+2
-                  IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 270
-                  MINT(20+JT)=ISIGN(IB,I)
-                  RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
-                  IF(RVCKM.LE.0D0) GOTO 280
-  270           CONTINUE
-              ELSE
-                IB=2*((IA+1)/2)-1+MOD(IA,2)
-                MINT(20+JT)=ISIGN(IB,I)
-              ENDIF
-  280       CONTINUE
-            KCC=22
-          ENDIF
-        ENDIF
- 
-      ELSEIF(ISUB.LE.20) THEN
-        IF(ISUB.EQ.11) THEN
-C...f + f' -> f + f' (g exchange); th = (p(f)-p(f))**2
-          KCC=MINT(2)
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
- 
-        ELSEIF(ISUB.EQ.12) THEN
-C...f + fbar -> f' + fbar'; th = (p(f)-p(f'))**2
-          MINT(21)=ISIGN(KFLF,MINT(15))
-          MINT(22)=-MINT(21)
-          KCC=4
- 
-        ELSEIF(ISUB.EQ.13) THEN
-C...f + fbar -> g + g; th arbitrary
-          MINT(21)=21
-          MINT(22)=21
-          KCC=MINT(2)+4
- 
-        ELSEIF(ISUB.EQ.14) THEN
-C...f + fbar -> g + gamma; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=21
-          MINT(23-JS)=22
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.15) THEN
-C...f + fbar -> g + Z0; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=21
-          MINT(23-JS)=23
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.16) THEN
-C...f + fbar' -> g + W+/-; th = (p(f)-p(W-))**2 or (p(fbar')-p(W+))**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
-          MINT(20+JS)=21
-          MINT(23-JS)=ISIGN(24,KCH1+KCH2)
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.17) THEN
-C...f + fbar -> g + h0; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=21
-          MINT(23-JS)=25
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.18) THEN
-C...f + fbar -> gamma + gamma; th arbitrary
-          MINT(21)=22
-          MINT(22)=22
- 
-        ELSEIF(ISUB.EQ.19) THEN
-C...f + fbar -> gamma + Z0; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=22
-          MINT(23-JS)=23
- 
-        ELSEIF(ISUB.EQ.20) THEN
-C...f + fbar' -> gamma + W+/-; th = (p(f)-p(W-))**2 or
-C...(p(fbar')-p(W+))**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
-          MINT(20+JS)=22
-          MINT(23-JS)=ISIGN(24,KCH1+KCH2)
-        ENDIF
- 
-      ELSEIF(ISUB.LE.30) THEN
-        IF(ISUB.EQ.21) THEN
-C...f + fbar -> gamma + h0; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=22
-          MINT(23-JS)=25
- 
-        ELSEIF(ISUB.EQ.22) THEN
-C...f + fbar -> Z0 + Z0; th arbitrary
-          MINT(21)=23
-          MINT(22)=23
- 
-        ELSEIF(ISUB.EQ.23) THEN
-C...f + fbar' -> Z0 + W+/-; th = (p(f)-p(W-))**2 or (p(fbar')-p(W+))**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
-          MINT(20+JS)=23
-          MINT(23-JS)=ISIGN(24,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.24) THEN
-C...f + fbar -> Z0 + h0 (or H0, or A0); th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=23
-          MINT(23-JS)=KFHIGG
- 
-        ELSEIF(ISUB.EQ.25) THEN
-C...f + fbar -> W+ + W-; th = (p(f)-p(W-))**2
-          MINT(21)=-ISIGN(24,MINT(15))
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.26) THEN
-C...f + fbar' -> W+/- + h0 (or H0, or A0);
-C...th = (p(f)-p(W-))**2 or (p(fbar')-p(W+))**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
-          MINT(20+JS)=ISIGN(24,KCH1+KCH2)
-          MINT(23-JS)=KFHIGG
- 
-        ELSEIF(ISUB.EQ.27) THEN
-C...f + fbar -> h0 + h0
- 
-        ELSEIF(ISUB.EQ.28) THEN
-C...f + g -> f + g; th = (p(f)-p(f))**2
-          IF(MINT(15).EQ.21) JS=2
-          KCC=MINT(2)+6
-          IF(MINT(15).EQ.21) KCC=KCC+2
-          IF(MINT(15).NE.21) KCS=ISIGN(1,MINT(15))
-          IF(MINT(16).NE.21) KCS=ISIGN(1,MINT(16))
- 
-        ELSEIF(ISUB.EQ.29) THEN
-C...f + g -> f + gamma; th = (p(f)-p(f))**2
-          IF(MINT(15).EQ.21) JS=2
-          MINT(23-JS)=22
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.30) THEN
-C...f + g -> f + Z0; th = (p(f)-p(f))**2
-          IF(MINT(15).EQ.21) JS=2
-          MINT(23-JS)=23
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
-        ENDIF
- 
-      ELSEIF(ISUB.LE.40) THEN
-        IF(ISUB.EQ.31) THEN
-C...f + g -> f' + W+/-; th = (p(f)-p(f'))**2; choose flavour f'
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(23-JS)=ISIGN(24,KCHG(IA,1)*I)
-          RVCKM=VINT(180+I)*PYR(0)
-          DO 290 J=1,MSTP(1)
-            IB=2*J-1+MOD(IA,2)
-            IPM=(5-ISIGN(1,I))/2
-            IDC=J+MDCY(IA,2)+2
-            IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 290
-            MINT(20+JS)=ISIGN(IB,I)
-            RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
-            IF(RVCKM.LE.0D0) GOTO 300
-  290     CONTINUE
-  300     KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.32) THEN
-C...f + g -> f + h0; th = (p(f)-p(f))**2
-          IF(MINT(15).EQ.21) JS=2
-          MINT(23-JS)=25
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.33) THEN
-C...f + gamma -> f + g; th=(p(f)-p(f))**2
-          IF(MINT(15).EQ.22) JS=2
-          MINT(23-JS)=21
-          KCC=24+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.34) THEN
-C...f + gamma -> f + gamma; th=(p(f)-p(f))**2
-          IF(MINT(15).EQ.22) JS=2
-          KCC=22
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.35) THEN
-C...f + gamma -> f + Z0; th=(p(f)-p(f))**2
-          IF(MINT(15).EQ.22) JS=2
-          MINT(23-JS)=23
-          KCC=22
- 
-        ELSEIF(ISUB.EQ.36) THEN
-C...f + gamma -> f' + W+/-; th=(p(f)-p(f'))**2
-          IF(MINT(15).EQ.22) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(23-JS)=ISIGN(24,KCHG(IA,1)*I)
-          IF(IA.LE.10) THEN
-            RVCKM=VINT(180+I)*PYR(0)
-            DO 310 J=1,MSTP(1)
-              IB=2*J-1+MOD(IA,2)
-              IPM=(5-ISIGN(1,I))/2
-              IDC=J+MDCY(IA,2)+2
-              IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 310
-              MINT(20+JS)=ISIGN(IB,I)
-              RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
-              IF(RVCKM.LE.0D0) GOTO 320
-  310       CONTINUE
-          ELSE
-            IB=2*((IA+1)/2)-1+MOD(IA,2)
-            MINT(20+JS)=ISIGN(IB,I)
-          ENDIF
-  320     KCC=22
- 
-        ELSEIF(ISUB.EQ.37) THEN
-C...f + gamma -> f + h0
- 
-        ELSEIF(ISUB.EQ.38) THEN
-C...f + Z0 -> f + g
- 
-        ELSEIF(ISUB.EQ.39) THEN
-C...f + Z0 -> f + gamma
- 
-        ELSEIF(ISUB.EQ.40) THEN
-C...f + Z0 -> f + Z0
-        ENDIF
- 
-      ELSEIF(ISUB.LE.50) THEN
-        IF(ISUB.EQ.41) THEN
-C...f + Z0 -> f' + W+/-
- 
-        ELSEIF(ISUB.EQ.42) THEN
-C...f + Z0 -> f + h0
- 
-        ELSEIF(ISUB.EQ.43) THEN
-C...f + W+/- -> f' + g
- 
-        ELSEIF(ISUB.EQ.44) THEN
-C...f + W+/- -> f' + gamma
- 
-        ELSEIF(ISUB.EQ.45) THEN
-C...f + W+/- -> f' + Z0
- 
-        ELSEIF(ISUB.EQ.46) THEN
-C...f + W+/- -> f' + W+/-
- 
-        ELSEIF(ISUB.EQ.47) THEN
-C...f + W+/- -> f' + h0
- 
-        ELSEIF(ISUB.EQ.48) THEN
-C...f + h0 -> f + g
- 
-        ELSEIF(ISUB.EQ.49) THEN
-C...f + h0 -> f + gamma
- 
-        ELSEIF(ISUB.EQ.50) THEN
-C...f + h0 -> f + Z0
-        ENDIF
- 
-      ELSEIF(ISUB.LE.60) THEN
-        IF(ISUB.EQ.51) THEN
-C...f + h0 -> f' + W+/-
- 
-        ELSEIF(ISUB.EQ.52) THEN
-C...f + h0 -> f + h0
- 
-        ELSEIF(ISUB.EQ.53) THEN
-C...g + g -> f + fbar; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFLF,KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
- 
-        ELSEIF(ISUB.EQ.54) THEN
-C...g + gamma -> f + fbar; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFLF,KCS)
-          MINT(22)=-MINT(21)
-          KCC=27
-          IF(MINT(16).EQ.21) KCC=28
- 
-        ELSEIF(ISUB.EQ.55) THEN
-C...g + Z0 -> f + fbar
- 
-        ELSEIF(ISUB.EQ.56) THEN
-C...g + W+/- -> f + fbar'
- 
-        ELSEIF(ISUB.EQ.57) THEN
-C...g + h0 -> f + fbar
- 
-        ELSEIF(ISUB.EQ.58) THEN
-C...gamma + gamma -> f + fbar; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFLF,KCS)
-          MINT(22)=-MINT(21)
-          KCC=21
- 
-        ELSEIF(ISUB.EQ.59) THEN
-C...gamma + Z0 -> f + fbar
- 
-        ELSEIF(ISUB.EQ.60) THEN
-C...gamma + W+/- -> f + fbar'
-        ENDIF
- 
-      ELSEIF(ISUB.LE.70) THEN
-        IF(ISUB.EQ.61) THEN
-C...gamma + h0 -> f + fbar
- 
-        ELSEIF(ISUB.EQ.62) THEN
-C...Z0 + Z0 -> f + fbar
- 
-        ELSEIF(ISUB.EQ.63) THEN
-C...Z0 + W+/- -> f + fbar'
- 
-        ELSEIF(ISUB.EQ.64) THEN
-C...Z0 + h0 -> f + fbar
- 
-        ELSEIF(ISUB.EQ.65) THEN
-C...W+ + W- -> f + fbar
- 
-        ELSEIF(ISUB.EQ.66) THEN
-C...W+/- + h0 -> f + fbar'
- 
-        ELSEIF(ISUB.EQ.67) THEN
-C...h0 + h0 -> f + fbar
- 
-        ELSEIF(ISUB.EQ.68) THEN
-C...g + g -> g + g; th arbitrary
-          KCC=MINT(2)+12
-          KCS=(-1)**INT(1.5D0+PYR(0))
- 
-        ELSEIF(ISUB.EQ.69) THEN
-C...gamma + gamma -> W+ + W-; th arbitrary
-          MINT(21)=24
-          MINT(22)=-24
-          KCC=21
- 
-        ELSEIF(ISUB.EQ.70) THEN
-C...gamma + W+/- -> Z0 + W+/-; th=(p(W)-p(W))**2
-          IF(MINT(15).EQ.22) MINT(21)=23
-          IF(MINT(16).EQ.22) MINT(22)=23
-          KCC=21
-        ENDIF
- 
-      ELSEIF(ISUB.LE.80) THEN
-        IF(ISUB.EQ.71.OR.ISUB.EQ.72) THEN
-C...Z0 + Z0 -> Z0 + Z0; Z0 + Z0 -> W+ + W-
-          XH=SH/SHP
-          MINT(21)=MINT(15)
-          MINT(22)=MINT(16)
-          PMQ(1)=PYMASS(MINT(21))
-          PMQ(2)=PYMASS(MINT(22))
-  330     JT=INT(1.5D0+PYR(0))
-          ZMIN=2D0*PMQ(JT)/SHPR
-          ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
-     &    (SHPR*(SHPR-PMQ(3-JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
-          IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
-     &    (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 330
-          SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 330
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
-          CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
-          Z(3-JT)=1D0-XH/(1D0-Z(JT))
-          SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 330
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
-          CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
-          PHIR=PARU(2)*PYR(0)
-          CPHI=COS(PHIR)
-          ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
-     &    SQRT(1D0-CTHE(2)**2)*CPHI
-          Z1=2D0-Z(JT)
-          Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
-          Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
-          Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
-     &    PMQ(3-JT)**2/SHP))
-          ZMIN=2D0*PMQ(3-JT)/SHPR
-          ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 330
-          KCC=22
- 
-        ELSEIF(ISUB.EQ.73) THEN
-C...Z0 + W+/- -> Z0 + W+/-
-          JS=MINT(2)
-          XH=SH/SHP
-  340     JT=3-MINT(2)
-          I=MINT(14+JT)
-          IA=IABS(I)
-          IF(IA.LE.10) THEN
-            RVCKM=VINT(180+I)*PYR(0)
-            DO 350 J=1,MSTP(1)
-              IB=2*J-1+MOD(IA,2)
-              IPM=(5-ISIGN(1,I))/2
-              IDC=J+MDCY(IA,2)+2
-              IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 350
-              MINT(20+JT)=ISIGN(IB,I)
-              RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
-              IF(RVCKM.LE.0D0) GOTO 360
-  350       CONTINUE
-          ELSE
-            IB=2*((IA+1)/2)-1+MOD(IA,2)
-            MINT(20+JT)=ISIGN(IB,I)
-          ENDIF
-  360     PMQ(JT)=PYMASS(MINT(20+JT))
-          MINT(23-JT)=MINT(17-JT)
-          PMQ(3-JT)=PYMASS(MINT(23-JT))
-          JT=INT(1.5D0+PYR(0))
-          ZMIN=2D0*PMQ(JT)/SHPR
-          ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
-     &    (SHPR*(SHPR-PMQ(3-JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          IF(ZMIN.GE.ZMAX) GOTO 340
-          Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
-          IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
-     &    (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 340
-          SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 340
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(23,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
-          CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
-          Z(3-JT)=1D0-XH/(1D0-Z(JT))
-          SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 340
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(23,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
-          CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
-          PHIR=PARU(2)*PYR(0)
-          CPHI=COS(PHIR)
-          ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
-     &    SQRT(1D0-CTHE(2)**2)*CPHI
-          Z1=2D0-Z(JT)
-          Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
-          Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
-          Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
-     &    PMQ(3-JT)**2/SHP))
-          ZMIN=2D0*PMQ(3-JT)/SHPR
-          ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 340
-          KCC=22
- 
-        ELSEIF(ISUB.EQ.74) THEN
-C...Z0 + h0 -> Z0 + h0
- 
-        ELSEIF(ISUB.EQ.75) THEN
-C...W+ + W- -> gamma + gamma
- 
-        ELSEIF(ISUB.EQ.76.OR.ISUB.EQ.77) THEN
-C...W+ + W- -> Z0 + Z0; W+ + W- -> W+ + W-
-          XH=SH/SHP
-  370     DO 400 JT=1,2
-            I=MINT(14+JT)
-            IA=IABS(I)
-            IF(IA.LE.10) THEN
-              RVCKM=VINT(180+I)*PYR(0)
-              DO 380 J=1,MSTP(1)
-                IB=2*J-1+MOD(IA,2)
-                IPM=(5-ISIGN(1,I))/2
-                IDC=J+MDCY(IA,2)+2
-                IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 380
-                MINT(20+JT)=ISIGN(IB,I)
-                RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
-                IF(RVCKM.LE.0D0) GOTO 390
-  380         CONTINUE
-            ELSE
-              IB=2*((IA+1)/2)-1+MOD(IA,2)
-              MINT(20+JT)=ISIGN(IB,I)
-            ENDIF
-  390       PMQ(JT)=PYMASS(MINT(20+JT))
-  400     CONTINUE
-          JT=INT(1.5D0+PYR(0))
-          ZMIN=2D0*PMQ(JT)/SHPR
-          ZMAX=1D0-PMQ(3-JT)/SHPR-(SH-PMQ(JT)**2)/
-     &    (SHPR*(SHPR-PMQ(3-JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          IF(ZMIN.GE.ZMAX) GOTO 370
-          Z(JT)=ZMIN+(ZMAX-ZMIN)*PYR(0)
-          IF(-1D0+(1D0+XH)/(1D0-Z(JT))-XH/(1D0-Z(JT))**2.LT.
-     &    (1D0-XH)**2/(4D0*XH)*PYR(0)) GOTO 370
-          SQC1=1D0-4D0*PMQ(JT)**2/(Z(JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 370
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(24,1)**2-PMQ(JT)**2)/(Z(JT)*SHP)
-          CTHE(JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(JT)=MIN(1D0,MAX(-1D0,CTHE(JT)))
-          Z(3-JT)=1D0-XH/(1D0-Z(JT))
-          SQC1=1D0-4D0*PMQ(3-JT)**2/(Z(3-JT)**2*SHP)
-          IF(SQC1.LT.1D-8) GOTO 370
-          C1=SQRT(SQC1)
-          C2=1D0+2D0*(PMAS(24,1)**2-PMQ(3-JT)**2)/(Z(3-JT)*SHP)
-          CTHE(3-JT)=(C2-(C2**2-C1**2)/(C2+(2D0*PYR(0)-1D0)*C1))/C1
-          CTHE(3-JT)=MIN(1D0,MAX(-1D0,CTHE(3-JT)))
-          PHIR=PARU(2)*PYR(0)
-          CPHI=COS(PHIR)
-          ANG=CTHE(1)*CTHE(2)-SQRT(1D0-CTHE(1)**2)*
-     &    SQRT(1D0-CTHE(2)**2)*CPHI
-          Z1=2D0-Z(JT)
-          Z2=ANG*SQRT(Z(JT)**2-4D0*PMQ(JT)**2/SHP)
-          Z3=1D0-Z(JT)-XH+(PMQ(1)**2+PMQ(2)**2)/SHP
-          Z(3-JT)=2D0/(Z1**2-Z2**2)*(Z1*Z3+Z2*SQRT(Z3**2-(Z1**2-Z2**2)*
-     &    PMQ(3-JT)**2/SHP))
-          ZMIN=2D0*PMQ(3-JT)/SHPR
-          ZMAX=1D0-PMQ(JT)/SHPR-(SH-PMQ(3-JT)**2)/(SHPR*(SHPR-PMQ(JT)))
-          ZMAX=MIN(1D0-XH,ZMAX)
-          IF(Z(3-JT).LT.ZMIN.OR.Z(3-JT).GT.ZMAX) GOTO 370
-          KCC=22
- 
-        ELSEIF(ISUB.EQ.78) THEN
-C...W+/- + h0 -> W+/- + h0
- 
-        ELSEIF(ISUB.EQ.79) THEN
-C...h0 + h0 -> h0 + h0
- 
-        ELSEIF(ISUB.EQ.80) THEN
-C...q + gamma -> q' + pi+/-; th=(p(q)-p(q'))**2
-          IF(MINT(15).EQ.22) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(23-JS)=ISIGN(211,KCHG(IA,1)*I)
-          IB=3-IA
-          MINT(20+JS)=ISIGN(IB,I)
-          KCC=22
-        ENDIF
- 
-      ELSEIF(ISUB.LE.90) THEN
-        IF(ISUB.EQ.81) THEN
-C...q + qbar -> Q + Qbar; th = (p(q)-p(Q))**2
-          MINT(21)=ISIGN(MINT(55),MINT(15))
-          MINT(22)=-MINT(21)
-          KCC=4
-
-C ATLAS modif.:
-          IF (ISTMDF.EQ.1) THEN
-             IF(MINT(21).LT.MINT(22)) THEN
-                VTMP=VINT(63)
-                VINT(63)=VINT(64)
-                VINT(64)=VTMP
-             ENDIF
-          ENDIF
-
-        ELSEIF(ISUB.EQ.82) THEN
-C...g + g -> Q + Qbar; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(MINT(55),KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
-
-C ATLAS modif.:
-          IF (ISTMDF.EQ.1) THEN
-             IF(MINT(21).LT.MINT(22)) THEN
-                VTMP=VINT(63)
-                VINT(63)=VINT(64)
-                VINT(64)=VTMP
-             ENDIF
-          ENDIF
- 
-        ELSEIF(ISUB.EQ.83) THEN
-C...f + q -> f' + Q; th = (p(f) - p(f'))**2
-          KFOLD=MINT(16)
-          IF(MINT(2).EQ.2) KFOLD=MINT(15)
-          KFAOLD=IABS(KFOLD)
-          IF(KFAOLD.GT.10) THEN
-            KFANEW=KFAOLD+2*MOD(KFAOLD,2)-1
-          ELSE
-            RCKM=VINT(180+KFOLD)*PYR(0)
-            IPM=(5-ISIGN(1,KFOLD))/2
-            KFANEW=-MOD(KFAOLD+1,2)
-  410       KFANEW=KFANEW+2
-            IDC=MDCY(KFAOLD,2)+(KFANEW+1)/2+2
-            IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.IPM) THEN
-              IF(MOD(KFAOLD,2).EQ.0) RCKM=RCKM-
-     &        VCKM(KFAOLD/2,(KFANEW+1)/2)
-              IF(MOD(KFAOLD,2).EQ.1) RCKM=RCKM-
-     &        VCKM(KFANEW/2,(KFAOLD+1)/2)
-            ENDIF
-            IF(KFANEW.LE.6.AND.RCKM.GT.0D0) GOTO 410
-          ENDIF
-          IF(MINT(2).EQ.1) THEN
-            MINT(21)=ISIGN(MINT(55),MINT(15))
-            MINT(22)=ISIGN(KFANEW,MINT(16))
-          ELSE
-            MINT(21)=ISIGN(KFANEW,MINT(15))
-            MINT(22)=ISIGN(MINT(55),MINT(16))
-            JS=2
-          ENDIF
-          KCC=22
- 
-        ELSEIF(ISUB.EQ.84) THEN
-C...g + gamma -> Q + Qbar; th arbitary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(MINT(55),KCS)
-          MINT(22)=-MINT(21)
-          KCC=27
-          IF(MINT(16).EQ.21) KCC=28
- 
-        ELSEIF(ISUB.EQ.85) THEN
-C...gamma + gamma -> F + Fbar; th arbitary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(MINT(56),KCS)
-          MINT(22)=-MINT(21)
-          KCC=21
- 
-        ELSEIF(ISUB.GE.86.AND.ISUB.LE.89) THEN
-C...g + g -> (J/Psi, chi_0c, chi_1c or chi_2c) + g
-          MINT(21)=KFPR(ISUB,1)
-          MINT(22)=KFPR(ISUB,2)
-          KCC=24
-          KCS=(-1)**INT(1.5D0+PYR(0))
-        ENDIF
- 
-      ELSEIF(ISUB.LE.100) THEN
-        IF(ISUB.EQ.95) THEN
-C...Low-pT ( = energyless g + g -> g + g)
-          KCC=MINT(2)+12
-          KCS=(-1)**INT(1.5D0+PYR(0))
- 
-        ELSEIF(ISUB.EQ.96) THEN
-C...Multiple interactions (should be reassigned to QCD process)
-        ENDIF
- 
-      ELSEIF(ISUB.LE.110) THEN
-        IF(ISUB.EQ.101) THEN
-C...g + g -> gamma*/Z0
-          KCC=21
-          KFRES=22
- 
-        ELSEIF(ISUB.EQ.102) THEN
-C...g + g -> h0 (or H0, or A0)
-          KCC=21
-          KFRES=KFHIGG
- 
-        ELSEIF(ISUB.EQ.103) THEN
-C...gamma + gamma -> h0 (or H0, or A0)
-          KCC=21
-          KFRES=KFHIGG
- 
-        ELSEIF(ISUB.EQ.104.OR.ISUB.EQ.105) THEN
-C...g + g -> chi_0c or chi_2c.
-          KCC=21
-          KFRES=KFPR(ISUB,1)
- 
-        ELSEIF(ISUB.EQ.106) THEN
-C...g + g -> J/Psi + gamma
-          MINT(21)=KFPR(ISUB,1)
-          MINT(22)=KFPR(ISUB,2)
-          KCC=21
- 
-        ELSEIF(ISUB.EQ.107) THEN
-C...g + gamma -> J/Psi + g
-          MINT(21)=KFPR(ISUB,1)
-          MINT(22)=KFPR(ISUB,2)
-          KCC=22
-          IF(MINT(16).EQ.22) KCC=33
- 
-        ELSEIF(ISUB.EQ.108) THEN
-C...gamma + gamma -> J/Psi + gamma
-          MINT(21)=KFPR(ISUB,1)
-          MINT(22)=KFPR(ISUB,2)
- 
-        ELSEIF(ISUB.EQ.110) THEN
-C...f + fbar -> gamma + h0; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=22
-          MINT(23-JS)=KFHIGG
-        ENDIF
- 
-      ELSEIF(ISUB.LE.120) THEN
-        IF(ISUB.EQ.111) THEN
-C...f + fbar -> g + h0; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=21
-          MINT(23-JS)=KFHIGG
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.112) THEN
-C...f + g -> f + h0; th = (p(f) - p(f))**2
-          IF(MINT(15).EQ.21) JS=2
-          MINT(23-JS)=KFHIGG
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.113) THEN
-C...g + g -> g + h0; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(23-JS)=KFHIGG
-          KCC=22+JS
-          KCS=(-1)**INT(1.5D0+PYR(0))
- 
-        ELSEIF(ISUB.EQ.114) THEN
-C...g + g -> gamma + gamma; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(21)=22
-          MINT(22)=22
-          KCC=21
- 
-        ELSEIF(ISUB.EQ.115) THEN
-C...g + g -> g + gamma; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(23-JS)=22
-          KCC=22+JS
-          KCS=(-1)**INT(1.5D0+PYR(0))
- 
-        ELSEIF(ISUB.EQ.116) THEN
-C...g + g -> gamma + Z0
- 
-        ELSEIF(ISUB.EQ.117) THEN
-C...g + g -> Z0 + Z0
- 
-        ELSEIF(ISUB.EQ.118) THEN
-C...g + g -> W+ + W-
-        ENDIF
- 
-      ELSEIF(ISUB.LE.140) THEN
-        IF(ISUB.EQ.121) THEN
-C...g + g -> Q + Qbar + h0
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFPR(ISUBSV,2),KCS)
-          MINT(22)=-MINT(21)
-          KCC=11+INT(0.5D0+PYR(0))
-          KFRES=KFHIGG
- 
-        ELSEIF(ISUB.EQ.122) THEN
-C...q + qbar -> Q + Qbar + h0
-          MINT(21)=ISIGN(KFPR(ISUBSV,2),MINT(15))
-          MINT(22)=-MINT(21)
-          KCC=4
-          KFRES=KFHIGG
- 
-        ELSEIF(ISUB.EQ.123) THEN
-C...f + f' -> f + f' + h0 (or H0, or A0) (Z0 + Z0 -> h0 as
-C...inner process)
-          KCC=22
-          KFRES=KFHIGG
- 
-        ELSEIF(ISUB.EQ.124) THEN
-C...f + f' -> f" + f"' + h0 (or H0, or A) (W+ + W- -> h0 as
-C...inner process)
-          DO 430 JT=1,2
-            I=MINT(14+JT)
-            IA=IABS(I)
-            IF(IA.LE.10) THEN
-              RVCKM=VINT(180+I)*PYR(0)
-              DO 420 J=1,MSTP(1)
-                IB=2*J-1+MOD(IA,2)
-                IPM=(5-ISIGN(1,I))/2
-                IDC=J+MDCY(IA,2)+2
-                IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 420
-                MINT(20+JT)=ISIGN(IB,I)
-                RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
-                IF(RVCKM.LE.0D0) GOTO 430
-  420         CONTINUE
-            ELSE
-              IB=2*((IA+1)/2)-1+MOD(IA,2)
-              MINT(20+JT)=ISIGN(IB,I)
-            ENDIF
-  430     CONTINUE
-          KCC=22
-          KFRES=KFHIGG
- 
-        ELSEIF(ISUB.EQ.131.OR.ISUB.EQ.132) THEN
-C...f + gamma*_(T,L) -> f + g; th=(p(f)-p(f))**2
-          IF(MINT(15).EQ.22) JS=2
-          MINT(23-JS)=21
-          KCC=24+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.133.OR.ISUB.EQ.134) THEN
-C...f + gamma*_(T,L) -> f + gamma; th=(p(f)-p(f))**2
-          IF(MINT(15).EQ.22) JS=2
-          KCC=22
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.135.OR.ISUB.EQ.136) THEN
-C...g + gamma*_(T,L) -> f + fbar; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFLF,KCS)
-          MINT(22)=-MINT(21)
-          KCC=27
-          IF(MINT(16).EQ.21) KCC=28
- 
-        ELSEIF(ISUB.GE.137.AND.ISUB.LE.140) THEN
-C...gamma*_(T,L) + gamma*_(T,L) -> f + fbar; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFLF,KCS)
-          MINT(22)=-MINT(21)
-          KCC=21
- 
-        ENDIF
- 
-      ELSEIF(ISUB.LE.160) THEN
-        IF(ISUB.EQ.141) THEN
-C...f + fbar -> gamma*/Z0/Z'0
-          KFRES=32
- 
-        ELSEIF(ISUB.EQ.142) THEN
-C...f + fbar' -> W'+/-
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          KFRES=ISIGN(34,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.143) THEN
-C...f + fbar' -> H+/-
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          KFRES=ISIGN(37,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.144) THEN
-C...f + fbar' -> R
-          KFRES=ISIGN(41,MINT(15)+MINT(16))
- 
-        ELSEIF(ISUB.EQ.145) THEN
-C...q + l -> LQ (leptoquark)
-          IF(IABS(MINT(16)).LE.8) JS=2
-          KFRES=ISIGN(42,MINT(14+JS))
-          KCC=28+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.146) THEN
-C...e + gamma -> e* (excited lepton)
-          IF(MINT(15).EQ.22) JS=2
-          KFRES=ISIGN(KFPR(ISUB,1),MINT(14+JS))
-          KCC=22
- 
-        ELSEIF(ISUB.EQ.147.OR.ISUB.EQ.148) THEN
-C...q + g -> q* (excited quark)
-          IF(MINT(15).EQ.21) JS=2
-          KFRES=ISIGN(KFPR(ISUB,1),MINT(14+JS))
-          KCC=30+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.149) THEN
-C...g + g -> eta_tc
-          KFRES=KTECHN+331
-          KCC=23
-          KCS=(-1)**INT(1.5D0+PYR(0))
-        ENDIF
- 
-      ELSEIF(ISUB.LE.200) THEN
-        IF(ISUB.EQ.161) THEN
-C...f + g -> f' + H+/-; th = (p(f)-p(f'))**2
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(23-JS)=ISIGN(37,KCHG(IA,1)*I)
-          IB=IA+MOD(IA,2)-MOD(IA+1,2)
-          MINT(20+JS)=ISIGN(IB,I)
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.162) THEN
-C...q + g -> LQ + lbar; LQ=leptoquark; th=(p(q)-p(LQ))^2
-          IF(MINT(15).EQ.21) JS=2
-          MINT(20+JS)=ISIGN(42,MINT(14+JS))
-          KFLQL=KFDP(MDCY(42,2),2)
-          MINT(23-JS)=-ISIGN(KFLQL,MINT(14+JS))
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.163) THEN
-C...g + g -> LQ + LQbar; LQ=leptoquark; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(42,KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
- 
-        ELSEIF(ISUB.EQ.164) THEN
-C...q + qbar -> LQ + LQbar; LQ=leptoquark; th=(p(q)-p(LQ))**2
-          MINT(21)=ISIGN(42,MINT(15))
-          MINT(22)=-MINT(21)
-          KCC=4
- 
-        ELSEIF(ISUB.EQ.165) THEN
-C...q + qbar -> l- + l+; th=(p(q)-p(l-))**2
-          MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.166) THEN
-C...q + qbar' -> l + nu; th=(p(u)-p(nu))**2 or (p(ubar)-p(nubar))**2
-          IF(MOD(MINT(15),2).EQ.0) THEN
-            MINT(21)=ISIGN(KFPR(ISUB,1)+1,MINT(15))
-            MINT(22)=ISIGN(KFPR(ISUB,1),MINT(16))
-          ELSE
-            MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
-            MINT(22)=ISIGN(KFPR(ISUB,1)+1,MINT(16))
-          ENDIF
- 
-        ELSEIF(ISUB.EQ.167.OR.ISUB.EQ.168) THEN
-C...q + q' -> q" + q* (excited quark)
-          KFQSTR=KFPR(ISUB,2)
-          KFQEXC=MOD(KFQSTR,KEXCIT)
-          JS=MINT(2)
-          MINT(20+JS)=ISIGN(KFQSTR,MINT(14+JS))
-          IF(IABS(MINT(15)).NE.KFQEXC.AND.IABS(MINT(16)).NE.KFQEXC)
-     &    MINT(23-JS)=ISIGN(KFQEXC,MINT(17-JS))
-          KCC=22
-          JS=3-JS
- 
-        ELSEIF(ISUB.EQ.169) THEN
-C...q + qbar -> e + e* (excited lepton)
-          KFQSTR=KFPR(ISUB,2)
-          KFQEXC=MOD(KFQSTR,KEXCIT)
-          JS=MINT(2)
-          MINT(20+JS)=ISIGN(KFQSTR,MINT(14+JS))
-          MINT(23-JS)=ISIGN(KFQEXC,MINT(17-JS))
-          JS=3-JS
- 
-        ELSEIF(ISUB.EQ.191) THEN
-C...f + fbar -> rho_tc0.
-          KFRES=KTECHN+113
- 
-        ELSEIF(ISUB.EQ.192) THEN
-C...f + fbar' -> rho_tc+/-
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          KFRES=ISIGN(KTECHN+213,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.193) THEN
-C...f + fbar -> omega_tc0.
-          KFRES=KTECHN+223
- 
-        ELSEIF(ISUB.EQ.194) THEN
-C...f + fbar -> f' + fbar' via mixture of s-channel
-C...rho_tc and omega_tc; th=(p(f)-p(f'))**2
-          MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.195) THEN
-C...f + fbar' -> f'' + fbar''' via s-channel
-C...rho_tc+ th=(p(f)-p(f'))**2
-C...q + qbar' -> l + nu; th=(p(u)-p(nu))**2 or (p(ubar)-p(nubar))**2
-          IF(MOD(MINT(15),2).EQ.0) THEN
-            MINT(21)=ISIGN(KFPR(ISUB,1)+1,MINT(15))
-            MINT(22)=ISIGN(KFPR(ISUB,1),MINT(16))
-          ELSE
-            MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
-            MINT(22)=ISIGN(KFPR(ISUB,1)+1,MINT(16))
-          ENDIF
-        ENDIF
- 
-CMRENNA++
-      ELSEIF(ISUB.LE.215) THEN
-        IF(ISUB.EQ.201) THEN
-C...f + fbar -> ~e_L + ~e_Lbar
-          MINT(21)=ISIGN(KSUSY1+11,KCS)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.202) THEN
-C...f + fbar -> ~e_R + ~e_Rbar
-          MINT(21)=ISIGN(KSUSY2+11,KCS)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.203) THEN
-C...f + fbar -> ~e_L + ~e_Rbar
-          IF(MINT(15).LT.0) JS=2
-          IF(MINT(2).EQ.1) THEN
-            MINT(20+JS)=KFPR(ISUB,1)
-            MINT(23-JS)=-KFPR(ISUB,2)
-          ELSE
-            MINT(20+JS)=-KFPR(ISUB,1)
-            MINT(23-JS)=KFPR(ISUB,2)
-          ENDIF
- 
-        ELSEIF(ISUB.EQ.204) THEN
-C...f + fbar -> ~mu_L + ~mu_Lbar
-          MINT(21)=ISIGN(KSUSY1+13,KCS)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.205) THEN
-C...f + fbar -> ~mu_R + ~mu_Rbar
-          MINT(21)=ISIGN(KSUSY2+13,KCS)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.206) THEN
-C...f + fbar -> ~mu_L + ~mu_Rbar
-          IF(MINT(15).LT.0) JS=2
-          IF(MINT(2).EQ.1) THEN
-            MINT(20+JS)=KFPR(ISUB,1)
-            MINT(23-JS)=-KFPR(ISUB,2)
-          ELSE
-            MINT(20+JS)=-KFPR(ISUB,1)
-            MINT(23-JS)=KFPR(ISUB,2)
-          ENDIF
- 
-        ELSEIF(ISUB.EQ.207) THEN
-C...f + fbar -> ~tau_1 + ~tau_1bar
-          MINT(21)=ISIGN(KSUSY1+15,KCS)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.208) THEN
-C...f + fbar -> ~tau_2 + ~tau_2bar
-          MINT(21)=ISIGN(KSUSY2+15,KCS)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.209) THEN
-C...f + fbar -> ~tau_1 + ~tau_2bar
-          IF(MINT(15).LT.0) JS=2
-          IF(MINT(2).EQ.1) THEN
-            MINT(20+JS)=KFPR(ISUB,1)
-            MINT(23-JS)=-KFPR(ISUB,2)
-          ELSE
-            MINT(20+JS)=-KFPR(ISUB,1)
-            MINT(23-JS)=KFPR(ISUB,2)
-          ENDIF
- 
-        ELSEIF(ISUB.EQ.210) THEN
-C...q + qbar' -> ~l_L + ~nulbar; th arbitrary
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          MINT(21)=-ISIGN(KFPR(ISUB,1),KCH1+KCH2)
-          MINT(22)=ISIGN(KFPR(ISUB,2),KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.211) THEN
-C...q + qbar'-> ~tau_1 + ~nutaubar; th arbitrary
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          MINT(21)=-ISIGN(KSUSY1+15,KCH1+KCH2)
-          MINT(22)=ISIGN(KSUSY1+16,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.212) THEN
-C...q + qbar'-> ~tau_2 + ~nutaubar; th arbitrary
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          MINT(21)=-ISIGN(KSUSY2+15,KCH1+KCH2)
-          MINT(22)=ISIGN(KSUSY1+16,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.213) THEN
-C...f + fbar -> ~nul + ~nulbar
-          MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.214) THEN
-C...f + fbar -> ~nutau + ~nutaubar
-          MINT(21)=ISIGN(KSUSY1+16,KCS)
-          MINT(22)=-MINT(21)
-        ENDIF
- 
-      ELSEIF(ISUB.LE.225) THEN
-        IF(ISUB.EQ.216) THEN
-C...f + fbar -> ~chi01 + ~chi01
-          MINT(21)=KSUSY1+22
-          MINT(22)=KSUSY1+22
- 
-        ELSEIF(ISUB.EQ.217) THEN
-C...f + fbar -> ~chi02 + ~chi02
-          MINT(21)=KSUSY1+23
-          MINT(22)=KSUSY1+23
- 
-        ELSEIF(ISUB.EQ.218 ) THEN
-C...f + fbar -> ~chi03 + ~chi03
-          MINT(21)=KSUSY1+25
-          MINT(22)=KSUSY1+25
- 
-        ELSEIF(ISUB.EQ.219 ) THEN
-C...f + fbar -> ~chi04 + ~chi04
-          MINT(21)=KSUSY1+35
-          MINT(22)=KSUSY1+35
- 
-        ELSEIF(ISUB.EQ.220 ) THEN
-C...f + fbar -> ~chi01 + ~chi02
-          IF(MINT(15).LT.0) JS=2
-C          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+22
-          MINT(23-JS)=KSUSY1+23
- 
-        ELSEIF(ISUB.EQ.221 ) THEN
-C...f + fbar -> ~chi01 + ~chi03
-          IF(MINT(15).LT.0) JS=2
-C          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+22
-          MINT(23-JS)=KSUSY1+25
- 
-        ELSEIF(ISUB.EQ.222) THEN
-C...f + fbar -> ~chi01 + ~chi04
-          IF(MINT(15).LT.0) JS=2
-C          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+22
-          MINT(23-JS)=KSUSY1+35
- 
-        ELSEIF(ISUB.EQ.223) THEN
-C...f + fbar -> ~chi02 + ~chi03
-          IF(MINT(15).LT.0) JS=2
-C          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+23
-          MINT(23-JS)=KSUSY1+25
- 
-        ELSEIF(ISUB.EQ.224) THEN
-C...f + fbar -> ~chi02 + ~chi04
-          IF(MINT(15).LT.0) JS=2
-C          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+23
-          MINT(23-JS)=KSUSY1+35
- 
-        ELSEIF(ISUB.EQ.225) THEN
-C...f + fbar -> ~chi03 + ~chi04
-          IF(MINT(15).LT.0) JS=2
-C          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+25
-          MINT(23-JS)=KSUSY1+35
-        ENDIF
- 
-      ELSEIF(ISUB.LE.236) THEN
-        IF(ISUB.EQ.226) THEN
-C...f + fbar -> ~chi+-1 + ~chi-+1
-C...th=(p(q)-p(chi+))**2 or (p(qbar)-p(chi-))**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          MINT(21)=ISIGN(KSUSY1+24,KCH1)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.227) THEN
-C...f + fbar -> ~chi+-2 + ~chi-+2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          MINT(21)=ISIGN(KSUSY1+37,KCH1)
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.228) THEN
-C...f + fbar -> ~chi+-1 + ~chi-+2
-C...th=(p(q)-p(chi1+))**2 or th=(p(qbar)-p(chi1-))**2
-C...js=1 if pyr<.5, js=2 if pyr>.5
-C...if 15=q, 16=qbar and js=1, chi1+ + chi2-, th=(q-chi1+)**2
-C...if 15=qbar, 16=q and js=1, chi2- + chi1+, th=(q-chi1+)**2
-C...if 15=q, 16=qbar and js=2, chi1- + chi2+, th=(qbar-chi1-)**2
-C...if 15=qbar, 16=q and js=2, chi2+ + chi1-, th=(q-chi1-)**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=INT(1-KCH1)/2
-          IF(MINT(2).EQ.1) THEN
-            MINT(21)= ISIGN(KSUSY1+24,KCH1)
-            MINT(22)= -ISIGN(KSUSY1+37,KCH1)
-c            IF(KCH2.EQ.0) JS=2
-          ELSE
-            MINT(21)= ISIGN(KSUSY1+37,KCH1)
-            MINT(22)= -ISIGN(KSUSY1+24,KCH1)
-            JS=2
-c            IF(KCH2.EQ.1) JS=2
-          ENDIF
- 
-        ELSEIF(ISUB.EQ.229) THEN
-C...q + qbar' -> ~chi01 + ~chi+-1
-C...th=(p(u)-p(chi+))**2 or (p(ubar)-p(chi-))**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-C...CHECK THIS
-          IF(MOD(MINT(15),2).EQ.0) JS=2
-          MINT(20+JS)=KSUSY1+22
-          MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.230) THEN
-C...q + qbar' -> ~chi02 + ~chi+-1
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MOD(MINT(15),2).EQ.0) JS=2
-          MINT(20+JS)=KSUSY1+23
-          MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.231) THEN
-C...q + qbar' -> ~chi03 + ~chi+-1
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MOD(MINT(15),2).EQ.0) JS=2
-          MINT(20+JS)=KSUSY1+25
-          MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.232) THEN
-C...q + qbar' -> ~chi04 + ~chi+-1
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MOD(MINT(15),2).EQ.0) JS=2
-          MINT(20+JS)=KSUSY1+35
-          MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.233) THEN
-C...q + qbar' -> ~chi01 + ~chi+-2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MOD(MINT(15),2).EQ.0) JS=2
-          MINT(20+JS)=KSUSY1+22
-          MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.234) THEN
-C...q + qbar' -> ~chi02 + ~chi+-2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MOD(MINT(15),2).EQ.0) JS=2
-          MINT(20+JS)=KSUSY1+23
-          MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.235) THEN
-C...q + qbar' -> ~chi03 + ~chi+-2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MOD(MINT(15),2).EQ.0) JS=2
-          MINT(20+JS)=KSUSY1+25
-          MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
- 
-        ELSEIF(ISUB.EQ.236) THEN
-C...q + qbar' -> ~chi04 + ~chi+-2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MOD(MINT(15),2).EQ.0) JS=2
-          MINT(20+JS)=KSUSY1+35
-          MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
-        ENDIF
- 
-      ELSEIF(ISUB.LE.245) THEN
-        IF(ISUB.EQ.237) THEN
-C...q + qbar -> ~chi01 + ~g
-C...th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+21
-          MINT(23-JS)=KSUSY1+22
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.238) THEN
-C...q + qbar -> ~chi02 + ~g
-C...th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+21
-          MINT(23-JS)=KSUSY1+23
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.239) THEN
-C...q + qbar -> ~chi03 + ~g
-C...th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+21
-          MINT(23-JS)=KSUSY1+25
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.240) THEN
-C...q + qbar -> ~chi04 + ~g
-C...th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KSUSY1+21
-          MINT(23-JS)=KSUSY1+35
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.241) THEN
-C...q + qbar' -> ~chi+-1 + ~g
-C...if 15=u, 16=dbar, then (kch1+kch2)>0, js=1, chi+
-C...if 15=d, 16=ubar, then (kch1+kch2)<0, js=2, chi-
-C...if 15=ubar, 16=d, then (kch1+kch2)<0, js=1, chi-
-C...if 15=dbar, 16=u, then (kch1+kch2)>0, js=2, chi+
-C...th=(p(q)-p(chi+))**2 or (p(qbar')-p(chi-))**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          JS=1
-          IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
-          MINT(20+JS)=KSUSY1+21
-          MINT(23-JS)=ISIGN(KSUSY1+24,KCH1+KCH2)
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.242) THEN
-C...q + qbar' -> ~chi+-2 + ~g
-C...if 15=u, 16=dbar, then (kch1+kch2)>0, js=1, chi+
-C...if 15=d, 16=ubar, then (kch1+kch2)<0, js=2, chi-
-C...if 15=ubar, 16=d, then (kch1+kch2)<0, js=1, chi-
-C...if 15=dbar, 16=u, then (kch1+kch2)>0, js=2, chi+
-C...th=(p(q)-p(chi+))**2 or (p(qbar')-p(chi-))**2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          JS=1
-          IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
-          MINT(20+JS)=KSUSY1+21
-          MINT(23-JS)=ISIGN(KSUSY1+37,KCH1+KCH2)
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.243) THEN
-C...q + qbar -> ~g + ~g ; th arbitrary
-          MINT(21)=KSUSY1+21
-          MINT(22)=KSUSY1+21
-          KCC=MINT(2)+4
- 
-        ELSEIF(ISUB.EQ.244) THEN
-C...g + g -> ~g + ~g ; th arbitrary
-          KCC=MINT(2)+12
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=KSUSY1+21
-          MINT(22)=KSUSY1+21
-        ENDIF
- 
-      ELSEIF(ISUB.LE.260) THEN
-        IF(ISUB.EQ.246) THEN
-C...qj + g -> ~qj_L + ~chi01
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY1+IA,I)
-          MINT(23-JS)=KSUSY1+22
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.247) THEN
-C...qj + g -> ~qj_R + ~chi01
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY2+IA,I)
-          MINT(23-JS)=KSUSY1+22
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.248) THEN
-C...qj + g -> ~qj_L + ~chi02
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY1+IA,I)
-          MINT(23-JS)=KSUSY1+23
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.249) THEN
-C...qj + g -> ~qj_R + ~chi02
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY2+IA,I)
-          MINT(23-JS)=KSUSY1+23
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.250) THEN
-C...qj + g -> ~qj_L + ~chi03
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY1+IA,I)
-          MINT(23-JS)=KSUSY1+25
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.251) THEN
-C...qj + g -> ~qj_R + ~chi03
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY2+IA,I)
-          MINT(23-JS)=KSUSY1+25
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.252) THEN
-C...qj + g -> ~qj_L + ~chi04
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY1+IA,I)
-          MINT(23-JS)=KSUSY1+35
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.253) THEN
-C...qj + g -> ~qj_R + ~chi04
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY2+IA,I)
-          MINT(23-JS)=KSUSY1+35
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.254) THEN
-C...qj + g -> ~qk_L + ~chi+-1
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(23-JS)=ISIGN(KSUSY1+24,KCHG(IA,1)*I)
-          IB=-IA+INT((IA+1)/2)*4-1
-          MINT(20+JS)=ISIGN(KSUSY1+IB,I)
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.255) THEN
-C...qj + g -> ~qk_L + ~chi+-1
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(23-JS)=ISIGN(KSUSY1+24,KCHG(IA,1)*I)
-          IB=-IA+INT((IA+1)/2)*4-1
-          MINT(20+JS)=ISIGN(KSUSY2+IB,I)
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.256) THEN
-C...qj + g -> ~qk_L + ~chi+-2
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          IB=-IA+INT((IA+1)/2)*4-1
-          MINT(20+JS)=ISIGN(KSUSY1+IB,I)
-          MINT(23-JS)=ISIGN(KSUSY1+37,KCHG(IA,1)*I)
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.257) THEN
-C...qj + g -> ~qk_R + ~chi+-2
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          IB=-IA+INT((IA+1)/2)*4-1
-          MINT(20+JS)=ISIGN(KSUSY2+IB,I)
-          MINT(23-JS)=ISIGN(KSUSY1+37,KCHG(IA,1)*I)
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.258) THEN
-C...qj + g -> ~qj_L + ~g
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY1+IA,I)
-          MINT(23-JS)=KSUSY1+21
-          KCC=MINT(2)+6
-          IF(JS.EQ.2) KCC=KCC+2
-          KCS=ISIGN(1,I)
- 
-        ELSEIF(ISUB.EQ.259) THEN
-C...qj + g -> ~qj_R + ~g
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY2+IA,I)
-          MINT(23-JS)=KSUSY1+21
-          KCC=MINT(2)+6
-          IF(JS.EQ.2) KCC=KCC+2
-          KCS=ISIGN(1,I)
-        ENDIF
- 
-      ELSEIF(ISUB.LE.270) THEN
-        IF(ISUB.EQ.261) THEN
-C...f + fbar -> ~t_1 + ~t_1bar; th = (p(q)-p(sq))**2
-          ISGN=1
-          IF(MINT(43).EQ.1.AND.PYR(0).GT.0.5D0) ISGN=-1
-          MINT(21)=ISGN*ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-C...Correct color combination
-          IF(MINT(43).EQ.4) KCC=4
- 
-        ELSEIF(ISUB.EQ.262) THEN
-C...f + fbar -> ~t_2 + ~t_2bar; th = (p(q)-p(sq))**2
-          ISGN=1
-          IF(MINT(43).EQ.1.AND.PYR(0).GT.0.5D0) ISGN=-1
-          MINT(21)=ISGN*ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-C...Correct color combination
-          IF(MINT(43).EQ.4) KCC=4
- 
-        ELSEIF(ISUB.EQ.263) THEN
-C...f + fbar -> ~t_1 + ~t_2bar; th = (p(q)-p(sq))**2
-          IF((KCS.GT.0.AND.MINT(2).EQ.1).OR.
-     &    (KCS.LT.0.AND.MINT(2).EQ.2)) THEN
-            MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
-            MINT(22)=-ISIGN(KFPR(ISUB,2),KCS)
-          ELSE
-            JS=2
-            MINT(21)=ISIGN(KFPR(ISUB,2),KCS)
-            MINT(22)=-ISIGN(KFPR(ISUB,1),KCS)
-          ENDIF
-C...Correct color combination
-          IF(MINT(43).EQ.4) KCC=4
- 
-        ELSEIF(ISUB.EQ.264) THEN
-C...g + g -> ~t_1 + ~t_1bar; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
- 
-        ELSEIF(ISUB.EQ.265) THEN
-C...g + g -> ~t_2 + ~t_2bar; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
-        ENDIF
- 
-      ELSEIF(ISUB.LE.301) THEN
-        IF(ISUB.EQ.271.OR.ISUB.EQ.281.OR.ISUB.EQ.291) THEN
-C...qi + qj -> ~qi_L + ~qj_L
-          KCC=MINT(2)
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
-          MINT(21)=ISIGN(KSUSY1+IABS(MINT(15)),MINT(15))
-          MINT(22)=ISIGN(KSUSY1+IABS(MINT(16)),MINT(16))
- 
-        ELSEIF(ISUB.EQ.272.OR.ISUB.EQ.282.OR.ISUB.EQ.292) THEN
-C...qi + qj -> ~qi_R + ~qj_R
-          KCC=MINT(2)
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
-          MINT(21)=ISIGN(KSUSY2+IABS(MINT(15)),MINT(15))
-          MINT(22)=ISIGN(KSUSY2+IABS(MINT(16)),MINT(16))
- 
-        ELSEIF(ISUB.EQ.273.OR.ISUB.EQ.283.OR.ISUB.EQ.293) THEN
-C...qi + qj -> ~qi_L + ~qj_R
-          MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
-          MINT(22)=ISIGN(KFPR(ISUB,2),MINT(16))
-          KCC=MINT(2)
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
- 
-        ELSEIF(ISUB.EQ.274.OR.ISUB.EQ.284) THEN
-C...qi + qjbar -> ~qi_L + ~qj_Lbar; th = (p(f)-p(sf'))**2
-          MINT(21)=ISIGN(KSUSY1+IABS(MINT(15)),MINT(15))
-          MINT(22)=ISIGN(KSUSY1+IABS(MINT(16)),MINT(16))
-          KCC=MINT(2)
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
- 
-        ELSEIF(ISUB.EQ.275.OR.ISUB.EQ.285) THEN
-C...qi + qjbar -> ~qi_R + ~qj_Rbar ; th = (p(f)-p(sf'))**2
-          MINT(21)=ISIGN(KSUSY2+IABS(MINT(15)),MINT(15))
-          MINT(22)=ISIGN(KSUSY2+IABS(MINT(16)),MINT(16))
-          KCC=MINT(2)
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
- 
-        ELSEIF(ISUB.EQ.276.OR.ISUB.EQ.286.OR.ISUB.EQ.296) THEN
-C...qi + qjbar -> ~qi_L + ~qj_Rbar ; th = (p(f)-p(sf'))**2
-          MINT(21)=ISIGN(KFPR(ISUB,1),MINT(15))
-          MINT(22)=ISIGN(KFPR(ISUB,2),MINT(16))
-          KCC=MINT(2)
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
- 
-        ELSEIF(ISUB.EQ.277.OR.ISUB.EQ.287) THEN
-C...f + fbar -> ~qi_L + ~qi_Lbar ; th = (p(q)-p(sq))**2
-          ISGN=1
-          IF(MINT(43).EQ.1.AND.PYR(0).GT.0.5D0) ISGN=-1
-          MINT(21)=ISGN*ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-          IF(MINT(43).EQ.4) KCC=4
- 
-        ELSEIF(ISUB.EQ.278.OR.ISUB.EQ.288) THEN
-C...f + fbar -> ~qi_R + ~qi_Rbar; th = (p(q)-p(sq))**2
-          ISGN=1
-          IF(MINT(43).EQ.1.AND.PYR(0).GT.0.5D0) ISGN=-1
-          MINT(21)=ISGN*ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-          IF(MINT(43).EQ.4) KCC=4
- 
-        ELSEIF(ISUB.EQ.279.OR.ISUB.EQ.289) THEN
-C...g + g -> ~qi_L + ~qi_Lbar ; th arbitrary
-C...pure LL + RR
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
- 
-        ELSEIF(ISUB.EQ.280.OR.ISUB.EQ.290) THEN
-C...g + g -> ~qi_R + ~qi_Rbar ; th arbitrary
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
- 
-        ELSEIF(ISUB.EQ.294) THEN
-C...qj + g -> ~qj_L + ~g
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY1+IA,I)
-          MINT(23-JS)=KSUSY1+21
-          KCC=MINT(2)+6
-          IF(JS.EQ.2) KCC=KCC+2
-          KCS=ISIGN(1,I)
- 
-        ELSEIF(ISUB.EQ.295) THEN
-C...qj + g -> ~qj_R + ~g
-          IF(MINT(15).EQ.21) JS=2
-          I=MINT(14+JS)
-          IA=IABS(I)
-          MINT(20+JS)=ISIGN(KSUSY2+IA,I)
-          MINT(23-JS)=KSUSY1+21
-          KCC=MINT(2)+6
-          IF(JS.EQ.2) KCC=KCC+2
-          KCS=ISIGN(1,I)
- 
-        ELSEIF(ISUB.EQ.297.OR.ISUB.EQ.298) THEN
-C...q + qbar' -> H+ + H0
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
-          MINT(20+JS)=ISIGN(37,KCH1+KCH2)
-          MINT(23-JS)=KFPR(ISUB,2)
-        ELSEIF(ISUB.EQ.299.OR.ISUB.EQ.300) THEN
-C...f + fbar -> A0 + H0; th arbitrary
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KFPR(ISUB,1)
-          MINT(23-JS)=KFPR(ISUB,2)
-        ELSEIF(ISUB.EQ.301) THEN
-C...f + fbar -> H+ H-
-          MINT(21)=ISIGN(KFPR(ISUB,1),KCS)
-          MINT(22)=-MINT(21)
-        ENDIF
-CMRENNA--
-      ELSEIF(ISUB.LE.330) THEN
-        IF(ISUB.EQ.311)THEN
-C...g + g -> g* + g* (UED)
-          KCC=MINT(2)+12
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MUED(1)=472
-          MUED(2)=472
-          MINT(21)=IUEDEQ(472)
-          MINT(22)=IUEDEQ(472)
-        ELSEIF(ISUB.EQ.312)THEN
-C...q + g -> q*_D + g*, q*_S + g*
-C...The two channels have the same cross section
-          KKFLMI=450
-          IF(PYR(0).GT.0.5)KKFLMI=456
-          IF(MINT(15).EQ.21) JS=2
-          KCC=MINT(2)+6
-          IF(MINT(15).EQ.21)KCC=KCC+2
-          IF(MINT(15).NE.21)THEN
-            KCS=ISIGN(1,MINT(15))
-            MUED(2)=472
-            MUED(1)=KCS*(KKFLMI+IABS(MINT(15)))
-            MINT(22)=IUEDEQ(472)
-            MINT(21)=KCS*IUEDEQ(KKFLMI+IABS(MINT(15)))
-          ENDIF
-          IF(MINT(16).NE.21)THEN
-            KCS=ISIGN(1,MINT(16))
-            MUED(2)=KCS*(KKFLMI+IABS(MINT(16)))
-            MUED(1)=472
-            MINT(22)=KCS*IUEDEQ(KKFLMI+IABS(MINT(16)))
-            MINT(21)=IUEDEQ(472)
-          ENDIF
-        ELSEIF(ISUB.EQ.313)THEN
-C...q + q' -> q*_D + q*_D',q*_S+q*_S'
-C...The two channels have the same cross section
-          KKFLMI=450
-          IF(PYR(0).GT.0.5)KKFLMI=456
-          KCC=MINT(2)         
-          IF(MINT(15).EQ.MINT(16))THEN
-            MUED(1)=SIGN(1,MINT(15))*(KKFLMI+IABS(MINT(15)))
-            MUED(2)=MINT(21)
-            MINT(21)=SIGN(1,MINT(15))*IUEDEQ(KKFLMI+IABS(MINT(15)))
-            MINT(22)=MINT(21)
-          ELSE
-            MUED(1)=SIGN(1,MINT(15))*(KKFLMI+IABS(MINT(15)))
-            MUED(2)=SIGN(1,MINT(16))*(KKFLMI+IABS(MINT(16)))
-            MINT(21)=SIGN(1,MINT(15))*IUEDEQ(KKFLMI+IABS(MINT(15)))
-            MINT(22)=SIGN(1,MINT(16))*IUEDEQ(KKFLMI+IABS(MINT(16)))
-          ENDIF
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2        
-        ELSEIF(ISUB.EQ.314)THEN
-C...g + g -> q*_D + q*_D_bar, q*_S + q*_S_bar
-C...The two channels have the same cross section
-          KKFLMI=450
-          IF(PYR(0).GT.0.5)KKFLMI=456
-          KCS=(-1)**INT(1.5D0+PYR(0))    
-          XFLAOUT=PYR(0)
-          IF(XFLAOUT.LE.0.2)THEN
-            MUED(1)=ISIGN(1,KCS)*(KKFLMI+1)
-            MINT(21)=ISIGN(1,KCS)*IUEDEQ(KKFLMI+1)
-          ELSEIF(XFLAOUT.LE.0.4)THEN
-            MUED(1)=ISIGN(1,KCS)*(KKFLMI+2)
-            MINT(21)=ISIGN(1,KCS)*IUEDEQ(KKFLMI+2)
-          ELSEIF(XFLAOUT.LE.0.6)THEN
-            MUED(1)=ISIGN(1,KCS)*(KKFLMI+3)
-            MINT(21)=ISIGN(1,KCS)*IUEDEQ(KKFLMI+3)
-          ELSEIF(XFLAOUT.LE.0.8)THEN
-            MUED(1)=ISIGN(1,KCS)*(KKFLMI+4)
-            MINT(21)=ISIGN(1,KCS)*IUEDEQ(KKFLMI+4)
-          ELSE
-            MUED(1)=ISIGN(1,KCS)*(KKFLMI+5)
-            MINT(21)=ISIGN(1,KCS)*IUEDEQ(KKFLMI+5)
-          ENDIF
-          MINT(22)=-MINT(21)
-          MUED(2)=-MUED(1)
-          KCC=MINT(2)+10
-        ELSEIF(ISUB.EQ.315)THEN
-C...q + qbar -> q*_D + q*_D_bar, q*_S + q*_S_bar
-C...The two channels have the same cross section
-          KKFLMI=450
-          IF(PYR(0).GT.0.5)KKFLMI=456
-          MUED(1)=ISIGN(1,MINT(15))*(KKFLMI+IABS(MINT(15)))
-          MUED(2)=-MINT(21)
-          MINT(21)=ISIGN(1,MINT(15))*IUEDEQ(KKFLMI+IABS(MINT(15)))
-          MINT(22)=-MINT(21)
-          KCC=4
-        ELSEIF(ISUB.EQ.316)THEN
-C...q + qbar'    -> q*_D + q*_S_bar'
-          MUED(1)=ISIGN(1,MINT(15))*(456+IABS(MINT(15)))
-          MUED(2)=ISIGN(1,MINT(16))*(450+IABS(MINT(16)))
-          MINT(21)=ISIGN(1,MINT(15))*IUEDEQ(456+IABS(MINT(15)))
-          MINT(22)=ISIGN(1,MINT(16))*IUEDEQ(450+IABS(MINT(16)))
-          KCC=MINT(2)+2
-        ELSEIF(ISUB.EQ.317)THEN
-C...q + qbar'    -> q*_D + q*_D_bar', q*_S + q*_S_bar
-C...The two channels have the same cross section
-          KKFLMI=450
-          IF(PYR(0).GT.0.5)KKFLMI=456      
-          MUED(1)=ISIGN(1,MINT(15))*(KKFLMI+IABS(MINT(15)))
-          MUED(2)=ISIGN(1,MINT(16))*(KKFLMI+IABS(MINT(16)))
-          MINT(21)=ISIGN(1,MINT(15))*IUEDEQ(KKFLMI+IABS(MINT(15)))
-          MINT(22)=ISIGN(1,MINT(16))*IUEDEQ(KKFLMI+IABS(MINT(16)))
-          KCC=MINT(2)+2
-        ELSEIF(ISUB.EQ.318)THEN
-C...q + q'    -> q*_D + q*_S'     
-          KCC=MINT(2)         
-          MUED(1)=SIGN(1,MINT(15))*(456+IABS(MINT(15)))
-          MUED(2)=SIGN(1,MINT(16))*(450+IABS(MINT(16)))               
-          MINT(21)=SIGN(1,MINT(15))*IUEDEQ(456+IABS(MINT(15)))
-          MINT(22)=SIGN(1,MINT(16))*IUEDEQ(450+IABS(MINT(16)))
-        ELSEIF(ISUB.EQ.319)THEN
-C...q + qbar -> q*_D' + q*_D_bar', q*_S' + q*_S_bar'
-C...The two channels have the same cross section
-          KKFLMI=450
-          IF(PYR(0).GT.0.5)KKFLMI=456
-          XFLAOUT=PYR(0)
-          IIFLAV=0
-C...N.B. NFLAVOURS=IUED(3)
-C   DO I=1,NFLAVOURS
-          DO 433 I=1,IUED(3)
-            IF(I.NE.IABS(MINT(15)))THEN
-              IIFLAV=IIFLAV+1
-              IOKFLA(IIFLAV)=I
-            ENDIF
- 433      CONTINUE
-          FLASTEP=1./(IUED(3)-1)
-          DO I=1,IUED(3)-1
-            FLAVV=FLASTEP*I
-            IF(XFLAOUT.LE.FLAVV)THEN                  
-              MUED(1)=ISIGN(1,MINT(15))*(KKFLMI+IOKFLA(I))
-              MINT(21)=ISIGN(1,MINT(15))*IUEDEQ(KKFLMI+IOKFLA(I))
-              GOTO 435
-            ENDIF
-          ENDDO
- 435      CONTINUE
-          IF(IABS(MUED(1)).LT.451.AND.IABS(MUED(1)).GT.462)THEN
-            WRITE(MSTU(11),*) 'IN PYSCAT: KK FLAVORS PROBLEM !!!'
-            CALL PYSTOP(5000000)
-          ENDIF
-          MINT(22)=-MINT(21)
-          KCC=4
-        ENDIF
-         
-      ELSEIF(ISUB.LE.360) THEN
- 
-        IF(ISUB.EQ.341.OR.ISUB.EQ.342) THEN
-C...l + l -> H_L++/--, H_R++/--
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          KFRES=ISIGN(KFPR(ISUB,1),KCH1+KCH2)
- 
-        ELSEIF(ISUB.GE.343.AND.ISUB.LE.348) THEN
-C...l + gamma -> l' + H++/--; th=(p(l)-p(H))**2
-          IF(MINT(15).EQ.22) JS=2
-          MINT(20+JS)=ISIGN(KFPR(ISUB,1),-MINT(14+JS))
-          MINT(23-JS)=ISIGN(KFPR(ISUB,2),-MINT(14+JS))
-          KCC=22
- 
-        ELSEIF(ISUB.EQ.349.OR.ISUB.EQ.350) THEN
-C...f + fbar -> H++ + H--; th = (p(f)-p(H--))**2
-          MINT(21)=-ISIGN(KFPR(ISUB,1),MINT(15))
-          MINT(22)=-MINT(21)
- 
-        ELSEIF(ISUB.EQ.351.OR.ISUB.EQ.352) THEN
-C...f + f' -> f" + f"' + H++/-- (W+/- + W+/- -> H++/--
-C...as inner process).
-          DO 450 JT=1,2
-            I=MINT(14+JT)
-            IA=IABS(I)
-            IF(IA.LE.10) THEN
-              RVCKM=VINT(180+I)*PYR(0)
-              DO 440 J=1,MSTP(1)
-                IB=2*J-1+MOD(IA,2)
-                IPM=(5-ISIGN(1,I))/2
-                IDC=J+MDCY(IA,2)+2
-                IF(MDME(IDC,1).NE.1.AND.MDME(IDC,1).NE.IPM) GOTO 440
-                MINT(20+JT)=ISIGN(IB,I)
-                RVCKM=RVCKM-VCKM((IA+1)/2,(IB+1)/2)
-                IF(RVCKM.LE.0D0) GOTO 450
-  440         CONTINUE
-            ELSE
-              IB=2*((IA+1)/2)-1+MOD(IA,2)
-              MINT(20+JT)=ISIGN(IB,I)
-            ENDIF
-  450     CONTINUE
-          KCC=22
-          KFRES=ISIGN(KFPR(ISUB,1),MINT(15))
-          IF(MOD(MINT(15),2).EQ.1) KFRES=-KFRES
- 
-        ELSEIF(ISUB.EQ.353) THEN
-C...f + fbar -> Z_R0
-          KFRES=KFPR(ISUB,1)
- 
-        ELSEIF(ISUB.EQ.354) THEN
-C...f + fbar' -> W+/-
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          KFRES=ISIGN(KFPR(ISUB,1),KCH1+KCH2)
- 
-        ENDIF
- 
-      ELSEIF(ISUB.LE.380) THEN
- 
-        IF(ISUB.LE.363.OR.ISUB.EQ.368) THEN
-C...f + fbar -> charged+ charged- technicolor
-          KSW=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFPR(ISUB,1),KSW)
-          MINT(22)=-ISIGN(KFPR(ISUB,2),KSW)
- 
-        ELSEIF(ISUB.LE.367.OR.ISUB.EQ.379.OR.ISUB.EQ.380) THEN
-C...f + fbar -> neutral neutral technicolor
-          MINT(21)=KFPR(ISUB,1)
-          MINT(22)=KFPR(ISUB,2)
- 
-        ELSEIF(ISUB.EQ.374.OR.ISUB.EQ.375.OR.ISUB.EQ.378) THEN
-C...f + fbar' -> neutral charged technicolor
-          IN=1
-          IC=2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MINT(15)*(KCH1+KCH2).LT.0) JS=2
-          MINT(23-JS)=ISIGN(KFPR(ISUB,IC),KCH1+KCH2)
-          MINT(20+JS)=KFPR(ISUB,IN)
- 
-        ELSEIF(ISUB.GE.370.AND.ISUB.LE.377) THEN
-C...f + fbar' -> charged neutral technicolor
-          IN=2
-          IC=1
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          IF(MINT(15)*(KCH1+KCH2).GT.0) JS=2
-          MINT(20+JS)=ISIGN(KFPR(ISUB,IC),KCH1+KCH2)
-          MINT(23-JS)=KFPR(ISUB,IN)
-        ENDIF
- 
-      ELSEIF(ISUB.LE.400) THEN
-        IF(ISUB.EQ.381) THEN
-C...f + f' -> f + f' (g exchange); th = (p(f)-p(f))**2, TC extensions
-          KCC=MINT(2)
-          IF(MINT(15)*MINT(16).LT.0) KCC=KCC+2
- 
-        ELSEIF(ISUB.EQ.382) THEN
-C...f + fbar -> f' + fbar'; th = (p(f)-p(f'))**2, TC extensions
-          MINT(21)=ISIGN(KFLF,MINT(15))
-          MINT(22)=-MINT(21)
-          KCC=4
- 
-        ELSEIF(ISUB.EQ.383) THEN
-C...f + fbar -> g + g; th arbitrary, TC extensions
-          MINT(21)=21
-          MINT(22)=21
-          KCC=MINT(2)+4
- 
-        ELSEIF(ISUB.EQ.384) THEN
-C...f + g -> f + g; th = (p(f)-p(f))**2, TC extensions
-          IF(MINT(15).EQ.21) JS=2
-          KCC=MINT(2)+6
-          IF(MINT(15).EQ.21) KCC=KCC+2
-          IF(MINT(15).NE.21) KCS=ISIGN(1,MINT(15))
-          IF(MINT(16).NE.21) KCS=ISIGN(1,MINT(16))
- 
-        ELSEIF(ISUB.EQ.385) THEN
-C...g + g -> f + fbar; th arbitrary, TC extensions
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFLF,KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
- 
-        ELSEIF(ISUB.EQ.386) THEN
-C...g + g -> g + g; th arbitrary, TC extensions
-          KCC=MINT(2)+12
-          KCS=(-1)**INT(1.5D0+PYR(0))
- 
-        ELSEIF(ISUB.EQ.387) THEN
-C...q + qbar -> Q + Qbar; th = (p(q)-p(Q))**2, TC extensions
-          MINT(21)=ISIGN(MINT(55),MINT(15))
-          MINT(22)=-MINT(21)
-          KCC=4
- 
-        ELSEIF(ISUB.EQ.388) THEN
-C...g + g -> Q + Qbar; th arbitrary, TC extensions
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(MINT(55),KCS)
-          MINT(22)=-MINT(21)
-          KCC=MINT(2)+10
- 
-        ELSEIF(ISUB.EQ.391) THEN
-C...f + fbar -> G*.
-          KFRES=KFPR(ISUB,1)
- 
-        ELSEIF(ISUB.EQ.392) THEN
-C...g + g -> G*.
-          KCC=21
-          KFRES=KFPR(ISUB,1)
- 
-        ELSEIF(ISUB.EQ.393) THEN
-C...q + qbar -> g + G*;  th arbitrary.
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(20+JS)=KFPR(ISUB,1)
-          MINT(23-JS)=KFPR(ISUB,2)
-          KCC=17+JS
- 
-        ELSEIF(ISUB.EQ.394) THEN
-C...q + g -> q + G*;  th = (p(f) - p(f))**2
-          IF(MINT(15).EQ.21) JS=2
-          MINT(23-JS)=KFPR(ISUB,2)
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.EQ.395) THEN
-C...g + g -> G* + g;  th arbitrary.
-          IF(PYR(0).GT.0.5D0) JS=2
-          MINT(23-JS)=KFPR(ISUB,2)
-          KCC=22+JS
-        ENDIF
- 
-      ELSEIF(ISUB.LE.420) THEN
-        IF(ISUB.EQ.401) THEN
-C...g + g -> t + b + H+/-
-          KCS=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(KFPR(ISUBSV,2),KCS)
-          MINT(22)=ISIGN(5,-KCS)
-          KCC=11+INT(0.5D0+PYR(0))
-          KFRES=ISIGN(KFHIGG,-KCS)
- 
-        ELSEIF(ISUB.EQ.402) THEN
-C...q + qbar -> t + b + H+/-
-          KFL=(-1)**INT(1.5D0+PYR(0))
-          MINT(21)=ISIGN(INT(6.+.5*KFL),KCS)
-          MINT(22)=ISIGN(INT(6.-.5*KFL),-KCS)
-          KCC=4
-          KFRES=ISIGN(KFHIGG,-KFL*KCS)
-        ENDIF
- 
-C...QUARKONIA+++
-C...Additional code by Stefan Wolf
-      ELSEIF(ISUB.LE.430) THEN
-        IF(ISUB.GE.421.AND.ISUB.LE.424) THEN
-C...g + g -> QQ~[n] + g
-C...MINT(21), MINT(22) copied from ISUB.EQ.86-89
-C...[g + g -> (J/Psi, chi_0c, chi_1c or chi_2c) + g]
-C...KCC and KCS copied from ISUB.EQ.86-89 (for ISUB.EQ.421)
-C...[g + g -> (J/Psi, chi_0c, chi_1c or chi_2c) + g]
-C...or from ISUB.EQ.68 (for ISUB.NE.421)
-C...[g + g -> g + g; th arbitrary]
-          MINT(21)=KFPR(ISUBSV,1)
-          MINT(22)=KFPR(ISUBSV,2)
-          IF(ISUB.EQ.421) THEN
-             KCC=24
-             KCS=(-1)**INT(1.5D0+PYR(0))
-          ELSE
-             KCC=MINT(2)+12
-             KCS=(-1)**INT(1.5D0+PYR(0))
-          ENDIF
- 
-        ELSEIF(ISUB.GE.425.AND.ISUB.LE.427) THEN
-C...q + g -> q + QQ~[n]
-C...MINT(21), MINT(22) "copied" from ISUB.EQ.112
-C...[f + g -> f + h0; th = (p(f)-p(f))**2; (q + g -> q + h0 only)]
-C...KCC copied from ISUB.EQ.28
-C...[f + g -> f + g;  th = (p(f)-p(f))**2; (q + g -> q + g  only)]
-          IF(MINT(15).EQ.21) JS=2
-          MINT(23-JS)=KFPR(ISUBSV,2)
-          KCC=MINT(2)+6
-          IF(MINT(15).EQ.21) KCC=KCC+2
-          IF(MINT(15).NE.21) KCS=ISIGN(1,MINT(15))
-          IF(MINT(16).NE.21) KCS=ISIGN(1,MINT(16))
- 
-        ELSEIF(ISUB.GE.428.AND.ISUB.LE.430) THEN
-C...q + q~ -> g + QQ~[n]
-C...MINT(21), MINT(22) "copied" from ISUB.EQ.111
-C...[f + fbar -> g + h0; th arbitrary; (q + qbar -> g + h0 only)]
-C...KCC copied from ISUB.EQ.13
-C...[f + fbar -> g + g;  th arbitrary; (q + qbar -> g + g  only)]
-          IF(PYR(0).GT.0.5) JS=2
-          MINT(20+JS)=21
-          MINT(23-JS)=KFPR(ISUBSV,2)
-          KCC=MINT(2)+4
-        ENDIF
- 
-      ELSEIF(ISUB.LE.440) THEN
-        IF(ISUB.GE.431.AND.ISUB.LE.433) THEN
-C...g + g -> QQ~[n] + g
-C...MINT(21), MINT(22) copied from ISUB.EQ.86-89
-C...[g + g -> (J/Psi, chi_0c, chi_1c or chi_2c) + g]
-C...KCC and KCS copied from ISUB.EQ.86-89
-C...[g + g -> (J/Psi, chi_0c, chi_1c or chi_2c) + g]
-          MINT(21)=KFPR(ISUBSV,1)
-          MINT(22)=KFPR(ISUBSV,2)
-          KCC=24
-          KCS=(-1)**INT(1.5D0+PYR(0))
- 
-        ELSEIF(ISUB.GE.434.AND.ISUB.LE.436) THEN
-C...q + g -> q + QQ~[n]
-C...MINT(21), MINT(22) "copied" from ISUB.EQ.112
-C...[f + g -> f + h0; th = (p(f)-p(f))**2; (q + g -> q + h0 only)]
-C...KCC and KCS copied from ISUB.EQ.112
-C...[f + g -> f + h0; th = (p(f)-p(f))**2; (q + g -> q + h0 only)]
-          IF(MINT(15).EQ.21) JS=2
-          MINT(23-JS)=KFPR(ISUBSV,2)
-          KCC=15+JS
-          KCS=ISIGN(1,MINT(14+JS))
- 
-        ELSEIF(ISUB.GE.437.AND.ISUB.LE.439) THEN
-C...q + q~ -> g + QQ~[n]
-C...MINT(21), MINT(22) "copied" from ISUB.EQ.111
-C...[f + fbar -> g + h0; th arbitrary; (q + qbar -> g + h0 only)]
-C...KCC copied from ISUB.EQ.111
-C...[f + fbar -> g + h0; th arbitrary; (q + qbar -> g + h0 only)]
-          IF(PYR(0).GT.0.5) JS=2
-          MINT(20+JS)=21
-          MINT(23-JS)=KFPR(ISUBSV,2)
-          KCC=17+JS
-C...QUARKONIA---
-        ENDIF
-      ELSEIF(ISUB.LE.500) THEN
-        IF(ISUB.EQ.481.OR.ISUB.EQ.482) THEN
-          KFRES=9900001
-          KCRES=PYCOMP(KFRES)
-          MCOL=KCHG(KCRES,2)
-          MCHG=KCHG(KCRES,1)
-          IF(KCRES.EQ.0) 
-     $      CALL PYERRM(21,"No resonance for Generic 2-> 2 Process")
-          IDCY=MDCY(KCRES,2)
-          IF(IDCY.EQ.0)
-     $      CALL PYERRM(21,"No decays for resonance in Generic 2->2")
-          KCI1=PYCOMP(MINT(15))
-          KCI2=PYCOMP(MINT(16))
-          ICOL1=ISIGN(KCHG(KCI1,2),MINT(15))
-          ICOL2=ISIGN(KCHG(KCI2,2),MINT(16))
-          KFF1=KFPR(ISUB,1)
-          KFF2=KFPR(ISUB,2)
-          KCF1=PYCOMP(KFF1)
-          KCF2=PYCOMP(KFF2)
-          JCOL1=SIGN(KCHG(KCF1,2),KFF1)
-          IF(JCOL1.EQ.-2) JCOL1=2
-          JCOL2=SIGN(KCHG(KCF2,2),KFF2)
-          IF(JCOL2.EQ.-2) JCOL2=2
-          KCH1=KCHG(IABS(MINT(15)),1)*ISIGN(1,MINT(15))
-          KCH2=KCHG(IABS(MINT(16)),1)*ISIGN(1,MINT(16))
-          KCHW=KCH1+KCH2
-          KREL=1
-          IF(MCHG.NE.0.AND.KCHW.EQ.-MCHG) KREL=-1
-          IF(KCHG(KCF1,3).NE.0) KFF1=KFF1*KREL
-          IF(KCHG(KCF2,3).NE.0) KFF2=KFF2*KREL
-          IF(JCOL1.EQ.1.OR.JCOL1.EQ.-1) JCOL1=JCOL1*KREL
-          IF(JCOL2.EQ.1.OR.JCOL2.EQ.-1) JCOL2=JCOL2*KREL
-          IF((ICOL1.EQ.1.AND.ICOL2.EQ.-1).OR.
-     $      (ICOL2.EQ.1.AND.ICOL1.EQ.-1)) THEN
-            IF(PYR(0).GT.0.5D0) JS=2
-            MINT(20+JS)=KFF1
-            MINT(23-JS)=KFF2
-            IF(JCOL1.EQ.0.AND.JCOL2.EQ.0) THEN
-
-            ELSEIF(JCOL1.EQ.0.AND.JCOL2.EQ.2) THEN
-              KCC=17+JS
-              MINT(20+JS)=KFF2
-              MINT(23-JS)=KFF1
-            ELSEIF(JCOL1.EQ.2.AND.JCOL2.EQ.0) THEN
-              KCC=17+JS
-              MINT(20+JS)=KFF1
-              MINT(23-JS)=KFF2
-            ELSEIF(JCOL1.EQ.2.AND.JCOL2.EQ.2.AND.MCOL.EQ.0) THEN
-
-            ELSEIF(JCOL1.EQ.2.AND.JCOL2.EQ.2) THEN
-              KCC=MINT(2)+4
-            ELSEIF((JCOL1.EQ.1.AND.JCOL2.EQ.-1).OR.
-     $        (JCOL1.EQ.-1.AND.JCOL2.EQ.1)) THEN
-              IF(ICOL1.EQ.JCOL1) THEN
-                JS=1
-                MINT(21)=KFF1
-                MINT(22)=KFF2
-              ELSE
-                JS=2
-                MINT(21)=KFF2
-                MINT(22)=KFF1
-              ENDIF
-              IF(MCOL.EQ.0) THEN
-        
-              ELSE
-                KCC=4
-              ENDIF
-            ENDIF
-          ELSEIF((ICOL1.EQ.2.AND.(ICOL2.EQ.1.OR.ICOL2.EQ.-1)).OR.
-     $      (ICOL2.EQ.2.AND.(ICOL1.EQ.1.OR.ICOL1.EQ.-1))) THEN
-            IF((JCOL1.EQ.2.AND.ABS(JCOL2).EQ.1).OR.
-     $        (JCOL2.EQ.2.AND.ABS(JCOL1).EQ.1)) THEN
-              IF(MINT(15).EQ.21) JS=2
-              KCC=MINT(2)+6
-              IF(MINT(15).EQ.21) KCC=KCC+2
-              IF(MINT(15).NE.21) KCS=ISIGN(1,MINT(15))
-              IF(MINT(16).NE.21) KCS=ISIGN(1,MINT(16))
-              IF(JCOL1.EQ.2) THEN
-                MINT(20+JS)=KFF2
-                MINT(23-JS)=KFF1
-              ELSE
-                MINT(20+JS)=KFF1
-                MINT(23-JS)=KFF2
-              ENDIF
-            ELSEIF((ABS(JCOL1).EQ.1.AND.JCOL2.EQ.0).OR.
-     $        (ABS(JCOL2).EQ.1.AND.JCOL1.EQ.0)) THEN
-              IF(MINT(15).EQ.21) JS=2
-              KCC=15+JS
-              KCS=ISIGN(1,MINT(14+JS))
-              IF(JCOL1.EQ.0) THEN
-                MINT(23-JS)=KFF1
-                MINT(20+JS)=KFF2
-              ELSE
-                MINT(23-JS)=KFF2
-                MINT(20+JS)=KFF1
-              ENDIF
-            ENDIF
-          ELSEIF(ICOL1.EQ.2.AND.ICOL2.EQ.2.AND.
-     $      JCOL1.EQ.0.AND.JCOL2.EQ.0) THEN
-            IF(PYR(0).GT.0.5D0) JS=2             
-            KCC=21
-            MINT(20+JS)=KFF1
-            MINT(23-JS)=KFF2
-          ELSEIF(ICOL1.EQ.2.AND.ICOL2.EQ.2.AND.
-     $      ((JCOL1.EQ.0.AND.JCOL2.EQ.2).OR.
-     $      ((JCOL2.EQ.0.AND.JCOL1.EQ.2)))) THEN
-            IF(PYR(0).GT.0.5D0) JS=2
-            KCC=22+JS
-            KCS=(-1)**INT(1.5D0+PYR(0))
-            IF(JCOL1.EQ.0) THEN
-              MINT(23-JS)=KFF1
-              MINT(20+JS)=KFF2
-            ELSE
-              MINT(23-JS)=KFF2
-              MINT(20+JS)=KFF1
-            ENDIF
-          ELSEIF(ICOL1.EQ.2.AND.ICOL2.EQ.2.AND.
-     $      ((JCOL1.EQ.1.AND.JCOL2.EQ.-1).OR.
-     $      ((JCOL2.EQ.1.AND.JCOL1.EQ.-1)))) THEN
-C....two choices, 0 or 2 depending upon mother properties
-            IF(MCOL.EQ.2) THEN
-              KCS=(-1)**INT(1.5D0+PYR(0))
-              KCC=MINT(2)+10
-              IF(JCOL1.EQ.1) THEN
-                MINT(21)=KFF1*KCS
-                MINT(22)=KFF2*KCS
-              ELSE
-                MINT(22)=KFF1*KCS
-                MINT(21)=KFF2*KCS
-              ENDIF
-c              MINT(20+JS)=KFF1*KCS
-c              MINT(23-JS)=KFF2*KCS
-            ELSEIF(MCOL.EQ.0) THEN
-              KCC=21
-              MINT(20+JS)=KFF1*KCS
-              MINT(23-JS)=KFF2*KCS
-            ENDIF
-
-          ELSEIF(ICOL1.EQ.2.AND.ICOL2.EQ.2.AND.
-     $      JCOL1.EQ.2.AND.JCOL2.EQ.2) THEN
-C....two choices, 0 or 2 depending upon mother properties
-            IF(MCOL.EQ.0) THEN
-              KCC=21
-              IF(PYR(0).GT.0.5D0) JS=2
-              MINT(20+JS)=KFF1
-              MINT(23-JS)=KFF2               
-            ELSEIF(MCOL.EQ.2) THEN
-              IF(PYR(0).GT.0.5D0) JS=2
-              KCC=MINT(2)+12
-              KCS=(-1)**INT(1.5D0+PYR(0))
-              MINT(20+JS)=KFF1
-              MINT(23-JS)=KFF2
-            ENDIF
-          ELSEIF((ICOL1.EQ.1.AND.ICOL2.EQ.1).OR.
-     $      (ICOL1.EQ.-1.AND.ICOL2.EQ.-1)) THEN
-            KCC=MINT(2) 
-            IF(PYR(0).GT.0.5D0) JS=2
-            MINT(20+JS)=KFF1
-            MINT(23-JS)=KFF2                          
-          ELSEIF(ICOL1.EQ.0.AND.ICOL2.EQ.0.AND.MCOL.EQ.0) THEN
-            KCC=20
-            IF(PYR(0).GT.0.5D0) JS=2
-            MINT(20+JS)=KFF1
-            MINT(23-JS)=KFF2                          
-          ELSE
-            CALL PYERRM(21,"PYSCAT: No recognized Generic Process")
-          ENDIF
-          IF(ISUBSV.EQ.482) KFRES=0
-        ENDIF 
-      ENDIF
- 
-      IF(ISET(ISUB).EQ.11) THEN
-C...Store documentation for user-defined processes
-        BEZUP=(PUP(3,1)+PUP(3,2))/(PUP(4,1)+PUP(4,2))
-        KUPPO(1)=MINT(83)+5
-        KUPPO(2)=MINT(83)+6
-        I=MINT(83)+6
-        DO 470 IUP=3,NUP
-          KUPPO(IUP)=0
-          IF(MSTP(128).GE.2.AND.MOTHUP(1,IUP).GE.3) THEN
-            IDOC=IDOC-1
-            MINT(4)=MINT(4)-1
-            GOTO 470
-          ENDIF
-          I=I+1
-          KUPPO(IUP)=I
-          K(I,1)=21
-          K(I,2)=IDUP(IUP)
-          IF(IDUP(IUP).EQ.0) K(I,2)=90
-          K(I,3)=0
-          IF(MOTHUP(1,IUP).GE.3) K(I,3)=KUPPO(MOTHUP(1,IUP))
-          K(I,4)=0
-          K(I,5)=0
-          DO 460 J=1,5
-            P(I,J)=PUP(J,IUP)
-  460     CONTINUE
-          V(I,5)=VTIMUP(IUP)
-  470   CONTINUE
-        CALL PYROBO(MINT(83)+7,MINT(83)+4+NUP,0D0,VINT(24),0D0,0D0,
-     &  -BEZUP)
- 
-C...Store final state partons for user-defined processes
-        N=IPU2
-        DO 490 IUP=3,NUP
-          N=N+1
-          K(N,1)=1
-          IF(ISTUP(IUP).EQ.2.OR.ISTUP(IUP).EQ.3) K(N,1)=11
-          K(N,2)=IDUP(IUP)
-          IF(IDUP(IUP).EQ.0) K(N,2)=90
-          IF(MSTP(128).LE.0.OR.MOTHUP(1,IUP).EQ.0) THEN
-            K(N,3)=KUPPO(IUP)
-          ELSE
-            K(N,3)=MINT(84)+MOTHUP(1,IUP)
-          ENDIF
-          K(N,4)=0
-          K(N,5)=0
-C...Search for daughters of intermediate colourless particles.
-          IF(K(N,1).EQ.11.AND.KCHG(PYCOMP(K(N,2)),2).EQ.0) THEN
-            DO 475 IUPDAU=IUP+1,NUP
-              IF(MOTHUP(1,IUPDAU).EQ.IUP.AND.K(N,4).EQ.0) K(N,4)=
-     &        N+IUPDAU-IUP
-              IF(MOTHUP(1,IUPDAU).EQ.IUP) K(N,5)=N+IUPDAU-IUP
-  475       CONTINUE
-          ENDIF
-          DO 480 J=1,5
-            P(N,J)=PUP(J,IUP)
-  480     CONTINUE
-          V(N,5)=VTIMUP(IUP)
-  490   CONTINUE
-        CALL PYROBO(IPU3,N,0D0,VINT(24),0D0,0D0,-BEZUP)
- 
-C...Arrange colour flow for user-defined processes
-        NLBL=0
-        DO 540 IUP1=1,NUP
-          I1=MINT(84)+IUP1
-          IF(KCHG(PYCOMP(K(I1,2)),2).EQ.0) GOTO 540
-          IF(K(I1,1).EQ.1) K(I1,1)=3
-          IF(K(I1,1).EQ.11) K(I1,1)=14
-C...Find a not yet considered colour/anticolour line.
-          DO 530 ISDE1=1,2
-            IF(ICOLUP(ISDE1,IUP1).EQ.0) GOTO 530
-            NMAT=0
-            DO 500 ILBL=1,NLBL
-              IF(ICOLUP(ISDE1,IUP1).EQ.ILAB(ILBL)) NMAT=1
-  500       CONTINUE
-            IF(NMAT.EQ.0) THEN
-              NLBL=NLBL+1
-              ILAB(NLBL)=ICOLUP(ISDE1,IUP1)
-C...Find all others belonging to same line.
-              I3=I1
-              I4=0
-              DO 520 IUP2=IUP1+1,NUP
-                I2=MINT(84)+IUP2
-                DO 510 ISDE2=1,2
-                  IF(ICOLUP(ISDE2,IUP2).EQ.ICOLUP(ISDE1,IUP1)) THEN
-                    IF(ISDE2.EQ.ISDE1) THEN
-                      K(I3,3+ISDE2)=K(I3,3+ISDE2)+I2
-                      K(I2,3+ISDE2)=K(I2,3+ISDE2)+MSTU(5)*I3
-                      I3=I2
-                    ELSEIF(I4.NE.0) THEN
-                      K(I4,3+ISDE2)=K(I4,3+ISDE2)+I2
-                      K(I2,3+ISDE2)=K(I2,3+ISDE2)+MSTU(5)*I4
-                      I4=I2
-                    ELSEIF(IUP2.LE.2) THEN
-                      K(I1,3+ISDE1)=K(I1,3+ISDE1)+I2
-                      K(I2,3+ISDE2)=K(I2,3+ISDE2)+I1
-                      I4=I2
-                    ELSE
-                      K(I1,3+ISDE1)=K(I1,3+ISDE1)+MSTU(5)*I2
-                      K(I2,3+ISDE2)=K(I2,3+ISDE2)+MSTU(5)*I1
-                      I4=I2
-                    ENDIF
-                  ENDIF
-  510           CONTINUE
-  520         CONTINUE
-            ENDIF
-  530     CONTINUE
-  540   CONTINUE
- 
-      ELSEIF(IDOC.EQ.7) THEN
-C...Resonance not decaying; store kinematics
-        I=MINT(83)+7
-        K(IPU3,1)=1
-        K(IPU3,2)=KFRES
-        K(IPU3,3)=I
-        P(IPU3,4)=SHUSER
-        P(IPU3,5)=SHUSER
-        K(I,1)=21
-        K(I,2)=KFRES
-        P(I,4)=SHUSER
-        P(I,5)=SHUSER
-        N=IPU3
-        MINT(21)=KFRES
-        MINT(22)=0
- 
-C...Special cases: colour flow in coloured resonances
-        KCRES=PYCOMP(KFRES)
-        IF(KCHG(KCRES,2).NE.0) THEN
-          K(IPU3,1)=3
-          DO 550 J=1,2
-            JC=J
-            IF(KCS.EQ.-1) JC=3-J
-            IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
-     &      MINT(84)+ICOL(KCC,1,JC)
-            IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
-     &      MINT(84)+ICOL(KCC,2,JC)
-            IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU3,1).EQ.3) K(IPU3,J+3)=
-     &      MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
-  550     CONTINUE
-        ELSE
-          K(IPU1,4)=IPU2
-          K(IPU1,5)=IPU2
-          K(IPU2,4)=IPU1
-          K(IPU2,5)=IPU1
-        ENDIF
- 
-      ELSEIF(IDOC.EQ.8) THEN
-C...2 -> 2 processes: store outgoing partons in their CM-frame
-        DO 560 JT=1,2
-          I=MINT(84)+2+JT
-          KCA=PYCOMP(MINT(20+JT))
-          K(I,1)=1
-          IF(KCHG(KCA,2).NE.0) K(I,1)=3
-          K(I,2)=MINT(20+JT)
-          K(I,3)=MINT(83)+IDOC+JT-2
-          KFAA=IABS(K(I,2))
-          IF(KFPR(ISUBSV,1+MOD(JS+JT,2)).NE.0) THEN
-            P(I,5)=SQRT(VINT(63+MOD(JS+JT,2)))
-          ELSE
-            P(I,5)=PYMASS(K(I,2))
-          ENDIF
-          IF((KFAA.EQ.6.OR.KFAA.EQ.7.OR.KFAA.EQ.8).AND.
-     &    P(I,5).LT.PARP(42)) P(I,5)=PYMASS(K(I,2))
-  560   CONTINUE
-        IF(P(IPU3,5)+P(IPU4,5).GE.SHR) THEN
-          KFA1=IABS(MINT(21))
-          KFA2=IABS(MINT(22))
-          IF((KFA1.GT.3.AND.KFA1.NE.21).OR.(KFA2.GT.3.AND.KFA2.NE.21))
-     &    THEN
-            MINT(51)=1
-            RETURN
-          ENDIF
-          P(IPU3,5)=0D0
-          P(IPU4,5)=0D0
-        ENDIF
-        P(IPU3,4)=0.5D0*(SHR+(P(IPU3,5)**2-P(IPU4,5)**2)/SHR)
-        P(IPU3,3)=SQRT(MAX(0D0,P(IPU3,4)**2-P(IPU3,5)**2))
-        P(IPU4,4)=SHR-P(IPU3,4)
-        P(IPU4,3)=-P(IPU3,3)
-        N=IPU4
-        MINT(7)=MINT(83)+7
-        MINT(8)=MINT(83)+8
- 
-C...Rotate outgoing partons using cos(theta)=(th-uh)/lam(sh,sqm3,sqm4)
-        CALL PYROBO(IPU3,IPU4,ACOS(VINT(23)),VINT(24),0D0,0D0,0D0)
- 
-      ELSEIF(IDOC.EQ.9) THEN
-C...2 -> 3 processes: store outgoing partons in their CM frame
-        DO 570 JT=1,2
-          I=MINT(84)+2+JT
-          KCA=PYCOMP(MINT(20+JT))
-          K(I,1)=1
-          IF(KCHG(KCA,2).NE.0) K(I,1)=3
-          K(I,2)=MINT(20+JT)
-          K(I,3)=MINT(83)+IDOC+JT-3
-          JTA=JT
-C...t and b in opposide order in event list as compared to
-C...matrix element?
-          IF(ISUB.EQ.402.AND.IABS(MINT(21)).EQ.5) JTA=3-JT
-          IF(IABS(K(I,2)).LE.22) THEN
-            P(I,5)=PYMASS(K(I,2))
-          ELSE
-            P(I,5)=SQRT(VINT(63+MOD(JS+JTA,2)))
-          ENDIF
-          PT=SQRT(MAX(0D0,VINT(197+5*JTA)-P(I,5)**2+VINT(196+5*JTA)**2))
-          P(I,1)=PT*COS(VINT(198+5*JTA))
-          P(I,2)=PT*SIN(VINT(198+5*JTA))
-  570   CONTINUE
-        K(IPU5,1)=1
-        K(IPU5,2)=KFRES
-        K(IPU5,3)=MINT(83)+IDOC
-        P(IPU5,5)=SHR
-        P(IPU5,1)=-P(IPU3,1)-P(IPU4,1)
-        P(IPU5,2)=-P(IPU3,2)-P(IPU4,2)
-        PMS1=P(IPU3,5)**2+P(IPU3,1)**2+P(IPU3,2)**2
-        PMS2=P(IPU4,5)**2+P(IPU4,1)**2+P(IPU4,2)**2
-        PMS3=P(IPU5,5)**2+P(IPU5,1)**2+P(IPU5,2)**2
-        PMT3=SQRT(PMS3)
-        P(IPU5,3)=PMT3*SINH(VINT(211))
-        P(IPU5,4)=PMT3*COSH(VINT(211))
-        PMS12=(SHPR-P(IPU5,4))**2-P(IPU5,3)**2
-        SQL12=(PMS12-PMS1-PMS2)**2-4D0*PMS1*PMS2
-        IF(SQL12.LE.0D0) THEN
-          MINT(51)=1
-          RETURN
-        ENDIF
-        P(IPU3,3)=(-P(IPU5,3)*(PMS12+PMS1-PMS2)+
-     &  VINT(213)*(SHPR-P(IPU5,4))*SQRT(SQL12))/(2D0*PMS12)
-        P(IPU4,3)=-P(IPU3,3)-P(IPU5,3)
-        IF(ISUB.EQ.402.AND.IABS(MINT(21)).EQ.5) THEN
-C...t and b in opposide order in event list as compared to
-C...matrix element
-          P(IPU4,3)=(-P(IPU5,3)*(PMS12+PMS2-PMS1)+
-     &    VINT(213)*(SHPR-P(IPU5,4))*SQRT(SQL12))/(2D0*PMS12)
-          P(IPU3,3)=-P(IPU4,3)-P(IPU5,3)
-        END IF
-        P(IPU3,4)=SQRT(PMS1+P(IPU3,3)**2)
-        P(IPU4,4)=SQRT(PMS2+P(IPU4,3)**2)
-        MINT(23)=KFRES
-        N=IPU5
-        MINT(7)=MINT(83)+7
-        MINT(8)=MINT(83)+8
- 
-      ELSEIF(IDOC.EQ.11) THEN
-C...Z0 + Z0 -> h0, W+ + W- -> h0: store Higgs and outgoing partons
-        PHI(1)=PARU(2)*PYR(0)
-        PHI(2)=PHI(1)-PHIR
-        DO 580 JT=1,2
-          I=MINT(84)+2+JT
-          K(I,1)=1
-          IF(KCHG(PYCOMP(MINT(20+JT)),2).NE.0) K(I,1)=3
-          K(I,2)=MINT(20+JT)
-          K(I,3)=MINT(83)+IDOC+JT-2
-          P(I,5)=PYMASS(K(I,2))
-          IF(0.5D0*SHPR*Z(JT).LE.P(I,5)) THEN
-            MINT(51)=1
-            RETURN
-          ENDIF
-          PABS=SQRT(MAX(0D0,(0.5D0*SHPR*Z(JT))**2-P(I,5)**2))
-          PTABS=PABS*SQRT(MAX(0D0,1D0-CTHE(JT)**2))
-          P(I,1)=PTABS*COS(PHI(JT))
-          P(I,2)=PTABS*SIN(PHI(JT))
-          P(I,3)=PABS*CTHE(JT)*(-1)**(JT+1)
-          P(I,4)=0.5D0*SHPR*Z(JT)
-          IZW=MINT(83)+6+JT
-          K(IZW,1)=21
-          K(IZW,2)=23
-          IF(ISUB.EQ.8) K(IZW,2)=ISIGN(24,PYCHGE(MINT(14+JT)))
-          K(IZW,3)=IZW-2
-          P(IZW,1)=-P(I,1)
-          P(IZW,2)=-P(I,2)
-          P(IZW,3)=(0.5D0*SHPR-PABS*CTHE(JT))*(-1)**(JT+1)
-          P(IZW,4)=0.5D0*SHPR*(1D0-Z(JT))
-          P(IZW,5)=-SQRT(MAX(0D0,P(IZW,3)**2+PTABS**2-P(IZW,4)**2))
-  580   CONTINUE
-        I=MINT(83)+9
-        K(IPU5,1)=1
-        K(IPU5,2)=KFRES
-        K(IPU5,3)=I
-        P(IPU5,5)=SHR
-        P(IPU5,1)=-P(IPU3,1)-P(IPU4,1)
-        P(IPU5,2)=-P(IPU3,2)-P(IPU4,2)
-        P(IPU5,3)=-P(IPU3,3)-P(IPU4,3)
-        P(IPU5,4)=SHPR-P(IPU3,4)-P(IPU4,4)
-        K(I,1)=21
-        K(I,2)=KFRES
-        DO 590 J=1,5
-          P(I,J)=P(IPU5,J)
-  590   CONTINUE
-        N=IPU5
-        MINT(23)=KFRES
- 
-      ELSEIF(IDOC.EQ.12) THEN
-C...Z0 and W+/- scattering: store bosons and outgoing partons
-        PHI(1)=PARU(2)*PYR(0)
-        PHI(2)=PHI(1)-PHIR
-        JTRAN=INT(1.5D0+PYR(0))
-        DO 600 JT=1,2
-          I=MINT(84)+2+JT
-          K(I,1)=1
-          IF(KCHG(PYCOMP(MINT(20+JT)),2).NE.0) K(I,1)=3
-          K(I,2)=MINT(20+JT)
-          K(I,3)=MINT(83)+IDOC+JT-2
-          P(I,5)=PYMASS(K(I,2))
-          IF(0.5D0*SHPR*Z(JT).LE.P(I,5)) P(I,5)=0D0
-          PABS=SQRT(MAX(0D0,(0.5D0*SHPR*Z(JT))**2-P(I,5)**2))
-          PTABS=PABS*SQRT(MAX(0D0,1D0-CTHE(JT)**2))
-          P(I,1)=PTABS*COS(PHI(JT))
-          P(I,2)=PTABS*SIN(PHI(JT))
-          P(I,3)=PABS*CTHE(JT)*(-1)**(JT+1)
-          P(I,4)=0.5D0*SHPR*Z(JT)
-          IZW=MINT(83)+6+JT
-          K(IZW,1)=21
-          IF(MINT(14+JT).EQ.MINT(20+JT)) THEN
-            K(IZW,2)=23
-          ELSE
-            K(IZW,2)=ISIGN(24,PYCHGE(MINT(14+JT))-PYCHGE(MINT(20+JT)))
-          ENDIF
-          K(IZW,3)=IZW-2
-          P(IZW,1)=-P(I,1)
-          P(IZW,2)=-P(I,2)
-          P(IZW,3)=(0.5D0*SHPR-PABS*CTHE(JT))*(-1)**(JT+1)
-          P(IZW,4)=0.5D0*SHPR*(1D0-Z(JT))
-          P(IZW,5)=-SQRT(MAX(0D0,P(IZW,3)**2+PTABS**2-P(IZW,4)**2))
-          IPU=MINT(84)+4+JT
-          K(IPU,1)=3
-          K(IPU,2)=KFPR(ISUB,JT)
-          IF(ISUB.EQ.72.AND.JT.EQ.JTRAN) K(IPU,2)=-K(IPU,2)
-          IF(ISUB.EQ.73.OR.ISUB.EQ.77) K(IPU,2)=K(IZW,2)
-          K(IPU,3)=MINT(83)+8+JT
-          IF(IABS(K(IPU,2)).LE.10.OR.K(IPU,2).EQ.21) THEN
-            P(IPU,5)=PYMASS(K(IPU,2))
-          ELSE
-            P(IPU,5)=SQRT(VINT(63+MOD(JS+JT,2)))
-          ENDIF
-          MINT(22+JT)=K(IPU,2)
-  600   CONTINUE
-C...Find rotation and boost for hard scattering subsystem
-        I1=MINT(83)+7
-        I2=MINT(83)+8
-        BEXCM=(P(I1,1)+P(I2,1))/(P(I1,4)+P(I2,4))
-        BEYCM=(P(I1,2)+P(I2,2))/(P(I1,4)+P(I2,4))
-        BEZCM=(P(I1,3)+P(I2,3))/(P(I1,4)+P(I2,4))
-        GAMCM=(P(I1,4)+P(I2,4))/SHR
-        BEPCM=BEXCM*P(I1,1)+BEYCM*P(I1,2)+BEZCM*P(I1,3)
-        PX=P(I1,1)+GAMCM*(GAMCM/(1D0+GAMCM)*BEPCM-P(I1,4))*BEXCM
-        PY=P(I1,2)+GAMCM*(GAMCM/(1D0+GAMCM)*BEPCM-P(I1,4))*BEYCM
-        PZ=P(I1,3)+GAMCM*(GAMCM/(1D0+GAMCM)*BEPCM-P(I1,4))*BEZCM
-        THECM=PYANGL(PZ,SQRT(PX**2+PY**2))
-        PHICM=PYANGL(PX,PY)
-C...Store hard scattering subsystem. Rotate and boost it
-        SQLAM=(SH-P(IPU5,5)**2-P(IPU6,5)**2)**2-4D0*P(IPU5,5)**2*
-     &  P(IPU6,5)**2
-        PABS=SQRT(MAX(0D0,SQLAM/(4D0*SH)))
-        CTHWZ=VINT(23)
-        STHWZ=SQRT(MAX(0D0,1D0-CTHWZ**2))
-        PHIWZ=VINT(24)-PHICM
-        P(IPU5,1)=PABS*STHWZ*COS(PHIWZ)
-        P(IPU5,2)=PABS*STHWZ*SIN(PHIWZ)
-        P(IPU5,3)=PABS*CTHWZ
-        P(IPU5,4)=SQRT(PABS**2+P(IPU5,5)**2)
-        P(IPU6,1)=-P(IPU5,1)
-        P(IPU6,2)=-P(IPU5,2)
-        P(IPU6,3)=-P(IPU5,3)
-        P(IPU6,4)=SQRT(PABS**2+P(IPU6,5)**2)
-        CALL PYROBO(IPU5,IPU6,THECM,PHICM,BEXCM,BEYCM,BEZCM)
-        DO 620 JT=1,2
-          I1=MINT(83)+8+JT
-          I2=MINT(84)+4+JT
-          K(I1,1)=21
-          K(I1,2)=K(I2,2)
-          DO 610 J=1,5
-            P(I1,J)=P(I2,J)
-  610     CONTINUE
-  620   CONTINUE
-        N=IPU6
-        MINT(7)=MINT(83)+9
-        MINT(8)=MINT(83)+10
-      ENDIF
- 
-      IF(ISET(ISUB).EQ.11) THEN
-      ELSEIF(IDOC.GE.8) THEN
-C...Store colour connection indices
-        DO 630 J=1,2
-          JC=J
-          IF(KCS.EQ.-1) JC=3-J
-          IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
-     &    K(IPU1,J+3)+MINT(84)+ICOL(KCC,1,JC)
-          IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
-     &    K(IPU2,J+3)+MINT(84)+ICOL(KCC,2,JC)
-          IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU3,1).EQ.3) K(IPU3,J+3)=
-     &    MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
-          IF(ICOL(KCC,4,JC).NE.0.AND.K(IPU4,1).EQ.3) K(IPU4,J+3)=
-     &    MSTU(5)*(MINT(84)+ICOL(KCC,4,JC))
-  630   CONTINUE
- 
-C...Copy outgoing partons to documentation lines
-        IMAX=2
-        IF(IDOC.EQ.9) IMAX=3
-        DO 650 I=1,IMAX
-          I1=MINT(83)+IDOC-IMAX+I
-          I2=MINT(84)+2+I
-          K(I1,1)=21
-          K(I1,2)=K(I2,2)
-          IF(IDOC.LE.9) K(I1,3)=0
-          IF(IDOC.GE.11) K(I1,3)=MINT(83)+2+I
-          DO 640 J=1,5
-            P(I1,J)=P(I2,J)
-  640     CONTINUE
-  650   CONTINUE
- 
-      ELSEIF(IDOC.EQ.9) THEN
-C...Store colour connection indices
-        DO 660 J=1,2
-          JC=J
-          IF(KCS.EQ.-1) JC=3-J
-          IF(ICOL(KCC,1,JC).NE.0.AND.K(IPU1,1).EQ.14) K(IPU1,J+3)=
-     &    K(IPU1,J+3)+MINT(84)+ICOL(KCC,1,JC)+
-     &    MAX(0,MIN(1,ICOL(KCC,1,JC)-2))
-          IF(ICOL(KCC,2,JC).NE.0.AND.K(IPU2,1).EQ.14) K(IPU2,J+3)=
-     &    K(IPU2,J+3)+MINT(84)+ICOL(KCC,2,JC)+
-     &    MAX(0,MIN(1,ICOL(KCC,2,JC)-2))
-          IF(ICOL(KCC,3,JC).NE.0.AND.K(IPU4,1).EQ.3) K(IPU4,J+3)=
-     &    MSTU(5)*(MINT(84)+ICOL(KCC,3,JC))
-          IF(ICOL(KCC,4,JC).NE.0.AND.K(IPU5,1).EQ.3) K(IPU5,J+3)=
-     &    MSTU(5)*(MINT(84)+ICOL(KCC,4,JC))
-  660   CONTINUE
- 
-C...Copy outgoing partons to documentation lines
-        DO 680 I=1,3
-          I1=MINT(83)+IDOC-3+I
-          I2=MINT(84)+2+I
-          K(I1,1)=21
-          K(I1,2)=K(I2,2)
-          K(I1,3)=0
-          DO 670 J=1,5
-            P(I1,J)=P(I2,J)
-  670     CONTINUE
-  680   CONTINUE
-      ENDIF
- 
-C...Copy outgoing partons to list of allowed radiators.
-      NPART=0
-      IF(MINT(35).GE.2.AND.ISET(ISUB).NE.0) THEN
-        DO 690 I=MINT(84)+3,N
-          NPART=NPART+1
-          IPART(NPART)=I
-          PTPART(NPART)=SQRT(P(I,5)**2+P(I,1)**2+P(I,2)**2)
-  690   CONTINUE
-      ENDIF
- 
-C...Low-pT events: remove gluons used for string drawing purposes
-      IF(ISUB.EQ.95) THEN
-        IF(MINT(35).LE.1) THEN
-          K(IPU3,1)=K(IPU3,1)+10
-          K(IPU4,1)=K(IPU4,1)+10
-        ENDIF
-        DO 700 J=41,66
-          VINTSV(J)=VINT(J)
-          VINT(J)=0D0
-  700   CONTINUE
-        DO 720 I=MINT(83)+5,MINT(83)+8
-          DO 710 J=1,5
-            P(I,J)=0D0
-  710     CONTINUE
-  720   CONTINUE
-      ENDIF
- 
-      RETURN
-      END
- 
diff --git a/Generators/PythiaExo_i/src/PythiaModified/pysgex.F b/Generators/PythiaExo_i/src/PythiaModified/pysgex.F
deleted file mode 100644
index 948f788a82a0f2deb7af43ceaefe9d05e783351d..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaModified/pysgex.F
+++ /dev/null
@@ -1,873 +0,0 @@
-C...PYSGEX
-C...Subprocess cross sections for assorted exotic processes,
-C...including Z'/W'/LQ/R/f*/H++/Z_R/W_R/G*.
-C...Auxiliary to PYSIGH.
-
-C ATLAS - locally modified version; controlled by /SPSGEX/ common
-C W', Z' and graviton with flat mass spectrum via the removal of the breit-wigner term:
-C        enabled for /SPSGEX/ISSP.EQ.1
-
-      SUBROUTINE PYSGEX(NCHN,SIGS)
- 
-C...Double precision and integer declarations
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers.
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
-     &KEXCIT=4000000,KDIMEN=5000000)
-C...Commonblocks
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYTCSM/ITCM(0:99),RTCM(0:99)
-      COMMON/PYSGCM/ISUB,ISUBSV,MMIN1,MMAX1,MMIN2,MMAX2,MMINA,MMAXA,
-     &KFAC(2,-40:40),COMFAC,FACK,FACA,SH,TH,UH,SH2,TH2,UH2,SQM3,SQM4,
-     &SHR,SQPTH,TAUP,BE34,CTH,X(2),SQMZ,SQMW,GMMZ,GMMW,
-     &AEM,AS,XW,XW1,XWC,XWV,POLL,POLR,POLLL,POLRR
-      
-C ATLAS-specific commonB:
-      COMMON/SPSGEX/ISSP
-      SAVE /SPSGEX/
-
-      SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,/PYINT2/,
-     &/PYINT3/,/PYINT4/,/PYTCSM/,/PYSGCM/
-C...Local arrays
-      DIMENSION WDTP(0:400),WDTE(0:400,0:5)
-      
-      IF(ISUB.LE.160) THEN
-        IF(ISUB.EQ.141) THEN
-C...f + fbar -> gamma*/Z0/Z'0
-          SQMZP=PMAS(32,1)**2
-          MINT(61)=2
-          CALL PYWIDT(32,SH,WDTP,WDTE)
-          HP0=AEM/3D0*SH
-          HP1=AEM/3D0*XWC*SH
-          HP2=HP1
-          HS=SHR*VINT(117)
-          HSP=SHR*WDTP(0)
-          FACZP=4D0*COMFAC*3D0
-          DO 100 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 100
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            IA=IABS(I)
-            IF(IA.LT.10) THEN
-              IF(IA.LE.2) THEN
-                VPI=PARU(123-2*MOD(IABS(I),2))
-                API=PARU(124-2*MOD(IABS(I),2))
-              ELSEIF(IA.LE.4) THEN
-                VPI=PARJ(182-2*MOD(IABS(I),2))
-                API=PARJ(183-2*MOD(IABS(I),2))
-              ELSE
-                VPI=PARJ(190-2*MOD(IABS(I),2))
-                API=PARJ(191-2*MOD(IABS(I),2))
-              ENDIF
-            ELSE
-              IF(IA.LE.12) THEN
-                VPI=PARU(127-2*MOD(IABS(I),2))
-                API=PARU(128-2*MOD(IABS(I),2))
-              ELSEIF(IA.LE.14) THEN
-                VPI=PARJ(186-2*MOD(IABS(I),2))
-                API=PARJ(187-2*MOD(IABS(I),2))
-              ELSE
-                VPI=PARJ(194-2*MOD(IABS(I),2))
-                API=PARJ(195-2*MOD(IABS(I),2))
-              ENDIF
-            ENDIF
-            HI0=HP0
-            IF(IABS(I).LE.10) HI0=HI0*FACA/3D0
-            HI1=HP1
-            IF(IABS(I).LE.10) HI1=HI1*FACA/3D0
-            HI2=HP2
-            IF(IABS(I).LE.10) HI2=HI2*FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-C...Special case: if only branching ratios known then use them.
-            IF(MWID(32).EQ.2.AND.MSTP(44).EQ.3) THEN
-              HI=0D0
-              IF(IA.LT.10) THEN
-                HI=SHR*WDTP(IA)*FACA/9D0
-              ELSEIF(IA.LT.20) THEN
-                HI=SHR*WDTP(IA-2)
-              ENDIF
-              HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-              SIGH(NCHN)=HI*FACZP*HF/((SH-SQMZP)**2+HSP**2)
-            ELSE
-C...Normal cross section.
-              SIGH(NCHN)=FACZP*(EI**2/SH2*HI0*HP0*VINT(111)+EI*VI*
-     &        (1D0-SQMZ/SH)/((SH-SQMZ)**2+HS**2)*(HI0*HP1+HI1*HP0)*
-     &        VINT(112)+EI*VPI*(1D0-SQMZP/SH)/((SH-SQMZP)**2+HSP**2)*
-     &        (HI0*HP2+HI2*HP0)*VINT(113)+(VI**2+AI**2)/
-     &        ((SH-SQMZ)**2+HS**2)*HI1*HP1*VINT(114)+(VI*VPI+AI*API)*
-     &        ((SH-SQMZ)*(SH-SQMZP)+HS*HSP)/(((SH-SQMZ)**2+HS**2)*
-     &        ((SH-SQMZP)**2+HSP**2))*(HI1*HP2+HI2*HP1)*VINT(115)+
-     &        (VPI**2+API**2)/((SH-SQMZP)**2+HSP**2)*HI2*HP2*VINT(116))
-              IF (ISSP.EQ.1) THEN
-C...  Take out Breit-Wigner dependence OSC Apr/11/2010
-                 SIGH(NCHN) = SIGH(NCHN) * ((SH-SQMZP)**2+HSP**2)
-C...  Supress low mass events from parton luminosities with simple exp fct
-                 SIGH(NCHN) = SIGH(NCHN)/(exp(-0.00195*SQRT(SH)))      
-              ENDIF
-           ENDIF
-  100     CONTINUE
- 
-        ELSEIF(ISUB.EQ.142) THEN
-C...f + fbar' -> W'+/-
-          SQMWP=PMAS(34,1)**2
-          CALL PYWIDT(34,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMWP)**2+HS**2)*3D0
-          HP=AEM/(24D0*XW)*SH
-          DO 120 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 120
-            IA=IABS(I)
-            DO 110 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 110
-              JA=IABS(J)
-              IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 110
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 110
-              KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-C...Special case: if only branching ratios known then use them.
-              IF(MWID(34).EQ.2) THEN
-                HI=0D0
-                DO 105 IDC=MDCY(34,2),MDCY(34,2)+MDCY(34,3)-1
-                  IF((IA.EQ.IABS(KFDP(IDC,1)).AND.JA.EQ.
-     &            IABS(KFDP(IDC,2))).OR.(IA.EQ.IABS(KFDP(IDC,2))
-     &            .AND.JA.EQ.IABS(KFDP(IDC,1))))
-     &             HI=SHR*WDTP(IDC+1-MDCY(34,2))
-  105           CONTINUE
-                IF(IA.LT.10) HI=HI*FACA/9D0
-              ELSE
-C...Normal cross section.
-                HI=HP*(PARU(133)**2+PARU(134)**2)
-                IF(IA.LE.10) HI=HP*(PARU(131)**2+PARU(132)**2)*
-     &          VCKM((IA+1)/2,(JA+1)/2)*FACA/3D0
-              ENDIF 
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))
-              SIGH(NCHN)=HI*FACBW*HF
-              IF (ISSP.EQ.1) THEN
-C...  Take out Breit-Wigner dependence OSC Apr/11/2010
-                 SIGH(NCHN)=SIGH(NCHN) * ((SH-SQMWP)**2+HS**2)
-C...  Supress low mass events from parton luminosities with simple exp fct
-                 SIGH(NCHN) = SIGH(NCHN)/(exp(-0.00195*SQRT(SH)))
-              ENDIF
- 110       CONTINUE
- 120    CONTINUE
-        
-      ELSEIF(ISUB.EQ.144) THEN
-C...  f + fbar' -> R
-          SQMR=PMAS(41,1)**2
-          CALL PYWIDT(41,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMR)**2+HS**2)*3D0
-          HP=AEM/(12D0*XW)*SH
-          DO 140 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 140
-            IA=IABS(I)
-            DO 130 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 130
-              JA=IABS(J)
-              IF(I*J.GT.0.OR.IABS(IA-JA).NE.2) GOTO 130
-              HI=HP
-              IF(IA.LE.10) HI=HI*FACA/3D0
-              HF=SHR*(WDTE(0,1)+WDTE(0,(10-(I+J))/4)+WDTE(0,4))
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=HI*FACBW*HF
-  130       CONTINUE
-  140     CONTINUE
- 
-        ELSEIF(ISUB.EQ.145) THEN
-C...q + l -> LQ (leptoquark)
-          SQMLQ=PMAS(42,1)**2
-          CALL PYWIDT(42,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMLQ)**2+HS**2)
-          IF(ABS(SHR-PMAS(42,1)).GT.PARP(48)*PMAS(42,2)) FACBW=0D0
-          HP=AEM/4D0*SH
-          KFLQQ=KFDP(MDCY(42,2),1)
-          KFLQL=KFDP(MDCY(42,2),2)
-          DO 160 I=MMIN1,MMAX1
-            IF(KFAC(1,I).EQ.0) GOTO 160
-            IA=IABS(I)
-            IF(IA.NE.KFLQQ.AND.IA.NE.IABS(KFLQL)) GOTO 160
-            DO 150 J=MMIN2,MMAX2
-              IF(KFAC(2,J).EQ.0) GOTO 150
-              JA=IABS(J)
-              IF(JA.NE.KFLQQ.AND.JA.NE.IABS(KFLQL)) GOTO 150
-              IF(I*J.NE.KFLQQ*KFLQL) GOTO 150
-              IF(JA.EQ.IA) GOTO 150
-              IF(IA.EQ.KFLQQ) KCHLQ=ISIGN(1,I)
-              IF(JA.EQ.KFLQQ) KCHLQ=ISIGN(1,J)
-              HI=HP*PARU(151)
-              HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHLQ)/2)+WDTE(0,4))
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=HI*FACBW*HF
-  150       CONTINUE
-  160     CONTINUE
- 
-        ELSEIF(ISUB.EQ.146) THEN
-C...e + gamma* -> e* (excited lepton)
-          KFQSTR=KFPR(ISUB,1)
-          KCQSTR=PYCOMP(KFQSTR)
-          KFQEXC=MOD(KFQSTR,KEXCIT)
-          CALL PYWIDT(KFQSTR,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=COMFAC/((SH-PMAS(KCQSTR,1)**2)**2+HS**2)
-          QF=-RTCM(43)/2D0-RTCM(44)/2D0
-          FACBW=FACBW*AEM*QF**2*SH/RTCM(41)**2
-          IF(ABS(SHR-PMAS(KCQSTR,1)).GT.PARP(48)*PMAS(KCQSTR,2))
-     &    FACBW=0D0
-          HP=SH
-          DO 180 I=-KFQEXC,KFQEXC,2*KFQEXC
-            DO 170 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 170
-              IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 170
-              HI=HP
-              IF(I.GT.0) HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-              IF(I.LT.0) HF=SHR*(WDTE(0,1)+WDTE(0,3)+WDTE(0,4))
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=22
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=HI*FACBW*HF
-  170       CONTINUE
-  180     CONTINUE
- 
-        ELSEIF(ISUB.EQ.147.OR.ISUB.EQ.148) THEN
-C...d + g -> d* and u + g -> u* (excited quarks)
-          KFQSTR=KFPR(ISUB,1)
-          KCQSTR=PYCOMP(KFQSTR)
-          KFQEXC=MOD(KFQSTR,KEXCIT)
-          CALL PYWIDT(KFQSTR,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=COMFAC/((SH-PMAS(KCQSTR,1)**2)**2+HS**2)
-          FACBW=FACBW*AS*RTCM(45)**2*SH/(3D0*RTCM(41)**2)
-          IF(ABS(SHR-PMAS(KCQSTR,1)).GT.PARP(48)*PMAS(KCQSTR,2))
-     &    FACBW=0D0
-          HP=SH
-          DO 200 I=-KFQEXC,KFQEXC,2*KFQEXC
-            DO 190 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 190
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 190
-              HI=HP
-              IF(I.GT.0) HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-              IF(I.LT.0) HF=SHR*(WDTE(0,1)+WDTE(0,3)+WDTE(0,4))
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=HI*FACBW*HF
-  190       CONTINUE
-  200     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.190) THEN
-        IF(ISUB.EQ.162) THEN
-C...q + g -> LQ + lbar; LQ=leptoquark
-          SQMLQ=PMAS(42,1)**2
-          FACLQ=COMFAC*FACA*PARU(151)*(AS*AEM/6D0)*(-TH/SH)*
-     &    (UH2+SQMLQ**2)/(UH-SQMLQ)**2
-          KFLQQ=KFDP(MDCY(42,2),1)
-          DO 220 I=MMINA,MMAXA
-            IF(IABS(I).NE.KFLQQ) GOTO 220
-            KCHLQ=ISIGN(1,I)
-            DO 210 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 210
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 210
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACLQ*WIDS(42,(5-KCHLQ)/2)
-  210       CONTINUE
-  220     CONTINUE
- 
-        ELSEIF(ISUB.EQ.163) THEN
-C...g + g -> LQ + LQbar; LQ=leptoquark
-          SQMLQ=PMAS(42,1)**2
-          FACLQ=COMFAC*FACA*WIDS(42,1)*(AS**2/2D0)*
-     &    (7D0/48D0+3D0*(UH-TH)**2/(16D0*SH2))*(1D0+2D0*SQMLQ*TH/
-     &    (TH-SQMLQ)**2+2D0*SQMLQ*UH/(UH-SQMLQ)**2+4D0*SQMLQ**2/
-     &    ((TH-SQMLQ)*(UH-SQMLQ)))
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 230
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-C...Since don't know proper colour flow, randomize between alternatives
-          ISIG(NCHN,3)=INT(1.5D0+PYR(0))
-          SIGH(NCHN)=FACLQ
-  230     CONTINUE
- 
-        ELSEIF(ISUB.EQ.164) THEN
-C...q + qbar -> LQ + LQbar; LQ=leptoquark
-          DELTA=0.25D0*(SQM3-SQM4)**2/SH
-          SQMLQ=0.5D0*(SQM3+SQM4)-DELTA
-          TH=TH-DELTA
-          UH=UH-DELTA
-C          SQMLQ=PMAS(42,1)**2
-          FACLQA=COMFAC*WIDS(42,1)*(AS**2/9D0)*
-     &    (SH*(SH-4D0*SQMLQ)-(UH-TH)**2)/SH2
-          FACLQS=COMFAC*WIDS(42,1)*((PARU(151)**2*AEM**2/8D0)*
-     &    (-SH*TH-(SQMLQ-TH)**2)/TH2+(PARU(151)*AEM*AS/18D0)*
-     &    ((SQMLQ-TH)*(UH-TH)+SH*(SQMLQ+TH))/(SH*TH))
-          KFLQQ=KFDP(MDCY(42,2),1)
-          DO 240 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &      KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 240
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACLQA
-            IF(IABS(I).EQ.KFLQQ) SIGH(NCHN)=FACLQA+FACLQS
-  240     CONTINUE
- 
-        ELSEIF(ISUB.EQ.167.OR.ISUB.EQ.168) THEN
-C...q + q' -> q" + d* and q + q' -> q" + u* (excited quarks)
-          KFQSTR=KFPR(ISUB,2)
-          KCQSTR=PYCOMP(KFQSTR)
-          KFQEXC=MOD(KFQSTR,KEXCIT)
-          FACQSA=COMFAC*(SH/RTCM(41)**2)**2*(1D0-SQM4/SH)
-          FACQSB=COMFAC*0.25D0*(SH/RTCM(41)**2)**2*(1D0-SQM4/SH)*
-     &    (1D0+SQM4/SH)*(1D0+CTH)*(1D0+((SH-SQM4)/(SH+SQM4))*CTH)
-C...Propagators: as simulated in PYOFSH and as desired
-          GMMQ=PMAS(KCQSTR,1)*PMAS(KCQSTR,2)
-          HBW4=GMMQ/((SQM4-PMAS(KCQSTR,1)**2)**2+GMMQ**2)
-          CALL PYWIDT(KFQSTR,SQM4,WDTP,WDTE)
-          GMMQC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMQC/((SQM4-PMAS(KCQSTR,1)**2)**2+GMMQC**2)
-          FACQSA=FACQSA*HBW4C/HBW4
-          FACQSB=FACQSB*HBW4C/HBW4
-C...Branching ratios.
-          BRPOS=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/WDTP(0)
-          BRNEG=(WDTE(0,1)+WDTE(0,3)+WDTE(0,4))/WDTP(0)
-          DO 260 I=MMIN1,MMAX1
-            IA=IABS(I)
-            IF(I.EQ.0.OR.IA.GT.6.OR.KFAC(1,I).EQ.0) GOTO 260
-            DO 250 J=MMIN2,MMAX2
-              JA=IABS(J)
-              IF(J.EQ.0.OR.JA.GT.6.OR.KFAC(2,J).EQ.0) GOTO 250
-              IF(IA.EQ.KFQEXC.AND.I.EQ.J) THEN
-                NCHN=NCHN+1
-                ISIG(NCHN,1)=I
-                ISIG(NCHN,2)=J
-                ISIG(NCHN,3)=1
-                IF(I.GT.0) SIGH(NCHN)=(4D0/3D0)*FACQSA*BRPOS
-                IF(I.LT.0) SIGH(NCHN)=(4D0/3D0)*FACQSA*BRNEG
-                NCHN=NCHN+1
-                ISIG(NCHN,1)=I
-                ISIG(NCHN,2)=J
-                ISIG(NCHN,3)=2
-                IF(J.GT.0) SIGH(NCHN)=(4D0/3D0)*FACQSA*BRPOS
-                IF(J.LT.0) SIGH(NCHN)=(4D0/3D0)*FACQSA*BRNEG
-              ELSEIF((IA.EQ.KFQEXC.OR.JA.EQ.KFQEXC).AND.I*J.GT.0) THEN
-                NCHN=NCHN+1
-                ISIG(NCHN,1)=I
-                ISIG(NCHN,2)=J
-                ISIG(NCHN,3)=1
-                IF(JA.EQ.KFQEXC) ISIG(NCHN,3)=2
-                IF(ISIG(NCHN,ISIG(NCHN,3)).GT.0) SIGH(NCHN)=FACQSA*BRPOS
-                IF(ISIG(NCHN,ISIG(NCHN,3)).LT.0) SIGH(NCHN)=FACQSA*BRNEG
-              ELSEIF(IA.EQ.KFQEXC.AND.I.EQ.-J) THEN
-                NCHN=NCHN+1
-                ISIG(NCHN,1)=I
-                ISIG(NCHN,2)=J
-                ISIG(NCHN,3)=1
-                IF(I.GT.0) SIGH(NCHN)=(8D0/3D0)*FACQSB*BRPOS
-                IF(I.LT.0) SIGH(NCHN)=(8D0/3D0)*FACQSB*BRNEG
-                NCHN=NCHN+1
-                ISIG(NCHN,1)=I
-                ISIG(NCHN,2)=J
-                ISIG(NCHN,3)=2
-                IF(J.GT.0) SIGH(NCHN)=(8D0/3D0)*FACQSB*BRPOS
-                IF(J.LT.0) SIGH(NCHN)=(8D0/3D0)*FACQSB*BRNEG
-              ELSEIF(I.EQ.-J) THEN
-                NCHN=NCHN+1
-                ISIG(NCHN,1)=I
-                ISIG(NCHN,2)=J
-                ISIG(NCHN,3)=1
-                IF(I.GT.0) SIGH(NCHN)=FACQSB*BRPOS
-                IF(I.LT.0) SIGH(NCHN)=FACQSB*BRNEG
-                NCHN=NCHN+1
-                ISIG(NCHN,1)=I
-                ISIG(NCHN,2)=J
-                ISIG(NCHN,3)=2
-                IF(J.GT.0) SIGH(NCHN)=FACQSB*BRPOS
-                IF(J.LT.0) SIGH(NCHN)=FACQSB*BRNEG
-              ELSEIF(IA.EQ.KFQEXC.OR.JA.EQ.KFQEXC) THEN
-                NCHN=NCHN+1
-                ISIG(NCHN,1)=I
-                ISIG(NCHN,2)=J
-                ISIG(NCHN,3)=1
-                IF(JA.EQ.KFQEXC) ISIG(NCHN,3)=2
-                IF(ISIG(NCHN,ISIG(NCHN,3)).GT.0) SIGH(NCHN)=FACQSB*BRPOS
-                IF(ISIG(NCHN,ISIG(NCHN,3)).LT.0) SIGH(NCHN)=FACQSB*BRNEG
-              ENDIF
-  250       CONTINUE
-  260     CONTINUE
- 
-        ELSEIF(ISUB.EQ.169) THEN
-C...q + qbar -> e + e* (excited lepton)
-          KFQSTR=KFPR(ISUB,2)
-          KCQSTR=PYCOMP(KFQSTR)
-          KFQEXC=MOD(KFQSTR,KEXCIT)
-          FACQSB=(COMFAC/12D0)*(SH/RTCM(41)**2)**2*(1D0-SQM4/SH)*
-     &    (1D0+SQM4/SH)*(1D0+CTH)*(1D0+((SH-SQM4)/(SH+SQM4))*CTH)
-C...Propagators: as simulated in PYOFSH and as desired
-          GMMQ=PMAS(KCQSTR,1)*PMAS(KCQSTR,2)
-          HBW4=GMMQ/((SQM4-PMAS(KCQSTR,1)**2)**2+GMMQ**2)
-          CALL PYWIDT(KFQSTR,SQM4,WDTP,WDTE)
-          GMMQC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMQC/((SQM4-PMAS(KCQSTR,1)**2)**2+GMMQC**2)
-          FACQSB=FACQSB*HBW4C/HBW4
-C...Branching ratios.
-          BRPOS=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/WDTP(0)
-          BRNEG=(WDTE(0,1)+WDTE(0,3)+WDTE(0,4))/WDTP(0)
-          DO 270 I=MMIN1,MMAX1
-            IA=IABS(I)
-            IF(I.EQ.0.OR.IA.GT.6.OR.KFAC(1,I).EQ.0) GOTO 270
-            J=-I
-            JA=IABS(J)
-            IF(J.EQ.0.OR.JA.GT.6.OR.KFAC(2,J).EQ.0) GOTO 270
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=J
-            ISIG(NCHN,3)=1
-            IF(I.GT.0) SIGH(NCHN)=FACQSB*BRPOS
-            IF(I.LT.0) SIGH(NCHN)=FACQSB*BRNEG
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=J
-            ISIG(NCHN,3)=2
-            IF(J.GT.0) SIGH(NCHN)=FACQSB*BRPOS
-            IF(J.LT.0) SIGH(NCHN)=FACQSB*BRNEG
-  270     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.360) THEN
-        IF(ISUB.EQ.341.OR.ISUB.EQ.342) THEN
-C...l + l -> H_L++/-- or H_R++/--.
-          KFRES=KFPR(ISUB,1)
-          KFREC=PYCOMP(KFRES)
-          CALL PYWIDT(KFRES,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=8D0*COMFAC/((SH-PMAS(KFREC,1)**2)**2+HS**2)
-          DO 290 I=MMIN1,MMAX1
-            IA=IABS(I)
-            IF((IA.NE.11.AND.IA.NE.13.AND.IA.NE.15).OR.KFAC(1,I).EQ.0)
-     &      GOTO 290
-            DO 280 J=MMIN2,MMAX2
-              JA=IABS(J)
-              IF((JA.NE.11.AND.JA.NE.13.AND.JA.NE.15).OR.KFAC(2,J).EQ.0)
-     &        GOTO 280
-              IF(I*J.LT.0) GOTO 280
-              KCHH=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              HI=SH*PARP(181+3*((IA-11)/2)+(JA-11)/2)**2/(8D0*PARU(1))
-              HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHH/2)/2)+WDTE(0,4))
-              SIGH(NCHN)=HI*FACBW*HF
-  280       CONTINUE
-  290     CONTINUE
- 
-        ELSEIF(ISUB.GE.343.AND.ISUB.LE.348) THEN
-C...l + gamma -> H_L++/-- l' or l + gamma -> H_R++/-- l'.
-          KFRES=KFPR(ISUB,1)
-          KFREC=PYCOMP(KFRES)
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW3=PMAS(KFREC,1)*PMAS(KFREC,2)/((SQM3-PMAS(KFREC,1)**2)**2+
-     &    (PMAS(KFREC,1)*PMAS(KFREC,2))**2)
-          CALL PYWIDT(KFRES,SQM3,WDTP,WDTE)
-          GMMC=SQRT(SQM3)*WDTP(0)
-          HBW3C=GMMC/((SQM3-PMAS(KFREC,1)**2)**2+GMMC**2)
-          FHCC=COMFAC*AEM*HBW3C/HBW3
-          DO 310 I=MMINA,MMAXA
-            IA=IABS(I)
-            IF(IA.NE.11.AND.IA.NE.13.AND.IA.NE.15) GOTO 310
-            SQML=PMAS(IA,1)**2
-            J=ISIGN(KFPR(ISUB,2),-I)
-            KCHH=ISIGN(2,KCHG(IA,1)*ISIGN(1,I))
-            WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHH/2)/2)+WDTE(0,4))/WDTP(0)
-            SMM1=8D0*(SH+TH-SQM3)*(SH+TH-2D0*SQM3-SQML-SQM4)/
-     &      (UH-SQM3)**2
-            SMM2=2D0*((2D0*SQM3-3D0*SQML)*SQM4+(SQML-2D0*SQM4)*TH-
-     &      (TH-SQM4)*SH)/(TH-SQM4)**2
-            SMM3=2D0*((2D0*SQM3-3D0*SQM4+TH)*SQML-(2D0*SQML-SQM4+TH)*
-     &      SH)/(SH-SQML)**2
-            SMM12=4D0*((2D0*SQML-SQM4-2D0*SQM3+TH)*SH+(TH-3D0*SQM3-
-     &      3D0*SQM4)*TH+(2D0*SQM3-2D0*SQML+3D0*SQM4)*SQM3)/
-     &      ((UH-SQM3)*(TH-SQM4))
-            SMM13=-4D0*((TH+SQML-2D0*SQM4)*TH-(SQM3+3D0*SQML-2D0*SQM4)*
-     &      SQM3+(SQM3+3D0*SQML+TH)*SH-(TH-SQM3+SH)**2)/
-     &      ((UH-SQM3)*(SH-SQML))
-            SMM23=-4D0*((SQML-SQM4+SQM3)*TH-SQM3**2+SQM3*(SQML+SQM4)-
-     &      3D0*SQML*SQM4-(SQML-SQM4-SQM3+TH)*SH)/
-     &      ((SH-SQML)*(TH-SQM4))
-            SMM=(SH/(SH-SQML))**2*(SMM1+SMM2+SMM3+SMM12+SMM13+SMM23)*
-     &      PARP(181+3*((IA-11)/2)+(IABS(J)-11)/2)**2/(4D0*PARU(1))
-            DO 300 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 300
-              IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 300
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=22
-              ISIG(NCHN,3)=0
-              SIGH(NCHN)=FHCC*SMM*WIDSC
-  300       CONTINUE
-  310     CONTINUE
- 
-        ELSEIF(ISUB.EQ.349.OR.ISUB.EQ.350) THEN
-C...f + fbar -> H_L++ + H_L-- or H_R++ + H_R--
-          KFRES=KFPR(ISUB,1)
-          KFREC=PYCOMP(KFRES)
-          SQMH=PMAS(KFREC,1)**2
-          GMMH=PMAS(KFREC,1)*PMAS(KFREC,2)
-C...Propagators: H++/-- as simulated in PYOFSH and as desired
-          HBW3=GMMH/((SQM3-SQMH)**2+GMMH**2)
-          CALL PYWIDT(KFRES,SQM3,WDTP,WDTE)
-          GMMH3=SQRT(SQM3)*WDTP(0)
-          HBW3C=GMMH3/((SQM3-SQMH)**2+GMMH3**2)
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          CALL PYWIDT(KFRES,SQM4,WDTP,WDTE)
-          GMMH4=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMH4/((SQM4-SQMH)**2+GMMH4**2)
-C...Kinematical and coupling functions
-          FACHH=COMFAC*(HBW3C/HBW3)*(HBW4C/HBW4)*(TH*UH-SQM3*SQM4)
-          XWHH=(1D0-2D0*XWV)/(8D0*XWV*(1D0-XWV))
-C...Loop over allowed flavours
-          DO 320 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 320
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI+0.1D0)
-            VI=AI-4D0*EI*XWV
-            FCOI=1D0
-            IF(IABS(I).LE.10) FCOI=FACA/3D0
-            IF(ISUB.EQ.349) THEN
-              HBWZ=1D0/((SH-SQMZ)**2+GMMZ**2)
-              IF(IABS(I).LT.10) THEN
-                DSIGHH=8D0*AEM**2*(EI**2/SH2+
-     &          2D0*EI*VI*XWHH*(SH-SQMZ)*HBWZ/SH+
-     &          (VI**2+AI**2)*XWHH**2*HBWZ)
-              ELSE
-                IAOFF=181+3*((IABS(I)-11)/2)
-                HSUM=(PARP(IAOFF)**2+PARP(IAOFF+1)**2+PARP(IAOFF+2)**2)/
-     &          (4D0*PARU(1))
-                DSIGHH=8D0*AEM**2*(EI**2/SH2+
-     &          2D0*EI*VI*XWHH*(SH-SQMZ)*HBWZ/SH+
-     &          (VI**2+AI**2)*XWHH**2*HBWZ)+
-     &          8D0*AEM*(EI*HSUM/(SH*TH)+
-     &          (VI+AI)*XWHH*HSUM*(SH-SQMZ)*HBWZ/TH)+
-     &          4D0*HSUM**2/TH2
-              ENDIF
-            ELSE
-              IF(IABS(I).LT.10) THEN
-                DSIGHH=8D0*AEM**2*EI**2/SH2
-              ELSE
-                IAOFF=181+3*((IABS(I)-11)/2)
-                HSUM=(PARP(IAOFF)**2+PARP(IAOFF+1)**2+PARP(IAOFF+2)**2)/
-     &          (4D0*PARU(1))
-                DSIGHH=8D0*AEM**2*EI**2/SH2+8D0*AEM*EI*HSUM/(SH*TH)+
-     &          4D0*HSUM**2/TH2
-              ENDIF
-            ENDIF
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACHH*FCOI*DSIGHH
-  320     CONTINUE
- 
-        ELSEIF(ISUB.EQ.351.OR.ISUB.EQ.352) THEN
-C...f + f' -> f" + f"' + H++/-- (W+/- + W+/- -> H++/-- as inner process)
-          KFRES=KFPR(ISUB,1)
-          KFREC=PYCOMP(KFRES)
-          SQMH=PMAS(KFREC,1)**2
-          IF(ISUB.EQ.351) FACNOR=PARP(190)**8*PARP(192)**2
-          IF(ISUB.EQ.352) FACNOR=PARP(191)**6*2D0*
-     &    PMAS(PYCOMP(9900024),1)**2
-          FACWW=COMFAC*FACNOR*TAUP*VINT(2)*VINT(219)
-          FACPRT=1D0/((VINT(204)**2-VINT(215))*
-     &    (VINT(209)**2-VINT(216)))
-          FACPRU=1D0/((VINT(204)**2+2D0*VINT(217))*
-     &    (VINT(209)**2+2D0*VINT(218)))
-          CALL PYWIDT(KFRES,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=(1D0/PARU(1))*VINT(2)/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFREC,1)).GT.PARP(48)*PMAS(KFREC,2))
-     &    FACBW=0D0
-          DO 340 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 340
-            IF(ISUB.EQ.352.AND.IABS(I).GT.10) GOTO 340
-            KCHWI=(1-2*MOD(IABS(I),2))*ISIGN(1,I)
-            DO 330 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 330
-              IF(ISUB.EQ.352.AND.IABS(J).GT.10) GOTO 330
-              KCHWJ=(1-2*MOD(IABS(J),2))*ISIGN(1,J)
-              KCHH=KCHWI+KCHWJ
-              IF(IABS(KCHH).NE.2) GOTO 330
-              FACLR=VINT(180+I)*VINT(180+J)
-              HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHH/2)/2)+WDTE(0,4))
-              IF(I.EQ.J.AND.IABS(I).GT.10) THEN
-                FACPRP=0.5D0*(FACPRT+FACPRU)**2
-              ELSE
-                FACPRP=FACPRT**2
-              ENDIF
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACLR*FACWW*FACPRP*FACBW*HF
-  330       CONTINUE
-  340     CONTINUE
- 
-        ELSEIF(ISUB.EQ.353) THEN
-C...f + fbar -> Z_R0
-          SQMZR=PMAS(PYCOMP(KFPR(ISUB,1)),1)**2
-          CALL PYWIDT(KFPR(ISUB,1),SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMZR)**2+HS**2)*3D0
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          HP=(AEM/(3D0*(1D0-2D0*XW)))*XWC*SH
-          DO 350 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 350
-            IF(IABS(I).LE.8) THEN
-              EI=KCHG(IABS(I),1)/3D0
-              AI=SIGN(1D0,EI+0.1D0)*(1D0-2D0*XW)
-              VI=SIGN(1D0,EI+0.1D0)-4D0*EI*XW
-            ELSE
-              AI=-(1D0-2D0*XW)
-              VI=-1D0+4D0*XW
-            ENDIF
-            HI=HP*(VI**2+AI**2)
-            IF(IABS(I).LE.10) HI=HI*FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=HI*FACBW*HF
-  350     CONTINUE
- 
-        ELSEIF(ISUB.EQ.354) THEN
-C...f + fbar' -> W_R+/-
-          SQMWR=PMAS(PYCOMP(KFPR(ISUB,1)),1)**2
-          CALL PYWIDT(KFPR(ISUB,1),SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMWR)**2+HS**2)*3D0
-          HP=AEM/(24D0*XW)*SH
-          DO 370 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 370
-            IA=IABS(I)
-            DO 360 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 360
-              JA=IABS(J)
-              IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 360
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 360
-              KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              HI=HP*2D0
-              IF(IA.LE.10) HI=HI*VCKM((IA+1)/2,(JA+1)/2)*FACA/3D0
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))
-              SIGH(NCHN)=HI*FACBW*HF
-  360       CONTINUE
-  370     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.400) THEN
-        IF(ISUB.EQ.391) THEN
-C...f + fbar -> G*.
-          KFGSTR=KFPR(ISUB,1)
-          KCGSTR=PYCOMP(KFGSTR)
-          CALL PYWIDT(KFGSTR,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACG=COMFAC*PARP(50)**2/(16D0*PARU(1))*SH*HF
-
-C ATLAS: gluon with flat mass spectrum  
-          IF (ISSP.EQ.1) THEN
-C qq Modifications Start
-
-C Remove Breit-Wigner Term from qq component
-C     &    /((SH-PMAS(KCGSTR,1)**2)**2+HS**2)
-
-C Remove Modified cross section in wings of peak.
-C          FACG = FACG * SH**2
-C     &    /PMAS(KCGSTR,1)**4 
-
-C Do a mass dependent fit to the total parton luminosity distribution (gg and qq) and apply the inverse to flatten the mass distribution
-             IF(SQRT(SH).LE.550) FACG=FACG/(exp(-0.005882*SQRT(SH)))
-             IF(SQRT(SH).GT.550.AND.SQRT(SH).LE.1250) FACG=FACG
-     &            /(0.2912*(exp(-0.003457*SQRT(SH))))
-             IF(SQRT(SH).GT.1250) FACG=FACG
-     &            /(0.0903*(exp(-0.002411*SQRT(SH))))
-             
-C qq Modification End
-C ATLAS : end of gluon with flat mass spectrum modf. block
-          ELSE
-             FACG=COMFAC*PARP(50)**2/(16D0*PARU(1))*SH*HF/
-     &            ((SH-PMAS(KCGSTR,1)**2)**2+HS**2)
-C...  Modify cross section in wings of peak.
-             FACG = FACG * SH**2 / PMAS(KCGSTR,1)**4             
-          ENDIF
-
-          DO 380 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 380
-            HI=1D0
-            IF(IABS(I).LE.10) HI=HI*FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACG*HI
-  380     CONTINUE
- 
-        ELSEIF(ISUB.EQ.392) THEN
-C...g + g -> G*.
-          KFGSTR=KFPR(ISUB,1)
-          KCGSTR=PYCOMP(KFGSTR)
-          CALL PYWIDT(KFGSTR,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACG=COMFAC*PARP(50)**2/(32D0*PARU(1))*SH*HF
-
-C ATLAS: gluon with flat mass spectrum
-C gg Modifications Start
-          IF (ISSP.EQ.1) THEN
-C     Remove Breit-Wigner Term from gg component
-C     &    /((SH-PMAS(KCGSTR,1)**2)**2+HS**2)
-             
-C     C Remove Modified cross section in wings of peak.
-C     FACG = FACG * SH**2
-C     &    /PMAS(KCGSTR,1)**4
-
-C     Do a mass dependent fit to the total parton luminosity distribution (gg and qq) and apply the inverse to flatten the mass distribution
-             IF(SQRT(SH).LE.550) FACG=FACG/(exp(-0.005882*SQRT(SH)))
-             IF(SQRT(SH).GT.550.AND.SQRT(SH).LE.1250) FACG=FACG
-     &            /(0.2912*(exp(-0.003457*SQRT(SH))))
-             IF(SQRT(SH).GT.1250) FACG=FACG
-     &            /(0.0903*(exp(-0.002411*SQRT(SH))))
-C gg Modification End
-C ATLAS: end of gluon with flat mass spectrum block
-          ELSE
-             
-             FACG=COMFAC*PARP(50)**2/(32D0*PARU(1))*SH*HF/
-     &            ((SH-PMAS(KCGSTR,1)**2)**2+HS**2)
-C...  Modify cross section in wings of peak.
-             FACG = FACG * SH**2 / PMAS(KCGSTR,1)**4
-          ENDIF
-
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 390
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=FACG
-  390     CONTINUE
- 
-        ELSEIF(ISUB.EQ.393) THEN
-C...q + qbar -> g + G*.
-          KFGSTR=KFPR(ISUB,2)
-          KCGSTR=PYCOMP(KFGSTR)
-          FACG=COMFAC*PARP(50)**2*AS*SH/(72D0*PARU(1)*SQM4)*
-     &    (4D0*(TH2+UH2)/SH2+9D0*(TH+UH)/SH+(TH2/UH+UH2/TH)/SH+
-     &    3D0*(4D0+TH/UH+UH/TH)+4D0*(SH/UH+SH/TH)+
-     &    2D0*SH2/(TH*UH))
-C...Propagators: as simulated in PYOFSH and as desired
-          GMMG=PMAS(KCGSTR,1)*PMAS(KCGSTR,2)
-          HBW4=GMMG/((SQM4-PMAS(KCGSTR,1)**2)**2+GMMG**2)
-          CALL PYWIDT(KFGSTR,SQM4,WDTP,WDTE)
-          HS=SQRT(SQM4)*WDTP(0)
-          HF=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          HBW4C=HF/((SQM4-PMAS(KCGSTR,1)**2)**2+HS**2)
-          FACG=FACG*HBW4C/HBW4
-          DO 400 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &      KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 400
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACG
-  400     CONTINUE
- 
-        ELSEIF(ISUB.EQ.394) THEN
-C...q + g -> q + G*.
-          KFGSTR=KFPR(ISUB,2)
-          KCGSTR=PYCOMP(KFGSTR)
-          FACG=-COMFAC*PARP(50)**2*AS*SH/(192D0*PARU(1)*SQM4)*
-     &    (4D0*(SH2+UH2)/(TH*SH)+9D0*(SH+UH)/SH+SH/UH+UH2/SH2+
-     &    3D0*TH*(4D0+SH/UH+UH/SH)/SH+4D0*TH2*(1D0/UH+1D0/SH)/SH+
-     &    2D0*TH2*TH/(UH*SH2))
-C...Propagators: as simulated in PYOFSH and as desired
-          GMMG=PMAS(KCGSTR,1)*PMAS(KCGSTR,2)
-          HBW4=GMMG/((SQM4-PMAS(KCGSTR,1)**2)**2+GMMG**2)
-          CALL PYWIDT(KFGSTR,SQM4,WDTP,WDTE)
-          HS=SQRT(SQM4)*WDTP(0)
-          HF=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          HBW4C=HF/((SQM4-PMAS(KCGSTR,1)**2)**2+HS**2)
-          FACG=FACG*HBW4C/HBW4
-          DO 420 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 420
-            DO 410 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 410
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 410
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACG
-  410       CONTINUE
-  420     CONTINUE
- 
-        ELSEIF(ISUB.EQ.395) THEN
-C...g + g -> g + G*.
-          KFGSTR=KFPR(ISUB,2)
-          KCGSTR=PYCOMP(KFGSTR)
-          FACG=COMFAC*3D0*PARP(50)**2*AS*SH/(32D0*PARU(1)*SQM4)*
-     &    ((TH2+TH*UH+UH2)**2/(SH2*TH*UH)+2D0*(TH2/UH+UH2/TH)/SH+
-     &    3D0*(TH/UH+UH/TH)+2D0*(SH/UH+SH/TH)+SH2/(TH*UH))
-C...Propagators: as simulated in PYOFSH and as desired
-          GMMG=PMAS(KCGSTR,1)*PMAS(KCGSTR,2)
-          HBW4=GMMG/((SQM4-PMAS(KCGSTR,1)**2)**2+GMMG**2)
-          CALL PYWIDT(KFGSTR,SQM4,WDTP,WDTE)
-          HS=SQRT(SQM4)*WDTP(0)
-          HF=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          HBW4C=HF/((SQM4-PMAS(KCGSTR,1)**2)**2+HS**2)
-          FACG=FACG*HBW4C/HBW4
-          IF(KFAC(1,21)*KFAC(2,21).NE.0) THEN
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=21
-            ISIG(NCHN,2)=21
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACG
-          ENDIF
-        ENDIF
-      ENDIF
- 
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaModified/pysgwz.F b/Generators/PythiaExo_i/src/PythiaModified/pysgwz.F
deleted file mode 100644
index f29064aaa06747ce22a69ddb653b113f32187f71..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaModified/pysgwz.F
+++ /dev/null
@@ -1,822 +0,0 @@
-C...PYSGWZ
-C...Subprocess cross sections for W/Z processes,
-C...except that longitudinal WW scattering is in Higgs sector.
-C...Auxiliary to PYSIGH.
-c
-c     Drell-Yan coupling modified for monopole pair
-c     production (Daniel Goldin)
-c
- 
-      SUBROUTINE PYSGWZ(NCHN,SIGS)
- 
-C...Double precision and integer declarations
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-C...Parameter statement to help give large particle numbers.
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
-     &KEXCIT=4000000,KDIMEN=5000000)
-C...Commonblocks
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYTCSM/ITCM(0:99),RTCM(0:99)
-      COMMON/PYSGCM/ISUB,ISUBSV,MMIN1,MMAX1,MMIN2,MMAX2,MMINA,MMAXA,
-     &KFAC(2,-40:40),COMFAC,FACK,FACA,SH,TH,UH,SH2,TH2,UH2,SQM3,SQM4,
-     &SHR,SQPTH,TAUP,BE34,CTH,X(2),SQMZ,SQMW,GMMZ,GMMW,
-     &ALEM,AS,XW,XW1,XWC,XWV,POLL,POLR,POLLL,POLRR
-      SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYSUBS/,/PYPARS/,/PYINT1/,
-     &/PYINT2/,/PYINT3/,/PYINT4/,/PYTCSM/,/PYSGCM/
-C...Local arrays and complex numbers
-      DIMENSION WDTP(0:400),WDTE(0:400,0:5),HGZ(6,3),HL3(3),HR3(3),
-     &HL4(3),HR4(3)
-      COMPLEX*16 COULCK,COULCP,COULCD,COULCR,COULCS
- 
-C...Differential cross section expressions.
- 
-      IF(ISUB.LE.20) THEN
-        IF(ISUB.EQ.1) THEN
-C...f + fbar -> gamma*/Z0
-          MINT(61)=2
-          CALL PYWIDT(23,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACZ=4D0*COMFAC*3D0
-c
-c         Redefine coupling constant corresponding to DY process
-c         for monopoles (Daniel Goldin)
-c
-          ALEM = SQRT(1.-4.*PMAS(13,1)*PMAS(13,1)/VINT(44))/2.
-c          print *,'Mono mass, Effective coupling (ALEM) ', PMAS(13,1), ALEM
-          HP0=ALEM/3D0*SH
-          HP1=ALEM/3D0*XWC*SH
-          DO 100 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 100
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            HI0=HP0
-            IF(IABS(I).LE.10) HI0=HI0*FACA/3D0
-            HI1=HP1
-            IF(IABS(I).LE.10) HI1=HI1*FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACZ*(EI**2/SH2*HI0*HP0*VINT(111)+
-     &      EI*VI*(1D0-SQMZ/SH)/((SH-SQMZ)**2+HS**2)*
-     &      (HI0*HP1+HI1*HP0)*VINT(112)+(VI**2+AI**2)/
-     &      ((SH-SQMZ)**2+HS**2)*HI1*HP1*VINT(114))
-  100     CONTINUE
- 
-        ELSEIF(ISUB.EQ.2) THEN
-C...f + fbar' -> W+/-
-          CALL PYWIDT(24,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMW)**2+HS**2)*3D0
-          HP=ALEM/(24D0*XW)*SH
-          DO 120 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 120
-            IA=IABS(I)
-            DO 110 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 110
-              JA=IABS(J)
-              IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 110
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 110
-              KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              HI=HP*2D0
-              IF(IA.LE.10) HI=HI*VCKM((IA+1)/2,(JA+1)/2)*FACA/3D0
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))
-              SIGH(NCHN)=HI*FACBW*HF
-  110       CONTINUE
-  120     CONTINUE
- 
-        ELSEIF(ISUB.EQ.15) THEN
-C...f + fbar -> g + (gamma*/Z0) (q + qbar -> g + (gamma*/Z0) only)
-          FACZG=COMFAC*AS*ALEM*(8D0/9D0)*(TH2+UH2+2D0*SQM4*SH)/(TH*UH)
-C...gamma, gamma/Z interference and Z couplings to final fermion pairs
-          HFGG=0D0
-          HFGZ=0D0
-          HFZZ=0D0
-          RADC4=1D0+PYALPS(SQM4)/PARU(1)
-          DO 130 I=1,MIN(16,MDCY(23,3))
-            IDC=I+MDCY(23,2)-1
-            IF(MDME(IDC,1).LT.0) GOTO 130
-            IMDM=0
-            IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2.OR.MDME(IDC,1).EQ.4)
-     &      IMDM=1
-            IF(I.LE.8) THEN
-              EF=KCHG(I,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ELSEIF(I.LE.16) THEN
-              EF=KCHG(I+2,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ENDIF
-            RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
-            IF(4D0*RM1.LT.1D0) THEN
-              FCOF=1D0
-              IF(I.LE.8) FCOF=3D0*RADC4
-              BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
-              IF(IMDM.EQ.1) THEN
-                HFGG=HFGG+FCOF*EF**2*(1D0+2D0*RM1)*BE34
-                HFGZ=HFGZ+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
-                HFZZ=HFZZ+FCOF*(VF**2*(1D0+2D0*RM1)+
-     &          AF**2*(1D0-4D0*RM1))*BE34
-              ENDIF
-            ENDIF
-  130     CONTINUE
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
-          MINT15=MINT(15)
-          MINT(15)=1
-          MINT(61)=1
-          CALL PYWIDT(23,SQM4,WDTP,WDTE)
-          MINT(15)=MINT15
-          HFALEM=(PARU(108)/PARU(2))*(2D0/3D0)
-          HFGG=HFGG*HFALEM*VINT(111)/SQM4
-          HFGZ=HFGZ*HFALEM*VINT(112)/SQM4
-          HFZZ=HFZZ*HFALEM*VINT(114)/SQM4
-C...Loop over flavours; consider full gamma/Z structure
-          DO 140 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &      KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 140
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACZG*(EI**2*HFGG+EI*VI*HFGZ+
-     &      (VI**2+AI**2)*HFZZ)/HBW4
-  140     CONTINUE
- 
-        ELSEIF(ISUB.EQ.16) THEN
-C...f + fbar' -> g + W+/- (q + qbar' -> g + W+/- only)
-          FACWG=COMFAC*AS*ALEM/XW*2D0/9D0*(TH2+UH2+2D0*SQM4*SH)/(TH*UH)
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
-          CALL PYWIDT(24,SQM4,WDTP,WDTE)
-          GMMWC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMWC/((SQM4-SQMW)**2+GMMWC**2)
-          FACWG=FACWG*HBW4C/HBW4
-          DO 160 I=MMIN1,MMAX1
-            IA=IABS(I)
-            IF(I.EQ.0.OR.IA.GT.10.OR.KFAC(1,I).EQ.0) GOTO 160
-            DO 150 J=MMIN2,MMAX2
-              JA=IABS(J)
-              IF(J.EQ.0.OR.JA.GT.10.OR.KFAC(2,J).EQ.0) GOTO 150
-              IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 150
-              KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))/WDTP(0)
-              FCKM=VCKM((IA+1)/2,(JA+1)/2)
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACWG*FCKM*WIDSC
-  150       CONTINUE
-  160     CONTINUE
- 
-        ELSEIF(ISUB.EQ.19) THEN
-C...f + fbar -> gamma + (gamma*/Z0)
-          FACGZ=COMFAC*2D0*ALEM**2*(TH2+UH2+2D0*SQM4*SH)/(TH*UH)
-C...gamma, gamma/Z interference and Z couplings to final fermion pairs
-          HFGG=0D0
-          HFGZ=0D0
-          HFZZ=0D0
-          RADC4=1D0+PYALPS(SQM4)/PARU(1)
-          DO 170 I=1,MIN(16,MDCY(23,3))
-            IDC=I+MDCY(23,2)-1
-            IF(MDME(IDC,1).LT.0) GOTO 170
-            IMDM=0
-            IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2.OR.MDME(IDC,1).EQ.4)
-     &      IMDM=1
-            IF(I.LE.8) THEN
-              EF=KCHG(I,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ELSEIF(I.LE.16) THEN
-              EF=KCHG(I+2,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ENDIF
-            RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
-            IF(4D0*RM1.LT.1D0) THEN
-              FCOF=1D0
-              IF(I.LE.8) FCOF=3D0*RADC4
-              BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
-              IF(IMDM.EQ.1) THEN
-                HFGG=HFGG+FCOF*EF**2*(1D0+2D0*RM1)*BE34
-                HFGZ=HFGZ+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
-                HFZZ=HFZZ+FCOF*(VF**2*(1D0+2D0*RM1)+
-     &          AF**2*(1D0-4D0*RM1))*BE34
-              ENDIF
-            ENDIF
-  170     CONTINUE
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
-          MINT15=MINT(15)
-          MINT(15)=1
-          MINT(61)=1
-          CALL PYWIDT(23,SQM4,WDTP,WDTE)
-          MINT(15)=MINT15
-          HFALEM=(PARU(108)/PARU(2))*(2D0/3D0)
-          HFGG=HFGG*HFALEM*VINT(111)/SQM4
-          HFGZ=HFGZ*HFALEM*VINT(112)/SQM4
-          HFZZ=HFZZ*HFALEM*VINT(114)/SQM4
-C...Loop over flavours; consider full gamma/Z structure
-          DO 180 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 180
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            FCOI=1D0
-            IF(IABS(I).LE.10) FCOI=FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACGZ*FCOI*EI**2*(EI**2*HFGG+EI*VI*HFGZ+
-     &      (VI**2+AI**2)*HFZZ)/HBW4
-  180     CONTINUE
- 
-        ELSEIF(ISUB.EQ.20) THEN
-C...f + fbar' -> gamma + W+/-
-          FACGW=COMFAC*0.5D0*ALEM**2/XW
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
-          CALL PYWIDT(24,SQM4,WDTP,WDTE)
-          GMMWC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMWC/((SQM4-SQMW)**2+GMMWC**2)
-          FACGW=FACGW*HBW4C/HBW4
-C...Anomalous couplings
-          TERM1=(TH2+UH2+2D0*SQM4*SH)/(TH*UH)
-          TERM2=0D0
-          TERM3=0D0
-          IF(ITCM(5).GE.1.AND.ITCM(5).LE.4) THEN
-            TERM2=RTCM(46)*(TH-UH)/(TH+UH)
-            TERM3=0.5D0*RTCM(46)**2*(TH*UH+(TH2+UH2)*SH/
-     &      (4D0*SQMW))/(TH+UH)**2
-          ENDIF
-          DO 200 I=MMIN1,MMAX1
-            IA=IABS(I)
-            IF(I.EQ.0.OR.IA.GT.20.OR.KFAC(1,I).EQ.0) GOTO 200
-            DO 190 J=MMIN2,MMAX2
-              JA=IABS(J)
-              IF(J.EQ.0.OR.JA.GT.20.OR.KFAC(2,J).EQ.0) GOTO 190
-              IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 190
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 190
-              KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))/WDTP(0)
-              IF(IA.LE.10) THEN
-                FACWR=UH/(TH+UH)-1D0/3D0
-                FCKM=VCKM((IA+1)/2,(JA+1)/2)
-                FCOI=FACA/3D0
-              ELSE
-                FACWR=-(TH/(TH+UH))
-                FCKM=1D0
-                FCOI=1D0
-              ENDIF
-              FACWK=TERM1*FACWR**2+TERM2*FACWR+TERM3
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACGW*FACWK*FCOI*FCKM*WIDSC
-  190       CONTINUE
-  200     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.40) THEN
-        IF(ISUB.EQ.22) THEN
-C...f + fbar -> (gamma*/Z0) + (gamma*/Z0)
-C...Kinematics dependence
-          FACZZ=COMFAC*ALEM**2*((TH2+UH2+2D0*(SQM3+SQM4)*SH)/(TH*UH)-
-     &    SQM3*SQM4*(1D0/TH2+1D0/UH2))
-C...gamma, gamma/Z interference and Z couplings to final fermion pairs
-          DO 220 I=1,6
-            DO 210 J=1,3
-              HGZ(I,J)=0D0
-  210       CONTINUE
-  220     CONTINUE
-          RADC3=1D0+PYALPS(SQM3)/PARU(1)
-          RADC4=1D0+PYALPS(SQM4)/PARU(1)
-          DO 230 I=1,MIN(16,MDCY(23,3))
-            IDC=I+MDCY(23,2)-1
-            IF(MDME(IDC,1).LT.0) GOTO 230
-            IMDM=0
-            IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2) IMDM=1
-            IF(MDME(IDC,1).EQ.4.OR.MDME(IDC,1).EQ.5) IMDM=MDME(IDC,1)-2
-            IF(I.LE.8) THEN
-              EF=KCHG(I,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ELSEIF(I.LE.16) THEN
-              EF=KCHG(I+2,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ENDIF
-            RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM3
-            IF(4D0*RM1.LT.1D0) THEN
-              FCOF=1D0
-              IF(I.LE.8) FCOF=3D0*RADC3
-              BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
-              IF(IMDM.GE.1) THEN
-                HGZ(1,IMDM)=HGZ(1,IMDM)+FCOF*EF**2*(1D0+2D0*RM1)*BE34
-                HGZ(2,IMDM)=HGZ(2,IMDM)+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
-                HGZ(3,IMDM)=HGZ(3,IMDM)+FCOF*(VF**2*(1D0+2D0*RM1)+
-     &          AF**2*(1D0-4D0*RM1))*BE34
-              ENDIF
-            ENDIF
-            RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
-            IF(4D0*RM1.LT.1D0) THEN
-              FCOF=1D0
-              IF(I.LE.8) FCOF=3D0*RADC4
-              BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
-              IF(IMDM.GE.1) THEN
-                HGZ(4,IMDM)=HGZ(4,IMDM)+FCOF*EF**2*(1D0+2D0*RM1)*BE34
-                HGZ(5,IMDM)=HGZ(5,IMDM)+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
-                HGZ(6,IMDM)=HGZ(6,IMDM)+FCOF*(VF**2*(1D0+2D0*RM1)+
-     &          AF**2*(1D0-4D0*RM1))*BE34
-              ENDIF
-            ENDIF
-  230     CONTINUE
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW3=(1D0/PARU(1))*GMMZ/((SQM3-SQMZ)**2+GMMZ**2)
-          HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
-          MINT15=MINT(15)
-          MINT(15)=1
-          MINT(61)=1
-          CALL PYWIDT(23,SQM3,WDTP,WDTE)
-          MINT(15)=MINT15
-          HFALEM=(PARU(108)/PARU(2))*(2D0/3D0)
-          DO 240 J=1,3
-            HGZ(1,J)=HGZ(1,J)*HFALEM*VINT(111)/SQM3
-            HGZ(2,J)=HGZ(2,J)*HFALEM*VINT(112)/SQM3
-            HGZ(3,J)=HGZ(3,J)*HFALEM*VINT(114)/SQM3
-  240     CONTINUE
-          MINT15=MINT(15)
-          MINT(15)=1
-          MINT(61)=1
-          CALL PYWIDT(23,SQM4,WDTP,WDTE)
-          MINT(15)=MINT15
-          HFALEM=(PARU(108)/PARU(2))*(2D0/3D0)
-          DO 250 J=1,3
-            HGZ(4,J)=HGZ(4,J)*HFALEM*VINT(111)/SQM4
-            HGZ(5,J)=HGZ(5,J)*HFALEM*VINT(112)/SQM4
-            HGZ(6,J)=HGZ(6,J)*HFALEM*VINT(114)/SQM4
-  250     CONTINUE
-C...Loop over flavours; separate left- and right-handed couplings
-          DO 270 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 270
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            VALI=VI-AI
-            VARI=VI+AI
-            FCOI=1D0
-            IF(IABS(I).LE.10) FCOI=FACA/3D0
-            DO 260 J=1,3
-              HL3(J)=EI**2*HGZ(1,J)+EI*VALI*HGZ(2,J)+VALI**2*HGZ(3,J)
-              HR3(J)=EI**2*HGZ(1,J)+EI*VARI*HGZ(2,J)+VARI**2*HGZ(3,J)
-              HL4(J)=EI**2*HGZ(4,J)+EI*VALI*HGZ(5,J)+VALI**2*HGZ(6,J)
-              HR4(J)=EI**2*HGZ(4,J)+EI*VARI*HGZ(5,J)+VARI**2*HGZ(6,J)
-  260       CONTINUE
-            FACLR=HL3(1)*HL4(1)+HL3(1)*(HL4(2)+HL4(3))+
-     &      HL4(1)*(HL3(2)+HL3(3))+HL3(2)*HL4(3)+HL4(2)*HL3(3)+
-     &      HR3(1)*HR4(1)+HR3(1)*(HR4(2)+HR4(3))+
-     &      HR4(1)*(HR3(2)+HR3(3))+HR3(2)*HR4(3)+HR4(2)*HR3(3)
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=0.5D0*FACZZ*FCOI*FACLR/(HBW3*HBW4)
-  270     CONTINUE
- 
-        ELSEIF(ISUB.EQ.23) THEN
-C...f + fbar' -> Z0 + W+/- (Z0 only, i.e. no gamma* admixture.)
-          FACZW=COMFAC*0.5D0*(ALEM/XW)**2
-          FACZW=FACZW*WIDS(23,2)
-          THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
-          FACBW=1D0/((SH-SQMW)**2+GMMW**2)
-          DO 290 I=MMIN1,MMAX1
-            IA=IABS(I)
-            IF(I.EQ.0.OR.IA.GT.20.OR.KFAC(1,I).EQ.0) GOTO 290
-            DO 280 J=MMIN2,MMAX2
-              JA=IABS(J)
-              IF(J.EQ.0.OR.JA.GT.20.OR.KFAC(2,J).EQ.0) GOTO 280
-              IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 280
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 280
-              KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              EI=KCHG(IA,1)/3D0
-              AI=SIGN(1D0,EI+0.1D0)
-              VI=AI-4D0*EI*XWV
-              EJ=KCHG(JA,1)/3D0
-              AJ=SIGN(1D0,EJ+0.1D0)
-              VJ=AJ-4D0*EJ*XWV
-              IF(VI+AI.GT.0) THEN
-                VISAV=VI
-                AISAV=AI
-                VI=VJ
-                AI=AJ
-                VJ=VISAV
-                AJ=AISAV
-              ENDIF
-              FCKM=1D0
-              IF(IA.LE.10) FCKM=VCKM((IA+1)/2,(JA+1)/2)
-              FCOI=1D0
-              IF(IA.LE.10) FCOI=FACA/3D0
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACZW*FCOI*FCKM*(FACBW*((9D0-8D0*XW)/4D0*THUH+
-     &        (8D0*XW-6D0)/4D0*SH*(SQM3+SQM4))+(THUH-SH*(SQM3+SQM4))*
-     &        (SH-SQMW)*FACBW*0.5D0*((VJ+AJ)/TH-(VI+AI)/UH)+
-     &        THUH/(16D0*XW1)*((VJ+AJ)**2/TH2+(VI+AI)**2/UH2)+
-     &        SH*(SQM3+SQM4)/(8D0*XW1)*(VI+AI)*(VJ+AJ)/(TH*UH))*
-     &        WIDS(24,(5-KCHW)/2)
-C***Protect against slightly negative cross sections. (Reason yet to be
-C***sorted out. One possibility: addition of width to the W propagator.)
-              SIGH(NCHN)=MAX(0D0,SIGH(NCHN))
-  280       CONTINUE
-  290     CONTINUE
- 
-        ELSEIF(ISUB.EQ.25) THEN
-C...f + fbar -> W+ + W-
-C...Propagators: Z0, W+- as simulated in PYOFSH and as desired
-          GMMZC=GMMZ
-          HBWZC=SH**2/((SH-SQMZ)**2+GMMZC**2)
-          HBW3=GMMW/((SQM3-SQMW)**2+GMMW**2)
-          CALL PYWIDT(24,SQM3,WDTP,WDTE)
-          GMMW3=SQRT(SQM3)*WDTP(0)
-          HBW3C=GMMW3/((SQM3-SQMW)**2+GMMW3**2)
-          HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
-          CALL PYWIDT(24,SQM4,WDTP,WDTE)
-          GMMW4=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMW4/((SQM4-SQMW)**2+GMMW4**2)
-C...Kinematical functions
-          THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
-          THUH34=(2D0*SH*(SQM3+SQM4)+THUH)/(SQM3*SQM4)
-          GS=(((SH-SQM3-SQM4)**2-4D0*SQM3*SQM4)*THUH34+12D0*THUH)/SH2
-          GT=THUH34+4D0*THUH/TH2
-          GST=((SH-SQM3-SQM4)*THUH34+4D0*(SH*(SQM3+SQM4)-THUH)/TH)/SH
-          GU=THUH34+4D0*THUH/UH2
-          GSU=((SH-SQM3-SQM4)*THUH34+4D0*(SH*(SQM3+SQM4)-THUH)/UH)/SH
-C...Common factors and couplings
-          FACWW=COMFAC*(HBW3C/HBW3)*(HBW4C/HBW4)
-          FACWW=FACWW*WIDS(24,1)
-          CGG=ALEM**2/2D0
-          CGZ=ALEM**2/(4D0*XW)*HBWZC*(1D0-SQMZ/SH)
-          CZZ=ALEM**2/(32D0*XW**2)*HBWZC
-          CNG=ALEM**2/(4D0*XW)
-          CNZ=ALEM**2/(16D0*XW**2)*HBWZC*(1D0-SQMZ/SH)
-          CNN=ALEM**2/(16D0*XW**2)
-C...Coulomb factor for W+W- pair
-          IF(MSTP(40).GE.1.AND.MSTP(40).LE.3) THEN
-            COULE=(SH-4D0*SQMW)/(4D0*PMAS(24,1))
-            COULP=MAX(1D-10,0.5D0*BE34*SQRT(SH))
-            IF(COULE.LT.100D0*PMAS(24,2)) THEN
-              COULP1=SQRT(0.5D0*PMAS(24,1)*(SQRT(COULE**2+
-     &        PMAS(24,2)**2)-COULE))
-            ELSE
-              COULP1=SQRT(0.5D0*PMAS(24,1)*(0.5D0*PMAS(24,2)**2/COULE))
-            ENDIF
-            IF(COULE.GT.-(100D0*PMAS(24,2))) THEN
-              COULP2=SQRT(0.5D0*PMAS(24,1)*(SQRT(COULE**2+
-     &        PMAS(24,2)**2)+COULE))
-            ELSE
-              COULP2=SQRT(0.5D0*PMAS(24,1)*(0.5D0*PMAS(24,2)**2/
-     &        ABS(COULE)))
-            ENDIF
-            IF(MSTP(40).EQ.1) THEN
-              COULDC=PARU(1)-2D0*ATAN((COULP1**2+COULP2**2-COULP**2)/
-     &        MAX(1D-10,2D0*COULP*COULP1))
-              FACCOU=1D0+0.5D0*PARU(101)*COULDC/MAX(1D-5,BE34)
-            ELSEIF(MSTP(40).EQ.2) THEN
-              COULCK=DCMPLX(DBLE(COULP1),DBLE(COULP2))
-              COULCP=DCMPLX(0D0,DBLE(COULP))
-              COULCD=(COULCK+COULCP)/(COULCK-COULCP)
-              COULCR=1D0+DBLE(PARU(101)*SQRT(SH))/
-     &        (4D0*COULCP)*LOG(COULCD)
-              COULCS=DCMPLX(0D0,0D0)
-              NSTP=100
-              DO 300 ISTP=1,NSTP
-                COULXX=(ISTP-0.5)/NSTP
-                COULCS=COULCS+(1D0/COULXX)*LOG((1D0+COULXX*COULCD)/
-     &          (1D0+COULXX/COULCD))
-  300         CONTINUE
-              COULCR=COULCR+DBLE(PARU(101)**2*SH)/(16D0*COULCP*COULCK)*
-     &        (COULCS/NSTP)
-              FACCOU=ABS(COULCR)**2
-            ELSEIF(MSTP(40).EQ.3) THEN
-              COULDC=PARU(1)-2D0*(1D0-BE34)**2*ATAN((COULP1**2+
-     &        COULP2**2-COULP**2)/MAX(1D-10,2D0*COULP*COULP1))
-              FACCOU=1D0+0.5D0*PARU(101)*COULDC/MAX(1D-5,BE34)
-            ENDIF
-          ELSEIF(MSTP(40).EQ.4) THEN
-            FACCOU=1D0+0.5D0*PARU(101)*PARU(1)/MAX(1D-5,BE34)
-          ELSE
-            FACCOU=1D0
-          ENDIF
-          VINT(95)=FACCOU
-          FACWW=FACWW*FACCOU
-C...Loop over allowed flavours
-          DO 310 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 310
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI+0.1D0)
-            VI=AI-4D0*EI*XWV
-            FCOI=1D0
-            IF(IABS(I).LE.10) FCOI=FACA/3D0
-            IF(MSTP(50).LE.0.OR.IABS(I).LE.10) THEN
-              IF(AI.LT.0D0) THEN
-                DSIGWW=(CGG*EI**2+CGZ*VI*EI+CZZ*(VI**2+AI**2))*GS+
-     &          (CNG*EI+CNZ*(VI+AI))*GST+CNN*GT
-              ELSE
-                DSIGWW=(CGG*EI**2+CGZ*VI*EI+CZZ*(VI**2+AI**2))*GS-
-     &          (CNG*EI+CNZ*(VI+AI))*GSU+CNN*GU
-              ENDIF
-            ELSE
-              XMW02=0.5D0*(SQM3+SQM4)-0.25D0*(SQM3-SQM4)**2/SH
-              BET=SQRT(1D0-4D0*XMW02/SH)
-              GAT=1D0/SQRT(1D0-BET**2)
-              STHE2=1D0-CTH**2
-              AMPZG=BET**3*(16D0+(4D0*BET**2*GAT**2+3D0/GAT**2)*STHE2)
-              AMPNU=BET*(2D0+BET**2*GAT**2*STHE2/2D0+
-     &        2D0*BET**2*(1D0-BET**2)*STHE2/(1D0-2D0*BET*CTH+BET**2)**2)
-              AMPNG=BET*((1D0+BET**2)*(4D0+BET**2*GAT**2*STHE2)+
-     &        2D0*(1D0-BET**2)*(BET**2*STHE2-2D0*(1D0-BET**2))/
-     &        (1D0-2D0*BET*CTH+BET**2))
-              PROPI1=(0.25D0*SQMZ/XMW02)*HBWZC*(1D0-SQMZ/SH)
-              PROPI2=(0.25D0*SQMZ/XMW02)**2*HBWZC
-              A0=(2D0*(XMW02/SQMZ)-(1D0-BET**2)*XW)*POLL
-              A1=(2D0*(XMW02/SQMZ)**2-2*XMW02/SQMZ*(1D0-BET**2)*XW)*POLL
-              A2=(1D0-BET**2)**2*XW**2*(POLR+POLL)/2D0
-              ATOT=AMPNU*POLL+(A1+A2)*PROPI2*AMPZG-A0*PROPI1*AMPNG
-              ATOT=ATOT*CNN/SQMW*SH/BET*2D0
-              DSIGWW=ATOT
-            ENDIF
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACWW*FCOI*DSIGWW
-  310     CONTINUE
- 
-        ELSEIF(ISUB.EQ.30) THEN
-C...f + g -> f + (gamma*/Z0) (q + g -> q + (gamma*/Z0) only)
-          FZQ=COMFAC*FACA*AS*ALEM*(1D0/3D0)*(SH2+UH2+2D0*SQM4*TH)/
-     &    (-(SH*UH))
-C...gamma, gamma/Z interference and Z couplings to final fermion pairs
-          HFGG=0D0
-          HFGZ=0D0
-          HFZZ=0D0
-          RADC4=1D0+PYALPS(SQM4)/PARU(1)
-          DO 320 I=1,MIN(16,MDCY(23,3))
-            IDC=I+MDCY(23,2)-1
-            IF(MDME(IDC,1).LT.0) GOTO 320
-            IMDM=0
-            IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2.OR.MDME(IDC,1).EQ.4)
-     &      IMDM=1
-            IF(I.LE.8) THEN
-              EF=KCHG(I,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ELSEIF(I.LE.16) THEN
-              EF=KCHG(I+2,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ENDIF
-            RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
-            IF(4D0*RM1.LT.1D0) THEN
-              FCOF=1D0
-              IF(I.LE.8) FCOF=3D0*RADC4
-              BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
-              IF(IMDM.EQ.1) THEN
-                HFGG=HFGG+FCOF*EF**2*(1D0+2D0*RM1)*BE34
-                HFGZ=HFGZ+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
-                HFZZ=HFZZ+FCOF*(VF**2*(1D0+2D0*RM1)+
-     &          AF**2*(1D0-4D0*RM1))*BE34
-              ENDIF
-            ENDIF
-  320     CONTINUE
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
-          MINT15=MINT(15)
-          MINT(15)=1
-          MINT(61)=1
-          CALL PYWIDT(23,SQM4,WDTP,WDTE)
-          MINT(15)=MINT15
-          HFALEM=(PARU(108)/PARU(2))*(2D0/3D0)
-          HFGG=HFGG*HFALEM*VINT(111)/SQM4
-          HFGZ=HFGZ*HFALEM*VINT(112)/SQM4
-          HFZZ=HFZZ*HFALEM*VINT(114)/SQM4
-C...Loop over flavours; consider full gamma/Z structure
-          DO 340 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 340
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            FACZQ=FZQ*(EI**2*HFGG+EI*VI*HFGZ+
-     &      (VI**2+AI**2)*HFZZ)/HBW4
-            DO 330 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 330
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 330
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACZQ
-  330       CONTINUE
-  340     CONTINUE
- 
-        ELSEIF(ISUB.EQ.31) THEN
-C...f + g -> f' + W+/- (q + g -> q' + W+/- only)
-          FACWQ=COMFAC*FACA*AS*ALEM/XW*1D0/12D0*
-     &    (SH2+UH2+2D0*SQM4*TH)/(-(SH*UH))
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
-          CALL PYWIDT(24,SQM4,WDTP,WDTE)
-          GMMWC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMWC/((SQM4-SQMW)**2+GMMWC**2)
-          FACWQ=FACWQ*HBW4C/HBW4
-          DO 360 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 360
-            IA=IABS(I)
-            KCHW=ISIGN(1,KCHG(IA,1)*ISIGN(1,I))
-            WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))/WDTP(0)
-            DO 350 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 350
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 350
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACWQ*VINT(180+I)*WIDSC
-  350       CONTINUE
-  360     CONTINUE
- 
-        ELSEIF(ISUB.EQ.35) THEN
-C...f + gamma -> f + (gamma*/Z0)
-          IF(MINT(15).EQ.22.AND.VINT(3).LT.0D0) THEN
-            FZQN=SH2+UH2+2D0*(SQM4-VINT(3)**2)*TH
-            FZQDTM=VINT(3)**2*SQM4-SH*(UH-VINT(4)**2)
-          ELSEIF(MINT(16).EQ.22.AND.VINT(4).LT.0D0) THEN
-            FZQN=SH2+UH2+2D0*(SQM4-VINT(4)**2)*TH
-            FZQDTM=VINT(4)**2*SQM4-SH*(UH-VINT(3)**2)
-          ELSE
-            FZQN=SH2+UH2+2D0*SQM4*TH
-            FZQDTM=-(SH*UH)
-          ENDIF
-          FZQN=COMFAC*2D0*ALEM**2*MAX(0D0,FZQN)
-C...gamma, gamma/Z interference and Z couplings to final fermion pairs
-          HFGG=0D0
-          HFGZ=0D0
-          HFZZ=0D0
-          RADC4=1D0+PYALPS(SQM4)/PARU(1)
-          DO 370 I=1,MIN(16,MDCY(23,3))
-            IDC=I+MDCY(23,2)-1
-            IF(MDME(IDC,1).LT.0) GOTO 370
-            IMDM=0
-            IF(MDME(IDC,1).EQ.1.OR.MDME(IDC,1).EQ.2.OR.MDME(IDC,1).EQ.4)
-     &      IMDM=1
-            IF(I.LE.8) THEN
-              EF=KCHG(I,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ELSEIF(I.LE.16) THEN
-              EF=KCHG(I+2,1)/3D0
-              AF=SIGN(1D0,EF+0.1D0)
-              VF=AF-4D0*EF*XWV
-            ENDIF
-            RM1=PMAS(IABS(KFDP(IDC,1)),1)**2/SQM4
-            IF(4D0*RM1.LT.1D0) THEN
-              FCOF=1D0
-              IF(I.LE.8) FCOF=3D0*RADC4
-              BE34=SQRT(MAX(0D0,1D0-4D0*RM1))
-              IF(IMDM.EQ.1) THEN
-                HFGG=HFGG+FCOF*EF**2*(1D0+2D0*RM1)*BE34
-                HFGZ=HFGZ+FCOF*EF*VF*(1D0+2D0*RM1)*BE34
-                HFZZ=HFZZ+FCOF*(VF**2*(1D0+2D0*RM1)+
-     &          AF**2*(1D0-4D0*RM1))*BE34
-              ENDIF
-            ENDIF
-  370     CONTINUE
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=(1D0/PARU(1))*GMMZ/((SQM4-SQMZ)**2+GMMZ**2)
-          MINT15=MINT(15)
-          MINT(15)=1
-          MINT(61)=1
-          CALL PYWIDT(23,SQM4,WDTP,WDTE)
-          MINT(15)=MINT15
-          HFALEM=(PARU(108)/PARU(2))*(2D0/3D0)
-          HFGG=HFGG*HFALEM*VINT(111)/SQM4
-          HFGZ=HFGZ*HFALEM*VINT(112)/SQM4
-          HFZZ=HFZZ*HFALEM*VINT(114)/SQM4
-C...Loop over flavours; consider full gamma/Z structure
-          DO 390 I=MMINA,MMAXA
-            IF(I.EQ.0) GOTO 390
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            FACZQ=EI**2*(EI**2*HFGG+EI*VI*HFGZ+
-     &      (VI**2+AI**2)*HFZZ)/HBW4
-            FZQD=MAX(PMAS(IABS(I),1)**2*SQM4,FZQDTM)
-            DO 380 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 380
-              IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 380
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=22
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACZQ*FZQN/FZQD
-  380       CONTINUE
-  390     CONTINUE
- 
-        ELSEIF(ISUB.EQ.36) THEN
-C...f + gamma -> f' + W+/-
-          FWQ=COMFAC*ALEM**2/(2D0*XW)*
-     &    (SH2+UH2+2D0*SQM4*TH)/(SQPTH*SQM4-SH*UH)
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMW/((SQM4-SQMW)**2+GMMW**2)
-          CALL PYWIDT(24,SQM4,WDTP,WDTE)
-          GMMWC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMWC/((SQM4-SQMW)**2+GMMWC**2)
-          FWQ=FWQ*HBW4C/HBW4
-          DO 410 I=MMINA,MMAXA
-            IF(I.EQ.0) GOTO 410
-            IA=IABS(I)
-            EIA=ABS(KCHG(IABS(I),1)/3D0)
-            FACWQ=FWQ*(EIA-SH/(SH+UH))**2
-            KCHW=ISIGN(1,KCHG(IA,1)*ISIGN(1,I))
-            WIDSC=(WDTE(0,1)+WDTE(0,(5-KCHW)/2)+WDTE(0,4))/WDTP(0)
-            DO 400 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,22).EQ.0) GOTO 400
-              IF(ISDE.EQ.2.AND.KFAC(1,22)*KFAC(2,I).EQ.0) GOTO 400
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=22
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACWQ*VINT(180+I)*WIDSC
-  400       CONTINUE
-  410     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.100) THEN
-        IF(ISUB.EQ.69) THEN
-C...gamma + gamma -> W+ + W-
-          SQMWE=MAX(0.5D0*SQMW,SQRT(SQM3*SQM4))
-          FPROP=SH2/((SQMWE-TH)*(SQMWE-UH))
-          FACWW=COMFAC*6D0*ALEM**2*(1D0-FPROP*(4D0/3D0+2D0*SQMWE/SH)+
-     &    FPROP**2*(2D0/3D0+2D0*(SQMWE/SH)**2))*WIDS(24,1)
-          IF(KFAC(1,22)*KFAC(2,22).EQ.0) GOTO 420
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=22
-          ISIG(NCHN,2)=22
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=FACWW
-  420     CONTINUE
- 
-        ELSEIF(ISUB.EQ.70) THEN
-C...gamma + W+/- -> Z0 + W+/-
-          SQMWE=MAX(0.5D0*SQMW,SQRT(SQM3*SQM4))
-          FPROP=(TH-SQMWE)**2/(-(SH*(SQMWE-UH)))
-          FACZW=COMFAC*6D0*ALEM**2*(XW1/XW)*
-     &    (1D0-FPROP*(4D0/3D0+2D0*SQMWE/(TH-SQMWE))+
-     &    FPROP**2*(2D0/3D0+2D0*(SQMWE/(TH-SQMWE))**2))*WIDS(23,2)
-          DO 440 KCHW=1,-1,-2
-            DO 430 ISDE=1,2
-              IF(KFAC(ISDE,22)*KFAC(3-ISDE,24*KCHW).EQ.0) GOTO 430
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=22
-              ISIG(NCHN,3-ISDE)=24*KCHW
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACZW*WIDS(24,(5-KCHW)/2)
-  430       CONTINUE
-  440     CONTINUE
-        ENDIF
-      ENDIF
- 
-      RETURN
-      END
-
-
-
-
-
diff --git a/Generators/PythiaExo_i/src/PythiaModified/pysthad.F b/Generators/PythiaExo_i/src/PythiaModified/pysthad.F
deleted file mode 100644
index b32299a237ebaa4d2580db351b9bb824fe5953c1..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaModified/pysthad.F
+++ /dev/null
@@ -1,1294 +0,0 @@
-C*********************************************************************
-
-C...PYSTFR
-C...Fragments the string near to a stop, to form a stop-hadron, 
-C...by producing a new q-qbar pair.
- 
-      SUBROUTINE PYSTFR(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSTFR called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of stop mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+6
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two stops per event.
-C...Identify position of stop (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the stop belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this stop-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider stop-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for stop-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for stop-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+600-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-        
-
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of stop-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align stop along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired stop hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for stop-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+600-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &    (KFSAV/10)+MOD(KFSAV,10)
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &    (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          KFSTHD=-KFSTHD
-        ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for stop-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISTOP
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two stops.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with stop hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-
-C*********************************************************************
-
-C...PYSTFRRE
-C...Fragments the string near to a stop, to form a stop-hadron, 
-C...by producing a new q-qbar pair.
-C...Regge scheme applied 
-      SUBROUTINE PYSTFRRE(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSTFRRE called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of stop mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+6
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two stops per event.
-C...Identify position of stop (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the stop belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this stop-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider stop-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for stop-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for stop-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           if(KFSAV.eq.3.or.KFSAV.eq.5) then
-              KFSAV=1
-           endif
-           if(KFSAV.eq.4) then
-              KFSAV=2
-           endif
-           if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-              KFSAV=-1
-           endif
-           if(KFSAV.eq.-4) then
-              KFSAV=-2
-           endif
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+600-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-
-        if(KFSAV.eq.3.or.KFSAV.eq.5) then
-           KFSAV=1
-        endif
-        if(KFSAV.eq.4) then
-           KFSAV=2
-        endif
-        if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-           KFSAV=-1
-        endif
-        if(KFSAV.eq.-4) then
-           KFSAV=-2
-        endif
-
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of stop-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align stop along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired stop hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for stop-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+600-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) then
-             if (KFSAV/100.ne.21) goto 90
-             KFSAV=2101
-             KFSTHD=KSUSY1+6000+
-     &            (KFSAV/10)+MOD(KFSAV,10)
-          endif
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) then
-             if (-KFSAV/100.ne.21) goto 90
-             KFSAV=-2101
-             KFSTHD=KSUSY1+6000+
-     &            (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          endif
-          KFSTHD=-KFSTHD
-        ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for stop-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISTOP
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two stops.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with stop hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-C*********************************************************************
-
-C...PYSBFRRE
-C...Fragments the string near to a sbottom, to form a sbottom-hadron, 
-C...by producing a new q-qbar pair.
-C...Regge scheme applied 
-      SUBROUTINE PYSBFRRE(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSBFR called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of sbottom mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+6
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two sbottoms per event.
-C...Identify position of sbottom (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the sbottom belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this sbottom-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider sbottom-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for sbottom-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for sbottom-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           if(KFSAV.eq.3.or.KFSAV.eq.5) then
-              KFSAV=1
-           endif
-           if(KFSAV.eq.4) then
-              KFSAV=2
-           endif
-           if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-              KFSAV=-1
-           endif
-           if(KFSAV.eq.-4) then
-              KFSAV=-2
-           endif
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+500-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+5000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+500+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+5000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-        
-
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-
-        if(KFSAV.eq.3.or.KFSAV.eq.5) then
-           KFSAV=1
-        endif
-        if(KFSAV.eq.4) then
-           KFSAV=2
-        endif
-        if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-           KFSAV=-1
-        endif
-        if(KFSAV.eq.-4) then
-           KFSAV=-2
-        endif
-
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of sbottom-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align sbottom along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired sbottom hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for sbottom-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+500-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) then
-             if (KFSAV/100.ne.21) goto 90
-             KFSAV=2101
-             KFSTHD=KSUSY1+5000+
-     &            (KFSAV/10)+MOD(KFSAV,10)
-          endif
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+500+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) then
-             if (-KFSAV/100.ne.21) goto 90
-             KFSAV=-2101
-             KFSTHD=KSUSY1+5000+
-     &            (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          endif
-          KFSTHD=-KFSTHD
-       ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for sbottom-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISBOTTOM
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two sbottoms.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with sbottom hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-
-
-C*********************************************************************
- 
-C...PYSQDC
-C...Decays the squark inside a squark-hadron.
- 
-      SUBROUTINE PYSQDC(KSQUARK)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-C...Width properties.
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-      integer indices(2)
-C...Optional offset of constituent quark/diquark mass,
-C...representing gluon cloud around squark not part of the decay.
-      PMOFF = 0.2D0
-      MWID(PYCOMP(KSQUARK))=2
-
-C...The probability that it has spin 1.
-C...(Except for identical flavours, where spin 1 is only possibility.)
-C...(Recall that all R-baryon codes were given as if spin 1, sloppily.)
-      PROBS1=0.5D0
-
-
-      print*,'In PYSQDC'
-
-C...Loop through to find R-hadrons.
-      DO 150 I=1,N
-C...If only one of the R-hadrons should decay inside the detector, 
-C...you could here pick at random whether to allow the one with 
-C...K(I,1) = 6 or the one with =7. (Where the random choice of course
-C...could depend on the position of an imagined displaced vertex.)
-c         IF(IABS(K(I,2)).gt.100000) THEN
-c            print*,"RMA: ",K(I,1),K(I,2)
-c         endif
-        IF(K(I,1).EQ.5.or.K(I,1).EQ.6.OR.K(I,1).EQ.7) THEN
-
-C...Begin resolve R-hadron flavour content to ~q + qbar or ~q + qq.
-c           print*,'RMA: PDG: ',K(I,2)
-          KFRH=(IABS(K(I,2))-KSUSY1)/10
-          KSGN=K(I,2)/IABS(K(I,2));
-c          print*, 'RMA: Stripped PDG: ',KFRH
-c          print*, 'RMA: Sign: ',KSGN
-
-C...Squark meson : Strip quark
-          IF(KFRH.LT.100) THEN
-             KFQ=MOD(KFRH,10)*(-1)*KSGN
-c             print*, 'RMA: QUARK: ',KFQ
-
-C...Squarkbaryon : Strip diquark
-          ELSEIF(KFRH.LT.1000) THEN
-             KFQ=100*MOD(KFRH,100)+3
-             KFB=MOD(KFRH/10,10) 
-             KFC=MOD(KFRH,10)
-             if(KFB.NE.KFC.AND.PROBS1.LT.PYR(0)) KFQ=KFQ-2
-             KFQ=KSGN*KFQ
-c             print*, 'RMA: DIQUARK: ',KFQ
-          endif
-
-
-C...Subdivide R-hadron into squark + 1 light (di)quark in new slots. 
-          DO 120 I1=N+1,N+2
-            K(I1,1)=3
-            K(I1,3)=I
-            K(I1,4)=0
-            K(I1,5)=0
-            DO 110 J=1,5
-              V(I1,J)=0D0
-  110       CONTINUE
-  120     CONTINUE 
-
-C...Store new flavours.
-          K(N+1,2)=KSGN*(KSQUARK)
-c          K(N+1,2)=KSGN*6
-          K(N+2,2)=KFQ
-c          print*, 'RMA: PDG1: ',K(N+1,2)
-c          print*, 'RMA: PDG2: ',K(N+2,2)
-
-
-
-c          call pylist(3)
-C...Set up colour flow. Konverter til colur singlet. Find dokumentation
-C Squark
-c          K(N+1,4)=MSTU(5)*(N+2) 
-c          K(N+1,5)=MSTU(5)*(N+2) 
-
-C Quark/Di-quark
-c          K(N+2,4)=MSTU(5)*(N+1) 
-c          K(N+2,5)=MSTU(5)*(N+1) 
-
-c Saving the indices for PYJOIN later
-          indices(1)=N+1
-          indices(2)=N+2
-
-
-C...Define effective quark/diquark masses.
-          MSTJ(93)=1 
-          PM=PYMASS(KFQ)+PMOFF         
-c          print*,'RMA: PM: ',PM
-C...Share gluino"hadron" momentum with two light quarks.
-          FAC=PM/P(I,5)
-
-          DO 130 J=1,5
-            P(N+1,J)=(1D0-FAC)*P(I,J)
-            P(N+2,J)=FAC*P(I,J)
-  130     CONTINUE
-
-C...If you want a displaced vertex, you could also write that info
-C...into the V array, but you have to calculate that vertex yourself.
-
-C...Mark R-hadron decayed and update number counter.
-          K(I,1)=K(I,1)+10
-          K(I,4)=N+1
-          K(I,5)=N+2
-          N=N+2
-          call pyjoin(2,indices)
-
-cJack          call pylist(2)
-C...Let squark decay now.
-c          print*,'RMA: Trying to decay ',N-1
-          CALL PYRESD(N-1)
-c          call pylist(2)
-C...End of loop over two R-hadrons.
-        ENDIF
- 150  CONTINUE
-
-C...And then the decay products can fragment, etc.
-      CALL PYEXEC
-
-      RETURN
-      END       
diff --git a/Generators/PythiaExo_i/src/PythiaModified/pytaud.F b/Generators/PythiaExo_i/src/PythiaModified/pytaud.F
deleted file mode 100644
index 0b440fa10b463af303584e9e02ab0472e67e953d..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaModified/pytaud.F
+++ /dev/null
@@ -1,213 +0,0 @@
-      SUBROUTINE PYTAUD(ITAU,IORIG,KFORIG,NDECAY)
-
-C...  created: 28.04.2009 by vadym.zhuravlov@cern.ch
-C     decay of tau to 3 muons, uniform distribution
-C     in phase space (mandelstam s,t,u)
-      
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      INTEGER PYCOMP
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      SAVE /PYJETS/,/PYDAT1/
-
-      LOGICAL PASSED
-      INTEGER COUNTER
-      DOUBLE PRECISION A(2)
-      DOUBLE PRECISION E(3), PMU(3), PX(3), PY(3), PZ(3)
-      DIMENSION DP(4)
-
-      
-      TAUMASS = PMAS(PYCOMP(15),1) 
-      EMUMASS = PMAS(PYCOMP(13),1)
-      
-C      PRINT *, "TAUMASS = ", TAUMASS, "MUMASS = ", EMUMASS
-
-C     fill NDECAY, K, mass, px and py     
-      NDECAY = 3
-      DO I=N+1, N+NDECAY
-         P(I, 5) = EMUMASS
-      ENDDO
-
-      IF (K(ITAU, 2).GT. 0) THEN 
-         K(N+1, 2) = 13
-         K(N+2, 2) = 13
-         K(N+3, 2) = -13
-      ELSE
-         K(N+1, 2) = -13
-         K(N+2, 2) = -13
-         K(N+3, 2) = 13
-      ENDIF
-      
-      TAUMASS2 = TAUMASS*TAUMASS
-      EMUMASS2 = EMUMASS*EMUMASS
-      
-C     generate two random numbers 
-      COUNTER = 0
-      PASSED = .FALSE.
-      DO WHILE (.NOT. PASSED) 
-         A(1) = PYR(0)
-         A(2) = PYR(0)
-C     sort numbers
-         IF (A(1)>A(2)) THEN
-            TMP = A(1)
-            A(1) = A(2)
-            A(2) = TMP
-         ENDIF
-         
-C         PRINT *, 'GENERATED NUMBERS: ', A(1), A(2)
-         
-C     calculated Mandelstam variables
-         S = (3*EMUMASS2+TAUMASS2)*A(1)
-         T = (3*EMUMASS2+TAUMASS2)*(A(2)-A(1))
-         U = (3*EMUMASS2+TAUMASS2)*(1-A(2))
-         
-C         PRINT *, 'MANDELSTAM VARIABLES: ', S, T, U 
-         
-C     calculate muon energy
-         E(1) = (TAUMASS2+EMUMASS2-S)/(2*TAUMASS)
-         E(2) = (TAUMASS2+EMUMASS2-T)/(2*TAUMASS)
-         E(3) = (TAUMASS2+EMUMASS2-U)/(2*TAUMASS)
-         
-C         PRINT *, 'TOTAL MUON ENERGY BEFORE BUST: ', E(1)+E(2)+E(3)
-         
-         IF (E(1).LT.EMUMASS.OR.E(2).LT.EMUMASS.OR.E(3).LT.EMUMASS) THEN 
-            PASSED = .FALSE.
-         ELSE 
-            PASSED = .TRUE.
-         ENDIF
-         
-         DO I=1,3
-            PMU(I)=SQRT(E(I)**2-EMUMASS2)
-         ENDDO
-
-C         PRINT *, "MUON MOMENTA: ", PMU
-         
-         IF (PASSED
-     &        .AND.PMU(1)+PMU(2).GT.PMU(3)
-     &        .AND.PMU(3)+PMU(1).GT.PMU(2) 
-     &        .AND.PMU(2)+PMU(3).GT.PMU(1)) THEN 
-            PASSED = .TRUE.
-         ELSE 
-            PASSED = .FALSE.
-         ENDIF
-      
-         COUNTER = COUNTER+1
-         IF (COUNTER.GT.1000) THEN 
-            PRINT *, "ERROR IN PYTAUD: FAILED TO GENERATE MUON MOMENTA"
-            RETURN
-         ENDIF
-      ENDDO
-      
-      PX(1) =  - PMU(1)
-      PX(2) = (PMU(1)**2+PMU(2)**2-PMU(3)**2)/(2*PMU(1))
-      PX(3) = (PMU(1)**2-PMU(2)**2+PMU(3)**2)/(2*PMU(1))
-      
-      PY(1) = 0.0
-      PY(2) = -SQRT(PMU(2)**2-PX(2)**2)
-      PY(3) =  SQRT(PMU(3)**2-PX(3)**2)
-    
-      PZ(1) =0.0
-      PZ(2) =0.0
-      PZ(3) =0.0
-
-C      PRINT *, "BEFORE rotation 3MU INV.MASS = ", 
-C     &     SQRT((E(1)+E(2)+E(3))**2 
-C     &     - (PX(1)+PX(2)+PX(3))**2
-C     &     - (PY(1)+PY(2)+PY(3))**2
-C     &     - (PZ(1)+PZ(2)+PZ(3))**2)      
-
-      
-C      PRINT *, "Before rotation in decay plane: sum px = ", 
-C     &     PX(1)+PX(2)+PX(3),
-C     &     " sum py = ", PX(1)+PX(2)+PX(3),
-C     &     " inv. masses: "
-C      DO I=1,3
-C         PRINT *, SQRT(E(I)**2-PX(I)**2-PY(I)**2)
-C      ENDDO
-      
-      CALL ROTATE(PX, PY)
-
-C      PRINT *, "After rotation in decay plane: sum px = ", 
-C     &     PX(1)+PX(2)+PX(3),
-C     &     "sum py = ", PX(1)+PX(2)+PX(3),
-C     &     "inv. masses: "
-C      DO I=1,3
-C         PRINT *, SQRT(E(I)**2-PX(I)**2-PY(I)**2)
-C      ENDDO
-    
-C      PRINT *, "BEFORE BOOST 3MU INV.MASS = ", 
-C     &     SQRT((E(1)+E(2)+E(3))**2 
-C     &     - (PX(1)+PX(2)+PX(3))**2
-C     &     - (PY(1)+PY(2)+PY(3))**2
-C     &     - (PZ(1)+PZ(2)+PZ(3))**2)      
-
-C     boost to tau rest frame
-      BEX = P(ITAU,1)/P(ITAU,4)
-      BEY = P(ITAU,2)/P(ITAU,4)
-      BEZ = P(ITAU,3)/P(ITAU,4)
-      
-      IF(BEX**2+BEY**2+BEZ**2.GT.1D-20) THEN
-         DBX=BEX
-         DBY=BEY
-         DBZ=BEZ
-         DB=SQRT(DBX**2+DBY**2+DBZ**2)
-         DGA=1D0/SQRT(1D0-DB**2)
-C     LOOP OVER 3 MUONS
-         DO 160 I=1,3
-            DP(1) = PX(I)
-            DP(2) = PY(I)
-            DP(3) = 0.0
-            DP(4) = E(I)
-            
-            DBP=DBX*DP(1)+DBY*DP(2)+DBZ*DP(3)
-            DGABP=DGA*(DGA*DBP/(1D0+DGA)+DP(4))
-            PX(I)=DP(1)+DGABP*DBX
-            PY(I)=DP(2)+DGABP*DBY
-            PZ(I)=DP(3)+DGABP*DBZ
-            E(I)=DGA*(DP(4)+DBP)
- 160     CONTINUE
-      ENDIF
-C     STORE MOMENTA
-C      PRINT *, " PX = ", PX
-C      PRINT *, " PY = ", PY
-C      PRINT *, " PZ = ", PZ
-C      PRINT *, " 3MU INV.MASS = ", 
-C     &     SQRT((E(1)+E(2)+E(3))**2 
-C     &     - (PX(1)+PX(2)+PX(3))**2
-C     &     - (PY(1)+PY(2)+PY(3))**2
-C     &     - (PZ(1)+PZ(2)+PZ(3))**2)      
-      
-      DO I = 1, 3
-         P(N+I, 1) = PX(I)
-         P(N+I, 2) = PY(I)
-         P(N+I, 3) = PZ(I)
-         P(N+I, 4) = E(I)
-         P(N+I, 5) = EMUMASS
-      ENDDO
-      
-      RETURN
-      END
-
-      SUBROUTINE ROTATE(PX, PY)
-c     USED BY PYTAUD      
-c     ROTATION OF THE TAU DECAY PRODUCTS BY ARBITRARY ANGLE IN DECAY PLANE
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      
-      DATA PI/3.141592654D0/
-      DIMENSION PX(3), PY(3)
-      PHI = PI*PYR(0)
-
-      DO I=1,3
-         TMP = PX(I)
-         PX(I) = SIN(PHI)*TMP+COS(PHI)*PY(I)
-         PY(I) = COS(PHI)*TMP-SIN(PHI)*PY(I)
-      ENDDO
-
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/PythiaMono.cxx b/Generators/PythiaExo_i/src/PythiaMono.cxx
deleted file mode 100644
index 9ddcdef9a63c4b1a25dd7bddf9afc273e5def581..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaMono.cxx
+++ /dev/null
@@ -1,954 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-//////////////////////////////////////////////////////////////////
-//
-// GeneratorModules/PythiaMono.cxx Description: Allows the user
-// to generate MONOPOLE pythia events and store the result in the
-// Transient Store.
-//
-// Adapted from Pythia.cxx by Daniel Goldin
-//
-// AuthorList:U
-//         Ian Hinchliffe:  Initial Code June: 2000
-//         Modeled after the CDF code by Stan Thompson
-// parsing added August 2000
-// more switches added Feb 2001
-// Les Houches external process interface added May 2002
-// added access to pyint1 common Sept 2002
-// added access to pypued common Oct. 2008 (L. Mijovic, liza.mijovic@cern.ch)
-// Header for this module:-
-#include "PythiaExo_i/PythiaMono.h"
-#include "TruthUtils/GeneratorName.h"
-
-// Framework Related Headers:-
-//#include "GaudiKernel/MsgStream.h"
-
-// Other classes used by this class:-
-#include "StoreGate/StoreGateSvc.h"
- 
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "GeneratorUtils/StringParse.h"
-#include <stdlib.h>
-//-------------------------------
-// calls to fortran routines
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-// Pointer On AtRndmGenSvc
-IAtRndmGenSvc* 	PythiaMono::p_AtRndmGenSvc  = 0;
-std::string	PythiaMono::pythia_stream	=	"PYTHIA_INIT";
-extern "C" double atl_pyr_( int* /*idummy*/ )
-{
-  CLHEP::HepRandomEngine* engine = 	PythiaMono::p_AtRndmGenSvc->GetEngine(PythiaMono::pythia_stream);
-  return CLHEP::RandFlat::shoot(engine);
-}
-
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyinit_(const char*,
-               const char*, 
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference) 
-               int  
-               );
-  void pyevnt_();
-  void pyevnw_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  int  pycomp_(int*);
-//    void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-    void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void rinpar_(); // comphep 
-  void subnum_(); // comphep file
-  void rheader_(); // comphep initialization
-  void extproc_(int*);
-  void opensusyfile_(const char* ,int * , int);
-}
-
-// File scope declarations:-
-
-// set pointer to zero at start
-Atlas_HEPEVT*  PythiaMono::s_atlas_HEPEVT = new Atlas_HEPEVT();
-
-//--------------------------------------------------------------------------
-PythiaMono::PythiaMono(const std::string& name, 
-      ISvcLocator* pSvcLocator): GenModule(name,pSvcLocator)
-{
-//--------------------------------------------------------------------------  
-  pythia_stream	=	"PYTHIA_INIT";
-  declareProperty("SetAtlasDefaults", m_AtlasDefaults = true );
-  declareProperty("SusyInputFile",    m_read_Filesusy = " ");
-  declareProperty("PythiaCommand",    m_pythiaCommandVector);
-
-  m_firstlistevent = -1;
-  m_lastlistevent  = -1;
-
-  m_ExternalProcess = 0;
-  m_RndmFileLength=0;
-  m_RndmFileNumber=0;
-  m_RndmFirstEvent=1;
-  m_RndmMOVE=0;
-  m_RndmSkipEvents=0;
-  m_RndmSwitch=0;
-  m_eventlistlevel=0;
-  m_events = 0;
-  m_fortout=0;
-  m_initlistlevel=11;
-  m_msel=6;
-  m_randomseed=19780503;
-  m_win=14000.;
-
-}
-//--------------------------------------------------------------------------
-PythiaMono::~PythiaMono(){
-//--------------------------------------------------------------------------
-}
-//-------------------------------------------------------------
-//--------------
-// Operations --
-//--------------
-Pydat1& PythiaMono::pydat1() {
-   return m_pydat1;
-}
-Pydat2& PythiaMono::pydat2() {
-   return m_pydat2;
-}
-Pydat3& PythiaMono::pydat3() {
-   return m_pydat3; 
-}
-Pysubs& PythiaMono::pysubs() {
-   return m_pysubs;
-}
-Pypars& PythiaMono::pypars() {
-   return m_pypars;
-}
-Pydatr& PythiaMono::pydatr() {
-   return m_pydatr;
-}
-Pymssm& PythiaMono::pymssm() {
-   return m_pymssm;
-}
-//Pypued& PythiaMono::pypued() {
-//   return m_pypued;
-//}
-//Pymsrv& PythiaMono::pymsrv() {
-//   return m_pymsrv;
-//}
-Pyint1& PythiaMono::pyint1() {
-   return m_pyint1;
-}
-Pyint2& PythiaMono::pyint2() {
-   return m_pyint2;
-}
-Pyint5& PythiaMono::pyint5() {
-   return m_pyint5;
-}
-Pytcsm& PythiaMono::pytcsm() {
-   return m_pytcsm;
-}
-AcerMC_acset& PythiaMono::acermc_acset() {
-   return m_acermc_acset;
-}
-
-//---------------------------------------------------------------------------
-StatusCode PythiaMono::genInitialize() {
-  //---------------------------------------------------------------------------
-  // Initialise the listing output, parameter and decay data input streams
-  //
-  //  MsgStream log(messageService(), name());
-if(msgLvl(MSG::INFO)){
-  msg(MSG::INFO) << " PYTHIA INITIALISING.  \n"  << endmsg;}
-
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc",
-				  PythiaMono::p_AtRndmGenSvc,
-				  CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == PythiaMono::p_AtRndmGenSvc)
-  {
-   if(msgLvl(MSG::ERROR)){
-     msg(MSG::ERROR) << " Could not initialize Random Number Service" << endmsg;}
-      return RndmStatus;
-  }	
-  PythiaMono::pythia_stream	=	"PYTHIA_INIT";
-
-  // set up the input parameters to pyinit: these can be changed by the user
-  m_frame  = "CMS   ";
-  m_beam   = "P     ";
-  m_target = "P  ";
-  m_win=14000.;
-  m_initlistlevel=11;
-  m_pystatlistlevel.push_back(1);
-  m_fortout=0;
-
-  m_RndmFileName=" ";
-  m_RndmFileNumber=0;
-  m_RndmSwitch=0;
-  m_RndmFirstEvent=1;
-  m_RndmSkipEvents=0;
-  m_RndmMOVE=0;
-  m_RndmFileLength=0;
-  m_ExternalProcess = 0;
-  
-  // end of setup to pyinit
-  //now set defaults
-  m_randomseed=19780503;
-  this->pydatr().mrpy(1) = m_randomseed; // can be overwritten by user
-  // default process is ttbar 
-  // these can be overwritten by user.
-  m_msel=6;
-  this->pysubs().msel() = m_msel;
-
-  // Set the ATLAS defaults
-  if (m_AtlasDefaults) {
-
-    this->pydat2().pmas(6,1)  =175.;  // top quark mass
-    this->pydat2().pmas(24,1) =80.42; // W mass
-    this->pydat2().pmas(24,2) =2.124; // W width
-    this->pydat2().pmas(23,1) =91.19; // Z0 mass
-    this->pydat2().pmas(23,2) =2.495; // Z0 width
-    this->pypars().mstp(128)  =1;     // fix junk output for documentary particles
-    this->pydat1().mstu(21)   =1;     // error handling switch
-
-    this->pypars().mstp(81)   =21; // ATLAS default for MI and also for the associated 
-                                   // treatment of initial- and final-state showers
-                                   // and beam remnants. MI on; new model for PYEVNW.
-    
-    // Check the user request here and reset mstp(81)
-    for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-      StringParse mystring(m_pythiaCommandVector[i]);
-      string myblock=mystring.piece(1);
-      string myentry=mystring.piece(2);
-      int myint1=mystring.intpiece(3);
-      int myint2=mystring.intpiece(4);
-      if (myblock == "pypars"){
-	if(myentry == "mstp" && myint1 == 81){
-	  this->pypars().mstp(myint1)=myint2;
-	}
-      }
-    }
-    
-    // The new pyevnw routine is used which accesses the new scenario with pT-ordered showers and
-    // interleaved multiple interactions
-    if (this->pypars().mstp(81) >= 20) {
-      //      this->pypars().mstp(68)=1; Removed for 6.4xxx
-      this->pypars().mstp(70)=2;      // (virtuality scale for ISR)
-      this->pypars().mstp(72)=0;
-      this->pypars().mstp(82)=4;      // (mutiple interaction model)
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(88)=0;
-      this->pypars().mstp(89)=1;
-      this->pypars().mstp(90)=1;
-      this->pypars().mstp(95)=1;
-      this->pypars().parp(78)=0.2;
-      this->pypars().parp(80)=0.01;
-      this->pypars().parp(82)=1.9;    // (cut off scale)
-      this->pypars().parp(83)=0.3;
-      this->pypars().parp(84)=0.5;    // (matter distribution)
-      this->pypars().parp(89)=1800.;
-      this->pypars().parp(90)=0.22;   // (cut off scale)
-      this->pydat1().mstj(11)=3;      // (select peterson for charm fragmentation)
-      this->pydat1().mstj(22)=2;      // (Make K_S, Lambda stable)
-      this->pydat1().parj(54)=-0.07;  // (c hadronization)
-      this->pydat1().parj(55)=-0.006; // (b hadronization)
-      this->pydat1().parj(81)=0.14;
-      this->pypars().mstp(52)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(54)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(56)=2;      // (needed for CTEQ6L)
-      this->pypars().mstp(51)=10042;  // (needed for CTEQ6L)
-      this->pypars().mstp(53)=10042;  // (needed for CTEQ6L)
-      this->pypars().mstp(55)=10042;  // (needed for CTEQ6L)
-    } else {
-      this->pypars().mstp(81) = 1;
-      this->pypars().mstp(82) = 4;
-      this->pypars().mstp(86) = 2;
-      this->pypars().parp(67) = 3.;
-      this->pypars().parp(82) = 2.2;
-      this->pypars().parp(83) = 0.5;
-      this->pypars().parp(84) = 0.3;
-      this->pypars().parp(85) = 0.33;
-      this->pypars().parp(86) = 0.66;
-      this->pypars().parp(89) = 1800.;
-      this->pypars().parp(90) = 0.24;
-      this->pypars().mstp(52) = 2;
-      this->pypars().mstp(54) = 2;
-      this->pypars().mstp(56) = 2;
-      this->pypars().mstp(51) = 10042;
-      this->pypars().mstp(53) = 10042;
-      this->pypars().mstp(55) = 10042;
-      this->pydat1().mstj(11) = 3;
-      this->pydat1().mstj(22) = 2;
-      this->pydat1().parj(54) = -0.07;
-      this->pydat1().parj(55) = -0.006;
-    }
-  }
-
-  //
-  // Parse Commands and Set Values from Properties Service...
-  //
-  //   for(CommandVector::iterator it = m_pythiaCommandVector.begin(); 
-  //     it != m_pythiaCommand.end(); it++ ) { 
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-    if(msgLvl(MSG::INFO)){
-      msg(MSG::INFO)<< " Command is: " << m_pythiaCommandVector[i]  << endmsg;}
-    StringParse mystring(m_pythiaCommandVector[i]);
-    string myblock=mystring.piece(1);
-    string myentry=mystring.piece(2);
-    string mystr=mystring.piece(3);
-    int myint1=mystring.intpiece(3);
-    int myint2=mystring.intpiece(4);
-    int myint3=mystring.intpiece(5);
-    int myint4=mystring.intpiece(6);
-    int myint5=mystring.intpiece(7);
-    double  myfl1=mystring.numpiece(4);
-    double  myfl2=mystring.numpiece(5);
-    double  myfl0=mystring.numpiece(3);
-
-    // Note that Pythia needs doubles hence the convert here
-    //    log << MSG::INFO 
-    if(msgLvl(MSG::INFO)){
-      msg(MSG::INFO) << myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1 <<endmsg;}
-    if (myblock=="pyinit") {
-      if(myentry=="user"){
-	m_frame="USER  ";
-        m_external=mystr;
-	if(mystr=="comphep"){
-	  m_ExternalProcess = 1;
-	} else if(mystr=="user"){ 
-	  m_ExternalProcess = 2;
-	} else if(mystr=="acermc"){ 
-	  m_ExternalProcess = 3;
-	} else if(mystr=="alpgen"){ 
-	  m_ExternalProcess = 4;
-	}  else if (mystr == "madgraph") {
-	  m_ExternalProcess = 5;
-	} else if(mystr== "madcup") {
-	  m_ExternalProcess = 6;
-	} else if(mystr== "lhaext") {
-	  m_ExternalProcess = 8;
-	} else if(mystr== "matchig") {
-	  m_ExternalProcess = 9;
-	} else if(mystr== "hvgen") {
-	  m_ExternalProcess = 10;
-        } else if(mystr== "lhef") {
-          m_ExternalProcess = 11;
-	} else {
-	  //	  log << MSG:: ERROR
-        if(msgLvl(MSG::ERROR)){
-        msg(MSG::ERROR) << "PYTHIA ERROR, entry PYINIT USER has comphep, acermc, alpgen, madgraph, madcup,  lhaext, hvgen, lhef and user as options: YOU HAVE SPECIFIED "
-			<< myentry <<endmsg ;}
-	}
-	extproc_(&m_ExternalProcess);
-      }
-      else if(myentry=="FIXT"){
-	m_frame="FIXT";
-      }
-      else if(myentry=="pbar"){
-	m_beam="P~- ";
-      }
-      else if(myentry=="win"){
-	m_win=myfl0;
-      }      
-      else if(myentry=="pylisti"){
-	m_initlistlevel=myint1;
-      }      
-      else if(myentry=="pylistf"){
-	m_eventlistlevel=myint1;
-      }
-      else if(myentry=="dumpr"){
-	m_firstlistevent=myint1;
-	m_lastlistevent=myint2;
-      }
-      else if(myentry=="output"){
-	m_envval1=mystr;
-	m_fortout=49;
-	this->pydat1().mstu(11)=m_fortout;
-      }
-      else if(myentry=="rndm_IO"){
-	m_RndmFileName=mystr;
-	m_RndmFileNumber=36;
-	m_RndmSwitch=myint2;
-	m_RndmFirstEvent=myint3;
-	m_RndmSkipEvents=myint4;
-	m_RndmMOVE=myint5;
-	if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-	
-	if (m_RndmSwitch > 0)
-	{
-	    if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0)
-	    {
-	      //		log << MSG:: ERROR
-                if(msgLvl(MSG::ERROR)){
-                msg(MSG::ERROR)
-		    << " INCOSISTENT SET OF rndm_IO PARAMETERS : FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF"
-		    << myentry <<endmsg ;}
-		m_RndmSwitch = 0;
-	    }
-	}
-        if(msgLvl(MSG::INFO)){
-	msg(MSG::INFO) << " !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! " << endmsg;
-	msg(MSG::INFO) << " THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  " << endmsg;
-	msg(MSG::INFO) << " PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE" << endmsg;
-	msg(MSG::INFO) << " ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  " << endmsg;
-	msg(MSG::INFO) << " DETAILS LOOK IN  " << endmsg;
-	msg(MSG::INFO) << " http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf "
-	    << endmsg;
-	msg(MSG::INFO) << " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-
-	m_RndmSwitch = 0;
-      }
-      else {
-	//	log << MSG:: ERROR 
-        if(msgLvl(MSG::ERROR)){ 
-	  msg(MSG::ERROR) << "PYTHIA ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN AND RNDM_IO: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }    
-    }
-    else if (myblock == "pysubs") {
-      if(myentry == "msel"){
-	this->pysubs().msel()=myint1;
-      }
-      else if (myentry == "msub"){
-	this->pysubs().msub(myint1)=myint2;	 
-      }
-      else if (myentry == "ckin"){
-	this->pysubs().ckin(myint1)=myfl1;	 
-      }
-      else if (myentry == "kfin"){
-	this->pysubs().kfin(myint1,myint2)=myint3;	 
-      }
-      else {
-	//	log << MSG:: ERROR 
-        if(msgLvl(MSG::ERROR)){ 
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pypars"){
-      if(myentry == "mstp"){
-	this->pypars().mstp(myint1)=myint2;
-      }
-      else if(myentry == "msti"){
-	this->pypars().msti(myint1)=myint2;
-      }
-      else if(myentry == "parp"){
-	this->pypars().parp(myint1)=myfl1;
-      }
-      else if(myentry == "pari"){
-	this->pypars().pari(myint1)=myfl1;
-      }
-      else {
-	//	log << MSG:: ERROR 
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat1"){
-      if(myentry == "mstu"){
-	this->pydat1().mstu(myint1)=myint2;
-      }       
-      else if(myentry == "mstj"){
-	this->pydat1().mstj(myint1)=myint2;
-      }
-      else if(myentry == "paru"){
-	this->pydat1().paru(myint1)=myfl1;
-      }       
-      else if(myentry == "parj"){
-	this->pydat1().parj(myint1)=myfl1;
-      }
-      else {
-	//	log << MSG:: ERROR 
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat2"){
-      if(myentry == "kchg"){
-	this->pydat2().kchg(myint1,myint2)=myint3;
-      }       
-      else if(myentry == "pmas"){
-	this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      }
-      else if(myentry == "parf"){
-	this->pydat2().parf(myint1)=myfl1;
-      }       
-      else if(myentry == "vckm"){
-	this->pydat2().vckm(myint1,myint2)=myfl2;
-      }
-      else {
-	//	log << MSG:: ERROR
-        if(msgLvl(MSG::ERROR)){ 
-	  msg(MSG::ERROR) << "PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydat3"){
-      if(myentry == "mdcy"){
-	this->pydat3().mdcy(myint1,myint2)=myint3;
-      }       
-      else if(myentry == "mdme"){
-	this->pydat3().mdme(myint1,myint2)=myint3;
-      }
-      else if(myentry == "brat"){
-	this->pydat3().brat(myint1)=myfl1;
-      }       
-      else if(myentry == "kfdp"){
-	this->pydat3().kfdp(myint1,myint2)=myint3;
-      }
-      else {
-      if(msgLvl(MSG::ERROR)){
-	msg(MSG::ERROR)  << "PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pydatr"){
-      if(myentry == "mrpy"){
-        if(msgLvl(MSG::INFO)){
-	msg(MSG::INFO)<< " !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! " << endmsg;
-	msg(MSG::INFO)<< " THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  " << endmsg;
-	msg(MSG::INFO)<< " PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE" << endmsg;
-	msg(MSG::INFO)<< " ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  " << endmsg;
-	msg(MSG::INFO)<< " DETAILS LOOK IN  " << endmsg;
-	msg(MSG::INFO)<< " http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf "
-	    << endmsg;
-	msg(MSG::INFO)<< " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-	  
-	this->pydatr().mrpy(myint1)=myint2;
-      }       
-      else if(myentry == "rrpy"){
-	this->pydatr().rrpy(myint1)=myfl1;
-      }
-      else {
-      if(msgLvl(MSG::ERROR)){
-	msg(MSG::ERROR)  << "PYTHIA ERROR, block PYDATR  HAS MRPY AND RRPY : YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pymssm"){
-      if (myentry=="imss"){
-	if (myint1 == 21 || myint1 == 22) {
-	  //	  log << MSG::WARNING 
-          if(msgLvl(MSG::WARNING)){
-	    msg(MSG::WARNING)  << "The seting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default" <<endmsg;}
-	} else {
- 	  this->pymssm().imss(myint1)=myint2;
-	}
-      }
-      else if (myentry=="rmss"){
-	this->pymssm().rmss(myint1)=myfl1;
-      }
-      else {
-        if(msgLvl(MSG::ERROR)){
-	  msg(MSG::ERROR)  << "PYTHIA ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pyint2"){
-      if (myentry == "iset"){
-	this->pyint2().iset(myint1)=myint2; 
-      }
-      else if (myentry == "kfpr"){
-	this->pyint2().kfpr(myint1,myint2)=myint3;  
-      }
-      else if (myentry == "coef"){
-	this->pyint2().coef(myint1,myint2)=myfl2;  
-      }
-      else if (myentry == "icol"){
-	this->pyint2().icol(myint1,myint2,myint3)=myint4;  
-      }
-      else {
-      if(msgLvl(MSG::ERROR)){
-	msg(MSG::ERROR)  << "PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-    }
-    else if (myblock == "pystat"){
-	m_pystatlistlevel.clear();
-	for (unsigned i = 2; i <= mystring.string_size(); ++i)
-	    m_pystatlistlevel.push_back(mystring.intpiece(i));
-    }
-    else if (myblock == "pytcsm"){
-      if (myentry == "itcm"){
-	this->pytcsm().itcm(myint1)=myint2; 
-      }
-      else if (myentry=="rtcm"){
-	this->pytcsm().rtcm(myint1)=myfl1;
-      }
-      else {
-           if(msgLvl(MSG::ERROR)){
-	     msg(MSG::ERROR)  << "PYTHIA ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED "<< myentry <<endmsg ;}
-      }
-
-    }
-
-    // AcerMC tt~ decay mode switching
-    else if (myblock == "acermc" && myentry=="acset12") {
-      if (m_ExternalProcess == 3) {
-	this->acermc_acset().acset12()=myint1;
-      }
-    }
-
-    else {
-      if(msgLvl(MSG::ERROR)){
-	msg(MSG::ERROR)  << " ERROR in PYTHIA PARAMETERS   " << myblock << " is and invalid common block name !" << endmsg;}
-    }
-  }
-  // end of parsing
-  //------------------------------------------------------------------
-
-  // Set the logical Unit Number for the immss(1)=11 option and open the file
-  if (this->pymssm().imss(1) == 11) {
-    int syunit = 66;
-    this->pymssm().imss(21) = syunit;
-    this->pymssm().imss(22) = syunit;
-    const std::string& fileName = m_read_Filesusy; 
-    opensusyfile_(fileName.c_str(),&syunit,fileName.size()); 
-  }
-  
-  // !!!!! PROTECT AGAINST mstp(81)/mstp(82) Pythia looping
-  if (this->pypars().mstp(81) == 0 && this->pypars().mstp(82) > 2)
-  {
-      this->pypars().mstp(82) = 1;
-      if(msgLvl(MSG::INFO)){
-      msg(MSG::INFO)<< " !!!!!!!!!!  WARNING ON PYTHIA LOOPING !!!!!!!! " << endmsg;
-      msg(MSG::INFO)<< " YOU HAVE SWITCHED OFF MULTIPLE INTERACTIONS, mstp(81) = 0 " << endmsg;
-      msg(MSG::INFO)<< " THE DEFAULT ATLAS MULTIPLE INTERACTIONS SCENARIO, mstp(82) = 4 " << endmsg;
-      msg(MSG::INFO)<< " CHANGED TO mstp(82) = 1, BECAUSE PYTHIA IS LOOPING WHEN " << endmsg;
-      msg(MSG::INFO)<< " mstp(81) = 0 and mstp(82) > 2 " << endmsg;
-      msg(MSG::INFO)<< " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endmsg;}
-  }
-  
-  // Now call pyinit and set listing
-  // Note the `extra' arguments to pyinit on the end of the argument
-  // list which do *not* explicitly occur in the FORTRAN
-  // implementation of the function -- one for each character
-  // variable, in the same order (reference Randy Herber,
-  // herber@fnal.gov). Note also that the `extern "C"' function
-  // declaration matches the C usage rather than the FORTRAN
-  // definition of the PYINIT function and therefore includes the 3
-  // extra arguments.
-  // activate the block data  
-  const char* envval = m_envval1.c_str();
-  initpyblock_(&m_fortout,envval);
-
-  if (m_RndmSwitch > 0)
-  {
-      const char* RndmFileName = m_RndmFileName.c_str();
-      m_RndmFileLength = openrandom_(&m_RndmSwitch, &m_RndmFileNumber, RndmFileName);
-      if (m_RndmSwitch ==2 ) if(msgLvl(MSG::INFO)){ msg(MSG::INFO)  << " THEY ARE " << m_RndmFileLength
-								    << " EVENTS STORED IN THE PYTHIA RANDOM NUMBER FILE \n"  << endmsg;}
-  }
-  
-  const char* frame = m_frame.c_str();
-  const char* beam = m_beam.c_str();
-  double winval = m_win;
-  const char* target = m_target.c_str();
-  int minlist   = m_initlistlevel;
-  // special initialization for comphep
-  if(m_external=="comphep"){
-    rinpar_();
-    subnum_();
-    rheader_();
-  }
-  
-  // end of comphep initialization
-//    std::cout << " ****** BEFORE PYINIT ********" << std::endl;
-//    std::cout << setiosflags(ios::fixed);
-//    std::cout << " MSTU(11) " 
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(11)  << " MSTU(20) "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(20)  << " MSTU(118) "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(118) << std::endl;
-//    std::cout << " PARU(108) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(108) << " PARU(117) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(117) << " PARU(118) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(118) << std::endl;
-//    for (int ii = 210; ii < 353; ++ii)
-//    {
-//        std::cout << " BRAT(" << ii << ") "
-//  		<< std::setw(10) << setprecision(8) << this->pydat3().brat(ii) << std::endl;
-//    }
-//    std::cout << " MDCY(310) " 
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,1) << ", "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,2) << ", "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,3);
-  
-//    std::cout << std::resetiosflags(std::ios::fixed)
-//  	    << std::endl;
-
-  // Save the PYTHIA_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = PythiaMono::p_AtRndmGenSvc->GetEngine(PythiaMono::pythia_stream);
-  const long*	sip	=	engine->getSeeds();
-  long	int	si1	=	sip[0];
-  long	int	si2	=	sip[1];
-
-  pyinit_(frame,beam,target,&winval,
-          strlen(frame),strlen(beam),strlen(target)
-          );
-
-  // ... and set them back to the stream for proper save
-  PythiaMono::p_AtRndmGenSvc->CreateStream(si1, si2, PythiaMono::pythia_stream);
-
-  PythiaMono::pythia_stream	=	"PYTHIA";
-  
-//    std::cout << " ****** AFTER PYINIT ********" << std::endl;
-//    std::cout << setiosflags(ios::fixed);
-//    std::cout << " MSTU(11) " 
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(11)  << " MSTU(20) "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(20)  << " MSTU(118) "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(118) << std::endl;
-//    std::cout << " PARU(108) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(108) << " PARU(117) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(117) << " PARU(118) "
-//  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(118) << std::endl;
-//    for (int ii = 210; ii < 353; ++ii)
-//    {
-//        std::cout << " BRAT(" << ii << ") "
-//  		<< std::setw(10) << setprecision(8) << this->pydat3().brat(ii) << std::endl;
-//    }
-//    std::cout << " MDCY(310) " 
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,1) << ", "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,2) << ", "
-//  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,3);
-  
-//    std::cout << std::resetiosflags(std::ios::fixed)
-//  	    << std::endl;
-  
-  pylist_(&minlist);
-  m_events = 0;
-  //  cout << " kfpr ============ " << this->pyint2().kfpr(186,2) <<endl;
-  //cout << " kfpr ============ " << this->pyint2().kfpr(187,2) <<endl;
-  //decay table
-  const char  *p_envar1="PYDAT";
-  //  char  *p_envval1=0;
-  //p_envval1=
-  getenv(p_envar1);
-  //----------------------------------------------------------
-  // This is the decay table  file 
-  //
-  //   int mode=2;
-  //   int lun=37;
-  //   pyupda_(&mode,&lun);
-  //    cldcay_(&lun);
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-//   HepMC::HEPEVT_Wrapper::set_sizeof_int(4);
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-StatusCode PythiaMono::callGenerator() {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-  //  log << MSG::DEBUG 
-  if(msgLvl(MSG::DEBUG)){
-  msg(MSG::DEBUG)  << " PYTHIA generating.  \n"  << endmsg;
-  }
-  // Write/Read the random numbers to/from file if requested
-  if (m_RndmSwitch > 0)	RandomNumberIO();
-
-  // Save the random number seeds in the event
-  CLHEP::HepRandomEngine*	engine	=	PythiaMono::p_AtRndmGenSvc->GetEngine(PythiaMono::pythia_stream);
-  const long*		s	=	engine->getSeeds();
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-  
-  // Generate event
-  pyevnt_();
-
-  // update event counter
-  ++m_events;
-  int mevlist=m_eventlistlevel; 
-  // Is the event to be listed
-  if ( m_events >= m_firstlistevent &&
-       m_events <= m_lastlistevent) {
-    //    log<< MSG:: INFO
-    if(msgLvl(MSG::INFO)){ 
-      msg(MSG::INFO) << "PYEVNT event no. " << m_events << " will be listed" << endmsg;}
-    if (m_frame == "USER  ")
-    {
-	int uspr = 7;
-	pylist_(&uspr); // Special listing when external generator was selected
-    }
-    pylist_(&mevlist); // List this event if required
-  }   
-  // Tell lunhep to convert from PYJETS to HEPEVT
-  int mconv=1;				
-  // Do the conversion
-//    lunhep_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  pyhepc_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  if ( HepMC::HEPEVT_Wrapper::number_entries() <= 0 ) {
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    std::cout << "!!! " << generator_name(100000 * m_ExternalProcess) << " TERMINATES NORMALY: NO MORE EVENTS IN FILE !!!" << std::endl;
-    std::cout << "!!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE !!!" << std::endl;
-    std::cout << "!!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!!" << std::endl;
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    return StatusCode::FAILURE;
-  }
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-//   HepMC::HEPEVT_Wrapper::print_hepevt();
-  return StatusCode::SUCCESS;  
-}
-
-//---------------------------------------------------------------------------
-StatusCode PythiaMono::genFinalize() {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-  if(msgLvl(MSG::INFO)){ msg(MSG::INFO) << " PYTHIA Ending.  \n"  << endmsg;}
-  for (std::vector<int>::iterator i = m_pystatlistlevel.begin(); i != m_pystatlistlevel.end(); ++i)
-  {
-    if(msgLvl(MSG::INFO)){ msg(MSG::INFO) <<"Call PYSTAT at endRun with level " << *i << endmsg;}
-      pystat_(&(*i));
-  }
-  std::cout << "MetaData: cross-section (nb)= " << 1000000. * this->pyint5().xsec(0,3) << std::endl;
-  return StatusCode::SUCCESS;
-}
-//---------------------------------------------------------------------------
-StatusCode PythiaMono::fillEvt(HepMC::GenEvent* evt) {
-  //---------------------------------------------------------------------------
-  //  MsgStream log(messageService(), name());
-
-  //  log << MSG::DEBUG 
-  if(msgLvl(MSG::DEBUG)){
-    msg(MSG::DEBUG)  << " PYTHIA Atlas_HEPEVT Filling.  \n"  << endmsg;}
-  store_Atlas_HEPEVT();
-
-  //  log << MSG::DEBUG 
-  if(msgLvl(MSG::DEBUG)){
-    msg(MSG::DEBUG)  << " PYTHIA Filling.  \n"  << endmsg;}
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-  //HepMC::IO_Ascii output("dump.dat",ios::out);
-
-  // Fill event into HepMC and transient store
-//   std::cout << "====================================================================" << std::endl;
-//   std::cout << "                 === Event dump IN PYTHIA: ===                      " << std::endl;
-//   std::cout << "====================================================================" << std::endl;
-//   HepMC::HEPEVT_Wrapper::print_hepevt();
-
-  hepio.fill_next_event(evt);
-  int pr_id = PYTHIA + 100000 * m_ExternalProcess + this->pyint1().mint(1);
-  if (m_ExternalProcess > 0) pr_id = PYTHIA + 100000 * m_ExternalProcess;
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-  //evt -> print();
-  //cout << " ----------------- END " << endl;
-  
-  //PDF WEIGHTS - using Pdf Info object.. 
-  //pdf_id x_1, x_1, Q2, f_1, f_2 
-  int id1=this->pypars().msti(15);
-  int id2=this->pypars().msti(16);
-  double x1=this->pypars().pari(33);
-  double x2=this->pypars().pari(34);
-  double q=this->pypars().pari(23);
-  double pdf1=(double)this->pypars().mstp(51); //pdg id - awkward but..
-  double pdf2=0.; //dummy 
-  HepMC::PdfInfo tmp_pdi(id1,id2,x1,x2,q,pdf1,pdf2);
-  evt->set_pdf_info(tmp_pdi);
-  /*  std::cout << "pdfiinfo:"<<  evt->pdf_info()->id1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->id2() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->x1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->x2() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->scalePDF() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->pdf1() << std::endl;
-  std::cout << "pdfiinfo:"<<  evt->pdf_info()->pdf2() << std::endl;
-  */
-
-  //  output << evt;
-
-  // Convert cm->mm and GeV->MeV
-//   cmTomm(evt);
-  GeVToMeV(evt);
-  
- return StatusCode::SUCCESS;
-}
-
-void
-PythiaMono::RandomNumberIO()
-{
-  //    MsgStream log(messageService(), name());
-
-    // m_RndmSwitch == 1 : Write the random numbers of the selected events into
-    //                     the file m_RndmFileNumber
-    if (m_RndmSwitch == 1)
-    {
-	int WriteEvent = 	m_events - m_RndmFirstEvent + 1;
-	if (WriteEvent >= 0)
-	{
-	    WriteEvent	 =	WriteEvent%m_RndmSkipEvents;
-	    if (WriteEvent == 0) pyrget_(&m_RndmFileNumber, &m_RndmMOVE);
-	}
-    }
-    // m_RndmSwitch == 2 : Read the random numbers from the selected records from
-    //                     the file m_RndmFileNumber
-    else if (m_RndmSwitch == 2)
-    {
-	int MOVE	=	m_RndmMOVE;
-	if (MOVE == 0)
-	{
-	    if (m_RndmFirstEvent > 0)
-	    {
-		if (m_events == 0)
-		{
-		    MOVE	=	m_RndmFirstEvent - 1;
-		}
-		else
-		{
-		    MOVE	=	m_RndmSkipEvents;
-		}
-	    }
-	    int c_pos	=	this->pydatr().mrpy(6)+MOVE;
-	    if (c_pos < m_RndmFileLength)
-	    {
-		if(msgLvl(MSG::INFO)){
-                  msg(MSG::INFO) << "EVENT " << m_events+1
-		   << " will be generated with the random seeds read from record "
-				 << c_pos+1 << " in file " << m_RndmFileName << endmsg;}
-		pyrset_(&m_RndmFileNumber, &MOVE);
-	    }
-	}
-	else
-	{
-	    pyrset_(&m_RndmFileNumber, &MOVE);
-	}
-	    
-    }
-}
-
-void
-PythiaMono::store_Atlas_HEPEVT(void)
-{
-
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->nhep()  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->isthep(10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->idhep(10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->jmohep(1,10)  << std::endl;
-//   std::cout << "s_atlas_HEPEVT------" << s_atlas_HEPEVT->jdahep(2,10)  << std::endl;
-
-  s_atlas_HEPEVT->fill();
-
-  Atlas_HEPEVT* Ahep = new Atlas_HEPEVT();
-  *(Ahep)=*(s_atlas_HEPEVT);
-  static const std::string keyid = "PythiaMono";
-  StatusCode sc = evtStore() ->record(Ahep, keyid);
-  if (!sc.isSuccess()) {
-    //    MsgStream msg(messageService(), name());
-    if(msgLvl(MSG::DEBUG)){
-      msg(MSG::WARNING) << " Could not record Atlas_HEPEVT" << endmsg;}
-  }
-
-}
diff --git a/Generators/PythiaExo_i/src/PythiaMono_i_entries.cxx b/Generators/PythiaExo_i/src/PythiaMono_i_entries.cxx
deleted file mode 100644
index 3dc4b433604b35f7b071aadb4a462e222df66b5d..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaMono_i_entries.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-#include "PythiaExo_i/PythiaMono.h"
-
-DECLARE_COMPONENT( PythiaMono )
-
diff --git a/Generators/PythiaExo_i/src/PythiaResMod.cxx b/Generators/PythiaExo_i/src/PythiaResMod.cxx
deleted file mode 100644
index 51ee5c47ee99cda74f25d0bc4d97d60db3a7fa7a..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaResMod.cxx
+++ /dev/null
@@ -1,1087 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// File: GeneratorModules/PythiaResMod.cxx
-// Description: Generate pythia events and store the result in the Transient Store.
-//
-// AuthorList:
-//   Ian Hinchliffe:  Initial Code June: 2000
-//   Modeled after the CDF code by Stan Thompson
-//   Parsing added August 2000
-//   More switches added Feb 2001
-//   Les Houches external process interface added May 2002
-//   Added access to pyint1 common Sept 2002
-//   Added access to pypued common Oct. 2008 (L. Mijovic, liza.mijovic@cern.ch)
-//   Direct use of generator codes - replaced with gen. names (E.M.Lobodzinska, Dec 2008)
-//   Remove obsolete code and pseudo atlas default pythia settings (Cano Ay, April 2009)
-//   Move Pythia ATLAS tune from Pythia_i + jO to Pythia_i, LM
-//   Added PYGIVE functionality, LM, Jul. 09
-//   Tunes schema, LM, Aug. 09
-//   Conversion to AthAlgorithm methods (via GenModule) and clean-up, Andy Buckley, Dec 2009
-// added access to pypevwt common, March 2010:  Eric Feng (Chicago) <Eric.Feng@cern.ch>
-
-#include "PythiaExo_i/PythiaResMod.h"
-#include "TruthUtils/GeneratorName.h"
-#include "GeneratorUtils/StringParse.h"
-#include <cstdlib>
-
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "ExoGraviton_i/ExoGraviton.h"
-#include "PathResolver/PathResolver.h"
-
-#include "PythiaExo_i/Lhefinfo.h"
-
-#include "boost/algorithm/string/trim.hpp"
-
-
-// Pointer to AtRndmGenSvc
-IAtRndmGenSvc* PythiaResMod::p_AtRndmGenSvc = 0;
-std::string	PythiaResMod::pythia_stream = "PYTHIA_INIT";
-extern "C" double atl_pyr_( int* /*idummy*/ )
-{
-  CLHEP::HepRandomEngine* engine = 	PythiaResMod::p_AtRndmGenSvc->GetEngine(PythiaResMod::pythia_stream);
-  return CLHEP::RandFlat::shoot(engine);
-}
-
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyinit_(const char*,
-               const char*,
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference)
-               int
-               );
-  void pyevnt_();
-  void pyevnw_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  void addparticle_(const char*, int slen);
-  //pygive implementation: calls Pythia SUBROUTINE PYGIVE(CHIN) 
-  void pygive_(const char*,int); // character string to pygive && its length
-  //pytune : calls Pythia SUBROUTINE PYTUNE(ITUNE)
-  //this call should be used in case one wants to override some of the values PYTUNE sets from the jO
-  //in contrary to using MSTP(5) value the PYTUNE will in this case act before PYINIT
-  void pytune_(int*); // value of int corresponds to the respective ITUNE value 
-  int  pycomp_(int*);
-  //    void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-  void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void rinpar_(); // comphep
-  void subnum_(); // comphep file
-  void rheader_(); // comphep initialization
-  void extproc_(int*);
-  void opensusyfile_(const char* ,int * , int);
-  void setecm_(double*);
-  void parout_(int*);
-  void specix_(int*);
-}
-
-
-Atlas_HEPEVT* PythiaResMod::s_atlas_HEPEVT = new Atlas_HEPEVT();
-
-
-//--------------------------------------------------------------------------
-
-
-PythiaResMod::PythiaResMod(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenModule(name, pSvcLocator)
-{
-  pythia_stream="PYTHIA_INIT";
-  // ATLAS default tune
-  m_Default_Tune_Name="ATLAS_20110002";
-  m_Default_Tune_Type="ATLAS";
-  m_Default_Tune_Index=20110002;
-  m_Starting_Tune_Name="ATLAS_99999999";
-  m_Starting_Tune_Type="ATLAS";
-  m_Starting_Tune_Index=99999999;
-  //set dummy values at start
-  m_Tune_Index=0;
-  m_Tune_Type="";
-  //for non-0 value call PYTUNE directly
-  m_direct_call_to_pytune=0;
-  // some defaults
-  m_firstlistevent = -1;
-  m_lastlistevent  = -1;
-  // old schema, backw. compatibility
-  m_mc0809_Tune_Type="ATLAS";
-  m_mc09_Tune_Index=20090001;
-  m_mc08_Tune_Index=20080001;
-  m_Default_useAtlasPythiaRecomm=true;
-  m_Default_useAtlasPythiaCommon=true;
-  m_Default_useAtlasPythiaTune09=false;
-  m_Default_useAtlasPythiaTune08=false;
-  m_Default_useNoAtlasPythiaParam=false;
-  // printing-out manually set x-section for the MetaData
-  m_Default_SetCrossSection=-1.0;
-  m_Default_xsscale=-99999;
-  // properties
-  declareProperty("SusyInputFile",    m_read_Filesusy = " ");
-  declareProperty("PythiaCommand",    m_pythiaCommandVector);
-  declareProperty("PygiveCommand",    m_PygiveCommandVector);
-  declareProperty("Direct_call_to_pytune", m_direct_call_to_pytune);  
-  declareProperty("Param_Query_AfterInit",m_Param_Query_AfterInit);
-  declareProperty("Param_Query_AfterGen", m_Param_Query_AfterGen);
-  declareProperty("CrossSectionScaleFactor", m_xsscale=m_Default_xsscale); 
-  declareProperty("SetAtlasDefaults", m_AtlasDefaults = false );
-  declareProperty("Tune_Name",  m_Tune_Name = m_Starting_Tune_Name );
-  declareProperty("SetCrossSection",m_SetCrossSection=m_Default_SetCrossSection);
-  declareProperty("addParticle", m_addParticle = false );
-  declareProperty("UseResMod", m_UseResMod = 0); 
-  // old schema, backw. compatibility
-  declareProperty("useAtlasPythiaRecomm",  m_useAtlasPythiaRecomm = m_Default_useAtlasPythiaRecomm);
-  declareProperty("useAtlasPythiaCommon",  m_useAtlasPythiaCommon = m_Default_useAtlasPythiaCommon);
-  declareProperty("useAtlasPythiaTune09",  m_useAtlasPythiaTune09 = m_Default_useAtlasPythiaTune09);
-  declareProperty("useAtlasPythiaTune08",  m_useAtlasPythiaTune08 = m_Default_useAtlasPythiaTune08);
-  declareProperty("useNoAtlasPythiaParam", m_useNoAtlasPythiaParam = m_Default_useNoAtlasPythiaParam);
-
-  m_pygive_gen_cstr = 0;
-  m_pygive_init_cstr = 0;
-  m_pygive_gen_cstr = 0; 
-
-  m_pygive_cstr = 0;
-
-  m_win = 0.;
-  m_msel = 0;
-  m_eventlistlevel = 0;
-  m_initlistlevel = 0;
-  m_randomseed = 0;
-  m_fortout = 0;
-  m_RndmFileNumber = 0;
-  m_RndmSwitch = 0;
-  m_RndmFirstEvent = 0;
-  m_RndmSkipEvents = 0;
-  m_RndmMOVE = 0;
-  m_RndmFileLength = 0;
-  m_events = 0;
-  m_ExternalProcess = 0;
-  m_atlasTune_loop_prot = 0;
-
-}
-//--------------------------------------------------------------------------
-PythiaResMod::~PythiaResMod(){
-//--------------------------------------------------------------------------
-}
-//-------------------------------------------------------------
-//--------------
-// Operations --
-//--------------
-Pydat1& PythiaResMod::pydat1() {
-   return m_pydat1;
-}
-Pydat2& PythiaResMod::pydat2() {
-   return m_pydat2;
-}
-Pydat3& PythiaResMod::pydat3() {
-   return m_pydat3;
-}
-Pysubs& PythiaResMod::pysubs() {
-   return m_pysubs;
-}
-Pypars& PythiaResMod::pypars() {
-   return m_pypars;
-}
-Pydatr& PythiaResMod::pydatr() {
-   return m_pydatr;
-}
-Pymssm& PythiaResMod::pymssm() {
-   return m_pymssm;
-}
-Pypued& PythiaResMod::pypued() {
-   return m_pypued;
-}
-Pypevwt& PythiaResMod::pypevwt() {
-   return m_pypevwt;
-}
-Pymsrv& PythiaResMod::pymsrv() {
-   return m_pymsrv;
-}
-Pyint1& PythiaResMod::pyint1() {
-   return m_pyint1;
-}
-Pyint2& PythiaResMod::pyint2() {
-   return m_pyint2;
-}
-Pyint5& PythiaResMod::pyint5() {
-   return m_pyint5;
-}
-Pytcsm& PythiaResMod::pytcsm() {
-   return m_pytcsm;
-}
-AcerMC_acset& PythiaResMod::acermc_acset() {
-   return m_acermc_acset;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaResMod::genInitialize() {
-  // Initialise the listing output, parameter and decay data input streams
-  ATH_MSG_INFO(" PYTHIA INITIALISING.");
-
-  /// @todo Use ServiceHandle
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc",
-				  PythiaResMod::p_AtRndmGenSvc,
-				  CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == PythiaResMod::p_AtRndmGenSvc)
-  {
-      ATH_MSG_ERROR(" Could not initialize Random Number Service");
-      return RndmStatus;
-  }
-  PythiaResMod::pythia_stream	= "PYTHIA_INIT";
-
-  m_atlasTune_loop_prot=0;
-
-  // set up the input parameters to pyinit: these can be changed by the user
-  m_frame  = "CMS   ";
-  m_beam   = "P     ";
-  m_target = "P  ";
-  m_win=10000.;
-  m_initlistlevel=11;
-  m_pystatlistlevel.push_back(1);
-  m_fortout=0;
-
-  m_RndmFileName=" ";
-  m_RndmFileNumber=0;
-  m_RndmSwitch=0;
-  m_RndmFirstEvent=1;
-  m_RndmSkipEvents=0;
-  m_RndmMOVE=0;
-  m_RndmFileLength=0;
-  m_ExternalProcess = 0;
-
-  // end of setup to pyinit
-// special initialisation for Pythiasgluon
-   if(m_addParticle==true)
- {
-//adding a new particle to Pythia for PythiaSgluon
-  std::string s_newParticleCARD_path =
-  PathResolver::find_file("sgluons.dat", "DATAPATH");
-  const char* c_newParticleCARD_path = s_newParticleCARD_path.c_str();
-  addparticle_(c_newParticleCARD_path,strlen(c_newParticleCARD_path));
-  }
-  //now set defaults
-  m_randomseed=19780503;
-  this->pydatr().mrpy(1) = m_randomseed; // can be overwritten by user
-  // default process is ttbar
-  // these can be overwritten by user.
-  m_msel=6;
-  this->pysubs().msel() = m_msel;
-
-  // Set the ATLAS defaults
-  if (m_AtlasDefaults)
-    {
-      ATH_MSG_WARNING("********** You have chosen the default Atlas Settings.  **********");
-      ATH_MSG_WARNING("********** This switch is not valid any more.           **********");
-    }
-
-  //m_Tune_Name parsing to find m_Tune_Type and m_Tune_Index for setPythiaTune() and atlasTune() calls
-  std::string::size_type sep_index = m_Tune_Name.find_first_of('_');
-  if (sep_index != std::string::npos)
-    {
-      m_Tune_Type=m_Tune_Name.substr(0,sep_index);
-      // atoi : returns 0 if conversion not possible - no additional protection needed
-      m_Tune_Index=atoi((m_Tune_Name.substr(sep_index+1,m_Tune_Name.length()-1)).c_str());
-    }
-  else
-    {
-      // invalid Tune_Name, m_Tune_Type and  m_Tune_Index kept at the dummy vals from constructor,
-      // let setPythiaTune() handle the error
-      ATH_MSG_WARNING("Invalid Tune_Name: "<< m_Tune_Name <<" specified .");
-    }
-  // set any Pythia parameters different from Pythia defaults
-  // allow only one reset
-  if (m_atlasTune_loop_prot<2)
-    {
-      // m_atlasTune_loop_prot counts setPythiaTune() calls in setPythiaTune.cxx
-      StatusCode sc=setPythiaTune();
-      if ( sc.isFailure() )
-	{
-	  ATH_MSG_FATAL("ERROR returned from setPythiaTune, exit.");
-	  return StatusCode::FAILURE;
-	}
-    }
-  else
-    {
-      ATH_MSG_FATAL("More than one reset attempt of tune using setPythiaTune.");
-      ATH_MSG_FATAL("Please correct your jobOptions.");
-      return StatusCode::FAILURE;
-    }
-
-  //call pytune directly in case any parameters set py the tune are to be overwritten from jO
-  if (m_direct_call_to_pytune!=0) pytune_(&m_direct_call_to_pytune);
-
-  //PYGIVE command parsing && call
-  for (unsigned int i = 0; i < m_PygiveCommandVector.size(); i++)
-    {
-      m_pygive_cstr = (m_PygiveCommandVector[i]).c_str();
-      pygive_(m_pygive_cstr,strlen(m_pygive_cstr));
-    }
-
-  // Parse Commands and Set Values from Properties Service...
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-    ATH_MSG_INFO(" Command is: " << m_pythiaCommandVector[i]);
-    StringParse mystring(m_pythiaCommandVector[i]);
-    string myblock = mystring.piece(1);
-	string myentry = mystring.piece(2);
-	string mystr = mystring.piece(3);
-	string mystr2 = mystring.piece(4);
-	string mystr3 = mystring.piece(5);
-	int myint1 = mystring.intpiece(3);
-	int myint2 = mystring.intpiece(4);
-	int myint3 = mystring.intpiece(5);
-	int myint4 = mystring.intpiece(6);
-	int myint5 = mystring.intpiece(7);
-	double myfl0 = mystring.numpiece(3);
-	double myfl1 = mystring.numpiece(4);
-	double myfl2 = mystring.numpiece(5);
-	double myfl3 = mystring.numpiece(6);
-    // For ExoGraviton_i and PythiaBc_i user param. input
-    int myint6 = mystring.intpiece(2);
-
-    // Print a warning when attempt is made to choose PYTUNE tune via MSTP(5) ;
-    // more than MSTP(5) setting is needed for consistent PYTUNE run within Athena
-    if (myblock == "pypars" && myentry == "mstp" && myint1==5)
-      {
-        ATH_MSG_WARNING("--------------------------------------------------------------------------------\n"
-                        << " MSTP(5) set to "<< myint2 <<", Pythia recieves a command to run PYTUNE # " << myint2 << "\n"
-                        << " Please note: " << "\n"
-                        << " 1. it is up to you to switch off any ATLAS defaults you do not want to use; " << "\n"
-                        << " - the interface takes care of this if PYTUNE tune is called via Pythia.Tune_Name=\"PYTUNE_" << myint2 << "\" in the jO." << "\n"
-                        << " 2. in the jO overrides of the parameters set by PYTUNE # " << myint2 << " will have no effect " << "\n"
-                        << " - this correspods to (standalone) Pythia behavior " << "\n"
-                        << " 3. handling of non-existing PYTUNE tune is same as for (default) Pythia standalone." << "\n"
-                        << "--------------------------------------------------------------------------------");
-      }
-
-    // Note that Pythia needs doubles hence the convert here
-    if (myentry!="use_PYINIT")
-      {
-	ATH_MSG_INFO(myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1);
-      }
-    else ATH_MSG_INFO(myblock << " block  " << myentry << " set to " << mystr << " " <<mystr2<<" " <<mystr3<<" "<<myfl3);
-
-    if (myblock=="pyinit") {
-      if (myentry=="user"){
-        m_frame = "USER  ";
-        m_external=mystr;
-        m_ExternalProcess = generator_int(mystr);
-        extproc_(&m_ExternalProcess);
-      }
-      else if(myentry=="use_PYINIT")
-	{
-	  m_frame=mystr;
-	  m_beam=mystr2;
-	  m_target=mystr3;
-	  m_win=myfl3;
-	}
-      else if(myentry=="FIXT"){
-        m_frame="FIXT";
-      }
-      else if(myentry=="pbar"){
-        m_beam="P~- ";
-      }
-      else if(myentry=="win"){
-        m_win=myfl0;
-      }
-      else if(myentry=="pylisti"){
-        m_initlistlevel=myint1;
-      }
-      else if(myentry=="pylistf"){
-        m_eventlistlevel=myint1;
-      }
-      else if(myentry=="dumpr"){
-        m_firstlistevent=myint1;
-        m_lastlistevent=myint2;
-      }
-      else if(myentry=="output"){
-	m_envval1=mystr;
-	m_fortout=49;
-	this->pydat1().mstu(11)=m_fortout;
-      }
-      else if(myentry=="rndm_IO"){
-        m_RndmFileName=mystr;
-        m_RndmFileNumber=36;
-        m_RndmSwitch=myint2;
-        m_RndmFirstEvent=myint3;
-        m_RndmSkipEvents=myint4;
-        m_RndmMOVE=myint5;
-	if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-
-	if (m_RndmSwitch > 0)
-	  {
-	    if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0)
-	      {
-		ATH_MSG_ERROR(" INCONSISTENT SET OF rndm_IO PARAMETERS : FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF" << myentry);
-		m_RndmSwitch = 0;
-	      }
-	  }
-
-	ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-	ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-	ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-	ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-	ATH_MSG_INFO(" DETAILS LOOK IN  ");
-	ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-	ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-
-	m_RndmSwitch = 0;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN use_PYINIT AND RNDM_IO: YOU HAVE SPECIFIED " << myentry);
-      }
-
-
-    }
-    else if (myblock == "pysubs") {
-      if(myentry == "msel"){
-	this->pysubs().msel()=myint1;
-      }
-      else if (myentry == "msub"){
-	this->pysubs().msub(myint1)=myint2;
-      }
-      else if (myentry == "ckin"){
-	this->pysubs().ckin(myint1)=myfl1;
-      }
-      else if (myentry == "kfin"){
-	this->pysubs().kfin(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pypars"){
-      if(myentry == "mstp"){
-	this->pypars().mstp(myint1)=myint2;
-      }
-      else if(myentry == "msti"){
-	this->pypars().msti(myint1)=myint2;
-      }
-      else if(myentry == "parp"){
-	this->pypars().parp(myint1)=myfl1;
-      }
-      else if(myentry == "pari"){
-	this->pypars().pari(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat1"){
-      if(myentry == "mstu"){
-	this->pydat1().mstu(myint1)=myint2;
-      }
-      else if(myentry == "mstj"){
-	this->pydat1().mstj(myint1)=myint2;
-      }
-      else if(myentry == "paru"){
-	this->pydat1().paru(myint1)=myfl1;
-      }
-      else if(myentry == "parj"){
-	this->pydat1().parj(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat2"){
-      if(myentry == "kchg"){
-	this->pydat2().kchg(myint1,myint2)=myint3;
-      }
-      else if(myentry == "pmas"){
-	this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      }
-      else if(myentry == "parf"){
-	this->pydat2().parf(myint1)=myfl1;
-      }
-      else if(myentry == "vckm"){
-	this->pydat2().vckm(myint1,myint2)=myfl2;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat3"){
-      if(myentry == "mdcy"){
-	this->pydat3().mdcy(myint1,myint2)=myint3;
-      }
-      else if(myentry == "mdme"){
-	this->pydat3().mdme(myint1,myint2)=myint3;
-      }
-      else if(myentry == "brat"){
-	this->pydat3().brat(myint1)=myfl1;
-      }
-      else if(myentry == "kfdp"){
-	this->pydat3().kfdp(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydatr"){
-      if(myentry == "mrpy"){
-        ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-        ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-        ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-        ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-        ATH_MSG_INFO(" DETAILS LOOK IN  ");
-        ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-        ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-
-	this->pydatr().mrpy(myint1)=myint2;
-      }
-      else if(myentry == "rrpy"){
-	this->pydatr().rrpy(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDATR HAS MRPY AND RRPY: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pymssm"){
-      if (myentry=="imss"){
-        if (myint1 == 21 || myint1 == 22) {
-          ATH_MSG_WARNING("The setting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default");
-        } else {
-          this->pymssm().imss(myint1)=myint2;
-        }
-      }
-      else if (myentry=="rmss"){
-        this->pymssm().rmss(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pypued"){
-      if (myentry=="iued")
-        {
-          this->pypued().iued(myint1)=myint2;
-        }
-      else if (myentry=="rued"){
-	this->pypued().rued(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYPUED has IUED AND RUED: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-   else if (myblock == "pypevwt"){
-      if (myentry=="ievwt")
-	{
- 	  this->pypevwt().ievwt(myint1)=myint2;
-	}
-      else if (myentry=="revwt"){
-	this->pypevwt().revwt(myint1)=myfl1;
-      }
-      else {
-	ATH_MSG_ERROR("PYTHIA ERROR, block PYPEVWT has IEVWT AND REVWT: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    //CLA: RPV couplings
-    else if (myblock == "pymsrv") {
-      //LLE
-      if (myentry=="rvlam"){
-        this->pymsrv().rvlam(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda to "<< myfl1);
-      }
-      //LQD
-      else if (myentry=="rvlamp"){
-        this->pymsrv().rvlamp(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda^prime to "<< myfl1);
-      }
-      //UDD
-      else if (myentry=="rvlamb"){
-        this->pymsrv().rvlamb(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda^doubelprime to "<< myfl1);
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYMSRV has RVLAM, RVLAMP AND RVLAMB: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pyint2"){
-      if (myentry == "iset"){
-        this->pyint2().iset(myint1)=myint2;
-      }
-      else if (myentry == "kfpr"){
-        this->pyint2().kfpr(myint1,myint2)=myint3;
-      }
-      else if (myentry == "coef"){
-        this->pyint2().coef(myint1,myint2)=myfl2;
-      }
-      else if (myentry == "icol"){
-        this->pyint2().icol(myint1,myint2,myint3)=myint4;
-      }
-      else {
-      ATH_MSG_ERROR("PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pystat"){
-      m_pystatlistlevel.clear();
-      for (unsigned i = 2; i <= mystring.string_size(); ++i)
-	    m_pystatlistlevel.push_back(mystring.intpiece(i));
-    }
-    else if (myblock == "pytcsm"){
-      if (myentry == "itcm"){
-        this->pytcsm().itcm(myint1)=myint2;
-      }
-      else if (myentry=="rtcm"){
-        this->pytcsm().rtcm(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED "<< myentry);
-      }
-
-    }
-
-    // AcerMC tt~ decay mode switching
-    else if (myblock == "acermc" && myentry=="acset12") {
-      if (m_ExternalProcess == ACERMC) {
-        this->acermc_acset().acset12()=myint1;
-      }
-    }
-    // for ExoGraviton user parameter setup
-    else if (myblock == "grav")
-     {
-       ::WriteGravParam(myint6, myint1, (double)myfl0);
-     }
-    // for PythiaBc_i user parameters setup
-    /*
-    else if (myblock == "pythiabc")
-     {
-       ::WritePythiaBcParam(myint6, myint1, (double)myfl0);
-     }
-    */
-    else {
-      ATH_MSG_ERROR(" ERROR in PYTHIA PARAMETERS   " << myblock << " is and invalid common block name !");
-    }
-  }
-  // End of param parsing
-
-  // Set the logical Unit Number for the immss(1)=11 option and open the file
-  if (this->pymssm().imss(1) == 11) {
-    int syunit = 66;
-    this->pymssm().imss(21) = syunit;
-    this->pymssm().imss(22) = syunit;
-    const std::string& fileName = m_read_Filesusy;
-    opensusyfile_(fileName.c_str(),&syunit,fileName.size());
-  }
-
-  // !!!!! PROTECT AGAINST mstp(81)/mstp(82) Pythia looping
-  if (this->pypars().mstp(81) == 0 && this->pypars().mstp(82) > 2)
-  {
-      this->pypars().mstp(82) = 1;
-      ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA LOOPING !!!!!!!!");
-      ATH_MSG_INFO(" YOU HAVE SWITCHED OFF MULTIPLE INTERACTIONS, mstp(81) = 0");
-      ATH_MSG_INFO(" THE DEFAULT ATLAS MULTIPLE INTERACTIONS SCENARIO, mstp(82) = 4");
-      ATH_MSG_INFO(" CHANGED TO mstp(82) = 1, BECAUSE PYTHIA IS LOOPING WHEN");
-      ATH_MSG_INFO(" mstp(81) = 0 and mstp(82) > 2");
-      ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
-  }
-
-  // Now call pyinit and set listing
-  // Note the `extra' arguments to pyinit on the end of the argument
-  // list which do *not* explicitly occur in the FORTRAN
-  // implementation of the function -- one for each character
-  // variable, in the same order (reference Randy Herber,
-  // herber@fnal.gov). Note also that the `extern "C"' function
-  // declaration matches the C usage rather than the FORTRAN
-  // definition of the PYINIT function and therefore includes the 3
-  // extra arguments.
-  // activate the block data
-  const char* envval = m_envval1.c_str();
-  initpyblock_(&m_fortout,envval);
-
-  if (m_RndmSwitch > 0)
-  {
-      const char* RndmFileName = m_RndmFileName.c_str();
-      m_RndmFileLength = openrandom_(&m_RndmSwitch, &m_RndmFileNumber, RndmFileName);
-      if (m_RndmSwitch ==2 ) {
-        ATH_MSG_INFO(" THERE ARE " << m_RndmFileLength << " EVENTS STORED IN THE PYTHIA RANDOM NUMBER FILE");
-      }
-  }
-
-  const char* frame = m_frame.c_str();
-  const char* beam = m_beam.c_str();
-  double winval = m_win;
-  const char* target = m_target.c_str();
-  int minlist   = m_initlistlevel;
-  // special initialization for comphep
-  if(m_external=="comphep"){
-    rinpar_();
-    subnum_();
-    rheader_();
-  }
-  // special initialization for matchig
-  if(m_external=="matchig")
-    {
-      ATH_MSG_DEBUG("Calling setecm with argument winval=" << winval);
-      setecm_(&winval);
-    }
-
-  // end of comphep initialization
-
-  ATH_MSG_DEBUG(" ****** BEFORE PYINIT ********");
-  ATH_MSG_DEBUG(" MSTU(11) " << this->pydat1().mstu(11) <<
-                " MSTU(20) " << this->pydat1().mstu(20)  <<
-                " MSTU(118) " << this->pydat1().mstu(118));
-  ATH_MSG_DEBUG(" PARU(108) " << this->pydat1().paru(108) <<
-                " PARU(117) " << this->pydat1().paru(117) <<
-                " PARU(118) " << this->pydat1().paru(118));
-  for (int ii = 210; ii < 353; ++ii)
-      {
-	      ATH_MSG_DEBUG(" BRAT(" << ii << ") "
-		  <<  this->pydat3().brat(ii));
-	  }
-  ATH_MSG_DEBUG(" MDCY(310) "
-                << this->pydat3().mdcy(310,1) << ", "
-                << this->pydat3().mdcy(310,2) << ", "
-                << this->pydat3().mdcy(310,3));
-
-  // Save the PYTHIA_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = PythiaResMod::p_AtRndmGenSvc->GetEngine(PythiaResMod::pythia_stream);
-  const long* sip = engine->getSeeds();
-  long int	si1 = sip[0];
-  long int	si2 = sip[1];
-
-
-  // write warning for non p-p collistion, strip white-spaces off beam and target strings
-  std::string beam_strp(beam); boost::trim(beam_strp);
-  std::string target_strp(target); boost::trim(target_strp);
-  if ((beam_strp!="P" && beam_strp!="P+" && beam_strp!="p" && beam_strp!="p+") || (target_strp!="P" && target_strp!="P+" && target_strp!="p" && target_strp!="p+"))
-    {
-      ATH_MSG_WARNING("PYINIT(FRAME,BEAM,TARGET,WIN) called from within ATHENA using parameters: ");
-      ATH_MSG_WARNING("FRAME : "<< frame << ", BEAM : "<< beam <<", TARGET: "<< target<< ", WIN: "<< winval);
-      ATH_MSG_WARNING("Initialization with non-standard BEAM-TARGET combination: ");
-      ATH_MSG_WARNING("making sure sensible PYTHIA parameters setup is used is up to you.");
-    }
-
-  // call specix function to enable the use of modified diff. x-sect evaluation for Z',W'
-  // specix(int=1)=enabled, specix(int=0) disabled
-  // int can be passed to PythiaResMod using UseResMod property in jO
-  specix_(&m_UseResMod);
-
-  pyinit_(frame, beam, target, &winval,
-          strlen(frame), strlen(beam), strlen(target));
-
-  // ... and set them back to the stream for proper save
-  PythiaResMod::p_AtRndmGenSvc->CreateStream(si1, si2, PythiaResMod::pythia_stream);
-
-  PythiaResMod::pythia_stream	= "PYTHIA";
-
-  ATH_MSG_DEBUG(" ****** AFTER PYINIT ********");
-  ATH_MSG_DEBUG(" MSTU(11) " << this->pydat1().mstu(11) <<
-                " MSTU(20) " << this->pydat1().mstu(20)  <<
-                " MSTU(118) " << this->pydat1().mstu(118));
-  ATH_MSG_DEBUG(" PARU(108) " << this->pydat1().paru(108) <<
-                " PARU(117) " << this->pydat1().paru(117) <<
-                " PARU(118) " << this->pydat1().paru(118));
-  for (int ii = 210; ii < 353; ++ii)
-    {
-      ATH_MSG_DEBUG(" BRAT(" << ii << ") "
-                    <<  this->pydat3().brat(ii));
-    }
-  ATH_MSG_DEBUG(" MDCY(310) "
-                << this->pydat3().mdcy(310,1) << ", "
-                << this->pydat3().mdcy(310,2) << ", "
-                << this->pydat3().mdcy(310,3));
-
-  ATH_MSG_DEBUG(std::resetiosflags(std::ios::fixed));
-
-
-  pylist_(&minlist);
-  m_events = 0;
-  ATH_MSG_DEBUG(" kfpr (186,2)============ " << this->pyint2().kfpr(186,2));
-  ATH_MSG_DEBUG(" kfpr (187,2)============ " << this->pyint2().kfpr(187,2));
-
-  //decay table
-  const char *p_envar1="PYDAT";
-  //  char *p_envval1=0;
-  //  p_envval1 = 
-  getenv(p_envar1);
-
-  // do parameter querries after PYINIT :
-  //PYGIVE command parsing && call
-
-  if (m_Param_Query_AfterInit.size()!=0)
-    {
-      //save MSTU(11) value before the parout_ call which starts a new stream:
-      int tmp_m11=this->pydat1().mstu(11);
-      // set output to a dedicated file for params after the initialization
-      int tmp_mode=1;
-      parout_(&tmp_mode);
-      // query the requested parameter values:
-      for (unsigned int i = 0; i < m_Param_Query_AfterInit.size(); i++) 
-	{
-	  m_pygive_init_cstr = (m_Param_Query_AfterInit[i]).c_str();
-	  pygive_(m_pygive_init_cstr,strlen(m_pygive_init_cstr));
-	}
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }
-  
-  // get rid of an residual old event generation parameters data:  
-  if (m_Param_Query_AfterGen.size()!=0)
-    {
-      //save MSTU(11) value before the parout_ call which starts a new stream:
-      int tmp_m11=this->pydat1().mstu(11);
-      // set output to a dedicated file for params after the initialization
-      int tmp_mode=2;
-      parout_(&tmp_mode);
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }
-
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaResMod::callGenerator() {
-  ATH_MSG_DEBUG(" PYTHIA generating.");
-
-  // Write/Read the random numbers to/from file if requested
-  if (m_RndmSwitch > 0)	RandomNumberIO();
-
-  // Save the random number seeds in the event
-  CLHEP::HepRandomEngine*	engine	=	PythiaResMod::p_AtRndmGenSvc->GetEngine(PythiaResMod::pythia_stream);
-  const long*		s	=	engine->getSeeds();
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-
-  // Generate event
-  pyevnt_();
-
-  // update event counter
-  ++m_events;
-  int mevlist=m_eventlistlevel;
-  // Is the event to be listed
-  if ( m_events >= m_firstlistevent &&
-       m_events <= m_lastlistevent) {
-    ATH_MSG_INFO("PYEVNT event no. " << m_events << " will be listed");
-    if (m_frame == "USER  ")
-    {
-	int uspr = 7;
-	pylist_(&uspr); // Special listing when external generator was selected
-    }
-    pylist_(&mevlist); // List this event if required
-  } 
-
-  // make parameter querry after event generation:
-  for (unsigned int i = 0; i < m_Param_Query_AfterGen.size(); i++) 
-    {
-      int tmp_m11=this->pydat1().mstu(11); 
-      int tmp_mode=3;
-      parout_(&tmp_mode);      
-      m_pygive_gen_cstr = (m_Param_Query_AfterGen[i]).c_str();
-      pygive_(m_pygive_gen_cstr,strlen(m_pygive_gen_cstr));
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }   
-  
-  // Tell lunhep to convert from PYJETS to HEPEVT
-  int mconv=1;
-  // Do the conversion
-  pyhepc_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  if ( HepMC::HEPEVT_Wrapper::number_entries() <= 0 ) {
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    std::cout << "!!! " << generator_name(m_ExternalProcess) << " TERMINATES NORMALY: NO MORE EVENTS IN FILE !!!" << std::endl;
-    std::cout << "!!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE !!!" << std::endl;
-    std::cout << "!!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!!" << std::endl;
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    return StatusCode::FAILURE;
-  }
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-  return StatusCode::SUCCESS;
-}
-
-//---------------------------------------------------------------------------
-
-StatusCode PythiaResMod::genFinalize() {
-  ATH_MSG_INFO(" PYTHIA Ending." );
-  for (std::vector<int>::iterator i = m_pystatlistlevel.begin(); i != m_pystatlistlevel.end(); ++i)
-  {
-      ATH_MSG_INFO("Call PYSTAT at endRun with level " << *i);
-      pystat_(&(*i));
-  }
-  if (m_SetCrossSection==m_Default_SetCrossSection)
-    {
-      //always print out the non-scaled x-section
-      std::cout << "MetaData: cross-section (nb)= " << 1000000. * (this->pyint5().xsec(0,3))<< std::endl;
-      //print out additional MetaData fields if cross-section scaling is requested
-      if (m_xsscale != m_Default_xsscale)
-	{
-	    std::cout << "MetaData: cross-section*CrossSectionScaleFactor (nb)= " << 1000000. * (this->pyint5().xsec(0,3)) * m_xsscale << std::endl;
-	    std::cout << "MetaData: CrossSectionScaleFactor = " << m_xsscale << std::endl;
-	}
-    }
-  else
-    {
-      // cross section is a fixed number:
-      std::cout << " Printing cross-section passed by SetCrossSection in jO: "<< std::endl;
-      std::cout << " MetaData: cross-section (nb)= " << m_SetCrossSection << std::endl;
-    }
-  return StatusCode::SUCCESS;
-}
-
-//---------------------------------------------------------------------------
-
-StatusCode PythiaResMod::fillEvt(HepMC::GenEvent* evt) {
-  ATH_MSG_DEBUG(" PYTHIA Atlas_HEPEVT Filling.");
-  store_Atlas_HEPEVT();
-
-  ATH_MSG_DEBUG(" PYTHIA Filling." );
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-
-  hepio.fill_next_event(evt);
-  int pr_id = PYTHIA + m_ExternalProcess + this->pyint1().mint(1);
-  if (m_ExternalProcess > 0) pr_id = PYTHIA + m_ExternalProcess;
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-
-  // Set beam particle status = 4
-  if (evt->valid_beam_particles()) {
-    evt->beam_particles().first->set_status(4);
-    evt->beam_particles().second->set_status(4);
-  }
-
-  // PDF weights, using Pdf Info object: pdf_id, x_1, x_1, Q2, f_1, f_2
-  const int id1=this->pypars().msti(15);
-  const int id2=this->pypars().msti(16);
-  const double x1=this->pypars().pari(33);
-  const double x2=this->pypars().pari(34);
-  const double q=this->pypars().pari(23);
-  const double pdf1=(double)this->pypars().pari(29); // x*pdf1
-  const double pdf2=(double)this->pypars().pari(30); // x*pdf2 
-
-  if ( m_external == "lhef" ) {
-    Lhefinfo linfo; 
-
-    ATH_MSG_DEBUG("lhefinfo, id1: " << linfo.id1());
-    ATH_MSG_DEBUG("lhefinfo, id2: " << linfo.id2());
-    ATH_MSG_DEBUG("lhefinfo, x1: " << linfo.x1());
-    ATH_MSG_DEBUG("lhefinfo, x2: " << linfo.x2());
-    ATH_MSG_DEBUG("lhefinfo, scale: " << linfo.scalePdf());
-    ATH_MSG_DEBUG("lhefinfo, xpdf1: " << linfo.xPdf1());
-    ATH_MSG_DEBUG("lhefinfo, xpdf2: " << linfo.xPdf2());
-
-    HepMC::PdfInfo tmp_pdi( linfo.id1(), linfo.id2(), linfo.x1(), linfo.x2(),
-      linfo.scalePdf(), linfo.xPdf1(), linfo.xPdf2() );
-    evt->set_pdf_info(tmp_pdi);
-
-  } else {
-    HepMC::PdfInfo tmp_pdi(id1,id2,x1,x2,q,pdf1,pdf2);
-    evt->set_pdf_info(tmp_pdi);
-  }
-
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->id1());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->id2());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->x1());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->x2());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->scalePDF());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->pdf1());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->pdf2());
-
-  // Convert cm->mm and GeV->MeV
-  // cmTomm(evt);
-  GeVToMeV(evt);
-
-  return StatusCode::SUCCESS;
-}
-
-
-void
-PythiaResMod::RandomNumberIO()
-{
-    // m_RndmSwitch == 1 : Write the random numbers of the selected events into
-    //                     the file m_RndmFileNumber
-    if (m_RndmSwitch == 1)
-    {
-      int WriteEvent = m_events - m_RndmFirstEvent + 1;
-      if (WriteEvent >= 0)
-      {
-	    WriteEvent = WriteEvent%m_RndmSkipEvents;
-	    if (WriteEvent == 0) pyrget_(&m_RndmFileNumber, &m_RndmMOVE);
-      }
-    }
-    // m_RndmSwitch == 2 : Read the random numbers from the selected records from
-    //                     the file m_RndmFileNumber
-    else if (m_RndmSwitch == 2)
-    {
-        int MOVE = m_RndmMOVE;
-        if (MOVE == 0)
-        {
-            if (m_RndmFirstEvent > 0)
-            {
-                if (m_events == 0)
-                {
-                    MOVE = m_RndmFirstEvent - 1;
-                }
-                else
-                {
-                    MOVE = m_RndmSkipEvents;
-                }
-            }
-            int c_pos = this->pydatr().mrpy(6) + MOVE;
-            if (c_pos < m_RndmFileLength)
-            {
-                ATH_MSG_INFO("EVENT " << m_events+1
-                             << " will be generated with the random seeds read from record "
-                             << c_pos+1 << " in file " << m_RndmFileName);
-                pyrset_(&m_RndmFileNumber, &MOVE);
-            }
-        }
-        else
-        {
-            pyrset_(&m_RndmFileNumber, &MOVE);
-        }
-    }
-}
-
-
-
-void
-PythiaResMod::store_Atlas_HEPEVT()
-{
-
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->nhep() );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->isthep(10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->idhep(10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->jmohep(1,10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->jdahep(2,10) );
-
-    s_atlas_HEPEVT->fill();
-
-    Atlas_HEPEVT* ahep = new Atlas_HEPEVT();
-    *(ahep) = *(s_atlas_HEPEVT);
-    static const std::string keyid = "Pythia";
-    StatusCode sc = evtStore()->record(ahep, keyid);
-    if (!sc.isSuccess()) {
-      ATH_MSG_WARNING("Could not record Atlas_HEPEVT");
-    }
-
-}
diff --git a/Generators/PythiaExo_i/src/PythiaResMod_i_entries.cxx b/Generators/PythiaExo_i/src/PythiaResMod_i_entries.cxx
deleted file mode 100644
index 929df1e915728c33872ed29c22a825e90e66a876..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaResMod_i_entries.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-#include "PythiaExo_i/PythiaResMod.h"
-
-DECLARE_COMPONENT( PythiaResMod )
-
diff --git a/Generators/PythiaExo_i/src/PythiaTau3Mu.cxx b/Generators/PythiaExo_i/src/PythiaTau3Mu.cxx
deleted file mode 100644
index ed53a17c37a20d144a919a31b5918b0a321a5150..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaTau3Mu.cxx
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PythiaExo_i/PythiaTau3Mu.h"
-
-//--------------------------------------------------------------------------
-PythiaTau3Mu::PythiaTau3Mu(const std::string& name, 
-			   ISvcLocator* pSvcLocator): Pythia(name,pSvcLocator){
-}
-
-PythiaTau3Mu::~PythiaTau3Mu(){
-}
diff --git a/Generators/PythiaExo_i/src/PythiaTau3Mu_i_entries.cxx b/Generators/PythiaExo_i/src/PythiaTau3Mu_i_entries.cxx
deleted file mode 100644
index d49b0f34687ac1780aefdce6e592343b402decc2..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaTau3Mu_i_entries.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-#include "PythiaExo_i/PythiaTau3Mu.h"
-
-DECLARE_COMPONENT( PythiaTau3Mu )
-
diff --git a/Generators/PythiaExo_i/src/PythiaTopMdiff.cxx b/Generators/PythiaExo_i/src/PythiaTopMdiff.cxx
deleted file mode 100644
index efe65850eebafe529bf956457abd22b3148415e8..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaTopMdiff.cxx
+++ /dev/null
@@ -1,1088 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// File: GeneratorModules/PythiaTopMdiff.cxx
-// Description: Generate pythia events and store the result in the Transient Store.
-//
-// AuthorList:
-//   Ian Hinchliffe:  Initial Code June: 2000
-//   Modeled after the CDF code by Stan Thompson
-//   Parsing added August 2000
-//   More switches added Feb 2001
-//   Les Houches external process interface added May 2002
-//   Added access to pyint1 common Sept 2002
-//   Added access to pypued common Oct. 2008 (L. Mijovic, liza.mijovic@cern.ch)
-//   Direct use of generator codes - replaced with gen. names (E.M.Lobodzinska, Dec 2008)
-//   Remove obsolete code and pseudo atlas default pythia settings (Cano Ay, April 2009)
-//   Move Pythia ATLAS tune from Pythia_i + jO to Pythia_i, LM
-//   Added PYGIVE functionality, LM, Jul. 09
-//   Tunes schema, LM, Aug. 09
-//   Conversion to AthAlgorithm methods (via GenModule) and clean-up, Andy Buckley, Dec 2009
-// added access to pypevwt common, March 2010:  Eric Feng (Chicago) <Eric.Feng@cern.ch>
-
-#include "PythiaExo_i/PythiaTopMdiff.h"
-#include "TruthUtils/GeneratorName.h"
-#include "GeneratorUtils/StringParse.h"
-#include <cstdlib>
-
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "ExoGraviton_i/ExoGraviton.h"
-#include "PathResolver/PathResolver.h"
-
-#include "PythiaExo_i/Lhefinfo.h"
-
-#include "boost/algorithm/string/trim.hpp"
-
-
-// Pointer to AtRndmGenSvc
-IAtRndmGenSvc* PythiaTopMdiff::p_AtRndmGenSvc = 0;
-std::string	PythiaTopMdiff::pythia_stream = "PYTHIA_INIT";
-extern "C" double atl_pyr_( int* /*idummy*/ )
-{
-  CLHEP::HepRandomEngine* engine = 	PythiaTopMdiff::p_AtRndmGenSvc->GetEngine(PythiaTopMdiff::pythia_stream);
-  return CLHEP::RandFlat::shoot(engine);
-}
-
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyinit_(const char*,
-               const char*,
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference)
-               int
-               );
-  void pyevnt_();
-  void pyevnw_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  void addparticle_(const char*, int slen);
-  //pygive implementation: calls Pythia SUBROUTINE PYGIVE(CHIN) 
-  void pygive_(const char*,int); // character string to pygive && its length
-  //pytune : calls Pythia SUBROUTINE PYTUNE(ITUNE)
-  //this call should be used in case one wants to override some of the values PYTUNE sets from the jO
-  //in contrary to using MSTP(5) value the PYTUNE will in this case act before PYINIT
-  void pytune_(int*); // value of int corresponds to the respective ITUNE value 
-  int  pycomp_(int*);
-  //    void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-  void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void rinpar_(); // comphep
-  void subnum_(); // comphep file
-  void rheader_(); // comphep initialization
-  void extproc_(int*);
-  void opensusyfile_(const char* ,int * , int);
-  void setecm_(double*);
-  void parout_(int*);
-  void specix_(int*);
-}
-
-
-Atlas_HEPEVT* PythiaTopMdiff::s_atlas_HEPEVT = new Atlas_HEPEVT();
-
-
-//--------------------------------------------------------------------------
-
-
-PythiaTopMdiff::PythiaTopMdiff(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenModule(name, pSvcLocator)
-{
-  pythia_stream="PYTHIA_INIT";
-  // ATLAS default tune
-  m_Default_Tune_Name="ATLAS_20110002";
-  m_Default_Tune_Type="ATLAS";
-  m_Default_Tune_Index=20110002;
-  m_Starting_Tune_Name="ATLAS_99999999";
-  m_Starting_Tune_Type="ATLAS";
-  m_Starting_Tune_Index=99999999;
-  //set dummy values at start
-  m_Tune_Index=0;
-  m_Tune_Type="";
-  //for non-0 value call PYTUNE directly
-  m_direct_call_to_pytune=0;
-  // some defaults
-  m_firstlistevent = -1;
-  m_lastlistevent  = -1;
-  // old schema, backw. compatibility
-  m_mc0809_Tune_Type="ATLAS";
-  m_mc09_Tune_Index=20090001;
-  m_mc08_Tune_Index=20080001;
-  m_Default_useAtlasPythiaRecomm=true;
-  m_Default_useAtlasPythiaCommon=true;
-  m_Default_useAtlasPythiaTune09=false;
-  m_Default_useAtlasPythiaTune08=false;
-  m_Default_useNoAtlasPythiaParam=false;
-  // printing-out manually set x-section for the MetaData
-  m_Default_SetCrossSection=-1.0;
-  m_Default_xsscale=-99999;
-  // properties
-  declareProperty("SusyInputFile",    m_read_Filesusy = " ");
-  declareProperty("PythiaCommand",    m_pythiaCommandVector);
-  declareProperty("PygiveCommand",    m_PygiveCommandVector);
-  declareProperty("Direct_call_to_pytune", m_direct_call_to_pytune);  
-  declareProperty("Param_Query_AfterInit",m_Param_Query_AfterInit);
-  declareProperty("Param_Query_AfterGen", m_Param_Query_AfterGen);
-  declareProperty("CrossSectionScaleFactor", m_xsscale=m_Default_xsscale); 
-  declareProperty("SetAtlasDefaults", m_AtlasDefaults = false );
-  declareProperty("Tune_Name",  m_Tune_Name = m_Starting_Tune_Name );
-  declareProperty("SetCrossSection",m_SetCrossSection=m_Default_SetCrossSection);
-  declareProperty("addParticle", m_addParticle = false );
-  declareProperty("UseTopMdiff", m_UseTopMdiff = 0); 
-  // old schema, backw. compatibility
-  declareProperty("useAtlasPythiaRecomm",  m_useAtlasPythiaRecomm = m_Default_useAtlasPythiaRecomm);
-  declareProperty("useAtlasPythiaCommon",  m_useAtlasPythiaCommon = m_Default_useAtlasPythiaCommon);
-  declareProperty("useAtlasPythiaTune09",  m_useAtlasPythiaTune09 = m_Default_useAtlasPythiaTune09);
-  declareProperty("useAtlasPythiaTune08",  m_useAtlasPythiaTune08 = m_Default_useAtlasPythiaTune08);
-  declareProperty("useNoAtlasPythiaParam", m_useNoAtlasPythiaParam = m_Default_useNoAtlasPythiaParam);
-
-  m_pygive_gen_cstr = 0;
-  m_pygive_init_cstr = 0;
-  m_pygive_cstr = 0;
-
-  m_win = 0.;
-  m_msel = 0;
-  m_eventlistlevel = 0;
-  m_initlistlevel = 0;
-  m_randomseed = 0;
-  m_fortout = 0;
-  m_RndmFileNumber = 0;
-  m_RndmSwitch = 0;
-  m_RndmFirstEvent = 0;
-  m_RndmSkipEvents = 0;
-  m_RndmMOVE = 0;
-  m_RndmFileLength = 0;
-  m_events = 0;
-  m_ExternalProcess = 0;
-  m_atlasTune_loop_prot = 0;
-
-
-}
-//--------------------------------------------------------------------------
-PythiaTopMdiff::~PythiaTopMdiff(){
-//--------------------------------------------------------------------------
-}
-//-------------------------------------------------------------
-//--------------
-// Operations --
-//--------------
-Pydat1& PythiaTopMdiff::pydat1() {
-   return m_pydat1;
-}
-Pydat2& PythiaTopMdiff::pydat2() {
-   return m_pydat2;
-}
-Pydat3& PythiaTopMdiff::pydat3() {
-   return m_pydat3;
-}
-Pysubs& PythiaTopMdiff::pysubs() {
-   return m_pysubs;
-}
-Pypars& PythiaTopMdiff::pypars() {
-   return m_pypars;
-}
-Pydatr& PythiaTopMdiff::pydatr() {
-   return m_pydatr;
-}
-Pymssm& PythiaTopMdiff::pymssm() {
-   return m_pymssm;
-}
-Pypued& PythiaTopMdiff::pypued() {
-   return m_pypued;
-}
-Pypevwt& PythiaTopMdiff::pypevwt() {
-   return m_pypevwt;
-}
-Pymsrv& PythiaTopMdiff::pymsrv() {
-   return m_pymsrv;
-}
-Pyint1& PythiaTopMdiff::pyint1() {
-   return m_pyint1;
-}
-Pyint2& PythiaTopMdiff::pyint2() {
-   return m_pyint2;
-}
-Pyint5& PythiaTopMdiff::pyint5() {
-   return m_pyint5;
-}
-Pytcsm& PythiaTopMdiff::pytcsm() {
-   return m_pytcsm;
-}
-AcerMC_acset& PythiaTopMdiff::acermc_acset() {
-   return m_acermc_acset;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaTopMdiff::genInitialize() {
-  // Initialise the listing output, parameter and decay data input streams
-  ATH_MSG_INFO(" PYTHIA INITIALISING.");
-
-  /// @todo Use ServiceHandle
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc",
-				  PythiaTopMdiff::p_AtRndmGenSvc,
-				  CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == PythiaTopMdiff::p_AtRndmGenSvc)
-  {
-      ATH_MSG_ERROR(" Could not initialize Random Number Service");
-      return RndmStatus;
-  }
-  PythiaTopMdiff::pythia_stream	= "PYTHIA_INIT";
-
-  m_atlasTune_loop_prot=0;
-
-  // set up the input parameters to pyinit: these can be changed by the user
-  m_frame  = "CMS   ";
-  m_beam   = "P     ";
-  m_target = "P  ";
-  m_win=10000.;
-  m_initlistlevel=11;
-  m_pystatlistlevel.push_back(1);
-  m_fortout=0;
-
-  m_RndmFileName=" ";
-  m_RndmFileNumber=0;
-  m_RndmSwitch=0;
-  m_RndmFirstEvent=1;
-  m_RndmSkipEvents=0;
-  m_RndmMOVE=0;
-  m_RndmFileLength=0;
-  m_ExternalProcess = 0;
-
-  // end of setup to pyinit
-// special initialisation for Pythiasgluon
-   if(m_addParticle==true)
- {
-//adding a new particle to Pythia for PythiaSgluon
-  std::string s_newParticleCARD_path =
-  PathResolver::find_file("sgluons.dat", "DATAPATH");
-  const char* c_newParticleCARD_path = s_newParticleCARD_path.c_str();
-  addparticle_(c_newParticleCARD_path,strlen(c_newParticleCARD_path));
-  }
-  //now set defaults
-  m_randomseed=19780503;
-  this->pydatr().mrpy(1) = m_randomseed; // can be overwritten by user
-  // default process is ttbar
-  // these can be overwritten by user.
-  m_msel=6;
-  this->pysubs().msel() = m_msel;
-
-  // Set the ATLAS defaults
-  if (m_AtlasDefaults)
-    {
-      ATH_MSG_WARNING("********** You have chosen the default Atlas Settings.  **********");
-      ATH_MSG_WARNING("********** This switch is not valid any more.           **********");
-    }
-
-  //m_Tune_Name parsing to find m_Tune_Type and m_Tune_Index for setPythiaTune() and atlasTune() calls
-  std::string::size_type sep_index = m_Tune_Name.find_first_of('_');
-  if (sep_index != std::string::npos)
-    {
-      m_Tune_Type=m_Tune_Name.substr(0,sep_index);
-      // atoi : returns 0 if conversion not possible - no additional protection needed
-      m_Tune_Index=atoi((m_Tune_Name.substr(sep_index+1,m_Tune_Name.length()-1)).c_str());
-    }
-  else
-    {
-      // invalid Tune_Name, m_Tune_Type and  m_Tune_Index kept at the dummy vals from constructor,
-      // let setPythiaTune() handle the error
-      ATH_MSG_WARNING("Invalid Tune_Name: "<< m_Tune_Name <<" specified .");
-    }
-  // set any Pythia parameters different from Pythia defaults
-  // allow only one reset
-  if (m_atlasTune_loop_prot<2)
-    {
-      // m_atlasTune_loop_prot counts setPythiaTune() calls in setPythiaTune.cxx
-      StatusCode sc=setPythiaTune();
-      if ( sc.isFailure() )
-	{
-	  ATH_MSG_FATAL("ERROR returned from setPythiaTune, exit.");
-	  return StatusCode::FAILURE;
-	}
-    }
-  else
-    {
-      ATH_MSG_FATAL("More than one reset attempt of tune using setPythiaTune.");
-      ATH_MSG_FATAL("Please correct your jobOptions.");
-      return StatusCode::FAILURE;
-    }
-
-  //call pytune directly in case any parameters set py the tune are to be overwritten from jO
-  if (m_direct_call_to_pytune!=0) pytune_(&m_direct_call_to_pytune);
-
-  //PYGIVE command parsing && call
-  for (unsigned int i = 0; i < m_PygiveCommandVector.size(); i++)
-    {
-      m_pygive_cstr = (m_PygiveCommandVector[i]).c_str();
-      pygive_(m_pygive_cstr,strlen(m_pygive_cstr));
-    }
-
-  // Parse Commands and Set Values from Properties Service...
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-    ATH_MSG_INFO(" Command is: " << m_pythiaCommandVector[i]);
-    StringParse mystring(m_pythiaCommandVector[i]);
-    string myblock = mystring.piece(1);
-	string myentry = mystring.piece(2);
-	string mystr = mystring.piece(3);
-	string mystr2 = mystring.piece(4);
-	string mystr3 = mystring.piece(5);
-	int myint1 = mystring.intpiece(3);
-	int myint2 = mystring.intpiece(4);
-	int myint3 = mystring.intpiece(5);
-	int myint4 = mystring.intpiece(6);
-	int myint5 = mystring.intpiece(7);
-	double myfl0 = mystring.numpiece(3);
-	double myfl1 = mystring.numpiece(4);
-	double myfl2 = mystring.numpiece(5);
-	double myfl3 = mystring.numpiece(6);
-    // For ExoGraviton_i and PythiaBc_i user param. input
-    int myint6 = mystring.intpiece(2);
-
-    // Print a warning when attempt is made to choose PYTUNE tune via MSTP(5) ;
-    // more than MSTP(5) setting is needed for consistent PYTUNE run within Athena
-    if (myblock == "pypars" && myentry == "mstp" && myint1==5)
-      {
-        ATH_MSG_WARNING("--------------------------------------------------------------------------------\n"
-                        << " MSTP(5) set to "<< myint2 <<", Pythia recieves a command to run PYTUNE # " << myint2 << "\n"
-                        << " Please note: " << "\n"
-                        << " 1. it is up to you to switch off any ATLAS defaults you do not want to use; " << "\n"
-                        << " - the interface takes care of this if PYTUNE tune is called via Pythia.Tune_Name=\"PYTUNE_" << myint2 << "\" in the jO." << "\n"
-                        << " 2. in the jO overrides of the parameters set by PYTUNE # " << myint2 << " will have no effect " << "\n"
-                        << " - this correspods to (standalone) Pythia behavior " << "\n"
-                        << " 3. handling of non-existing PYTUNE tune is same as for (default) Pythia standalone." << "\n"
-                        << "--------------------------------------------------------------------------------");
-      }
-
-    // Note that Pythia needs doubles hence the convert here
-    if (myentry!="use_PYINIT")
-      {
-	ATH_MSG_INFO(myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1);
-      }
-    else ATH_MSG_INFO(myblock << " block  " << myentry << " set to " << mystr << " " <<mystr2<<" " <<mystr3<<" "<<myfl3);
-
-    if (myblock=="pyinit") {
-      if (myentry=="user"){
-        m_frame = "USER  ";
-        m_external=mystr;
-        m_ExternalProcess = generator_int(mystr);
-        extproc_(&m_ExternalProcess);
-      }
-      else if(myentry=="use_PYINIT")
-	{
-	  m_frame=mystr;
-	  m_beam=mystr2;
-	  m_target=mystr3;
-	  m_win=myfl3;
-	}
-      else if(myentry=="FIXT"){
-        m_frame="FIXT";
-      }
-      else if(myentry=="pbar"){
-        m_beam="P~- ";
-      }
-      else if(myentry=="win"){
-        m_win=myfl0;
-      }
-      else if(myentry=="pylisti"){
-        m_initlistlevel=myint1;
-      }
-      else if(myentry=="pylistf"){
-        m_eventlistlevel=myint1;
-      }
-      else if(myentry=="dumpr"){
-        m_firstlistevent=myint1;
-        m_lastlistevent=myint2;
-      }
-      else if(myentry=="output"){
-	m_envval1=mystr;
-	m_fortout=49;
-	this->pydat1().mstu(11)=m_fortout;
-      }
-      else if(myentry=="rndm_IO"){
-        m_RndmFileName=mystr;
-        m_RndmFileNumber=36;
-        m_RndmSwitch=myint2;
-        m_RndmFirstEvent=myint3;
-        m_RndmSkipEvents=myint4;
-        m_RndmMOVE=myint5;
-	if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-
-	if (m_RndmSwitch > 0)
-	  {
-	    if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0)
-	      {
-		ATH_MSG_ERROR(" INCONSISTENT SET OF rndm_IO PARAMETERS : FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF" << myentry);
-		m_RndmSwitch = 0;
-	      }
-	  }
-
-	ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-	ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-	ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-	ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-	ATH_MSG_INFO(" DETAILS LOOK IN  ");
-	ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-	ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-
-	m_RndmSwitch = 0;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN use_PYINIT AND RNDM_IO: YOU HAVE SPECIFIED " << myentry);
-      }
-
-
-    }
-    else if (myblock == "pysubs") {
-      if(myentry == "msel"){
-	this->pysubs().msel()=myint1;
-      }
-      else if (myentry == "msub"){
-	this->pysubs().msub(myint1)=myint2;
-      }
-      else if (myentry == "ckin"){
-	this->pysubs().ckin(myint1)=myfl1;
-      }
-      else if (myentry == "kfin"){
-	this->pysubs().kfin(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pypars"){
-      if(myentry == "mstp"){
-	this->pypars().mstp(myint1)=myint2;
-      }
-      else if(myentry == "msti"){
-	this->pypars().msti(myint1)=myint2;
-      }
-      else if(myentry == "parp"){
-	this->pypars().parp(myint1)=myfl1;
-      }
-      else if(myentry == "pari"){
-	this->pypars().pari(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat1"){
-      if(myentry == "mstu"){
-	this->pydat1().mstu(myint1)=myint2;
-      }
-      else if(myentry == "mstj"){
-	this->pydat1().mstj(myint1)=myint2;
-      }
-      else if(myentry == "paru"){
-	this->pydat1().paru(myint1)=myfl1;
-      }
-      else if(myentry == "parj"){
-	this->pydat1().parj(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat2"){
-      if(myentry == "kchg"){
-	this->pydat2().kchg(myint1,myint2)=myint3;
-      }
-      else if(myentry == "pmas"){
-	this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      }
-      else if(myentry == "parf"){
-	this->pydat2().parf(myint1)=myfl1;
-      }
-      else if(myentry == "vckm"){
-	this->pydat2().vckm(myint1,myint2)=myfl2;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat3"){
-      if(myentry == "mdcy"){
-	this->pydat3().mdcy(myint1,myint2)=myint3;
-      }
-      else if(myentry == "mdme"){
-	this->pydat3().mdme(myint1,myint2)=myint3;
-      }
-      else if(myentry == "brat"){
-	this->pydat3().brat(myint1)=myfl1;
-      }
-      else if(myentry == "kfdp"){
-	this->pydat3().kfdp(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydatr"){
-      if(myentry == "mrpy"){
-        ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-        ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-        ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-        ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-        ATH_MSG_INFO(" DETAILS LOOK IN  ");
-        ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-        ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-
-	this->pydatr().mrpy(myint1)=myint2;
-      }
-      else if(myentry == "rrpy"){
-	this->pydatr().rrpy(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDATR HAS MRPY AND RRPY: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pymssm"){
-      if (myentry=="imss"){
-        if (myint1 == 21 || myint1 == 22) {
-          ATH_MSG_WARNING("The setting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default");
-        } else {
-          this->pymssm().imss(myint1)=myint2;
-        }
-      }
-      else if (myentry=="rmss"){
-        this->pymssm().rmss(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pypued"){
-      if (myentry=="iued")
-        {
-          this->pypued().iued(myint1)=myint2;
-        }
-      else if (myentry=="rued"){
-	this->pypued().rued(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYPUED has IUED AND RUED: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-   else if (myblock == "pypevwt"){
-      if (myentry=="ievwt")
-	{
- 	  this->pypevwt().ievwt(myint1)=myint2;
-	}
-      else if (myentry=="revwt"){
-	this->pypevwt().revwt(myint1)=myfl1;
-      }
-      else {
-	ATH_MSG_ERROR("PYTHIA ERROR, block PYPEVWT has IEVWT AND REVWT: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    //CLA: RPV couplings
-    else if (myblock == "pymsrv") {
-      //LLE
-      if (myentry=="rvlam"){
-        this->pymsrv().rvlam(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda to "<< myfl1);
-      }
-      //LQD
-      else if (myentry=="rvlamp"){
-        this->pymsrv().rvlamp(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda^prime to "<< myfl1);
-      }
-      //UDD
-      else if (myentry=="rvlamb"){
-        this->pymsrv().rvlamb(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda^doubelprime to "<< myfl1);
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYMSRV has RVLAM, RVLAMP AND RVLAMB: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pyint2"){
-      if (myentry == "iset"){
-        this->pyint2().iset(myint1)=myint2;
-      }
-      else if (myentry == "kfpr"){
-        this->pyint2().kfpr(myint1,myint2)=myint3;
-      }
-      else if (myentry == "coef"){
-        this->pyint2().coef(myint1,myint2)=myfl2;
-      }
-      else if (myentry == "icol"){
-        this->pyint2().icol(myint1,myint2,myint3)=myint4;
-      }
-      else {
-      ATH_MSG_ERROR("PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pystat"){
-      m_pystatlistlevel.clear();
-      for (unsigned i = 2; i <= mystring.string_size(); ++i)
-	    m_pystatlistlevel.push_back(mystring.intpiece(i));
-    }
-    else if (myblock == "pytcsm"){
-      if (myentry == "itcm"){
-        this->pytcsm().itcm(myint1)=myint2;
-      }
-      else if (myentry=="rtcm"){
-        this->pytcsm().rtcm(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED "<< myentry);
-      }
-
-    }
-
-    // AcerMC tt~ decay mode switching
-    else if (myblock == "acermc" && myentry=="acset12") {
-      if (m_ExternalProcess == ACERMC) {
-        this->acermc_acset().acset12()=myint1;
-      }
-    }
-    // for ExoGraviton user parameter setup
-    else if (myblock == "grav")
-     {
-       ::WriteGravParam(myint6, myint1, (double)myfl0);
-     }
-    // for PythiaBc_i user parameters setup
-    /*
-    else if (myblock == "pythiabc")
-     {
-       ::WritePythiaBcParam(myint6, myint1, (double)myfl0);
-     }
-    */
-    else {
-      ATH_MSG_ERROR(" ERROR in PYTHIA PARAMETERS   " << myblock << " is and invalid common block name !");
-    }
-  }
-  // End of param parsing
-
-  // Set the logical Unit Number for the immss(1)=11 option and open the file
-  if (this->pymssm().imss(1) == 11) {
-    int syunit = 66;
-    this->pymssm().imss(21) = syunit;
-    this->pymssm().imss(22) = syunit;
-    const std::string& fileName = m_read_Filesusy;
-    opensusyfile_(fileName.c_str(),&syunit,fileName.size());
-  }
-
-  // !!!!! PROTECT AGAINST mstp(81)/mstp(82) Pythia looping
-  if (this->pypars().mstp(81) == 0 && this->pypars().mstp(82) > 2)
-  {
-      this->pypars().mstp(82) = 1;
-      ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA LOOPING !!!!!!!!");
-      ATH_MSG_INFO(" YOU HAVE SWITCHED OFF MULTIPLE INTERACTIONS, mstp(81) = 0");
-      ATH_MSG_INFO(" THE DEFAULT ATLAS MULTIPLE INTERACTIONS SCENARIO, mstp(82) = 4");
-      ATH_MSG_INFO(" CHANGED TO mstp(82) = 1, BECAUSE PYTHIA IS LOOPING WHEN");
-      ATH_MSG_INFO(" mstp(81) = 0 and mstp(82) > 2");
-      ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
-  }
-
-  // Now call pyinit and set listing
-  // Note the `extra' arguments to pyinit on the end of the argument
-  // list which do *not* explicitly occur in the FORTRAN
-  // implementation of the function -- one for each character
-  // variable, in the same order (reference Randy Herber,
-  // herber@fnal.gov). Note also that the `extern "C"' function
-  // declaration matches the C usage rather than the FORTRAN
-  // definition of the PYINIT function and therefore includes the 3
-  // extra arguments.
-  // activate the block data
-  const char* envval = m_envval1.c_str();
-  initpyblock_(&m_fortout,envval);
-
-  if (m_RndmSwitch > 0)
-  {
-      const char* RndmFileName = m_RndmFileName.c_str();
-      m_RndmFileLength = openrandom_(&m_RndmSwitch, &m_RndmFileNumber, RndmFileName);
-      if (m_RndmSwitch ==2 ) {
-        ATH_MSG_INFO(" THERE ARE " << m_RndmFileLength << " EVENTS STORED IN THE PYTHIA RANDOM NUMBER FILE");
-      }
-  }
-
-  const char* frame = m_frame.c_str();
-  const char* beam = m_beam.c_str();
-  double winval = m_win;
-  const char* target = m_target.c_str();
-  int minlist   = m_initlistlevel;
-  // special initialization for comphep
-  if(m_external=="comphep"){
-    rinpar_();
-    subnum_();
-    rheader_();
-  }
-  // special initialization for matchig
-  if(m_external=="matchig")
-    {
-      ATH_MSG_DEBUG("Calling setecm with argument winval=" << winval);
-      setecm_(&winval);
-    }
-
-  // end of comphep initialization
-
-  ATH_MSG_DEBUG(" ****** BEFORE PYINIT ********");
-  ATH_MSG_DEBUG(" MSTU(11) " << this->pydat1().mstu(11) <<
-                " MSTU(20) " << this->pydat1().mstu(20)  <<
-                " MSTU(118) " << this->pydat1().mstu(118));
-  ATH_MSG_DEBUG(" PARU(108) " << this->pydat1().paru(108) <<
-                " PARU(117) " << this->pydat1().paru(117) <<
-                " PARU(118) " << this->pydat1().paru(118));
-  for (int ii = 210; ii < 353; ++ii)
-      {
-	      ATH_MSG_DEBUG(" BRAT(" << ii << ") "
-		  <<  this->pydat3().brat(ii));
-	  }
-  ATH_MSG_DEBUG(" MDCY(310) "
-                << this->pydat3().mdcy(310,1) << ", "
-                << this->pydat3().mdcy(310,2) << ", "
-                << this->pydat3().mdcy(310,3));
-
-  // Save the PYTHIA_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = PythiaTopMdiff::p_AtRndmGenSvc->GetEngine(PythiaTopMdiff::pythia_stream);
-  const long* sip = engine->getSeeds();
-  long int	si1 = sip[0];
-  long int	si2 = sip[1];
-
-
-  // write warning for non p-p collistion, strip white-spaces off beam and target strings
-  std::string beam_strp(beam); boost::trim(beam_strp);
-  std::string target_strp(target); boost::trim(target_strp);
-  if ((beam_strp!="P" && beam_strp!="P+" && beam_strp!="p" && beam_strp!="p+") || (target_strp!="P" && target_strp!="P+" && target_strp!="p" && target_strp!="p+"))
-    {
-      ATH_MSG_WARNING("PYINIT(FRAME,BEAM,TARGET,WIN) called from within ATHENA using parameters: ");
-      ATH_MSG_WARNING("FRAME : "<< frame << ", BEAM : "<< beam <<", TARGET: "<< target<< ", WIN: "<< winval);
-      ATH_MSG_WARNING("Initialization with non-standard BEAM-TARGET combination: ");
-      ATH_MSG_WARNING("making sure sensible PYTHIA parameters setup is used is up to you.");
-    }
-
-
-  pyinit_(frame, beam, target, &winval,
-          strlen(frame), strlen(beam), strlen(target));
-
-  // ... and set them back to the stream for proper save
-  PythiaTopMdiff::p_AtRndmGenSvc->CreateStream(si1, si2, PythiaTopMdiff::pythia_stream);
-
-  PythiaTopMdiff::pythia_stream	= "PYTHIA";
-
-  ATH_MSG_DEBUG(" ****** AFTER PYINIT ********");
-  ATH_MSG_DEBUG(" MSTU(11) " << this->pydat1().mstu(11) <<
-                " MSTU(20) " << this->pydat1().mstu(20)  <<
-                " MSTU(118) " << this->pydat1().mstu(118));
-  ATH_MSG_DEBUG(" PARU(108) " << this->pydat1().paru(108) <<
-                " PARU(117) " << this->pydat1().paru(117) <<
-                " PARU(118) " << this->pydat1().paru(118));
-  for (int ii = 210; ii < 353; ++ii)
-    {
-      ATH_MSG_DEBUG(" BRAT(" << ii << ") "
-                    <<  this->pydat3().brat(ii));
-    }
-  ATH_MSG_DEBUG(" MDCY(310) "
-                << this->pydat3().mdcy(310,1) << ", "
-                << this->pydat3().mdcy(310,2) << ", "
-                << this->pydat3().mdcy(310,3));
-
-  ATH_MSG_DEBUG(std::resetiosflags(std::ios::fixed));
-
-  // call specix function to enable collecting modifications from PytiaModified files;
-  // specix(int=2)=corresponds to enabling TopMdiff 
-  // int can be passed to PythiaTopMdiff using UseTopMdiff property in jO to 1
-  int TopMdiff_mode=0;
-  if ( m_UseTopMdiff == 1) TopMdiff_mode=2;
-  specix_(&TopMdiff_mode);
-  
-  pylist_(&minlist);
-  m_events = 0;
-  ATH_MSG_DEBUG(" kfpr (186,2)============ " << this->pyint2().kfpr(186,2));
-  ATH_MSG_DEBUG(" kfpr (187,2)============ " << this->pyint2().kfpr(187,2));
-
-  //decay table
-  const char *p_envar1="PYDAT";
-  //  char *p_envval1=0;
-  //p_envval1 = 
-  getenv(p_envar1);
-
-  // do parameter querries after PYINIT :
-  //PYGIVE command parsing && call
-
-  if (m_Param_Query_AfterInit.size()!=0)
-    {
-      //save MSTU(11) value before the parout_ call which starts a new stream:
-      int tmp_m11=this->pydat1().mstu(11);
-      // set output to a dedicated file for params after the initialization
-      int tmp_mode=1;
-      parout_(&tmp_mode);
-      // query the requested parameter values:
-      for (unsigned int i = 0; i < m_Param_Query_AfterInit.size(); i++) 
-	{
-	  m_pygive_init_cstr = (m_Param_Query_AfterInit[i]).c_str();
-	  pygive_(m_pygive_init_cstr,strlen(m_pygive_init_cstr));
-	}
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }
-  
-  // get rid of an residual old event generation parameters data:  
-  if (m_Param_Query_AfterGen.size()!=0)
-    {
-      //save MSTU(11) value before the parout_ call which starts a new stream:
-      int tmp_m11=this->pydat1().mstu(11);
-      // set output to a dedicated file for params after the initialization
-      int tmp_mode=2;
-      parout_(&tmp_mode);
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }
-
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaTopMdiff::callGenerator() {
-  ATH_MSG_DEBUG(" PYTHIA generating.");
-
-  // Write/Read the random numbers to/from file if requested
-  if (m_RndmSwitch > 0)	RandomNumberIO();
-
-  // Save the random number seeds in the event
-  CLHEP::HepRandomEngine*	engine	=	PythiaTopMdiff::p_AtRndmGenSvc->GetEngine(PythiaTopMdiff::pythia_stream);
-  const long*		s	=	engine->getSeeds();
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-
-  // Generate event
-  pyevnt_();
-
-  // update event counter
-  ++m_events;
-  int mevlist=m_eventlistlevel;
-  // Is the event to be listed
-  if ( m_events >= m_firstlistevent &&
-       m_events <= m_lastlistevent) {
-    ATH_MSG_INFO("PYEVNT event no. " << m_events << " will be listed");
-    if (m_frame == "USER  ")
-    {
-	int uspr = 7;
-	pylist_(&uspr); // Special listing when external generator was selected
-    }
-    pylist_(&mevlist); // List this event if required
-  } 
-
-  // make parameter querry after event generation:
-  for (unsigned int i = 0; i < m_Param_Query_AfterGen.size(); i++) 
-    {
-      int tmp_m11=this->pydat1().mstu(11); 
-      int tmp_mode=3;
-      parout_(&tmp_mode);      
-      m_pygive_gen_cstr = (m_Param_Query_AfterGen[i]).c_str();
-      pygive_(m_pygive_gen_cstr,strlen(m_pygive_gen_cstr));
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }   
-  
-  // Tell lunhep to convert from PYJETS to HEPEVT
-  int mconv=1;
-  // Do the conversion
-  pyhepc_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  if ( HepMC::HEPEVT_Wrapper::number_entries() <= 0 ) {
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    std::cout << "!!! " << generator_name(m_ExternalProcess) << " TERMINATES NORMALY: NO MORE EVENTS IN FILE !!!" << std::endl;
-    std::cout << "!!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE !!!" << std::endl;
-    std::cout << "!!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!!" << std::endl;
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    return StatusCode::FAILURE;
-  }
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-  return StatusCode::SUCCESS;
-}
-
-//---------------------------------------------------------------------------
-
-StatusCode PythiaTopMdiff::genFinalize() {
-  ATH_MSG_INFO(" PYTHIA Ending." );
-  for (std::vector<int>::iterator i = m_pystatlistlevel.begin(); i != m_pystatlistlevel.end(); ++i)
-  {
-      ATH_MSG_INFO("Call PYSTAT at endRun with level " << *i);
-      pystat_(&(*i));
-  }
-  if (m_SetCrossSection==m_Default_SetCrossSection)
-    {
-      //always print out the non-scaled x-section
-      std::cout << "MetaData: cross-section (nb)= " << 1000000. * (this->pyint5().xsec(0,3))<< std::endl;
-      //print out additional MetaData fields if cross-section scaling is requested
-      if (m_xsscale != m_Default_xsscale)
-	{
-	    std::cout << "MetaData: cross-section*CrossSectionScaleFactor (nb)= " << 1000000. * (this->pyint5().xsec(0,3)) * m_xsscale << std::endl;
-	    std::cout << "MetaData: CrossSectionScaleFactor = " << m_xsscale << std::endl;
-	}
-    }
-  else
-    {
-      // cross section is a fixed number:
-      std::cout << " Printing cross-section passed by SetCrossSection in jO: "<< std::endl;
-      std::cout << " MetaData: cross-section (nb)= " << m_SetCrossSection << std::endl;
-    }
-  return StatusCode::SUCCESS;
-}
-
-//---------------------------------------------------------------------------
-
-StatusCode PythiaTopMdiff::fillEvt(HepMC::GenEvent* evt) {
-  ATH_MSG_DEBUG(" PYTHIA Atlas_HEPEVT Filling.");
-  store_Atlas_HEPEVT();
-
-  ATH_MSG_DEBUG(" PYTHIA Filling." );
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-
-  hepio.fill_next_event(evt);
-  int pr_id = PYTHIA + m_ExternalProcess + this->pyint1().mint(1);
-  if (m_ExternalProcess > 0) pr_id = PYTHIA + m_ExternalProcess;
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-
-  // Set beam particle status = 4
-  if (evt->valid_beam_particles()) {
-    evt->beam_particles().first->set_status(4);
-    evt->beam_particles().second->set_status(4);
-  }
-
-  // PDF weights, using  Pdf Info object: pdf_id, x_1, x_1, Q2, f_1, f_2
-  const int id1=this->pypars().msti(15);
-  const int id2=this->pypars().msti(16);
-  const double x1=this->pypars().pari(33);
-  const double x2=this->pypars().pari(34);
-  const double q=this->pypars().pari(23);
-  const double pdf1=(double)this->pypars().pari(29); // x*pdf1
-  const double pdf2=(double)this->pypars().pari(30); // x*pdf2 
-
-  if ( m_external == "lhef" ) {
-    Lhefinfo linfo; 
-
-    ATH_MSG_DEBUG("lhefinfo, id1: " << linfo.id1());
-    ATH_MSG_DEBUG("lhefinfo, id2: " << linfo.id2());
-    ATH_MSG_DEBUG("lhefinfo, x1: " << linfo.x1());
-    ATH_MSG_DEBUG("lhefinfo, x2: " << linfo.x2());
-    ATH_MSG_DEBUG("lhefinfo, scale: " << linfo.scalePdf());
-    ATH_MSG_DEBUG("lhefinfo, xpdf1: " << linfo.xPdf1());
-    ATH_MSG_DEBUG("lhefinfo, xpdf2: " << linfo.xPdf2());
-
-    HepMC::PdfInfo tmp_pdi( linfo.id1(), linfo.id2(), linfo.x1(), linfo.x2(),
-      linfo.scalePdf(), linfo.xPdf1(), linfo.xPdf2() );
-    evt->set_pdf_info(tmp_pdi);
-
-  } else {
-    HepMC::PdfInfo tmp_pdi(id1,id2,x1,x2,q,pdf1,pdf2);
-    evt->set_pdf_info(tmp_pdi);
-  }
-
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->id1());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->id2());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->x1());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->x2());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->scalePDF());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->pdf1());
-  ATH_MSG_DEBUG("pdfinfo:"<<  evt->pdf_info()->pdf2());
-
-  // Convert cm->mm and GeV->MeV
-  // cmTomm(evt);
-  GeVToMeV(evt);
-
-  return StatusCode::SUCCESS;
-}
-
-
-void
-PythiaTopMdiff::RandomNumberIO()
-{
-    // m_RndmSwitch == 1 : Write the random numbers of the selected events into
-    //                     the file m_RndmFileNumber
-    if (m_RndmSwitch == 1)
-    {
-      int WriteEvent = m_events - m_RndmFirstEvent + 1;
-      if (WriteEvent >= 0)
-      {
-	    WriteEvent = WriteEvent%m_RndmSkipEvents;
-	    if (WriteEvent == 0) pyrget_(&m_RndmFileNumber, &m_RndmMOVE);
-      }
-    }
-    // m_RndmSwitch == 2 : Read the random numbers from the selected records from
-    //                     the file m_RndmFileNumber
-    else if (m_RndmSwitch == 2)
-    {
-        int MOVE = m_RndmMOVE;
-        if (MOVE == 0)
-        {
-            if (m_RndmFirstEvent > 0)
-            {
-                if (m_events == 0)
-                {
-                    MOVE = m_RndmFirstEvent - 1;
-                }
-                else
-                {
-                    MOVE = m_RndmSkipEvents;
-                }
-            }
-            int c_pos = this->pydatr().mrpy(6) + MOVE;
-            if (c_pos < m_RndmFileLength)
-            {
-                ATH_MSG_INFO("EVENT " << m_events+1
-                             << " will be generated with the random seeds read from record "
-                             << c_pos+1 << " in file " << m_RndmFileName);
-                pyrset_(&m_RndmFileNumber, &MOVE);
-            }
-        }
-        else
-        {
-            pyrset_(&m_RndmFileNumber, &MOVE);
-        }
-    }
-}
-
-
-
-void
-PythiaTopMdiff::store_Atlas_HEPEVT()
-{
-
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->nhep() );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->isthep(10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->idhep(10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->jmohep(1,10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->jdahep(2,10) );
-
-    s_atlas_HEPEVT->fill();
-
-    Atlas_HEPEVT* ahep = new Atlas_HEPEVT();
-    *(ahep) = *(s_atlas_HEPEVT);
-    static const std::string keyid = "Pythia";
-    StatusCode sc = evtStore()->record(ahep, keyid);
-    if (!sc.isSuccess()) {
-      ATH_MSG_WARNING("Could not record Atlas_HEPEVT");
-    }
-
-}
diff --git a/Generators/PythiaExo_i/src/PythiaTopMdiff_i_entries.cxx b/Generators/PythiaExo_i/src/PythiaTopMdiff_i_entries.cxx
deleted file mode 100644
index c226ba4bcdfe3f0527225e7a4f55dd984cdd29c5..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/PythiaTopMdiff_i_entries.cxx
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-#include "PythiaExo_i/PythiaTopMdiff.h"
-
-DECLARE_COMPONENT( PythiaTopMdiff )
-
diff --git a/Generators/PythiaExo_i/src/atlasTuneResMod.cxx b/Generators/PythiaExo_i/src/atlasTuneResMod.cxx
deleted file mode 100644
index 0151123dc8733c67b256056420bca268090ca4f0..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/atlasTuneResMod.cxx
+++ /dev/null
@@ -1,1439 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PythiaExo_i/PythiaResMod.h"
-
-/*
-  ________________________________________________________________________________________________________________________
-
-  L.M., 
-  Pythia parameter settings / TUNE
-
-  Aug. 09
-
-  called by Pythia.cxx
-  set ATLAS tune/parameters set determined by m_Tune_Index
-  m_Tune_Index 0,-1 and -2 are technical settings to run with 0, recommended or common set of ATLAS Pythia parameters
-  in case m_Tune_Index does not correspond to ATLAS tune index use default ATLAS tune (set by m_Default_Tune_Name)
-  -------------------------------------------------------------------------------------------------------------------------
-  Backw. compat: old tune setting syntax remains supported.
-  Mixing of the old and new tune settings is not supported and in this case Atlas default tune settings are used and 
-
-  May 09
-
-  In case only the old syntax is used, the switches have the following effect:
-  1. useAtlasPythiaRecomm  : false sets m_Tune_Index=0 [default:true ]
-     Event record, error handlig, new PS/MI model, MI structure
-  2. useAtlasPythiaCommon  : false sets m_Tune_Index=-1; [default:true ]
-     (ATLAS specific) print-out, particle properties, MI structure, pdf
-  3. useAtlasPythiaTune09  : sets m_Tune_Index=m_mc09_Tune_Index        [default:false ]
-  4. useAtlasPythiaTune08  : sets m_Tune_Index=m_mc08_Tune_Index        [default:false ]
-  5. useNoAtlasPythiaParam : sets bool m_useNoAtlasPythiaParam          [default:false ]
-     Using Pythia defaults + parameters set by the jO only.
-     Please note that the use of ATLAS defaults is recommended.
-     Please consider keeping the settings of switch 1.
-
-  ________________________________________________________________________________________________________________________
- */
-
-StatusCode PythiaResMod::atlasTune()
-
-{
-  // if tune is left to the dummy starting value, use the default tune:
-  if (m_Tune_Index==m_Starting_Tune_Index) m_Tune_Index=m_Default_Tune_Index;
-
-  ATH_MSG_INFO( "\n________________________________________________________________________________\n"
-		<< "atlasTune:   [Pythia_i/src/atlasTune.cxx]                                       \n" 
-		<< "atlasTune: setting Pythia parameter values:                                     \n"
-		<< "--------------------------------------------------------------------------------"  ); 
-
-  // note: m_Tune_Name == "ATLAS_blah" will end here since atoi() returns 0 if it can't ocnvert arg. to int 
-  if (m_Tune_Index==0) 
-    {
-      ATH_MSG_WARNING( "setPythiaTune: m_Tune_Index=0 requested,                                       \n"
-		       << "setPythiaTune: skipping par. setting by Pythia_i, running with Pythia defaults. \n"
-		       << "setPythiaTune: Using Pythia defaults + parameters set by the USER.              \n"
-		       << "setPythiaTune: Please note that the use of ATLAS defaults is recommended.       \n"
-		       << "setPythiaTune: Please consider keeping the settings of Tune_Name=-1,-2.         \n"
-		       << "--------------------------------------------------------------------------------"  );
-      return StatusCode::SUCCESS; 
-    }//end of {m_Tune_Index==0} condition
-  //---------------------------------------------------------------------------  
-  //____________________________________________________________________________________________________________________________
-  // when not using an ATLAS tune but want to keep recommended / common settings: 
-  else if (m_Tune_Index<0)
-    {
-      if (m_Tune_Index==-1)
-	{
-	  //________________________________________________________________________________________________________________________
-	  // printout details + 
-	  this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-	  this->pydat1().mstu(21)   =1;      // error handling switch 
-	  this->pypars().mstp(81)   =21;     // run PYEVNW with PYEVNT 
-	  this->pydat1().mstj(22)=2;         // stable particles convention
-	  //________________________________________________________________________________________________________________________
-	  ATH_MSG_INFO( "mstp(128)  =  "<< this->pypars().mstp(128) << "\n" 
-			<< "mstu(21)   =  "<< this->pydat1().mstu(21)  << "\n" 
-			<< "mstp(81)   =  "<< this->pypars().mstp(81)  << "\n" 
-			<< "mstj(22)   =  "<< this->pydat1().mstj(22) );
-
-	  //________________________________________________________________________________________________________________________ 
-        }
-      if (m_Tune_Index==-2)
-	{
-	  //________________________________________________________________________________________________________________________
-	  // printout details 
-	  this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-	  this->pydat1().mstu(21)   =1;      // error handling switch 
-	  this->pypars().mstp(81)   =21;     // run PYEVNW with PYEVNT 
-	  this->pydat1().mstj(22)=2;         // stable particles convention
-	  //________________________________________________________________________________________________________________________
-   	  //physics-related
-	  this->pypars().mstp(82)=4;         // MI structure
-	  this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))	 
-	  this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))	 	 
-	  this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))	 	 
-	  this->pypars().mstp(51)=20651;     // LO**
-	  this->pypars().mstp(53)=20651;     // LO** 	 	 
-	  this->pypars().mstp(55)=20651;     // LO** 	
-	  this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-	  this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-	  //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-	  this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-	  //this->pydat2().pmas(23,2)=2.4952;  // PDG2007 Z0 width
-	  //________________________________________________________________________________________________________________________
-	  //printout details ... +
-	  ATH_MSG_INFO( "mstp(128)  =  "<< this->pypars().mstp(128) << "\n" 
-			<< "mstu(21)   =  "<< this->pydat1().mstu(21)  << "\n" 
-			<< "mstp(81)   =  "<< this->pypars().mstp(81)  << "\n" 
-			//physics-related
-			<< "mstp(82)  = "<<  this->pypars().mstp(82)     << "\n"    
-			<< "mstp(52)  = "<<  this->pypars().mstp(52)     << "\n"    
-			<< "mstp(54)  = "<<  this->pypars().mstp(54)     << "\n"    
-			<< "mstp(56)  = "<<  this->pypars().mstp(56)     << "\n"    
-			<< "mstp(51)  = "<<  this->pypars().mstp(51)     << "\n"
-			<< "mstp(53)  = "<<  this->pypars().mstp(53)     << "\n"
-			<< "mstp(55)  = "<<  this->pypars().mstp(55)     << "\n"
-			<< "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"  
-			<< "pmas(24,1)= "<<  this->pydat2().pmas(24,1)   << "\n"
-			//<< "pmas(24,2)= "<<  this->pydat2().pmas(24,2)   << "\n" 
-			<< "pmas(23,1)= "<<  this->pydat2().pmas(23,1)   << "\n" );             
-	  //<< "pmas(23,2)= "<<  this->pydat2().pmas(23,2)   << "\n" 
-	  //________________________________________________________________________________________________________________________
-	}
-    }
-  else if (m_Tune_Index==20090001)
-    {
-      // ATLAS jargon : MC09
-      // author : Markus Warsinsky
-      // Pythia : 6.4.20 
-      // date: May 2009
-      // short description: MC09 production round tune for LO* PDFs
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.3;       // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.25;      // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO( "--------------------------------------------------------------------------------\n" 
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
- 		    << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		    << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		    << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		    << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		    << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		    << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		    << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		    << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		    << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		    << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		    << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		    << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		    //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2)   << "\n"  
-		    << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		    //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)   << "\n" 
-		    << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		    << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		    << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		    << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		    << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		    << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		    << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		    << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		    << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		    << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		    << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		    << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		    << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		    << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		    << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		    << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		    << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		    << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		    << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		    << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		    << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		    << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		    << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		    << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20090001) condition
-  else if (m_Tune_Index==20080001)
-    {
-      // ATLAS jargon : MC08
-      // author : Arthur Moraes
-      // Pythia : ~ 6.4.18 
-      // date: ~ 2008
-      // short description: MC08 production round tune 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure
-      this->pypars().mstp(52)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(54)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(56)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(51)=10042;     // (needed for CTEQ6L) 	 
-      this->pypars().mstp(53)=10042;     // (needed for CTEQ6L) 	 
-      this->pypars().mstp(55)=10042;     // (needed for CTEQ6L)
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.1;    // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;    // (matter distribution)
-      this->pypars().parp(90)=0.16;   // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=1; 
-      this->pydat1().mstj(11)=3;      // (select peterson for charm fragmentation)
-      this->pydat1().mstj(22)=2;      // (Make K_S, Lambda stable)
-      this->pydat1().parj(54)=-0.07;  // (c hadronization)
-      this->pydat1().parj(55)=-0.006; // (b hadronization)
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO( "--------------------------------------------------------------------------------\n" 
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		    << "mstp(128)  = "<< this->pypars().mstp(128)    << "\n" 
-		    << "mstu(21)   = "<< this->pydat1().mstu(21)    << "\n"
-		    << "mstp(81)   = "<< this->pypars().mstp(81)  << "\n" 
-		    << "mstp(82)   = "<< this->pypars().mstp(82)   << "\n"    
-		    << "mstp(52)   = "<< this->pypars().mstp(52)   << "\n"    
-		    << "mstp(54)   = "<< this->pypars().mstp(54)   << "\n"    
-		    << "mstp(56)   = "<< this->pypars().mstp(56)   << "\n"    
-		    << "mstp(51)   = "<< this->pypars().mstp(51) << "\n"
-		    << "mstp(53)   = "<< this->pypars().mstp(53) << "\n"
-		    << "mstp(55)   = "<< this->pypars().mstp(55) << "\n"
-		    << "pmas(6,1)  = "<< this->pydat2().pmas(6,1) << "\n"  
-		    << "pmas(24,1) = "<< this->pydat2().pmas(24,1)<< "\n"
-		    //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2) << "\n" 
-		    << "pmas(23,1) = "<< this->pydat2().pmas(23,1)<< "\n"
-		    //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)<< "\n" 
-		    << "mstp(70)   = "<< this->pypars().mstp(70)   << "\n"      
-		    << "mstp(72)   = "<< this->pypars().mstp(72)   << "\n"
-		    << "mstp(88)   = "<< this->pypars().mstp(88)   << "\n"
-		    << "mstp(90)   = "<< this->pypars().mstp(90)   << "\n"
-		    << "parp(78)   = "<< this->pypars().parp(78) << "\n"
-		    << "parp(80)   = "<< this->pypars().parp(80) << "\n"
-		    << "parp(82)   = "<< this->pypars().parp(82)  << "\n"    
-		    << "parp(83)   = "<< this->pypars().parp(83) << "\n"
-		    << "parp(84)   = "<< this->pypars().parp(84) << "\n"    
-		    << "parp(90)   = "<< this->pypars().parp(90)<< "\n"   
-		    << "parj(81)   = "<< this->pydat1().parj(81)<< "\n"
-		    << "mstp(95)   = "<< this->pypars().mstp(95)   << "\n" 
-		    << "mstj(11)   = "<< this->pydat1().mstj(11)   << "\n"      
-		    << "mstj(22)   = "<< this->pydat1().mstj(22)   << "\n"      
-		    << "parj(54)   = "<< this->pydat1().parj(54) << "\n"  
-		    << "parj(55)   = "<< this->pydat1().parj(55) << "\n" 
-		    << "mstp(84)   = "<< this->pypars().mstp(84)   << "\n"
-		    << "mstp(85)   = "<< this->pypars().mstp(85)   << "\n"
-		    << "mstp(86)   = "<< this->pypars().mstp(86)   << "\n"
-		    << "mstp(87)   = "<< this->pypars().mstp(87)   << "\n"
-		    << "mstp(89)   = "<< this->pypars().mstp(89)   << "\n"
-		    << "parp(89)   = "<< this->pypars().parp(89)<< "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		    << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    } // end of if (m_Tune_Index==20080001) condition
-  else if (m_Tune_Index==20090002)
-    {
-      // ATLAS jargon : MC09' 
-      // author :  Markus Warsinsky 
-      // Pythia : 6.4.20
-      // date: Jun. 2009
-      // short description: MC08 tune update for the MC09 production 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for ext. PDF)    
-      this->pypars().mstp(54)=2;         // (needed for ext. PDF)    
-      this->pypars().mstp(56)=2;         // (needed for ext. PDF)     
-      this->pypars().mstp(51)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().mstp(53)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().mstp(55)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.1;       // this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.25;      // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2)   << "\n"  
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)   << "\n" 
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    } 
-  else if (m_Tune_Index==20090003)
-    {
-      // ATLAS jargon     : MC09c
-      // references       : ATL-COM-PHYS-2010-040, ATL-PHYS-PUB-2010-002
-      // author           : Markus Warsinsky et. al
-      // Pythia           : 6.4.21 
-      // impl. date       : June  2010
-      // tune produced in : 2009
-      // short description: simmilar to MC09, but with lowered CR
-      // changes wrt. MC09: 
-      //         MC09c has: parp(78)=0.224,    parp(82)=2.315,    parp(90)=0.2487 
-      //          MC09 has: parp(78)=0.3,      parp(82)=2.3,      parp(90)=0.25
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.224;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.315;  // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.2487;  // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" );
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20090003) condition
-  else if (m_Tune_Index==20100001)
-    {
-      // ATLAS jargon     : AMBT1
-      // references       : ATLAS-CONF-2010-031, ATL-COM-PHYS-2010-267, ATL-COM-PHYS-2010-268
-      // author           : Markus Warsinsky et. al
-      // Pythia           : 6.4.21 
-      // impl. date       : June 2010
-      // tune produced in : 2010
-      // short description: the first tune including the ATLAS (MinBias, UE, 0.9TeV and 7TeV) data 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      this->pypars().parp(62)=1.025;
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(77)=1.016;
-      this->pypars().parp(78)=0.538;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.292;  // (cut off scale)
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(84)=0.651; // (matter distribution)
-      this->pypars().parp(90)=0.250;  // (cut off scale)
-      this->pypars().parp(93)=10.0;
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     << "parp(62) = "<<   this->pypars().parp(62)     << "\n"
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(77) = "<<   this->pypars().parp(77)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n" 
-		     << "parp(93) = "<<   this->pypars().parp(93)     << "\n"    
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" );
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20100001) condition
-  else if (m_Tune_Index==20110001)
-    {
-      // ATLAS jargon     : AUET2
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Mar 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for UE
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.265;
-      this->pypars().parp(1)=0.265;
-      this->pypars().parp(61)=0.265;
-      this->pydat1().mstu(112)=4;
-      this->pypars().mstp(70)=0;
-      this->pypars().mstp(64)=3;
-      this->pypars().mstp(72)=2;
-      this->pypars().parp(62)=2.803673e+00;
-      this->pypars().parp(64)=2.213751e+00;
-      this->pypars().parp(67)=6.635356e-01;
-      this->pypars().parp(72)=2.496789e-01;
-      this->pypars().parp(91)=1.918441e+00;
-      this->pypars().parp(77)=1.127437e+00;
-      this->pypars().parp(78)=3.320624e-01;
-      this->pypars().parp(82)=2.451288e+00;
-      this->pypars().parp(84)=5.296569e-01;
-      this->pypars().parp(90)=2.290732e-01;    
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21) << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81) << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstu(112)=" << this->pydat1().mstu(112) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "mstp(64)=" << this->pypars().mstp(64) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110001 (AUET2) condition
-  else if (m_Tune_Index==20110101)
-    {
-      // ATLAS jargon     : AMBT2
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Mar 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for MinBias
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.265;
-      this->pypars().parp(1)=0.265;
-      this->pypars().parp(61)=0.265;
-      this->pydat1().mstu(112)=4;
-      this->pypars().mstp(70)=0;
-      this->pypars().mstp(64)=3;
-      this->pypars().mstp(72)=2;
-      this->pypars().parp(62)=2.803673e+00;
-      this->pypars().parp(64)=2.213751e+00;
-      this->pypars().parp(67)=6.635356e-01;
-      this->pypars().parp(72)=2.496789e-01;
-      this->pypars().parp(91)=1.918441e+00;
-      this->pypars().parp(77)=0.88;
-      this->pypars().parp(78)=0.18;
-      this->pypars().parp(82)=2.49;
-      this->pypars().parp(84)=0.61;
-      this->pypars().parp(90)=0.244;    
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21) << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81) << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstu(112)=" << this->pydat1().mstu(112) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "mstp(64)=" << this->pypars().mstp(64) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110101 (AMBT2) condition
-  else if (m_Tune_Index==20110002)
-    {
-      // ATLAS jargon     : AMBT1FF / AUET2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for UE
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=2.17;
-      this->pypars().parp(64)=0.60;
-      this->pypars().parp(72)=0.43;
-      this->pypars().parp(77)=9.006820e-01;
-      this->pypars().parp(78)=3.092771e-01;
-      this->pypars().parp(82)=2.437442e+00;
-      this->pypars().parp(84)=5.598934e-01;
-      this->pypars().parp(90)=2.414007e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110002 (AMBT1FF/AUET2b) condition
-  else if (m_Tune_Index==20110102)
-    {
-      // ATLAS jargon     : AMBT2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for MinBias
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=2.17;
-      this->pypars().parp(64)=0.60;
-      this->pypars().parp(72)=0.43;
-      this->pypars().parp(77)=1.100584e+00;
-      this->pypars().parp(78)=2.478809e-01;
-      this->pypars().parp(82)=2.592214e+00;
-      this->pypars().parp(84)=6.669917e-01;
-      this->pypars().parp(90)=2.552765e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110102 (AMBT2b) condition
-  else if (m_Tune_Index==20110003)
-    {
-      // ATLAS jargon     : AUET2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: CTEQ6L1 tune incl. ISR/FSR parameters, optimized for UE
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=10042;
-      this->pypars().mstp(53)=10042;
-      this->pypars().mstp(55)=10042;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=1.13;
-      this->pypars().parp(64)=0.68;
-      this->pypars().parp(72)=0.527;
-      this->pypars().parp(77)=4.905171e-01;
-      this->pypars().parp(78)=3.105197e-01;
-      this->pypars().parp(82)=2.259809e+00;
-      this->pypars().parp(84)=4.430423e-01;
-      this->pypars().parp(90)=2.490763e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110003 (AUET2b) condition
-  else if (m_Tune_Index==20110103)
-    {
-      // ATLAS jargon     : AMBT2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: CTEQ6L1 tune incl. ISR/FSR parameters, optimized for MinBias
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=10042;
-      this->pypars().mstp(53)=10042;
-      this->pypars().mstp(55)=10042;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=1.13;
-      this->pypars().parp(64)=0.68;
-      this->pypars().parp(72)=0.527;
-      this->pypars().parp(77)=3.566023e-01;
-      this->pypars().parp(78)=2.350777e-01;
-      this->pypars().parp(82)=2.342685e+00;
-      this->pypars().parp(84)=6.053474e-01;
-      this->pypars().parp(90)=2.456730e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110103 (AMBT2b) condition
-  else
-    {
-      ATH_MSG_WARNING( "atlasTune: no tune with Tune_Index : "<<m_Tune_Index << "\n"
-		       << "run with current default ATLAS tune : "<<m_Default_Tune_Name << "\n" );
-      //set Tune_Type to empty to get common undefined tune behavior
-      m_Tune_Type=" ";
-      StatusCode sc = PythiaResMod::setPythiaTune();
-    }
-
-  ATH_MSG_INFO( "atlasTune: all done                                                             \n" 
-		<< "________________________________________________________________________________\n" );
-  return StatusCode::SUCCESS;
-  
-  //end of atlasTune def.
-}
-
diff --git a/Generators/PythiaExo_i/src/atlasTuneTopMdiff.cxx b/Generators/PythiaExo_i/src/atlasTuneTopMdiff.cxx
deleted file mode 100644
index 51940926083d01f4a8e073e56abb77d8e07b21b3..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/atlasTuneTopMdiff.cxx
+++ /dev/null
@@ -1,1439 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PythiaExo_i/PythiaTopMdiff.h"
-
-/*
-  ________________________________________________________________________________________________________________________
-
-  L.M., 
-  Pythia parameter settings / TUNE
-
-  Aug. 09
-
-  called by Pythia.cxx
-  set ATLAS tune/parameters set determined by m_Tune_Index
-  m_Tune_Index 0,-1 and -2 are technical settings to run with 0, recommended or common set of ATLAS Pythia parameters
-  in case m_Tune_Index does not correspond to ATLAS tune index use default ATLAS tune (set by m_Default_Tune_Name)
-  -------------------------------------------------------------------------------------------------------------------------
-  Backw. compat: old tune setting syntax remains supported.
-  Mixing of the old and new tune settings is not supported and in this case Atlas default tune settings are used and 
-
-  May 09
-
-  In case only the old syntax is used, the switches have the following effect:
-  1. useAtlasPythiaRecomm  : false sets m_Tune_Index=0 [default:true ]
-     Event record, error handlig, new PS/MI model, MI structure
-  2. useAtlasPythiaCommon  : false sets m_Tune_Index=-1; [default:true ]
-     (ATLAS specific) print-out, particle properties, MI structure, pdf
-  3. useAtlasPythiaTune09  : sets m_Tune_Index=m_mc09_Tune_Index        [default:false ]
-  4. useAtlasPythiaTune08  : sets m_Tune_Index=m_mc08_Tune_Index        [default:false ]
-  5. useNoAtlasPythiaParam : sets bool m_useNoAtlasPythiaParam          [default:false ]
-     Using Pythia defaults + parameters set by the jO only.
-     Please note that the use of ATLAS defaults is recommended.
-     Please consider keeping the settings of switch 1.
-
-  ________________________________________________________________________________________________________________________
- */
-
-StatusCode PythiaTopMdiff::atlasTune()
-
-{
-  // if tune is left to the dummy starting value, use the default tune:
-  if (m_Tune_Index==m_Starting_Tune_Index) m_Tune_Index=m_Default_Tune_Index;
-
-  ATH_MSG_INFO( "\n________________________________________________________________________________\n"
-		<< "atlasTune:   [Pythia_i/src/atlasTune.cxx]                                       \n" 
-		<< "atlasTune: setting Pythia parameter values:                                     \n"
-		<< "--------------------------------------------------------------------------------"  ); 
-
-  // note: m_Tune_Name == "ATLAS_blah" will end here since atoi() returns 0 if it can't ocnvert arg. to int 
-  if (m_Tune_Index==0) 
-    {
-      ATH_MSG_WARNING( "setPythiaTune: m_Tune_Index=0 requested,                                       \n"
-		       << "setPythiaTune: skipping par. setting by Pythia_i, running with Pythia defaults. \n"
-		       << "setPythiaTune: Using Pythia defaults + parameters set by the USER.              \n"
-		       << "setPythiaTune: Please note that the use of ATLAS defaults is recommended.       \n"
-		       << "setPythiaTune: Please consider keeping the settings of Tune_Name=-1,-2.         \n"
-		       << "--------------------------------------------------------------------------------"  );
-      return StatusCode::SUCCESS; 
-    }//end of {m_Tune_Index==0} condition
-  //---------------------------------------------------------------------------  
-  //____________________________________________________________________________________________________________________________
-  // when not using an ATLAS tune but want to keep recommended / common settings: 
-  else if (m_Tune_Index<0)
-    {
-      if (m_Tune_Index==-1)
-	{
-	  //________________________________________________________________________________________________________________________
-	  // printout details + 
-	  this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-	  this->pydat1().mstu(21)   =1;      // error handling switch 
-	  this->pypars().mstp(81)   =21;     // run PYEVNW with PYEVNT 
-	  this->pydat1().mstj(22)=2;         // stable particles convention
-	  //________________________________________________________________________________________________________________________
-	  ATH_MSG_INFO( "mstp(128)  =  "<< this->pypars().mstp(128) << "\n" 
-			<< "mstu(21)   =  "<< this->pydat1().mstu(21)  << "\n" 
-			<< "mstp(81)   =  "<< this->pypars().mstp(81)  << "\n" 
-			<< "mstj(22)   =  "<< this->pydat1().mstj(22) );
-
-	  //________________________________________________________________________________________________________________________ 
-        }
-      if (m_Tune_Index==-2)
-	{
-	  //________________________________________________________________________________________________________________________
-	  // printout details 
-	  this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-	  this->pydat1().mstu(21)   =1;      // error handling switch 
-	  this->pypars().mstp(81)   =21;     // run PYEVNW with PYEVNT 
-	  this->pydat1().mstj(22)=2;         // stable particles convention
-	  //________________________________________________________________________________________________________________________
-   	  //physics-related
-	  this->pypars().mstp(82)=4;         // MI structure
-	  this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))	 
-	  this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))	 	 
-	  this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))	 	 
-	  this->pypars().mstp(51)=20651;     // LO**
-	  this->pypars().mstp(53)=20651;     // LO** 	 	 
-	  this->pypars().mstp(55)=20651;     // LO** 	
-	  this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-	  this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-	  //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-	  this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-	  //this->pydat2().pmas(23,2)=2.4952;  // PDG2007 Z0 width
-	  //________________________________________________________________________________________________________________________
-	  //printout details ... +
-	  ATH_MSG_INFO( "mstp(128)  =  "<< this->pypars().mstp(128) << "\n" 
-			<< "mstu(21)   =  "<< this->pydat1().mstu(21)  << "\n" 
-			<< "mstp(81)   =  "<< this->pypars().mstp(81)  << "\n" 
-			//physics-related
-			<< "mstp(82)  = "<<  this->pypars().mstp(82)     << "\n"    
-			<< "mstp(52)  = "<<  this->pypars().mstp(52)     << "\n"    
-			<< "mstp(54)  = "<<  this->pypars().mstp(54)     << "\n"    
-			<< "mstp(56)  = "<<  this->pypars().mstp(56)     << "\n"    
-			<< "mstp(51)  = "<<  this->pypars().mstp(51)     << "\n"
-			<< "mstp(53)  = "<<  this->pypars().mstp(53)     << "\n"
-			<< "mstp(55)  = "<<  this->pypars().mstp(55)     << "\n"
-			<< "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"  
-			<< "pmas(24,1)= "<<  this->pydat2().pmas(24,1)   << "\n"
-			//<< "pmas(24,2)= "<<  this->pydat2().pmas(24,2)   << "\n" 
-			<< "pmas(23,1)= "<<  this->pydat2().pmas(23,1)   << "\n" );             
-	  //<< "pmas(23,2)= "<<  this->pydat2().pmas(23,2)   << "\n" 
-	  //________________________________________________________________________________________________________________________
-	}
-    }
-  else if (m_Tune_Index==20090001)
-    {
-      // ATLAS jargon : MC09
-      // author : Markus Warsinsky
-      // Pythia : 6.4.20 
-      // date: May 2009
-      // short description: MC09 production round tune for LO* PDFs
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.3;       // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.25;      // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO( "--------------------------------------------------------------------------------\n" 
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
- 		    << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		    << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		    << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		    << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		    << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		    << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		    << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		    << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		    << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		    << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		    << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		    << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		    //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2)   << "\n"  
-		    << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		    //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)   << "\n" 
-		    << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		    << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		    << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		    << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		    << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		    << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		    << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		    << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		    << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		    << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		    << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		    << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		    << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		    << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		    << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		    << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		    << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		    << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		    << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		    << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		    << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		    << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		    << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		    << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20090001) condition
-  else if (m_Tune_Index==20080001)
-    {
-      // ATLAS jargon : MC08
-      // author : Arthur Moraes
-      // Pythia : ~ 6.4.18 
-      // date: ~ 2008
-      // short description: MC08 production round tune 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure
-      this->pypars().mstp(52)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(54)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(56)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(51)=10042;     // (needed for CTEQ6L) 	 
-      this->pypars().mstp(53)=10042;     // (needed for CTEQ6L) 	 
-      this->pypars().mstp(55)=10042;     // (needed for CTEQ6L)
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.1;    // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;    // (matter distribution)
-      this->pypars().parp(90)=0.16;   // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=1; 
-      this->pydat1().mstj(11)=3;      // (select peterson for charm fragmentation)
-      this->pydat1().mstj(22)=2;      // (Make K_S, Lambda stable)
-      this->pydat1().parj(54)=-0.07;  // (c hadronization)
-      this->pydat1().parj(55)=-0.006; // (b hadronization)
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO( "--------------------------------------------------------------------------------\n" 
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		    << "mstp(128)  = "<< this->pypars().mstp(128)    << "\n" 
-		    << "mstu(21)   = "<< this->pydat1().mstu(21)    << "\n"
-		    << "mstp(81)   = "<< this->pypars().mstp(81)  << "\n" 
-		    << "mstp(82)   = "<< this->pypars().mstp(82)   << "\n"    
-		    << "mstp(52)   = "<< this->pypars().mstp(52)   << "\n"    
-		    << "mstp(54)   = "<< this->pypars().mstp(54)   << "\n"    
-		    << "mstp(56)   = "<< this->pypars().mstp(56)   << "\n"    
-		    << "mstp(51)   = "<< this->pypars().mstp(51) << "\n"
-		    << "mstp(53)   = "<< this->pypars().mstp(53) << "\n"
-		    << "mstp(55)   = "<< this->pypars().mstp(55) << "\n"
-		    << "pmas(6,1)  = "<< this->pydat2().pmas(6,1) << "\n"  
-		    << "pmas(24,1) = "<< this->pydat2().pmas(24,1)<< "\n"
-		    //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2) << "\n" 
-		    << "pmas(23,1) = "<< this->pydat2().pmas(23,1)<< "\n"
-		    //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)<< "\n" 
-		    << "mstp(70)   = "<< this->pypars().mstp(70)   << "\n"      
-		    << "mstp(72)   = "<< this->pypars().mstp(72)   << "\n"
-		    << "mstp(88)   = "<< this->pypars().mstp(88)   << "\n"
-		    << "mstp(90)   = "<< this->pypars().mstp(90)   << "\n"
-		    << "parp(78)   = "<< this->pypars().parp(78) << "\n"
-		    << "parp(80)   = "<< this->pypars().parp(80) << "\n"
-		    << "parp(82)   = "<< this->pypars().parp(82)  << "\n"    
-		    << "parp(83)   = "<< this->pypars().parp(83) << "\n"
-		    << "parp(84)   = "<< this->pypars().parp(84) << "\n"    
-		    << "parp(90)   = "<< this->pypars().parp(90)<< "\n"   
-		    << "parj(81)   = "<< this->pydat1().parj(81)<< "\n"
-		    << "mstp(95)   = "<< this->pypars().mstp(95)   << "\n" 
-		    << "mstj(11)   = "<< this->pydat1().mstj(11)   << "\n"      
-		    << "mstj(22)   = "<< this->pydat1().mstj(22)   << "\n"      
-		    << "parj(54)   = "<< this->pydat1().parj(54) << "\n"  
-		    << "parj(55)   = "<< this->pydat1().parj(55) << "\n" 
-		    << "mstp(84)   = "<< this->pypars().mstp(84)   << "\n"
-		    << "mstp(85)   = "<< this->pypars().mstp(85)   << "\n"
-		    << "mstp(86)   = "<< this->pypars().mstp(86)   << "\n"
-		    << "mstp(87)   = "<< this->pypars().mstp(87)   << "\n"
-		    << "mstp(89)   = "<< this->pypars().mstp(89)   << "\n"
-		    << "parp(89)   = "<< this->pypars().parp(89)<< "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		    << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    } // end of if (m_Tune_Index==20080001) condition
-  else if (m_Tune_Index==20090002)
-    {
-      // ATLAS jargon : MC09' 
-      // author :  Markus Warsinsky 
-      // Pythia : 6.4.20
-      // date: Jun. 2009
-      // short description: MC08 tune update for the MC09 production 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for ext. PDF)    
-      this->pypars().mstp(54)=2;         // (needed for ext. PDF)    
-      this->pypars().mstp(56)=2;         // (needed for ext. PDF)     
-      this->pypars().mstp(51)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().mstp(53)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().mstp(55)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.1;       // this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.25;      // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2)   << "\n"  
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)   << "\n" 
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    } 
-  else if (m_Tune_Index==20090003)
-    {
-      // ATLAS jargon     : MC09c
-      // references       : ATL-COM-PHYS-2010-040, ATL-PHYS-PUB-2010-002
-      // author           : Markus Warsinsky et. al
-      // Pythia           : 6.4.21 
-      // impl. date       : June  2010
-      // tune produced in : 2009
-      // short description: simmilar to MC09, but with lowered CR
-      // changes wrt. MC09: 
-      //         MC09c has: parp(78)=0.224,    parp(82)=2.315,    parp(90)=0.2487 
-      //          MC09 has: parp(78)=0.3,      parp(82)=2.3,      parp(90)=0.25
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.224;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.315;  // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.2487;  // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" );
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20090003) condition
-  else if (m_Tune_Index==20100001)
-    {
-      // ATLAS jargon     : AMBT1
-      // references       : ATLAS-CONF-2010-031, ATL-COM-PHYS-2010-267, ATL-COM-PHYS-2010-268
-      // author           : Markus Warsinsky et. al
-      // Pythia           : 6.4.21 
-      // impl. date       : June 2010
-      // tune produced in : 2010
-      // short description: the first tune including the ATLAS (MinBias, UE, 0.9TeV and 7TeV) data 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      this->pypars().parp(62)=1.025;
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(77)=1.016;
-      this->pypars().parp(78)=0.538;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.292;  // (cut off scale)
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(84)=0.651; // (matter distribution)
-      this->pypars().parp(90)=0.250;  // (cut off scale)
-      this->pypars().parp(93)=10.0;
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     << "parp(62) = "<<   this->pypars().parp(62)     << "\n"
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(77) = "<<   this->pypars().parp(77)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n" 
-		     << "parp(93) = "<<   this->pypars().parp(93)     << "\n"    
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" );
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20100001) condition
-  else if (m_Tune_Index==20110001)
-    {
-      // ATLAS jargon     : AUET2
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Mar 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for UE
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.265;
-      this->pypars().parp(1)=0.265;
-      this->pypars().parp(61)=0.265;
-      this->pydat1().mstu(112)=4;
-      this->pypars().mstp(70)=0;
-      this->pypars().mstp(64)=3;
-      this->pypars().mstp(72)=2;
-      this->pypars().parp(62)=2.803673e+00;
-      this->pypars().parp(64)=2.213751e+00;
-      this->pypars().parp(67)=6.635356e-01;
-      this->pypars().parp(72)=2.496789e-01;
-      this->pypars().parp(91)=1.918441e+00;
-      this->pypars().parp(77)=1.127437e+00;
-      this->pypars().parp(78)=3.320624e-01;
-      this->pypars().parp(82)=2.451288e+00;
-      this->pypars().parp(84)=5.296569e-01;
-      this->pypars().parp(90)=2.290732e-01;    
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21) << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81) << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstu(112)=" << this->pydat1().mstu(112) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "mstp(64)=" << this->pypars().mstp(64) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110001 (AUET2) condition
-  else if (m_Tune_Index==20110101)
-    {
-      // ATLAS jargon     : AMBT2
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Mar 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for MinBias
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.265;
-      this->pypars().parp(1)=0.265;
-      this->pypars().parp(61)=0.265;
-      this->pydat1().mstu(112)=4;
-      this->pypars().mstp(70)=0;
-      this->pypars().mstp(64)=3;
-      this->pypars().mstp(72)=2;
-      this->pypars().parp(62)=2.803673e+00;
-      this->pypars().parp(64)=2.213751e+00;
-      this->pypars().parp(67)=6.635356e-01;
-      this->pypars().parp(72)=2.496789e-01;
-      this->pypars().parp(91)=1.918441e+00;
-      this->pypars().parp(77)=0.88;
-      this->pypars().parp(78)=0.18;
-      this->pypars().parp(82)=2.49;
-      this->pypars().parp(84)=0.61;
-      this->pypars().parp(90)=0.244;    
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21) << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81) << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstu(112)=" << this->pydat1().mstu(112) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "mstp(64)=" << this->pypars().mstp(64) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110101 (AMBT2) condition
-  else if (m_Tune_Index==20110002)
-    {
-      // ATLAS jargon     : AMBT1FF / AUET2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for UE
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=2.17;
-      this->pypars().parp(64)=0.60;
-      this->pypars().parp(72)=0.43;
-      this->pypars().parp(77)=9.006820e-01;
-      this->pypars().parp(78)=3.092771e-01;
-      this->pypars().parp(82)=2.437442e+00;
-      this->pypars().parp(84)=5.598934e-01;
-      this->pypars().parp(90)=2.414007e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110002 (AMBT1FF/AUET2b) condition
-  else if (m_Tune_Index==20110102)
-    {
-      // ATLAS jargon     : AMBT2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for MinBias
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=2.17;
-      this->pypars().parp(64)=0.60;
-      this->pypars().parp(72)=0.43;
-      this->pypars().parp(77)=1.100584e+00;
-      this->pypars().parp(78)=2.478809e-01;
-      this->pypars().parp(82)=2.592214e+00;
-      this->pypars().parp(84)=6.669917e-01;
-      this->pypars().parp(90)=2.552765e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110102 (AMBT2b) condition
-  else if (m_Tune_Index==20110003)
-    {
-      // ATLAS jargon     : AUET2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: CTEQ6L1 tune incl. ISR/FSR parameters, optimized for UE
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=10042;
-      this->pypars().mstp(53)=10042;
-      this->pypars().mstp(55)=10042;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=1.13;
-      this->pypars().parp(64)=0.68;
-      this->pypars().parp(72)=0.527;
-      this->pypars().parp(77)=4.905171e-01;
-      this->pypars().parp(78)=3.105197e-01;
-      this->pypars().parp(82)=2.259809e+00;
-      this->pypars().parp(84)=4.430423e-01;
-      this->pypars().parp(90)=2.490763e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110003 (AUET2b) condition
-  else if (m_Tune_Index==20110103)
-    {
-      // ATLAS jargon     : AMBT2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: CTEQ6L1 tune incl. ISR/FSR parameters, optimized for MinBias
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=10042;
-      this->pypars().mstp(53)=10042;
-      this->pypars().mstp(55)=10042;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=1.13;
-      this->pypars().parp(64)=0.68;
-      this->pypars().parp(72)=0.527;
-      this->pypars().parp(77)=3.566023e-01;
-      this->pypars().parp(78)=2.350777e-01;
-      this->pypars().parp(82)=2.342685e+00;
-      this->pypars().parp(84)=6.053474e-01;
-      this->pypars().parp(90)=2.456730e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110103 (AMBT2b) condition
-  else
-    {
-      ATH_MSG_WARNING( "atlasTune: no tune with Tune_Index : "<<m_Tune_Index << "\n"
-		       << "run with current default ATLAS tune : "<<m_Default_Tune_Name << "\n" );
-      //set Tune_Type to empty to get common undefined tune behavior
-      m_Tune_Type=" ";
-      StatusCode sc = PythiaTopMdiff::setPythiaTune();
-    }
-
-  ATH_MSG_INFO( "atlasTune: all done                                                             \n" 
-		<< "________________________________________________________________________________\n" );
-  return StatusCode::SUCCESS;
-  
-  //end of atlasTune def.
-}
-
diff --git a/Generators/PythiaExo_i/src/atopyt.F b/Generators/PythiaExo_i/src/atopyt.F
deleted file mode 100644
index cb9255589874b5406299f53c0b99f9ee5632c8b0..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/atopyt.F
+++ /dev/null
@@ -1,155 +0,0 @@
-      SUBROUTINE ALSHCD(CSHO)
-      CHARACTER*3 CSHO
-      CSHO='PYT'
-      END
-
-      SUBROUTINE ALSHEN
-      END
-
-      SUBROUTINE ALSHER(I)
-      INTEGER I
-      I=0
-      RETURN
-      END
-C----------------------------------------------------------------------
-      SUBROUTINE ALSHIN(I)
-C----------------------------------------------------------------------
-C     subroutine to initialise the events
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-#include "AlpGen_i/alpsho.inc"
-      INTEGER I
-C--LOCAL VARIABLES
-C     EASY-TEXT
-      CHARACTER*10 CGIVE
-      CHARACTER*12 CGIV2
-      CHARACTER*32 CPASS
-C LOCAL VARIABLES
-      DOUBLE PRECISION MQ
-      INTEGER IQ
-C COMMUNICATION CODE
-      I=661
-C FILL IN PYTHIA SPECIFIC INPUTS
-      IF(MC.NE.0.) THEN
-        IQ=4
-        MQ=MC
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF 
-      IF(MB.NE.0.) THEN
-        IQ=5
-        MQ=MB
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF 
-      IF(MT.NE.0.) THEN
-        IQ=6
-        MQ=MT
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF 
-      IF(MW.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MW
-        CPASS='PMAS(24,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(24,1)=MW
-      ENDIF
-      IF(MZ.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MZ
-        CPASS='PMAS(23,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(23,1)=MZ
-      ENDIF
-      IF(MH.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MH
-        CPASS='PMAS(25,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(25,1)=MH
-      ENDIF
-      END
-
-C-----------------------------------------------------------------------
-      SUBROUTINE ALSFIN
-C-----------------------------------------------------------------------
-C     PYTHIA END OF FILE TREATMENT
-C-----------------------------------------------------------------------
-C--   GUP Event common block
-#include "GeneratorFortranCommon/hepeup.inc"
-      NUP=0
-      END
-
-C----------------------------------------------------------------------
-      SUBROUTINE MGSHIN(I)
-C----------------------------------------------------------------------
-C     subroutine to initialise the events FOR MADGRAPH ONLY
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-#include "MadGraph_i/madsho.inc"
-      INTEGER I
-C--LOCAL VARIABLES
-C     EASY-TEXT
-      CHARACTER*10 CGIVE
-      CHARACTER*12 CGIV2
-      CHARACTER*32 CPASS
-C LOCAL VARIABLES
-      DOUBLE PRECISION MQ
-      INTEGER IQ
-C COMMUNICATION CODE
-      I=661
-C FILL IN PYTHIA SPECIFIC INPUTS for SM
-      IF(MC.NE.0.) THEN
-        IQ=4
-        MQ=MC
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF
-      IF(MB.NE.0.) THEN
-        IQ=5
-        MQ=MB
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF
-      IF(MT.NE.0.) THEN
-        IQ=6
-        MQ=MT
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF
-      IF(MW.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MW
-        CPASS='PMAS(24,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(24,1)=MW
-      ENDIF
-      IF(MZ.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MZ
-        CPASS='PMAS(23,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(23,1)=MZ
-      ENDIF
-      IF(MH.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MH
-        CPASS='PMAS(25,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(25,1)=MH
-      ENDIF
-      END
-
diff --git a/Generators/PythiaExo_i/src/cldcay.F b/Generators/PythiaExo_i/src/cldcay.F
deleted file mode 100644
index 5d4b5824f2143a6ec536389685aec31d67242a8d..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/cldcay.F
+++ /dev/null
@@ -1,8 +0,0 @@
-      SUBROUTINE CLDCAY(LUN)
-      IMPLICIT NONE
-      INTEGER LUN
-
-      CLOSE(LUN)
-
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/extproc.F b/Generators/PythiaExo_i/src/extproc.F
deleted file mode 100644
index 566d47fb7d0d346941d5850e2486a1d1bcfd87c5..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/extproc.F
+++ /dev/null
@@ -1,9 +0,0 @@
-      SUBROUTINE EXTPROC(IPROC)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-#include "GeneratorFortranCommon/lesatlas.inc"
-      ATLASCHOICE = IPROC
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gatlastaula_decres_py.F b/Generators/PythiaExo_i/src/gatlastaula_decres_py.F
deleted file mode 100644
index d1232a04495e05b3efd17a7fcd95542aa21bd4e3..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gatlastaula_decres_py.F
+++ /dev/null
@@ -1,22 +0,0 @@
-C FORKING ROUTINE TO DECAY LEFTOVER RESONANCES IN PYTHIA
-      SUBROUTINE TAUOLA_DECRES_PY(ISTART)
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER ISTART
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      SAVE /HEPEVT/
-
-      MSTU(12)=12345 ! PREVENT TOO MANY LOGOS
-      
-      CALL PYHEPC(2)
-C---DO UNSTABLE PARTICLE DECAYS
-      CALL PYEXEC               ! DECAY AN ODD PION...
-      CALL PYHEPC(1)
-c      CALL PYLIST(2)
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpydat1.F b/Generators/PythiaExo_i/src/gpydat1.F
deleted file mode 100644
index 35cb472d5928e33031d982920982da7985c7df59..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpydat1.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYDAT1_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER MSTU,MSTJ
-      DOUBLE PRECISION PARU,PARJ
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYDAT1_ADDRESS = GETADDR(MSTU(1))
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpydat2.F b/Generators/PythiaExo_i/src/gpydat2.F
deleted file mode 100644
index c4f6fb28bc3a9505493f93f177ba6e852122acc1..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpydat2.F
+++ /dev/null
@@ -1,13 +0,0 @@
-      FVOIDP FUNCTION PYDAT2_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NSUB,NPAR,NKDP,NPDP,NVDM
-      PARAMETER (NSUB=500,NPAR=2000,NKDP=4,NPDP=4,NVDM=4)
-      INTEGER KCHG
-      DOUBLE PRECISION PMAS,PARF,VCKM  
-      COMMON/PYDAT2/KCHG(NSUB,NKDP),PMAS(NSUB,NPDP),PARF(NPAR),
-     &     VCKM(NVDM,NVDM)
-      FVOIDP GETADDR 
-
-      PYDAT2_ADDRESS = GETADDR(KCHG)
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpydat3_62.F b/Generators/PythiaExo_i/src/gpydat3_62.F
deleted file mode 100644
index 13d7ab1f32068b95ad9b2a6b73da1efbc62b718d..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpydat3_62.F
+++ /dev/null
@@ -1,14 +0,0 @@
-      FVOIDP FUNCTION PYDAT3_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NSUB,NPAR,NMDCY,NMDME,NKFDP
-      PARAMETER (NSUB=500,NPAR=8000,NMDCY=3,NMDME=2,NKFDP=5)
-      INTEGER MDCY,MDME,KFDP
-      DOUBLE PRECISION BRAT
-      COMMON/PYDAT3/MDCY(NSUB,NMDCY),MDME(NPAR,NMDME),BRAT(NPAR),
-     &     KFDP(NPAR,NKFDP)
-      
-      FVOIDP GETADDR 
-
-      PYDAT3_ADDRESS = GETADDR(MDCY(1,1))
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpydatr.F b/Generators/PythiaExo_i/src/gpydatr.F
deleted file mode 100644
index 40f670a1a71571145fed1855b2c691e777713f0b..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpydatr.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYDATR_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER MRPY
-      DOUBLE PRECISION RRPY
-      COMMON/PYDATR/MRPY(6),RRPY(100)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYDATR_ADDRESS = GETADDR(MRPY(1))
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpyint1.F b/Generators/PythiaExo_i/src/gpyint1.F
deleted file mode 100644
index c6529c26561e7ab39f82c9cf87cc777b4e4aa1db..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpyint1.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYINT1_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER MINT
-      DOUBLE PRECISION VINT
-      COMMON/PYINT1/MINT(400),VINT(400)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYINT1_ADDRESS = GETADDR(MINT(1))
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpyint2.F b/Generators/PythiaExo_i/src/gpyint2.F
deleted file mode 100644
index 7bc1a12adfc960abde9b02c41e84ea80838b9083..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpyint2.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYINT2_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER ISET,KFPR,ICOL
-      DOUBLE PRECISION COEF
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYINT2_ADDRESS = GETADDR(ISET(1))
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpyint5.F b/Generators/PythiaExo_i/src/gpyint5.F
deleted file mode 100644
index 8e81c3fff6b2ee9324f2cbf8e5bdad071301a555..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpyint5.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYINT5_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NGENPD,NGEN
-      DOUBLE PRECISION XSEC
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYINT5_ADDRESS = GETADDR(NGENPD)
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpymssm.F b/Generators/PythiaExo_i/src/gpymssm.F
deleted file mode 100644
index 45efaadf57c2b5479c4697b95b11aee874a55bb3..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpymssm.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYMSSM_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER ISSM
-      DOUBLE PRECISION RSSM
-      COMMON /PYMSSM/ ISSM(0:99),RSSM(0:99)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYMSSM_ADDRESS = GETADDR(ISSM)
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpypars.F b/Generators/PythiaExo_i/src/gpypars.F
deleted file mode 100644
index ccd83153ee3e03a096c7d6cc72766e5cd15a559f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpypars.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYPARS_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER MSTP,MSTI
-      DOUBLE PRECISION PARP,PARI
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYPARS_ADDRESS = GETADDR(MSTP(1))
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpyssmt.F b/Generators/PythiaExo_i/src/gpyssmt.F
deleted file mode 100644
index 1e0a5eda76ed12c62282a900099f0353a517b745..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpyssmt.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYSSMT_ADDRESS() 
-      IMPLICIT NONE
-      DOUBLE PRECISION ZMIX, UMIX, VMIX, SMZ, SMW, SFMIX
-      COMMON /PYSSMT/ ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
-     &     SFMIX(16,4)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYSSMT_ADDRESS = GETADDR(ZMIX)
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpysubs.F b/Generators/PythiaExo_i/src/gpysubs.F
deleted file mode 100644
index 137d825e28e6d37a517aff28dec6f565180492e1..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpysubs.F
+++ /dev/null
@@ -1,13 +0,0 @@
-      FVOIDP FUNCTION PYSUBS_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NSUB,NKIN,NFLAV
-      PARAMETER (NSUB=500,NKIN=200,NFLAV=40)
-      INTEGER MSEL,MSELPD,MSUB,KFIN
-      DOUBLE PRECISION CKIN
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(NSUB),KFIN(2,-NFLAV:NFLAV),
-     &     CKIN(NKIN)
-      FVOIDP GETADDR 
-
-      PYSUBS_ADDRESS = GETADDR(MSEL)
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/gpytcsm.F b/Generators/PythiaExo_i/src/gpytcsm.F
deleted file mode 100644
index d8c6913842cf6733b30a8638c21468d42cf3ad47..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/gpytcsm.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYTCSM_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER ITCM
-      DOUBLE PRECISION RTCM
-      COMMON/PYTCSM/ITCM(0:99),RTCM(0:99)  
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYTCSM_ADDRESS = GETADDR(ITCM)
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/initpyblock.F b/Generators/PythiaExo_i/src/initpyblock.F
deleted file mode 100644
index 2a56d3d80a11340c10e2c7d9fe81c77e2a01dc47..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/initpyblock.F
+++ /dev/null
@@ -1,32 +0,0 @@
-      SUBROUTINE INITPYBLOCK(LULIS,FILLIS)
-      IMPLICIT NONE
- 
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
- 
-      COMMON/PYDAT4/CHAF(500,2)
-      CHARACTER CHAF*16
-      integer LULIS,IERR
-      CHARACTER*60 FILLIS
-c       This is the listing filefile
-
-c      write(6,*) '<<<<<<<<< Hello from initpyblock >>>>>>>  ' 
-c      write(6,*) CHAF(1,1), CHAF(1,2)
-c      write(6,*) CHAF(100,1), CHAF(100,2)
-
-C          Open for write the pythia listing file File
-C          ====================================
-C    
-      IF(LULIS.GT.0)THEN
-         OPEN ( UNIT=LULIS, FORM='FORMATTED',
-     &         FILE=FILLIS,STATUS='NEW',IOSTAT=IERR)
-         IF(IERR.NE.0)   THEN
-            WRITE(6,*)
-     &           'Error ', IERR,' failing to open PYTHIA Listing file'
-            RETURN
-         ELSE
-            WRITE(6,*)
-     &       'Open PYTHIA Listing  file'
-         ENDIF
-      ENDIF
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/opdcay.F b/Generators/PythiaExo_i/src/opdcay.F
deleted file mode 100644
index 98cf65a9edc212c12adf00e8a7b05fcb74ea440f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/opdcay.F
+++ /dev/null
@@ -1,21 +0,0 @@
-      INTEGER FUNCTION OPDCAY(FNAME,LUN,MODE)
-      IMPLICIT NONE
-      CHARACTER*(*) FNAME
-      CHARACTER*1 MODE
-      INTEGER LUN
-
-      IF (MODE.eq.'W') THEN
-ccc      OPEN(UNIT=LUN,NAME=FNAME,ERR=99) ! gfortran incompatible
-         OPEN(UNIT=LUN,FILE=FNAME,ERR=99)
-      ELSE
-ccc      OPEN(UNIT=LUN,NAME=FNAME,STATUS='OLD',ERR=99)! gfortran incompatible
-         OPEN(UNIT=LUN,FILE=FNAME,STATUS='OLD',ERR=99)
-      ENDIF
-      
-      OPDCAY=0
-      RETURN
-
-C     ERROR OPENING FILE
- 99   OPDCAY=1
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/openrandom.F b/Generators/PythiaExo_i/src/openrandom.F
deleted file mode 100644
index 060edf42056c70606947ba95470ec46cdbc0db06..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/openrandom.F
+++ /dev/null
@@ -1,39 +0,0 @@
-      INTEGER FUNCTION OPENRANDOM(OPTION,LULIS,FILLIS)
-      IMPLICIT NONE
- 
-      integer LULIS,IERR,OPTION
-      CHARACTER*60 FILLIS
-
-C          Open for write the pythia random number File
-C          ====================================
-C
-      OPENRANDOM = 0
-      IF(LULIS.GT.0 .and. OPTION .gt.0)THEN
-         IF(OPTION .eq. 1) THEN
-            OPEN ( UNIT=LULIS, FORM='UNFORMATTED',
-     &           FILE=FILLIS,STATUS='UNKNOWN',IOSTAT=IERR)
-         ELSEIF (OPTION .eq. 2) THEN
-            OPEN ( UNIT=LULIS, FORM='UNFORMATTED',
-     &           FILE=FILLIS,STATUS='OLD',IOSTAT=IERR)
-         ENDIF
-         IF(IERR.NE.0)   THEN
-            WRITE(6,*) 'Error ', IERR,
-     &      ' failing to open PYTHIA Random Number file'
-            RETURN
-         ELSE
-            WRITE(6,*) 'Open PYTHIA Random Number file'
-         ENDIF
-      ENDIF
-
-C     When in reading mode count the number of records in the file
-      IF (OPTION .eq. 2) THEN
-         DO
-           READ(LULIS,END=120,IOSTAT=IERR)
-           OPENRANDOM = OPENRANDOM + 1
-         ENDDO
- 120     REWIND(LULIS)
-      ENDIF
-      
-      RETURN
-
-      END
diff --git a/Generators/PythiaExo_i/src/opensusyfile.F b/Generators/PythiaExo_i/src/opensusyfile.F
deleted file mode 100644
index 77a5aa704eb38870bfe8e7535a254205cb7f10d6..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/opensusyfile.F
+++ /dev/null
@@ -1,32 +0,0 @@
-      Subroutine opensusyfile(filnam,iunit)
-      character*(*)  filnam
-c      integer status
-      integer iunit
-c-----------------------------------------------------------------------
-c  open the SUSY file
-c-----------------------------------------------------------------------
-      write(*,*) ' '
-      write (*,6660)
- 6660 format (' SUSY filename is ')
-      write (*,*) filnam
-      write (*,6664) iunit
- 6664 format ('      and unit number is ',i6)
-C
-      open(unit=iunit,file=filnam,status='old',err=101)
-      goto 102
-c-----------------------------------------------------------------------
-c  error: can't open SUSY file
-c-----------------------------------------------------------------------
- 101  continue
-      write(*,*) ' '
-      write(*,*) ' ********************************************* '
-      write(*,*) ' '
-      write(*,*) 
-     $     ' Error in opening SUSY file for READING'
-      write(*,*)
-     $     ' Program will abort.'
-      write(*,*) ' '
-      write(*,*) ' ********************************************* '
-      write(*,*) ' '
- 102  continue
-      end
diff --git a/Generators/PythiaExo_i/src/parout.F b/Generators/PythiaExo_i/src/parout.F
deleted file mode 100644
index 9bf294bbf0f21677788b518f30ad763155d5f405..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/parout.F
+++ /dev/null
@@ -1,37 +0,0 @@
-      SUBROUTINE PAROUT(IMODE)
-
-C______________________________________________________________________________
-C AUTHOR LMijovic
-C helper subroutine for redirecting part of Pythia output to a separate file
-C______________________________________________________________________________
-
-      LOGICAL ISFILE
-      INTEGER IFOUT1, IFOUT2
-
-C     if the values are changed also change the MSTU(11) setting below
-C     file for pythia parameter values after initialization 
-      IFOUT1=7
-C     file for pythia parameter values after event generation 
-      IFOUT2=8  
-    
-      IF (IMODE .EQ. 1) THEN
-         CALL PYGIVE("MSTU(11)=7")
-         INQUIRE(FILE='par_after_init.out',EXIST=ISFILE)
-         IF (ISFILE .EQV. .TRUE.) THEN
-            OPEN(IFOUT1,FILE='after_init.out',STATUS='OLD',ERR=3001)
-         ELSE
-            OPEN(IFOUT1,FILE='after_init.out',STATUS='NEW',ERR=3001)
-         ENDIF
-      ELSE IF (IMODE .EQ. 2) THEN
-         CALL PYGIVE("MSTU(11)=8")
-         OPEN(IFOUT2,FILE='after_gen.out',STATUS='NEW',ERR=3001)
-      ELSE IF (IMODE .EQ. 3) THEN
-         CALL PYGIVE("MSTU(11)=8")
-         OPEN(IFOUT2,FILE='after_gen.out',STATUS='OLD',ERR=3001)
-      ENDIF
-      
-      RETURN
-      
- 3001 WRITE (*,*) 'could not open file for writing'
-      
-      END
diff --git a/Generators/PythiaExo_i/src/pyr.F b/Generators/PythiaExo_i/src/pyr.F
deleted file mode 100644
index 382e63207c6ace0ecbc4e14d05e23c14de46c598..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/pyr.F
+++ /dev/null
@@ -1,7 +0,0 @@
-      FUNCTION PYR(IDUMMY)
-      DOUBLE PRECISION PYR, ATL_PYR
-      INTEGER IDUMMY
- 100  PYR=ATL_PYR(IDUMMY)
-      IF(PYR.LE.0D0.OR.PYR.GE.1D0) GOTO 100
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/setPythiaTuneResMod.cxx b/Generators/PythiaExo_i/src/setPythiaTuneResMod.cxx
deleted file mode 100644
index 2de10311dce47f61d501719c277c97a6731f0a7f..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/setPythiaTuneResMod.cxx
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PythiaExo_i/PythiaResMod.h"
-
-//LM remove these
-/*#include <cstdlib>
-#include <string>
-#include <vector>
-#include <iostream>
-#include <math.h>
-#include <sstream>*/
-
-/*
-  ________________________________________________________________________________________________________________________
-
-carbon-copy of Pythia_i impl. for ResMod
-  ________________________________________________________________________________________________________________________
- */
-
-StatusCode PythiaResMod::setPythiaTune()
-{
-  // count # of function calls for one initialization step (inf. loop protection)
-   m_atlasTune_loop_prot++;
-
-   //protect against looping; setPythiaTune calls atlasTune so in principle an infinite loop can occur (in case of core code blunder)
-   if (m_atlasTune_loop_prot>100)
-     {
-       ATH_MSG_FATAL( "Got more than 100 calls of setPythiaTune() -> code errors, exit.");
-       return StatusCode::FAILURE;       
-     }
-       
-  StatusCode sc;
-  //  MsgStream log(messageService(), name());
-
-  //always set printout details
-  this->m_initlistlevel=12;
-  this->m_eventlistlevel=1;
-  this->m_pystatlistlevel.clear();
-  this->m_pystatlistlevel.push_back(1);
-  this->m_pystatlistlevel.push_back(3);
-  this->m_pystatlistlevel.push_back(4);
-  this->m_pystatlistlevel.push_back(5);
-  this->m_firstlistevent=1;
-  this->m_lastlistevent=5;
-
-  // in case of consistent old syntax : handle it, else pring warnings and use ATLAS defaults
-  if (m_useAtlasPythiaRecomm != m_Default_useAtlasPythiaRecomm || m_useAtlasPythiaCommon != m_Default_useAtlasPythiaCommon || m_useAtlasPythiaTune09 != m_Default_useAtlasPythiaTune09 || m_useAtlasPythiaTune08 != m_Default_useAtlasPythiaTune08 || m_useNoAtlasPythiaParam != m_Default_useNoAtlasPythiaParam)
-    {
-      //be backward compatible if the tune has not been set using the new syntax:
-      if (m_Tune_Name==m_Starting_Tune_Name)
-	{
-	  {
-	    if (m_useNoAtlasPythiaParam)
-	      {
-		// using no ATLAS defaults
-		m_Tune_Index=0;
-	      }
-	    // set m_Tune_Index acc. to the switch, overrides taken into acc.
-	    if (m_useAtlasPythiaCommon==false) m_Tune_Index=-1;
-	    if (m_useAtlasPythiaRecomm==false) m_Tune_Index=0;
-	    if (m_useAtlasPythiaTune08) m_Tune_Index=m_mc08_Tune_Index;
-	    if (m_useAtlasPythiaTune09) m_Tune_Index=m_mc09_Tune_Index;
-	  }
-	  // atlasTune is Pythia cmember, so knows about m_Tune_Index
-	  sc=atlasTune();      
-	  if ( sc.isFailure() ) 
-	    {
-	      ATH_MSG_FATAL( "ERROR returned from atlasTune, exit." );
-	      return StatusCode::FAILURE;
-	    }
-	  else 
-	    { 
-	      //setPythiaTune done, return
-	      return StatusCode::SUCCESS;
-	    }
-	}
-      //print warnings for the mix of the old and new syntax:
-      else
-	{
-	  //mix of the old and new syntax
-	  ATH_MSG_WARNING( "Joboptions contain both new-style tune setting Pythia.Tune_Name=\"TUNETYPE_TUNEINDEX\" as well as setting of the old-style switches:" );
-	  ATH_MSG_WARNING( "useAtlasPythiaRecomm,useAtlasPythiaCommon,useAtlasPythiaTune09,useAtlasPythiaTune08 or useNoAtlasPythiaParam" );
-	  ATH_MSG_WARNING( "Please fix the jo so that only one tune-setting style is used." );
-	  ATH_MSG_WARNING( "The old switches are deprecated, the new tune-setting style is preffered." );
-	  ATH_MSG_WARNING( "For this run the tune settings are ignored and  ATLAS default tune settings will be used:");
-	  m_Tune_Type=m_Default_Tune_Type; m_Tune_Index=m_Default_Tune_Index;
-	  ATH_MSG_WARNING( m_Tune_Type <<" , "<< m_Tune_Index );	  
-	}      
-    }// end of old switches backward compatibility support
-
-  if (m_Tune_Type=="ATLAS")
-    {  
-      sc=atlasTune();      
-      if ( sc.isFailure() ) 
-	{
-	  ATH_MSG_FATAL( "ERROR returned from atlasTune, exit." );
-	  return StatusCode::FAILURE;
-	}
-      else 
-	{ 
-	  //setPythiaTune done, return
-	  return StatusCode::SUCCESS;
-	}  
-    }
-  // call PYTUNE in the original PYTUNE(MSTP(5)) form; 
-  // as for Pythia 6.4.21 numbers 1xx - 4xx are in use
-  // error checking is as handeled by Pythia in particular too large tune nbr. returns
-  // (PYTUNE:) Tune number > max. Using defaults.
-  else if (m_Tune_Type=="PYTUNE")
-    {
-      //setPythiaTune done, return
-      this->pypars().mstp(5)=m_Tune_Index;
-      //set what is necessary for correct use of Pythia within Athena:
-      //-----------------------------------------------------------------------------
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      //-----------------------------------------------------------------------------
-      ATH_MSG_INFO( "setPythiaTune: using Pythia internal tune via PYTUNE(" << m_Tune_Index <<") call.");
-      ATH_MSG_INFO( "setting parameters needed for desired functioning of Pythia within Athena        ");
-      ATH_MSG_INFO( " mstp(128)  =1;      fix junk output for documentary particles ");
-      ATH_MSG_INFO( " mstu(21)   =1;      error handling switch                     ");
-      ATH_MSG_INFO( " mstj(22)   =2;      (Make K_S, Lambda stable)                 ");
-      ATH_MSG_INFO( " Please note: ");
-      ATH_MSG_INFO( " 1. in the jO overrides of the parameters set by PYTUNE # "<< m_Tune_Index <<" will have no effect " );
-      ATH_MSG_INFO( " - this correspods to (standalone) Pythia behavior "  );
-      ATH_MSG_INFO( " 2. handling of non-existing PYTUNE tune is same as for (default) Pythia standalone." );
-     //setPythiaTune done, return
-      return StatusCode::SUCCESS;
-    }
-  //-----------------------------------------------------------------------------------------
-  else
-    {
-      //undefined tune Type (setPythiaTune()) or Index (atlasTune() points here) for Type != PYTUNE 
-      //PythiaExo_i reaction : run with current ATLAS default tune && print WARNINGs:
-      ATH_MSG_WARNING("setPythiaTune: got invalid Tune_Name : "<< m_Tune_Name );
-      ATH_MSG_WARNING("Pythia will run with current ATLAS default tune : "<<m_Default_Tune_Name ); 
-      //string parsing for  m_Default_Tune_Name
-      std::string::size_type sep_index_def = m_Default_Tune_Name.find_first_of('_');
-      if (sep_index_def != std::string::npos)
-	{
-	  m_Tune_Type=m_Default_Tune_Name.substr(0,sep_index_def);
-	  m_Tune_Index=atoi((m_Default_Tune_Name.substr(sep_index_def+1,m_Default_Tune_Name.length()-1)).c_str());
-        }
-      else
-        {
-          // this should never happen
-	  ATH_MSG_FATAL ( "setPythiaTune : got invalid m_Default_Tune_Name, PythiaExo_i code needs to be updated." );
-	  return StatusCode::FAILURE;
-        }
-      //call ATLAS tune
-      sc=atlasTune();      
-      if ( sc.isFailure() ) 
-	{
-	  ATH_MSG_FATAL ("ERROR returned from atlasTune, exit." );
-	  return StatusCode::FAILURE;
-	}
-      else 
-	{ 
-	  //setPythiaTune done, return
-	  return StatusCode::SUCCESS;
-	}        
-    }
-  //-----------------------------------------------------------------------------------------
-  // should meet a return condition before this  
-  //  ATH_MSG_WARNING ("setPythiaTune: No action by setPythiaTune, exit.");       
-  // return StatusCode::SUCCESS;
-}//end of setPythiaTune definition
diff --git a/Generators/PythiaExo_i/src/setPythiaTuneTopMdiff.cxx b/Generators/PythiaExo_i/src/setPythiaTuneTopMdiff.cxx
deleted file mode 100644
index 5b816151ecd9954b4ce36a9241497b27a17b8cc3..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/setPythiaTuneTopMdiff.cxx
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PythiaExo_i/PythiaTopMdiff.h"
-
-//LM remove these
-/*#include <cstdlib>
-#include <string>
-#include <vector>
-#include <iostream>
-#include <math.h>
-#include <sstream>*/
-
-/*
-  ________________________________________________________________________________________________________________________
-
-carbon-copy of Pythia_i impl. for TopMdiff
-  ________________________________________________________________________________________________________________________
- */
-
-StatusCode PythiaTopMdiff::setPythiaTune()
-{
-  // count # of function calls for one initialization step (inf. loop protection)
-   m_atlasTune_loop_prot++;
-
-   //protect against looping; setPythiaTune calls atlasTune so in principle an infinite loop can occur (in case of core code blunder)
-   if (m_atlasTune_loop_prot>100)
-     {
-       ATH_MSG_FATAL( "Got more than 100 calls of setPythiaTune() -> code errors, exit.");
-       return StatusCode::FAILURE;       
-     }
-       
-  StatusCode sc;
-  //  MsgStream log(messageService(), name());
-
-  //always set printout details
-  this->m_initlistlevel=12;
-  this->m_eventlistlevel=1;
-  this->m_pystatlistlevel.clear();
-  this->m_pystatlistlevel.push_back(1);
-  this->m_pystatlistlevel.push_back(3);
-  this->m_pystatlistlevel.push_back(4);
-  this->m_pystatlistlevel.push_back(5);
-  this->m_firstlistevent=1;
-  this->m_lastlistevent=5;
-
-  // in case of consistent old syntax : handle it, else pring warnings and use ATLAS defaults
-  if (m_useAtlasPythiaRecomm != m_Default_useAtlasPythiaRecomm || m_useAtlasPythiaCommon != m_Default_useAtlasPythiaCommon || m_useAtlasPythiaTune09 != m_Default_useAtlasPythiaTune09 || m_useAtlasPythiaTune08 != m_Default_useAtlasPythiaTune08 || m_useNoAtlasPythiaParam != m_Default_useNoAtlasPythiaParam)
-    {
-      //be backward compatible if the tune has not been set using the new syntax:
-      if (m_Tune_Name==m_Starting_Tune_Name)
-	{
-	  {
-	    if (m_useNoAtlasPythiaParam)
-	      {
-		// using no ATLAS defaults
-		m_Tune_Index=0;
-	      }
-	    // set m_Tune_Index acc. to the switch, overrides taken into acc.
-	    if (m_useAtlasPythiaCommon==false) m_Tune_Index=-1;
-	    if (m_useAtlasPythiaRecomm==false) m_Tune_Index=0;
-	    if (m_useAtlasPythiaTune08) m_Tune_Index=m_mc08_Tune_Index;
-	    if (m_useAtlasPythiaTune09) m_Tune_Index=m_mc09_Tune_Index;
-	  }
-	  // atlasTune is Pythia cmember, so knows about m_Tune_Index
-	  sc=atlasTune();      
-	  if ( sc.isFailure() ) 
-	    {
-	      ATH_MSG_FATAL( "ERROR returned from atlasTune, exit." );
-	      return StatusCode::FAILURE;
-	    }
-	  else 
-	    { 
-	      //setPythiaTune done, return
-	      return StatusCode::SUCCESS;
-	    }
-	}
-      //print warnings for the mix of the old and new syntax:
-      else
-	{
-	  //mix of the old and new syntax
-	  ATH_MSG_WARNING( "Joboptions contain both new-style tune setting Pythia.Tune_Name=\"TUNETYPE_TUNEINDEX\" as well as setting of the old-style switches:" );
-	  ATH_MSG_WARNING( "useAtlasPythiaRecomm,useAtlasPythiaCommon,useAtlasPythiaTune09,useAtlasPythiaTune08 or useNoAtlasPythiaParam" );
-	  ATH_MSG_WARNING( "Please fix the jo so that only one tune-setting style is used." );
-	  ATH_MSG_WARNING( "The old switches are deprecated, the new tune-setting style is preffered." );
-	  ATH_MSG_WARNING( "For this run the tune settings are ignored and  ATLAS default tune settings will be used:");
-	  m_Tune_Type=m_Default_Tune_Type; m_Tune_Index=m_Default_Tune_Index;
-	  ATH_MSG_WARNING( m_Tune_Type <<" , "<< m_Tune_Index );	  
-	}      
-    }// end of old switches backward compatibility support
-
-  if (m_Tune_Type=="ATLAS")
-    {  
-      sc=atlasTune();      
-      if ( sc.isFailure() ) 
-	{
-	  ATH_MSG_FATAL( "ERROR returned from atlasTune, exit." );
-	  return StatusCode::FAILURE;
-	}
-      else 
-	{ 
-	  //setPythiaTune done, return
-	  return StatusCode::SUCCESS;
-	}  
-    }
-  // call PYTUNE in the original PYTUNE(MSTP(5)) form; 
-  // as for Pythia 6.4.21 numbers 1xx - 4xx are in use
-  // error checking is as handeled by Pythia in particular too large tune nbr. returns
-  // (PYTUNE:) Tune number > max. Using defaults.
-  else if (m_Tune_Type=="PYTUNE")
-    {
-      //setPythiaTune done, return
-      this->pypars().mstp(5)=m_Tune_Index;
-      //set what is necessary for correct use of Pythia within Athena:
-      //-----------------------------------------------------------------------------
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      //-----------------------------------------------------------------------------
-      ATH_MSG_INFO( "setPythiaTune: using Pythia internal tune via PYTUNE(" << m_Tune_Index <<") call.");
-      ATH_MSG_INFO( "setting parameters needed for desired functioning of Pythia within Athena        ");
-      ATH_MSG_INFO( " mstp(128)  =1;      fix junk output for documentary particles ");
-      ATH_MSG_INFO( " mstu(21)   =1;      error handling switch                     ");
-      ATH_MSG_INFO( " mstj(22)   =2;      (Make K_S, Lambda stable)                 ");
-      ATH_MSG_INFO( " Please note: ");
-      ATH_MSG_INFO( " 1. in the jO overrides of the parameters set by PYTUNE # "<< m_Tune_Index <<" will have no effect " );
-      ATH_MSG_INFO( " - this correspods to (standalone) Pythia behavior "  );
-      ATH_MSG_INFO( " 2. handling of non-existing PYTUNE tune is same as for (default) Pythia standalone." );
-     //setPythiaTune done, return
-      return StatusCode::SUCCESS;
-    }
-  //-----------------------------------------------------------------------------------------
-  else
-    {
-      //undefined tune Type (setPythiaTune()) or Index (atlasTune() points here) for Type != PYTUNE 
-      //PythiaExo_i reaction : run with current ATLAS default tune && print WARNINGs:
-      ATH_MSG_WARNING("setPythiaTune: got invalid Tune_Name : "<< m_Tune_Name );
-      ATH_MSG_WARNING("Pythia will run with current ATLAS default tune : "<<m_Default_Tune_Name ); 
-      //string parsing for  m_Default_Tune_Name
-      std::string::size_type sep_index_def = m_Default_Tune_Name.find_first_of('_');
-      if (sep_index_def != std::string::npos)
-	{
-	  m_Tune_Type=m_Default_Tune_Name.substr(0,sep_index_def);
-	  m_Tune_Index=atoi((m_Default_Tune_Name.substr(sep_index_def+1,m_Default_Tune_Name.length()-1)).c_str());
-        }
-      else
-        {
-          // this should never happen
-	  ATH_MSG_FATAL ( "setPythiaTune : got invalid m_Default_Tune_Name, PythiaExo_i code needs to be updated." );
-	  return StatusCode::FAILURE;
-        }
-      //call ATLAS tune
-      sc=atlasTune();      
-      if ( sc.isFailure() ) 
-	{
-	  ATH_MSG_FATAL ("ERROR returned from atlasTune, exit." );
-	  return StatusCode::FAILURE;
-	}
-      else 
-	{ 
-	  //setPythiaTune done, return
-	  return StatusCode::SUCCESS;
-	}        
-    }
-  //-----------------------------------------------------------------------------------------
-  // should meet a return condition before this  
-  //  ATH_MSG_WARNING ("setPythiaTune: No action by setPythiaTune, exit.");       
-  //  return StatusCode::SUCCESS;
-}//end of setPythiaTune definition
diff --git a/Generators/PythiaExo_i/src/setecm.F b/Generators/PythiaExo_i/src/setecm.F
deleted file mode 100644
index 8cfae5f420d65c1aec9b8d1fbfb88c19d73da53c..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/setecm.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      SUBROUTINE SETECM(WINMATCHIG)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-#include "GeneratorFortranCommon/heprup.inc"
-      EBMUP(1)=0.5*WINMATCHIG
-      EBMUP(2)=0.5*WINMATCHIG
-
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/special_exo.F b/Generators/PythiaExo_i/src/special_exo.F
deleted file mode 100644
index 65ccad2f5dbce8c5d7e61daad210c117cfa444d3..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/special_exo.F
+++ /dev/null
@@ -1,46 +0,0 @@
-C____________________________________________________________________________________________________________________________
-C AUTHOR LMijovic
-C (place-holder for) subroutine(s) for invoking/screaning special options for processes resisting in Pythia_Exo package;
-C idea: the modification some process introduces should not necessarily be picked by each process residing in the package
-C the special subroutines can be used in order to enable picking the modifications a-la-carte, from jO.
-C____________________________________________________________________________________________________________________________
-
-C----------------------------------------------------------------------------------------------------------------------------
-C IMODE 1:
-C In Pysgex.F:
-C - for W',Z',qq/gg -> G* [ISUB 141,142,391,392]:
-C -- take out Breit-Wigner dependence +
-C -- suppress low mass events from parton luminosities
-C -- Pysgex.F modif. introduced by Oliver Stelzer-Chilton & Daniel Hayden, Exotics group
-C----------------------------------------------------------------------------------------------------------------------------
-C IMODE 2:
-C In pyofsh.F and pyscat.F:
-C - for  qqbar (gg) -> QQbar [ISUB 81 (82)]:     
-C -- pyofsh.F : ISUB 81,82: set top partner to 3000006, spectrum to be filled via SLHA
-C -- pyscat.F : account for qqbar (gg) -> QQbar vs qqbar (gg) -> QbarQ 
-C -- modif. adopted from PythiaTop_i by Vikash Chavda, top group
-C----------------------------------------------------------------------------------------------------------------------------
-      SUBROUTINE SPECIX(IMODE)
-
-      IMPLICIT INTEGER(I-N)
-
-      COMMON/SPSGEX/ISSP
-      COMMON/SPTMDF/ISTMDF
-      SAVE /SPSGEX/,/SPTMDF/
-
-      IF (IMODE .EQ. 1) THEN
-         ISSP=1
-      ELSE
-         ISSP=0
-      ENDIF
-
-      IF (IMODE .EQ. 2) THEN
-         ISTMDF=1
-      ELSE 
-         ISTMDF=0
-      ENDIF
-      
-      RETURN
-      
-      END
-C-----------------------------------------------------------------------------------------------------------------------------
diff --git a/Generators/PythiaExo_i/src/upevnt_py.F b/Generators/PythiaExo_i/src/upevnt_py.F
deleted file mode 100644
index 78b19510d9eb13287511c0875be3004d3ef74a7a..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/upevnt_py.F
+++ /dev/null
@@ -1,29 +0,0 @@
-      SUBROUTINE UPEVNT
-c     routine for Les Houches interface to external pythia routines
-c     adapted from base pythia code. 
-c     Ian Hinchliffe (May 2002)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-      IF(ATLASCHOICE.EQ.COMPHEP) CALL USECOMPHEP
-      IF(ATLASCHOICE.EQ.USER) CALL USEUSER
-      IF(ATLASCHOICE.EQ.ACERMC) THEN
-         CALL USEACERMC
-         CALL ACERMC_ACSET12_PY(0)
-      ENDIF
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL USEALPGEN
-      IF(ATLASCHOICE.EQ.MADGRAPH) CALL USEMADGRAPH
-      IF(ATLASCHOICE.EQ.MADCUP) CALL USEMADCUP
-c      IF(ATLASCHOICE.EQ.LHAEXT) CALL USELHAEXT
-      IF(ATLASCHOICE.EQ.MATCHIG) CALL USEMATCHIG
-      IF(ATLASCHOICE.EQ.HVGEN) CALL USEHVGEN
-      IF(ATLASCHOICE.EQ.LHEF) CALL USELHEF
-      IF(ATLASCHOICE.EQ.EXOGRAVITON) CALL USEGRAV
-      IF(ATLASCHOICE.EQ.GRAVADD) CALL USEGRAVADD
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/upinit_py.F b/Generators/PythiaExo_i/src/upinit_py.F
deleted file mode 100644
index 50bcdcc8ef333d5d95ac0a9552031cd26a9571c4..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/upinit_py.F
+++ /dev/null
@@ -1,34 +0,0 @@
-      SUBROUTINE UPINIT
-c     interface to external pythia processes using Les Houches accord
-c     Adapted for pythia 6.203
-c     Ian Hinchliffe (may 2002)
-c 
-c #include "GeneratorFortranCommon/GeneratorName.h" 
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-#include "GeneratorFortranCommon/heprup.inc"
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-
-
-
-      IF(ATLASCHOICE.EQ.COMPHEP) CALL INITCOMPHEP
-      IF(ATLASCHOICE.EQ.USER) CALL INITUSER
-      IF(ATLASCHOICE.EQ.ACERMC) THEN
-         CALL INITACERMC
-         CALL ACERMC_ACSET12_PY(-1)
-      ENDIF         
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL INITALPGEN
-      IF(ATLASCHOICE.EQ.MADGRAPH) CALL INITMADGRAPH
-      IF(ATLASCHOICE.EQ.MADCUP) CALL INITMADCUP
-c      IF(ATLASCHOICE.EQ.LHAEXT) CALL INITLHAEXT
-      IF(ATLASCHOICE.EQ.MATCHIG) CALL INITMATCHIG
-      IF(ATLASCHOICE.EQ.HVGEN) CALL INITHVGEN
-      IF(ATLASCHOICE.EQ.LHEF) CALL INITLHEF
-      IF(ATLASCHOICE.EQ.EXOGRAVITON) CALL INITGRAV
-      IF(ATLASCHOICE.EQ.GRAVADD) CALL INITGRAVADD
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/upveto.F b/Generators/PythiaExo_i/src/upveto.F
deleted file mode 100644
index 22563542f03ada356185845332ea16c4b744a395..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/upveto.F
+++ /dev/null
@@ -1,46 +0,0 @@
-
-C*********************************************************************
- 
-C...UPVETO
-C...Dummy routine, to be replaced by user, to veto event generation 
-C...on the parton level, after parton showers but before multiple 
-C...interactions, beam remnants and hadronization is added.
-C...If resonances like W, Z, top, Higgs and SUSY particles are handed 
-C...undecayed from UPEVNT, or are generated by PYTHIA, they will also 
-C...be undecayed at this stage; if decayed their decay products will 
-C...have been allowed to shower. 
-
-C...All partons at the end of the shower phase are stored in the 
-C...HEPEVT commonblock. The interesting information is 
-C...NHEP = the number of such partons, in entries 1 <= i <= NHEP,
-C...IDHEP(I) = the particle ID code according to PDG conventions,
-C...PHEP(J,I) = the (p_x, p_y, p_z, E, m) of the particle.
-C...All ISTHEP entries are 1, while the rest is zeroed.
-
-C...The user decision is to be conveyed by the IVETO value.
-C...IVETO = 0 : retain current event and generate in full;
-C...      = 1 : abort generation of current event and move to next.
- 
-      SUBROUTINE UPVETO(IVETO)
-
-C...HEPEVT
-C      INCLUDE 'hepevt.inc'
-
-C...Next few lines allow you to see what info PYVETO extracted from 
-C...the full event record for the first two events. 
-C...Delete if you don't want it. 
-      INTEGER NLIST/0/
-      SAVE NLIST
-      IF(NLIST.LE.2) THEN
-        WRITE(*,*) ' Full event record at time of UPVETO call:'
-        CALL PYLIST(1)
-        WRITE(*,*) ' Part of event record made available to UPVETO:'
-        CALL PYLIST(5)
-        NLIST=NLIST+1
-      ENDIF
-
-C...Make decision here.
-      IVETO = 0
-
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/upveto_py.F b/Generators/PythiaExo_i/src/upveto_py.F
deleted file mode 100644
index 110411b4d4577db9044dd38aada5961e7a8659af..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/upveto_py.F
+++ /dev/null
@@ -1,15 +0,0 @@
-      SUBROUTINE UPVETO(IPVETO)
-c     interface to external pythia processes using Les Houches accord
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-  
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL VETOALPGEN(IPVETO)
-      IF(ATLASCHOICE.EQ.MADGRAPH) CALL VETOMADGRAPH(IPVETO)
-
-      RETURN
-      END
diff --git a/Generators/PythiaExo_i/src/visaje.F b/Generators/PythiaExo_i/src/visaje.F
deleted file mode 100644
index 0bc7a3e4049262111072c4729a845b17631b8407..0000000000000000000000000000000000000000
--- a/Generators/PythiaExo_i/src/visaje.F
+++ /dev/null
@@ -1,29 +0,0 @@
- 
-C*********************************************************************
- 
-C...VISAJE
-C...Dummy function, to be removed when ISAJET (ISASUSY) is to be linked.
- 
-      FUNCTION VISAJE()
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      CHARACTER*40 VISAJE
- 
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Assign default value.
-      VISAJE='Undefined'
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link ISAJET correctly.'/
-     &1X,'Dummy function VISAJE in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/PythiaRhad_i/CMakeLists.txt b/Generators/PythiaRhad_i/CMakeLists.txt
deleted file mode 100644
index 18cbb431efa279f842e715e6725e51eb07d3b0fa..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/CMakeLists.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-################################################################################
-# Package: PythiaRhad_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( PythiaRhad_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs(
-   PUBLIC
-   Generators/GeneratorModules
-   Generators/Pythia_i
-   Generators/Tauola_i
-   PRIVATE
-   GaudiKernel
-   Control/AthenaKernel
-   Generators/GeneratorUtils
-   Generators/TruthUtils
-   Generators/CompHep_i )
-
-# External dependencies:
-find_package( CLHEP )
-find_package( HepMC COMPONENTS HepMC HepMCfio )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( PythiaRhad_iLib
-   PythiaRhad_i/*.h
-   src/PythiaRhad.cxx
-   src/PythiaRhadModified/pyrhad.F
-   src/PythiaRhadModified/pysthad.F
-   src/PythiaRhadModified/pyprep.F
-   PUBLIC_HEADERS PythiaRhad_i
-   PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-   PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
-   LINK_LIBRARIES GeneratorModulesLib Pythia_iLib Tauola_iLib
-   PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} AthenaKernel
-   TruthUtils CompHep_i )
-
-atlas_add_component( PythiaRhad_i
-   src/components/*.cxx
-   LINK_LIBRARIES GaudiKernel PythiaRhad_iLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
diff --git a/Generators/PythiaRhad_i/PythiaRhad_i/PythiaRhad.h b/Generators/PythiaRhad_i/PythiaRhad_i/PythiaRhad.h
deleted file mode 100644
index 3a8644f1b77be3d9613a6e5560982c97f365a7e6..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/PythiaRhad_i/PythiaRhad.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENERATORMODULESPYTHIARHAD_H
-#define GENERATORMODULESPYTHIARHAD_H
-
-#include "Pythia_i/Pythia.h"
-
-#include "GeneratorModules/GenModule.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-/// @todo Move into class: currently this is GLOBAL
-using std::string;
-typedef std::vector<std::string> PygiveCommandVector;
-typedef std::vector<std::string> CommandVector;
-
-class IAtRndmGenSvc;
-
-/**
-@brief This code is used to get a PYTHIA Monte Carlo event.
-
-    genInitialize() is used to read parameters
-
-    callGenerator() makes the event
-
-    genFinalize() writes log files etc
-
-    fillEvt(GeneratorEvent* evt) passes the event to HepMC
-
-    The output will be stored in the transient event store so it can be
-    passed to the simulation.
-
-@author
-
-    Ian Hinchliffe June 2000
-
-    Modelled after the CDF code by Stan Thompson
-
-    Added access to pyint2 common Feb 2001
-
-    Added access to pyint5 common Feb 2002
-
-    Added access to lesatlas common (not part of pythia but needed for external process May 2002
-
-    Added access to pyint1 common Sept 2002
-
-    Ewelina Lobodzinska (Jan. 2008) doxygen doc added
-
-    Spited from Pythia_i Jan Kotanski July 2011
-*/
-class PythiaRhad : public Pythia {
-public:
-
-  PythiaRhad(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual ~PythiaRhad();
-
-  virtual StatusCode genuserInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-
-
- protected:
-
- private:
-
-  bool m_run_gluino_hadrons;
-  bool m_intermediate;
-  bool m_regge;
-  bool m_run_stop_hadrons;
-  bool m_run_sbottom_hadrons;
-  double m_gluino_ball_prob;
-  bool m_enable_after_initialize;
-
-  /// @name For StoppedGluino simulation ...
-
-  double m_xshift, m_yshift, m_zshift, m_tshift, m_randomtshift;
-  bool m_translate_rh_to_stopping_position;
-  bool m_rotate_rh;
-  bool m_boost_rh_to_rest_frame;
-  bool m_strip_out_rh;
-  bool m_rh_decay;
-  std::vector<std::vector<double> > m_StoppingInput;
-  int m_doubleid;
-  std::vector<int> m_rhs;
-
-  void strip_out_rh(HepMC::GenEvent* evt);
-
-
-};
-
-
-#endif
diff --git a/Generators/PythiaRhad_i/share/StoppingInput.py b/Generators/PythiaRhad_i/share/StoppingInput.py
deleted file mode 100644
index a3023f05d990d2738b2fcba73b3efbc03aae732a..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/share/StoppingInput.py
+++ /dev/null
@@ -1,9 +0,0 @@
-job.PythiaRhad.StoppingInput += [ [ -2292.779785, -2682.864746, -3711.787109, 170.720840, 1, 2 ] ]
-job.PythiaRhad.StoppingInput += [ [ -599.719421, -3709.597656, -4996.067871, 69.257782, 1, 1 ] ]
-#PythiaRhad double start
-job.PythiaRhad.StoppingInput += [ [ 1135.116699, -2076.569824, 1378.408936, 52.574215, 2, 1 ] ]
-job.PythiaRhad.StoppingInput += [ [ 2896.779053, -2266.489746, -2798.317383, 89.985825, 2, 2 ] ]
-#PythiaRhad double end
-job.PythiaRhad.StoppingInput += [ [ -1088.974243, 1575.663574, -1637.097290, 43.363873, 1, 2 ] ]
-job.PythiaRhad.StoppingInput += [ [ -272.143494, -1989.595947, -1716.095093, 63.508831, 1, 1 ] ]
-job.PythiaRhad.StoppingInput += [ [ -4938.753906, -1905.402588, -2908.289062, 105.472198, 1, 1 ] ]
diff --git a/Generators/PythiaRhad_i/share/jobOptions.pythiaRhad.StoppedGluino.py b/Generators/PythiaRhad_i/share/jobOptions.pythiaRhad.StoppedGluino.py
deleted file mode 100644
index ee172b6cdb0acbf0cfd7e8d384a078238eb5d76c..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/share/jobOptions.pythiaRhad.StoppedGluino.py
+++ /dev/null
@@ -1,104 +0,0 @@
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-#in Simulation/G4Extensions/RHadrons/share/
-MASS=1000 #100,300,600,1000,1300,1600,2000
-CASE='gluino'
-DECAY=True
-TIMESHIFT=0 #ns
-
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 10
-
-import os
-import sys
-import random
-#from datetime import datetime
-
-os.system('get_files -data PDGTABLE_'+CASE+'_'+str(MASS)+'GeV.MeV')
-os.system('mv PDGTABLE_'+CASE+'_'+str(MASS)+'GeV.MeV PDGTABLE.MeV')
-
-random.seed()
-R1=random.randint(0,100000000)
-R2=random.randint(0,100000000)
-R3=random.randint(0,100000000)
-R4=random.randint(0,100000000)
-PYTHR = "PYTHIA "+str(R1)+" "+str(R2)
-PYTHRI = "PYTHIA_INIT "+str(R3)+" "+str(R4)
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-#ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512","PYTHIA_INIT 820021 2347532"]
-ServiceMgr.AtRndmGenSvc.Seeds = [ PYTHR, PYTHRI ]
-print ServiceMgr.AtRndmGenSvc.Seeds
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from PythiaRhad_i.PythiaRhad_iConf import PythiaRhad
-job +=PythiaRhad()
-job.PythiaRhad.PythiaCommand = ["pysubs msel 13","pysubs ckin 3 18.","pypars mstp 43 2"]
-job.PythiaRhad.PythiaCommand += ["pypars mstp 51 19070", "pypars mstp 52 2",
-                             "pypars mstp 53 19070", "pypars mstp 54 2",
-                             "pypars mstp 55 19070", "pypars mstp 56 2",
-                             "pypars mstp 81 1", "pydat1 mstj 11 4"]
-
-# R-hadron commands:
-if (CASE=='gluino' and DECAY==False):
-    job.PythiaRhad.RunGluinoHadrons=True
-    job.PythiaRhad.RunStopHadrons=False
-    job.PythiaRhad.PythiaCommand += ["pymssm imss 1 1", "pymssm imss 3 1", "pymssm imss 5 1",
-                                 "pymssm rmss 3 "+str(MASS)+".0", "pymssm rmss 1 300.0", #gluino and neutralino masses
-                                 "pymssm rmss 2 3000.0", "pymssm rmss 4 10000.0",
-                                 "pymssm rmss 7 4000.0", "pymssm rmss 8 4000.0",
-                                 "pymssm rmss 9 4000.0", "pymssm rmss 10 4000.0",
-                                 "pymssm rmss 11 4000.0", "pymssm rmss 12 5000.0",
-                                 "pysubs msel 0", "pysubs msub 243 1", "pysubs msub 244 1", "pypars mstp 111 0",
-                                 "pyinit pylistf 3", "pyinit dumpr 0 100" ,"pystat 2"
-                             ]
-    job.PythiaRhad.strip_out_rh=True
-elif (CASE=='gluino' and DECAY==True):
-    job.PythiaRhad.RunGluinoHadrons=True
-    job.PythiaRhad.RunStopHadrons=False
-    job.PythiaRhad.xshift=0 #mm
-    job.PythiaRhad.yshift=2500 #mm
-    job.PythiaRhad.zshift=1000 #mm
-    job.PythiaRhad.tshift=TIMESHIFT #ns
-    job.PythiaRhad.randomtshift=50 # +-X ns, overrides tshift if non-zero
-    job.PythiaRhad.rh_decay=True
-    job.PythiaRhad.strip_out_rh=True
-    job.PythiaRhad.boost_rh_to_rest_frame=True
-    job.PythiaRhad.rotate_rh=True
-    job.PythiaRhad.translate_rh_to_stopping_position=True
-    job.PythiaRhad.StoppingInput = [ [ 0,0,0,0,0,0 ] ]
-    include("StoppingInput.py")
-    theApp.EvtMax = len(job.PythiaRhad.StoppingInput)-1
-    job.PythiaRhad.PythiaCommand += ["pymssm imss 1 1", "pymssm imss 3 1", "pymssm imss 5 1",
-                                 "pymssm rmss 3 "+str(MASS)+".0", "pymssm rmss 1 300.0", #gluino and neutralino masses
-                                 "pymssm rmss 2 3000.0", "pymssm rmss 4 10000.0",
-                                 "pymssm rmss 7 4000.0", "pymssm rmss 8 4000.0",
-                                 "pymssm rmss 9 4000.0", "pymssm rmss 10 4000.0",
-                                 "pymssm rmss 11 4000.0", "pymssm rmss 12 5000.0",
-#                                decays into gluons
-                                 "pymssm rmss 21 300.0e9", "pymssm imss 11 1", #ok to use the Gravitino
-                                 "pymssm rmss 29 2.0e6", #planck mass, controls BR(gluino->g+Gravitino)
-                                 "pydat3 mdcy 1000022 1 0", #kill neutralino decays
-#                                ------------------
-                                 "pysubs msel 0", "pysubs msub 243 1", "pysubs msub 244 1", "pypars mstp 111 0",
-                                 "pyinit pylisti 12", #dumps the full decay table, etc.
-                                 "pyinit dumpr 0 100" #,"pystat 2"
-                             ]
-
-#print out MC truth
-#from TruthExamples.TruthExamplesConf import PrintMC
-#PrintMC.PrintStyle = "Vertex"
-#job += PrintMC()
-
-# the following five lines are added for use of POOL persistency:
-include( 'AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py' )     
-include( 'GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py' )
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]            
-include( 'AthenaServices/AthenaSealSvc_joboptions.py' )                 
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythia_"+CASE+"_"+str(MASS)+"GeV.pool.root"
diff --git a/Generators/PythiaRhad_i/share/jobOptions.pythiaRhad.py b/Generators/PythiaRhad_i/share/jobOptions.pythiaRhad.py
deleted file mode 100644
index 50a18804342b63b921678c1a4790f6b4e6cf9733..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/share/jobOptions.pythiaRhad.py
+++ /dev/null
@@ -1,73 +0,0 @@
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-MASS=1000
-CASE='gluino'
-
-# Number of events to be processed (default is 10)
-MyNevts = 1000
-theApp.EvtMax = MyNevts
-
-import os
-import sys
-
-os.system('get_files -data PDGTABLE_'+CASE+'_'+str(MASS)+'GeV.MeV')
-os.system('mv PDGTABLE_'+CASE+'_'+str(MASS)+'GeV.MeV PDGTABLE.MeV')
-
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512","PYTHIA_INIT 820021 2347532"]
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from PythiaRhad_i.PythiaRhad_iConf import PythiaRhad
-job +=PythiaRhad()
-job.PythiaRhad.PythiaCommand = ["pysubs msel 13","pysubs ckin 3 18.","pypars mstp 43 2"]
-job.PythiaRhad.PythiaCommand += ["pypars mstp 51 19070", "pypars mstp 52 2",
-                             "pypars mstp 53 19070", "pypars mstp 54 2",
-                             "pypars mstp 55 19070", "pypars mstp 56 2",
-                             "pypars mstp 81 1", "pydat1 mstj 11 4"]
-
-# R-hadron commands:
-if (CASE=='gluino'):
-    job.PythiaRhad.RunGluinoHadrons=True
-    job.PythiaRhad.RunStopHadrons=False
-elif (CASE=='stop'):
-    job.PythiaRhad.RunGluinoHadrons=False
-    job.PythiaRhad.RunStopHadrons=True
-
-
-if job.PythiaRhad.RunGluinoHadrons: # Gluino hadron setup
-    job.PythiaRhad.PythiaCommand += ["pymssm imss 1 1", "pymssm imss 3 1", "pymssm imss 5 1",
-                                 "pymssm rmss 3 "+str(MASS)+".0", "pymssm rmss 1 4000.0",
-                                 "pymssm rmss 2 4000.0", "pymssm rmss 4 10000.0",
-                                 "pymssm rmss 7 4000.0", "pymssm rmss 8 4000.0",
-                                 "pymssm rmss 9 4000.0", "pymssm rmss 10 4000.0",
-                                 "pymssm rmss 11 4000.0", "pymssm rmss 12 4000.0",
-                                 "pysubs msel 0", "pysubs msub 244 1", "pypars mstp 111 0",
-                                 "pyinit pylistf 3", "pyinit dumpr 0 100", "pystat 2"
-                             ]
-elif job.PythiaRhad.RunStopHadrons: # Stop hadron setup
-    job.PythiaRhad.PythiaCommand += ["pymssm imss 1 1", "pymssm imss 3 1", "pymssm imss 5 1",
-                                 "pymssm rmss 1 4000", "pymssm rmss 2 4000",
-                                 "pymssm rmss 3 4000", "pymssm rmss 4 4000",
-                                 "pymssm rmss 7 4000.0", "pymssm rmss 8 4000.0",
-                                 "pymssm rmss 9 4000.0", "pymssm rmss 10 4000.0",
-                                 "pymssm rmss 11 4000.0", "pymssm rmss 12 "+str(MASS)+".0",
-                                 "pysubs msel 0", "pysubs msub 261 1",
-                                 "pysubs msub 264 1", "pypars mstp 111 0",
-                                 "pyinit pylistf 3", "pyinit dumpr 0 20"
-                                 ]
-
-
-# the following five lines are added for use of POOL persistency:
-include( 'AthenaPoolCnvSvc/WriteAthenaPool_jobOptions.py' )     
-include( 'GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py' )
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream( "StreamEVGEN" )
-Stream1.ItemList += [ 'EventInfo#*', 'McEventCollection#*' ]            
-include( 'AthenaServices/AthenaSealSvc_joboptions.py' )                 
-AthenaSealSvc.CheckDictionary = TRUE
-Stream1.OutputFile = "pythia_"+CASE+"_"+str(MASS)+"GeV_"+str(MyNevts)+"_events.pool.root"
-
diff --git a/Generators/PythiaRhad_i/src/PythiaRhad.cxx b/Generators/PythiaRhad_i/src/PythiaRhad.cxx
deleted file mode 100644
index 805983b8c9442f5d9891a2696acc5cf9264ba390..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/src/PythiaRhad.cxx
+++ /dev/null
@@ -1,1180 +0,0 @@
-/*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-*/
-
-// File: GeneratorModules/PythiaRhad.cxx
-// Description: Allows the user to generate Pythia-RHad events and 
-// store the result in the Transient Store.
-//
-// AuthorList:
-//   Ian Hinchliffe:  Initial Code June: 2000
-//   Modeled after the CDF code by Stan Thompson
-//   Parsing added August 2000
-//   More switches added Feb 2001
-//   Les Houches external process interface added May 2002
-//   Added access to pyint1 common Sept 2002
-
-/// @todo Remove all std::cout usage
-/// @todo Remove use of newlines in ATH_MSG
-
-// Header for this module:-
-#include "Pythia_i/Pythia.h"
-#include "PythiaRhad_i/PythiaRhad.h"
-#include "TruthUtils/GeneratorName.h"
-#include "GeneratorUtils/StringParse.h"
-
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "HepMC/GenParticle.h"
-#include "HepMC/GenVertex.h"
-#include "CLHEP/Vector/LorentzVector.h"
-
-#include <fstream>
-#include <cstdlib>
-
-// Calls to Fortran routines
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-using std::string;
-
-
-
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyrhad_();
-  void pygldc_();
-  void pyglfr_(int*);
-  void pysthad_();
-  void pystfr_(int*);
-  void pyinit_(const char*,
-               const char*,
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference)
-               int
-               );
-  void pyevnt_();
-  void pyevnw_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  int  pycomp_(int*);
-  // void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-  void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void rinpar_(); // comphep
-  void subnum_(); // comphep file
-  void rheader_(); // comphep initialization
-  void extproc_(int*);
-  void opensusyfile_(const char* ,int * , int);
-
-  void pyrhre_();
-  void pyrhin_(double*);
-  void pysqdc_(int*);
-  void pyglfrre_(int*);
-  void pyglfrin_(int*);
-  void pyggpro_(double*);
-  void pystfrre_(int*);
-  void pysbfrre_(int*);
-  //pygive implementation: calls Pythia SUBROUTINE PYGIVE(CHIN)
-  void pygive_(const char*,int); // character string to pygive && its length
-
-
-}
-
-// File scope declarations:-
-using namespace HepMC;
-
-
-//--------------------------------------------------------------------------
-
-PythiaRhad::PythiaRhad(const std::string& name, ISvcLocator* pSvcLocator) 
-  : Pythia(name, pSvcLocator)
-{
-  pythia_stream	= "PYTHIA_INIT";
-  // ATLAS default tune
-  m_Default_Tune_Name="ATLAS_20090001";
-  // old schema backw. compatibility
-  m_mc0809_Tune_Type="ATLAS";
-  m_mc09_Tune_Index=20090001;
-  m_mc08_Tune_Index=20080001;
-  //set dummy values at start
-  m_Tune_Index=0;
-  m_Tune_Type="";
-  // some defaults
-  m_firstlistevent = -1;
-  m_lastlistevent  = -1;
- 
-  // Update defaults for properties declared in base class.
-  m_useAtlasPythiaTune09 = true;
-  m_useAtlasPythiaTune08 = false;
-  m_useNoAtlasPythiaParam = false;
-  m_AtlasDefaults = false;
-  m_Tune_Name = m_Default_Tune_Name;
-  m_read_Filesusy = " ";
- 
-  declareProperty("RHadronPDGids", m_rhs );
-  declareProperty("RunGluinoHadrons",  m_run_gluino_hadrons = false );
-  declareProperty("RunStopHadrons",  m_run_stop_hadrons = false );
-
-
-  declareProperty("RunReggeModel",  m_regge = false );
-  declareProperty("RunIntermediateModel",  m_intermediate = false );
-  declareProperty("RunSbottomHadrons",  m_run_sbottom_hadrons = false );
-  declareProperty("GluinoBallProbability", m_gluino_ball_prob = 0.1 );
-
-  declareProperty("EnableAfterInitialize",m_enable_after_initialize = true);//new: if false, turn ourselves off after initialization, so execute (callGnerator) is not called by AthAlogithm  - important to do if we are only here to decay things!
-
-
-  // For StoppedGluinos
-  declareProperty("strip_out_rh",m_strip_out_rh=false);//Get rid of all but the RHadron decay products
-  declareProperty("rh_decay",m_rh_decay=false);//Whether to decay the RHadrons. If you don't decay them, the following manipulations are also turned off.
-  declareProperty("boost_rh_to_rest_frame",m_boost_rh_to_rest_frame=false);//Boost to that RHadron's rest frame
-  declareProperty("rotate_rh",m_rotate_rh=false);//Rotate the RHadron decay randomly
-  declareProperty("translate_rh_to_stopping_position",m_translate_rh_to_stopping_position=false);//Move to a stopping point, defined by the parameters below...
-  declareProperty("xshift", m_xshift=0);//mm
-  declareProperty("yshift", m_yshift=2500);//mm
-  declareProperty("zshift", m_zshift=1000);//mm
-  declareProperty("tshift", m_tshift=0);//ns
-  declareProperty("randomtshift", m_randomtshift=0);//ns
-  declareProperty("StoppingInput", m_StoppingInput, "A matrix of stopping locations" );
-
-  m_doubleid = 1;
-}
-
-
-//--------------------------------------------------------------------------
-
-
-PythiaRhad::~PythiaRhad() { }
-
-
-
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaRhad::genuserInitialize() {
-  // Initialise the listing output, parameter and decay data input streams
-  ATH_MSG_INFO(" PYTHIA INITIALISING.  \n");
-
-  //print out m_rhs
-  std::cout<<"ACH123, list of rhadron pdgids:";
-  for (unsigned int i=0; i<m_rhs.size(); ++i) {std::cout<<" "<<m_rhs[i];}
-  std::cout<<std::endl;
-
-  /// @todo Convert to use ServiceHandle method
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc",
-                                  PythiaRhad::p_AtRndmGenSvc,
-                                  CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == PythiaRhad::p_AtRndmGenSvc)
-  {
-    ATH_MSG_ERROR(" Could not initialize Random Number Service" );
-    return RndmStatus;
-  }
-  PythiaRhad::pythia_stream	=	"PYTHIA_INIT";
-
-  m_atlasTune_loop_prot=0;
-
-  // set up the input parameters to pyinit: these can be changed by the user
-  m_frame = "CMS   ";
-  m_beam = "P     ";
-  m_target = "P  ";
-  m_win=7000.;
-  m_initlistlevel=11;
-  m_pystatlistlevel.push_back(1);
-  m_fortout=0;
-
-  m_RndmFileName=" ";
-  m_RndmFileNumber=0;
-  m_RndmSwitch=0;
-  m_RndmFirstEvent=1;
-  m_RndmSkipEvents=0;
-  m_RndmMOVE=0;
-  m_RndmFileLength=0;
-  m_ExternalProcess = 0;
-
-  // end of setup to pyinit
-  //now set defaults
-  m_randomseed=19780503;
-  this->pydatr().mrpy(1) = m_randomseed; // can be overwritten by user
-  // default process is ttbar
-  // these can be overwritten by user.
-  m_msel=6;
-  this->pysubs().msel() = m_msel;
-
-  // Set the ATLAS defaults
-  if (m_AtlasDefaults) {
-    ATH_MSG_WARNING( "********** You have chosen the default Atlas Settings.  **********" ); 
-    ATH_MSG_WARNING( "********** Tis switch is not valid any more.       **********" );
-  }
-
- //m_Tune_Name parsing to find m_Tune_Type and m_Tune_Index for setPythiaTune() and atlasTune() calls
-  std::string::size_type sep_index = m_Tune_Name.find_first_of('_');
-  if (sep_index != std::string::npos)
-    {
-      m_Tune_Type=m_Tune_Name.substr(0,sep_index);
-      // atoi : returns 0 if conversion not possible - no additional protection needed
-      m_Tune_Index=atoi((m_Tune_Name.substr(sep_index+1,m_Tune_Name.length()-1)).c_str());
-    }
-  else
- {
-      // invalid Tune_Name, m_Tune_Type and  m_Tune_Index kept at the dummy vals from constructor,
-      // let setPythiaTune() handle the error
-   ATH_MSG_WARNING("Invalid Tune_Name: "<< m_Tune_Name <<" specified .");    
-    }
-  // set any Pythia parameters different from Pythia defaults
-  // allow only one reset
-  if (m_atlasTune_loop_prot<2)
-    {
-      // atlasTune_loop_prot counts setPythiaTune() calls in setPythiaTune.cxx      
-      StatusCode sc=setPythiaTune();
-      if ( sc.isFailure() ) 
-        {
-          ATH_MSG_FATAL("ERROR returned from setPythiaTune, exit." );
-          return StatusCode::FAILURE;
-        }
-    }
-  else 
-     {
-       ATH_MSG_FATAL ("More than one reset attempt of tune using setPythiaTune.");
-       ATH_MSG_FATAL ("Please correct your jobOptions." );
-      return StatusCode::FAILURE;
-    }
-
-  //PYGIVE command parsing && call
-  for (unsigned int i = 0; i < m_PygiveCommandVector.size(); i++) 
-    {
-      //      std::cout<<"RMA: "<<m_PygiveCommandVector[i]<<std::endl;
-      m_pygive_cstr = (m_PygiveCommandVector[i]).c_str();
-      pygive_(m_pygive_cstr,strlen(m_pygive_cstr));
-    }
-
-
-  //
-  // Parse Commands and Set Values from Properties Service...
-  //
-  // for(CommandVector::iterator it = m_pythiaCommandVector.begin(); it != m_pythiaCommand.end(); it++ ) {
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-    ATH_MSG_INFO(" Command is: " << m_pythiaCommandVector[i]);
-    StringParse mystring(m_pythiaCommandVector[i]);
-    string myblock=mystring.piece(1);
-    string myentry=mystring.piece(2);
-    string mystr=mystring.piece(3);
-    int myint1=mystring.intpiece(3);
-    int myint2=mystring.intpiece(4);
-    int myint3=mystring.intpiece(5);
-    int myint4=mystring.intpiece(6);
-    int myint5=mystring.intpiece(7);
-    double myfl1=mystring.numpiece(4);
-    double myfl2=mystring.numpiece(5);
-    double myfl0=mystring.numpiece(3);
-
-    // Note that Pythia needs doubles hence the convert here
-    ATH_MSG_INFO(myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1);
-    if (myblock=="pyinit") {
-      if(myentry=="user"){
-        m_frame="USER  ";
-        m_external=mystr;
-        m_ExternalProcess = generator_int(mystr);
-        /*	
-            if(mystr=="comphep"){
-            m_ExternalProcess = 1;
-            } else if(mystr=="user"){
-            m_ExternalProcess = 2;
-            } else if(mystr=="acermc"){
-            m_ExternalProcess = 3;
-            } else if(mystr=="alpgen"){
-            m_ExternalProcess = 4;
-            }  else if (mystr == "madgraph") {
-            m_ExternalProcess = 5;
-            } else if(mystr== "madcup") {
-            m_ExternalProcess = 6;
-            } else if(mystr== "toprex") {
-            m_ExternalProcess = 7;
-            } else if(mystr== "lhaext") {
-            m_ExternalProcess = 8;
-            } else if(mystr== "matchig") {
-            m_ExternalProcess = 9;
-            } else if(mystr== "hvgen") {
-            m_ExternalProcess = 10;
-            } else {
-            ATH_MSG_ERROR(
-            "PYTHIA ERROR, entry PYINIT USER has comphep, acermc, alpgen, madgraph, madcup, "
-            << "toprex, lhaext, hvgen and user as options: YOU HAVE SPECIFIED " << myentry);
-            }
-        */
-        extproc_(&m_ExternalProcess);
-      }
-      else if(myentry=="FIXT"){
-        m_frame="FIXT";
-      }
-      else if(myentry=="pbar"){
-        m_beam="P~- ";
-      }
-      else if(myentry=="win"){
-        m_win=myfl0;
-      }
-      else if(myentry=="pylisti"){
-        m_initlistlevel=myint1;
-      }
-      else if(myentry=="pylistf"){
-        m_eventlistlevel=myint1;
-      }
-      else if(myentry=="dumpr"){
-        m_firstlistevent=myint1;
-        m_lastlistevent=myint2;
-      }
-      else if(myentry=="output"){
-        m_envval1=mystr;
-        m_fortout=49;
-        this->pydat1().mstu(11)=m_fortout;
-      }
-      else if(myentry=="rndm_IO"){
-        m_RndmFileName=mystr;
-        m_RndmFileNumber=36;
-        m_RndmSwitch=myint2;
-        m_RndmFirstEvent=myint3;
-        m_RndmSkipEvents=myint4;
-        m_RndmMOVE=myint5;
-        if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-        
-        if (m_RndmSwitch > 0) {
-          if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0) {
-            ATH_MSG_ERROR(" INCONSISTENT SET OF rndm_IO PARAMETERS : "
-                          << "FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF"
-                          << myentry);
-            m_RndmSwitch = 0;
-          }
-        }
-
-        ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-        ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-        ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-        ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-        ATH_MSG_INFO(" DETAILS LOOK IN  ");
-        ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-        ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-        
-        m_RndmSwitch = 0;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN AND RNDM_IO: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pysubs") {
-      if(myentry == "msel"){
-        this->pysubs().msel()=myint1;
-      }
-      else if (myentry == "msub"){
-        this->pysubs().msub(myint1)=myint2;
-      }
-      else if (myentry == "ckin"){
-        this->pysubs().ckin(myint1)=myfl1;
-      }
-      else if (myentry == "kfin"){
-        this->pysubs().kfin(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pypars"){
-      if(myentry == "mstp"){
-        this->pypars().mstp(myint1)=myint2;
-      }
-      else if(myentry == "msti"){
-        this->pypars().msti(myint1)=myint2;
-      }
-      else if(myentry == "parp"){
-        this->pypars().parp(myint1)=myfl1;
-      }
-      else if(myentry == "pari"){
-        this->pypars().pari(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pydat1"){
-      if(myentry == "mstu"){
-        this->pydat1().mstu(myint1)=myint2;
-      }
-      else if(myentry == "mstj"){
-        this->pydat1().mstj(myint1)=myint2;
-      }
-      else if(myentry == "paru"){
-        this->pydat1().paru(myint1)=myfl1;
-      }
-      else if(myentry == "parj"){
-        this->pydat1().parj(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pydat2"){
-      if(myentry == "kchg"){
-        this->pydat2().kchg(myint1,myint2)=myint3;
-      }
-      else if(myentry == "pmas"){
-        this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      }
-      else if(myentry == "parf"){
-        this->pydat2().parf(myint1)=myfl1;
-      }
-      else if(myentry == "vckm"){
-        this->pydat2().vckm(myint1,myint2)=myfl2;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pydat3"){
-      if(myentry == "mdcy"){
-        this->pydat3().mdcy(pycomp_(&myint1),myint2)=myint3;
-      }
-      else if(myentry == "mdme"){
-        this->pydat3().mdme(myint1,myint2)=myint3;
-      }
-      else if(myentry == "brat"){
-        this->pydat3().brat(myint1)=myfl1;
-      }
-      else if(myentry == "kfdp"){
-        this->pydat3().kfdp(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pydatr"){
-      if(myentry == "mrpy"){
-        ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-        ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-        ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-        ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-        ATH_MSG_INFO(" DETAILS LOOK IN  ");
-        ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-        ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-        
-        this->pydatr().mrpy(myint1)=myint2;
-      }
-      else if(myentry == "rrpy"){
-        this->pydatr().rrpy(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDATR  HAS MRPY AND RRPY : YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pymssm"){
-      if (myentry=="imss"){
-        if (myint1 == 21 || myint1 == 22) {
-          ATH_MSG_WARNING("The seting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default");
-        } else {
-          this->pymssm().imss(myint1)=myint2;
-        }
-      }
-      else if (myentry=="rmss"){
-        this->pymssm().rmss(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pyint2"){
-      if (myentry == "iset"){
-        this->pyint2().iset(myint1)=myint2;
-      }
-      else if (myentry == "kfpr"){
-        this->pyint2().kfpr(myint1,myint2)=myint3;
-      }
-      else if (myentry == "coef"){
-        this->pyint2().coef(myint1,myint2)=myfl2;
-      }
-      else if (myentry == "icol"){
-        this->pyint2().icol(myint1,myint2,myint3)=myint4;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    else if (myblock == "pystat"){
-	m_pystatlistlevel.clear();
-	for (unsigned i = 2; i <= mystring.string_size(); ++i)
-      m_pystatlistlevel.push_back(mystring.intpiece(i));
-    }
-    else if (myblock == "pytcsm"){
-      if (myentry == "itcm"){
-        this->pytcsm().itcm(myint1)=myint2;
-      }
-      else if (myentry=="rtcm"){
-        this->pytcsm().rtcm(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-
-    }
-
-    // AcerMC tt~ decay mode switching
-    else if (myblock == "acermc" && myentry=="acset12") {
-      if (m_ExternalProcess == ACERMC) {
-        this->acermc_acset().acset12()=myint1;
-      }
-    }
-
-    else {
-      ATH_MSG_ERROR(" ERROR in PYTHIA PARAMETERS   " << myblock << " is and invalid common block name !");
-    }
-  }
-  // end of parsing
-
-  // Set the logical Unit Number for the immss(1)=11 option and open the file
-  if (this->pymssm().imss(1) == 11) {
-    int syunit = 66;
-    this->pymssm().imss(21) = syunit;
-    this->pymssm().imss(22) = syunit;
-    const std::string& fileName = m_read_Filesusy;
-    opensusyfile_(fileName.c_str(),&syunit,fileName.size());
-  }
-
-  // !!!!! PROTECT AGAINST mstp(81)/mstp(82) Pythia looping
-  if (this->pypars().mstp(81) == 0 && this->pypars().mstp(82) > 2) {
-    this->pypars().mstp(82) = 1;
-    ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA LOOPING !!!!!!!! ");
-    ATH_MSG_INFO(" YOU HAVE SWITCHED OFF MULTIPLE INTERACTIONS, mstp(81) = 0 ");
-    ATH_MSG_INFO(" THE DEFAULT ATLAS MULTIPLE INTERACTIONS SCENARIO, mstp(82) = 4 ");
-    ATH_MSG_INFO(" CHANGED TO mstp(82) = 1, BECAUSE PYTHIA IS LOOPING WHEN ");
-    ATH_MSG_INFO(" mstp(81) = 0 and mstp(82) > 2 ");
-    ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-  }
-
- 
-  // Protect MI and fragmentation settings to ensure they remain in the supported range for R-hadron fragmentation
-  if (this->pypars().mstp(81) > 1)
-    {
-      ATH_MSG_INFO(" !!!!!!!!!! Multiple interactions setting overridden !!!!!!!! ");
-      ATH_MSG_INFO(" MSTP(81) must be either 0 (off) or 1. Setting to 1...");
-      this->pypars().mstp(81) = 1;
-    }
-  if (this->pydat1().mstj(11) != 4)
-    {
-      ATH_MSG_INFO(" !!!!!!!!!! Fragmentation settings overridden !!!!!!!! ");
-      ATH_MSG_INFO(" MSTJ(11) must be 4. Enforcing. Have a nice day...");
-      this->pydat1().mstj(11) = 4;
-    }
-
-
-  // Now call pyinit and set listing
-  // Note the `extra' arguments to pyinit on the end of the argument
-  // list which do *not* explicitly occur in the FORTRAN
-  // implementation of the function -- one for each character
-  // variable, in the same order (reference Randy Herber,
-  // herber@fnal.gov). Note also that the `extern "C"' function
-  // declaration matches the C usage rather than the FORTRAN
-  // definition of the PYINIT function and therefore includes the 3
-  // extra arguments.
-  // activate the block data
-  const char* envval = m_envval1.c_str();
-  initpyblock_(&m_fortout,envval);
-
-  if (m_RndmSwitch > 0) {
-    const char* RndmFileName = m_RndmFileName.c_str();
-    m_RndmFileLength = openrandom_(&m_RndmSwitch, &m_RndmFileNumber, RndmFileName);
-    if (m_RndmSwitch ==2 ) 
-      ATH_MSG_INFO(" THERE ARE " << m_RndmFileLength
-                   << " EVENTS STORED IN THE PYTHIA RANDOM NUMBER FILE \n");
-  }
-  
-  const char* frame = m_frame.c_str();
-  const char* beam = m_beam.c_str();
-  double winval = m_win;
-  const char* target = m_target.c_str();
-  int minlist   = m_initlistlevel;
-  // special initialization for comphep
-  if(m_external=="comphep"){
-    rinpar_();
-    subnum_();
-    rheader_();
-  }
-
-  // end of comphep initialization
-  //    std::cout << " ****** BEFORE PYINIT ********" << std::endl;
-  //    std::cout << setiosflags(ios::fixed);
-  //    std::cout << " MSTU(11) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(11)  << " MSTU(20) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(20)  << " MSTU(118) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(118) << std::endl;
-  //    std::cout << " PARU(108) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(108) << " PARU(117) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(117) << " PARU(118) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(118) << std::endl;
-  //    for (int ii = 210; ii < 353; ++ii)
-  //    {
-  //        std::cout << " BRAT(" << ii << ") "
-  //  		<< std::setw(10) << setprecision(8) << this->pydat3().brat(ii) << std::endl;
-  //    }
-  //    std::cout << " MDCY(310) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,1) << ", "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,2) << ", "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,3);
-  
-  //    std::cout << std::resetiosflags(std::ios::fixed)
-  //  	    << std::endl;
-  
-  // Save the PYTHIA_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = PythiaRhad::p_AtRndmGenSvc->GetEngine(PythiaRhad::pythia_stream);
-  const long* sip = engine->getSeeds();
-  long int si1	= sip[0];
-  long int si2	= sip[1];
-
-  //R-hadron initialization
-  // std::cout<<"Gluino switch: "<<m_run_gluino_hadrons<<std::endl;
-  // std::cout<<"Stop switch: "<<m_run_stop_hadrons<<std::endl;
-
-  if(m_run_gluino_hadrons)
-    pyggpro_(&m_gluino_ball_prob);
-
-
-  pyinit_(frame,beam,target,&winval,
-          strlen(frame),strlen(beam),strlen(target)
-          );
-
-  // ... and set them back to the stream for proper save
-  PythiaRhad::p_AtRndmGenSvc->CreateStream(si1, si2, PythiaRhad::pythia_stream);
-
-  PythiaRhad::pythia_stream	= "PYTHIA";
-
-  //    std::cout << " ****** AFTER PYINIT ********" << std::endl;
-  //    std::cout << setiosflags(ios::fixed);
-  //    std::cout << " MSTU(11) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(11)  << " MSTU(20) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(20)  << " MSTU(118) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat1().mstu(118) << std::endl;
-  //    std::cout << " PARU(108) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(108) << " PARU(117) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(117) << " PARU(118) "
-  //  	    << std::setw(10) << setprecision(8) << this->pydat1().paru(118) << std::endl;
-  //    for (int ii = 210; ii < 353; ++ii)
-  //    {
-  //        std::cout << " BRAT(" << ii << ") "
-  //  		<< std::setw(10) << setprecision(8) << this->pydat3().brat(ii) << std::endl;
-  //    }
-  //    std::cout << " MDCY(310) "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,1) << ", "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,2) << ", "
-  //  	    << std::setw(3) << setprecision(0)  << this->pydat3().mdcy(310,3);
-  
-  //    std::cout << std::resetiosflags(std::ios::fixed)
-  //  	    << std::endl;
-
-  pylist_(&minlist);
-  m_events = 0;
-  // cout << " kfpr ============ " << this->pyint2().kfpr(186,2) <<endl;
-  // cout << " kfpr ============ " << this->pyint2().kfpr(187,2) <<endl;
-
-  // Decay table
-  const char *p_envar1="PYDAT";
-  //  char *p_envval1=0;
-  //  p_envval1=
-  getenv(p_envar1);
-
-  // This is the decay table file
-  //
-  //   int mode=2;
-  //   int lun=37;
-  //   pyupda_(&mode,&lun);
-  //    cldcay_(&lun);
-
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-  // HepMC::HEPEVT_Wrapper::set_sizeof_int(4);
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  // ACH- Get last "double stop" integer from last run for tagging them, for StoppedGluinos simulation
-  if (m_translate_rh_to_stopping_position){
-    std::string line;
-    std::ifstream myfile ("doubleID.txt");
-    if (myfile.is_open()) {
-      //while (! myfile.eof() ){
-      std::getline (myfile,line);
-      std::cout<<"Got from doubleID.txt: "<<line<<std::endl;
-      m_doubleid = atoi(line.c_str());
-      //}
-      myfile.close();
-    }
-    else {
-      std::cout<<"Unable to open file doubleID.txt, will start at 1"<<std::endl;
-      m_doubleid = 1;
-    }
-    std::cout<<"m_doubleid = "<<m_doubleid<<std::endl;
-  }
-
-  if(m_run_stop_hadrons)
-    {
-      int kfst = 1000006;
-      int kcst = pycomp_(&kfst);
-      this->pydat3().mdcy(pycomp_(&kfst),1)=0;
-      // Setting width of stop explixitly to zero
-      std::ostringstream mypygive;
-      mypygive<<"MWID("<<kcst<<")=0";
-      //      std::cout<<mypygive.str()<<std::endl;
-      pygive_(mypygive.str().c_str(),strlen(mypygive.str().c_str()));
-      int kfstbar = -1000006;
-      this->pydat3().mdcy(pycomp_(&kfstbar),1)=0;
-    }
-  if(m_run_sbottom_hadrons)
-    {
-      int kfst = 1000005;
-      int kcst = pycomp_(&kfst);
-      this->pydat3().mdcy(pycomp_(&kfst),1)=0;
-      // Setting width of stop explixitly to zero
-      std::ostringstream mypygive;
-      mypygive<<"MWID("<<kcst<<")=0";
-      //      std::cout<<mypygive.str()<<std::endl;
-      pygive_(mypygive.str().c_str(),strlen(mypygive.str().c_str()));
-      int kfstbar = -1000005;
-      this->pydat3().mdcy(pycomp_(&kfstbar),1)=0;
-    }
-
-  //Done initializing
-
-  //Set myself off to prevent generation, if we are in the sim step!
-  if (!m_enable_after_initialize){
-    ATH_MSG_INFO("Setting Enable to False, at the end of initialization...");
-    ATH_CHECK(setProperty("Enable", "False" ));
-  }
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaRhad::callGenerator() {
-  ATH_MSG_INFO(" PYTHIA generating.  \n");
-
-  int ierr=1;
-
-  while (ierr!=0) {
-
-    // Write/Read the random numbers to/from file if requested
-    if (m_RndmSwitch > 0)	RandomNumberIO();
-    
-    // Save the random number seeds in the event
-    CLHEP::HepRandomEngine*	engine = PythiaRhad::p_AtRndmGenSvc->GetEngine(PythiaRhad::pythia_stream);
-    const long* s = engine->getSeeds();
-    m_seeds.clear();
-    m_seeds.push_back(s[0]);
-    m_seeds.push_back(s[1]);
-    
-    //...Put gluino/stop stable.
-    //       int kfgl=0;
-      //...Put gluino/stop stable.
-      //       int kfgl=0;
-      if(m_run_gluino_hadrons)
-	{
-	  int kfgl = 1000021;
-	  this->pydat3().mdcy(pycomp_(&kfgl),1)=0;// MDCY(PYCOMP(KFGL),1)=0
-	}
-      if(m_run_stop_hadrons)
-	{
-	  int kfst = 1000006;
-	  this->pydat3().mdcy(pycomp_(&kfst),1)=0;
-	  int kfstbar = -1000006;
-	  this->pydat3().mdcy(pycomp_(&kfstbar),1)=0;
-	}
-      if(m_run_sbottom_hadrons)
-	{
-	  int kfst = 1000005;
-	  this->pydat3().mdcy(pycomp_(&kfst),1)=0;
-	  int kfstbar = -1000005;
-	  this->pydat3().mdcy(pycomp_(&kfstbar),1)=0;
-	}
-      this->pydat1().mstj(14)=-1;// MSTJ(14)=-1
-
-      // Generate event
-      pyevnt_();
-
-      this->pydat1().mstj(14)=1;// MSTJ(14)=1
-      //	std::cout<<"IERR: "<<ierr<<", SEEDS: "<<s[0]<<", "<<s[1]<< std::endl;
-
-      if(m_run_gluino_hadrons) {
-
-	// Running selected hadronization
-	if(m_regge)
-	  pyglfrre_(&ierr);
-	else if(m_intermediate)
-	  pyglfrin_(&ierr);
-	else
-	  pyglfr_(&ierr);
-
-	if (m_rh_decay)
-	  {
-	    std::cout << "\n ------- Doing RHadron Gluino decay ---------- " << std::endl;
-	    int kfgl = 1000021;//gluino
-	    this->pydat3().mdcy(pycomp_(&kfgl),1)=1;// MDCY(PYCOMP(KFGL),1)=1 //unstable gluino
-	    pygldc_();//gluino DECAY!
-	  }
-      }
-      if(m_run_stop_hadrons)
-	{
-	  // Running selected hadronization
-	  if(m_regge)
-	    pystfrre_(&ierr);
-	  else
-	    pystfr_(&ierr);
-
-	  if (m_rh_decay)
-	    {
-	      std::cout << "\n ------- Doing RHadron Stop decay ---------- " << std::endl;
-	      int kfgl = 1000006;//stop
-	      this->pydat3().mdcy(pycomp_(&kfgl),1)=1;// MDCY(PYCOMP(KFGL),1)=1 //unstable stop
-	      int sq=1000006;
-	      pysqdc_(&sq);//stop DECAY!
-	    }
-	}
-      if(m_run_sbottom_hadrons)
-	{
-	  pysbfrre_(&ierr);
-	  
-	  if (m_rh_decay)
-	    {
-	      std::cout << "\n ------- Doing RHadron Sbottom decay ---------- " << std::endl;
-	      int kfgl = 1000005;//sbottom
-	      this->pydat3().mdcy(pycomp_(&kfgl),1)=1;// MDCY(PYCOMP(KFGL),1)=1 //unstable sbottom
-	      int sq=1000005;
-	      pysqdc_(&sq);//sbottom DECAY!
-	    }
-	}
-      
-  }
-
-  // update event counter
-  ++m_events;
-  int mevlist=m_eventlistlevel;
-  // Is the event to be listed
-  if ( m_events >= m_firstlistevent &&
-       m_events <= m_lastlistevent) {
-    ATH_MSG_INFO("PYEVNT event no. " << m_events << " will be listed");
-    if (m_frame == "USER  ") {
-      int uspr = 7;
-      pylist_(&uspr); // Special listing when external generator was selected
-    }
-    pylist_(&mevlist); // List this event if required
-  }
-  // Tell lunhep to convert from PYJETS to HEPEVT
-  int mconv=1;
-  // Do the conversion
-  // lunhep_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  pyhepc_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  if ( HepMC::HEPEVT_Wrapper::number_entries() <= 0 ) {
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    std::cout << "!!! " << generator_name(m_ExternalProcess) << " TERMINATES NORMALY: NO MORE EVENTS IN FILE !!!" << std::endl;
-    std::cout << "!!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE !!!" << std::endl;
-    std::cout << "!!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!!" << std::endl;
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    return StatusCode::FAILURE;
-  }
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-  // HepMC::HEPEVT_Wrapper::print_hepevt();
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaRhad::genFinalize() {
-  ATH_MSG_INFO(" PYTHIA Ending.  \n");
-  for (std::vector<int>::iterator i = m_pystatlistlevel.begin(); i != m_pystatlistlevel.end(); ++i) {
-    ATH_MSG_INFO("Call PYSTAT at endRun with level " << *i);
-    pystat_(&(*i));
-  }
-  std::cout << "MetaData: cross-section (nb)= " << 1000000. * this->pyint5().xsec(0,3) << std::endl;
-
-  //ACH- Save doubleID for tagging future events in future runs, for StoppedGluinos simulation
-  if (m_translate_rh_to_stopping_position){
-    std::ofstream myfile ("doubleID.txt",std::ios::trunc);
-    if (myfile.is_open()) {
-      myfile << m_doubleid <<std::endl;
-      std::cout<<"Wrote into doubleID.txt: "<<m_doubleid<<std::endl;
-      myfile.close();
-    }
-    else std::cout << "Unable to open file doubleID.txt for writing!"<<std::endl;
-  }
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode PythiaRhad::fillEvt(GenEvent* evt) {
-  ATH_MSG_INFO(" PYTHIA Atlas_HEPEVT Filling.  \n");
-  store_Atlas_HEPEVT();
-
-  ATH_MSG_DEBUG(" PYTHIA Filling.  \n");
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-  // HepMC::IO_Ascii output("dump.dat",ios::out);
-
-  // Fill event into HepMC and transient store
-  // std::cout << "====================================================================" << std::endl;
-  // std::cout << "                 === Event dump IN PYTHIA: ===                      " << std::endl;
-  // std::cout << "====================================================================" << std::endl;
-  // HepMC::HEPEVT_Wrapper::print_hepevt();
-
-  hepio.fill_next_event(evt);
-  int pr_id = PYTHIA + m_ExternalProcess + this->pyint1().mint(1);
-  if (m_ExternalProcess > 0) pr_id = PYTHIA + m_ExternalProcess;
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-  //evt -> print();
-  //cout << " ----------------- END " << endl;
-
-  // Set beam particle status = 4
-  if (evt->valid_beam_particles()) {
-    evt->beam_particles().first->set_status(4);
-    evt->beam_particles().second->set_status(4);
-  }
-
-
-  // output << evt;
-
-  // Convert cm->mm and GeV->MeV
-  //cmTomm(evt);
-  GeVToMeV(evt);
-
-  //Manipulate HepMC info for StoppedGluino simulation.
-  //Pull out just the parts of the event we want, and possibly boost, rotate, and translate the RHadron decay.
-  if (m_strip_out_rh) strip_out_rh(evt);
-  
-  return StatusCode::SUCCESS;
-}
-
-
-
-
-//For StoppedGluino simulation
-void PythiaRhad::strip_out_rh(GenEvent* evt){
-
-  CLHEP::HepRandomEngine* engine = PythiaRhad::p_AtRndmGenSvc->GetEngine(PythiaRhad::pythia_stream);
-  //evt->print();
-
-  if (m_rh_decay){
-    //Remove all but (a single) RHadron decay
-    ATH_MSG_INFO("\n ------- Stripping out all but RHadron decay ---------- ");
-    std::vector<HepMC::GenVertex*> rhvertices, rhparentvertices;
-    for (HepMC::GenEvent::vertex_iterator v = evt->vertices_begin();  v != evt->vertices_end(); ++v ) {
-      HepMC::GenVertex *vv = *v;
-      for (HepMC::GenVertex::particles_in_const_iterator p = vv->particles_in_const_begin(); p!=vv->particles_in_const_end(); ++p){
-        if (std::find(m_rhs.begin(),m_rhs.end(),abs((*p)->pdg_id()))!=m_rhs.end()){
-          rhvertices.push_back(vv);
-          rhparentvertices.push_back((*p)->production_vertex());
-          ATH_MSG_INFO("Found RHadron decay!");
-        }
-      }
-    }
-    assert (rhvertices.size()==2);
-    int rh=rand()%2;
-    std::cout<<"Choosing RHadron "<<rh<<" out of "<<rhvertices.size()<<" total"<<std::endl;
-    std::list<HepMC::GenVertex*> rhdaughtervertices;
-    for (HepMC::GenVertex::vertex_iterator rhv = rhvertices[rh]->vertices_begin(HepMC::descendants); rhv!=rhvertices[rh]->vertices_end(HepMC::descendants); ++rhv){
-      rhdaughtervertices.push_back(*rhv);
-    }
-    std::cout<<"Found "<<rhdaughtervertices.size()<<" descendant vertices of the RHadron"<<std::endl;
-    HepMC::GenEvent::vertex_iterator v = evt->vertices_begin();
-    while (  v != evt->vertices_end() ) {
-      if (std::find(rhdaughtervertices.begin(), rhdaughtervertices.end(), *v)!=rhdaughtervertices.end()) {
-        ++v;  continue;//a rhadron daughter!
-      }
-      if (*v==rhvertices[rh]) {
-        ++v;  continue;//a rhadron!
-      }
-      if (*v==rhparentvertices[rh]) {
-        ++v;  continue;//a rhadron parent!
-      }
-      HepMC::GenVertex *vv = *v;
-      evt->remove_vertex(vv);
-      v = evt->vertices_begin();
-    }
-
-    if (m_boost_rh_to_rest_frame){
-      std::cout<<"\n--- Boosting to RHadron rest frame---"<<std::endl;
-      CLHEP::HepLorentzVector mom;//will store the momentum of the RHadron
-      for ( HepMC::GenVertex::particles_in_const_iterator p = rhvertices[rh]->particles_in_const_begin(); p != rhvertices[rh]->particles_in_const_end(); ++p ) {
-        HepMC::GenParticle *pp=*p;
-        //std::cout<<"particle coming into rhadron: "<<std::endl; pp->print();
-        if (std::find(m_rhs.begin(),m_rhs.end(),abs(pp->pdg_id()))!=m_rhs.end()){
-          FourVector mom4 = pp->momentum();
-          mom = CLHEP::HepLorentzVector(mom4.px(),mom4.py(),mom4.pz(),mom4.e());
-          std::cout<<"Found RHadron particle momentum: "<<mom<<"\n"<<std::endl;
-        }
-      }
-      //now loop through again and boost back!
-      CLHEP::Hep3Vector tot_before, tot_after; int nfinal=0;
-      for ( HepMC::GenEvent::particle_iterator p = evt->particles_begin(); p != evt->particles_end(); ++p ) {
-        HepMC::GenParticle *pp=*p;
-        //pp->print();
-        FourVector mom4 = pp->momentum();
-	CLHEP::HepLorentzVector bm(mom4.px(),mom4.py(),mom4.pz(),mom4.e());
-        if (pp->status()==1){
-          tot_before+=bm;
-        }
-	CLHEP::Hep3Vector vec(-mom.boostVector());
-        bm = bm.boost(vec);
-        pp->set_momentum(bm);
-        //pp->print();
-        if (pp->status()==1){
-          FourVector mom4a = pp->momentum();
-	  CLHEP::HepLorentzVector bma(mom4a.px(),mom4a.py(),mom4a.pz(),mom4a.e());
-          tot_after+=bma;
-          ++nfinal;
-        }
-      }
-      ATH_MSG_INFO("Momentum before boost:"<< tot_before);
-      ATH_MSG_INFO("Momentum after boost: "<< tot_after);
-      ATH_MSG_INFO(nfinal << " final-state particles");
-      assert(tot_after.mag()<1e-6);
-    }//m_boost_rh_to_rest_frame
-
-  }//m_rh_decay
-  else {//!m_rh_decay
-    //Remove all but the RHadron (stable) particles
-    ATH_MSG_INFO("\n ------- Stripping out all but RHadron (stable) particles ---------- ");
-    std::vector<HepMC::GenVertex*> rhvertices;
-    for (HepMC::GenEvent::vertex_iterator v = evt->vertices_begin();  v != evt->vertices_end(); ++v ) {
-      HepMC::GenVertex *vv = *v;
-      for (HepMC::GenVertex::particles_out_const_iterator p = vv->particles_out_const_begin(); p!=vv->particles_out_const_end(); ++p){
-        HepMC::GenParticle *pp = *p;
-        if (std::find(m_rhs.begin(),m_rhs.end(),abs(pp->pdg_id()))!=m_rhs.end()){
-          if (pp->status()==1){
-            rhvertices.push_back(vv);
-            ATH_MSG_INFO("Found RHadron vertex!");
-          }
-          else ATH_MSG_INFO("Found RHadon but status is "<<pp->status()<<", not 1 (stable)!");
-        }
-      }
-    }
-    assert (rhvertices.size()==2);
-    HepMC::GenEvent::vertex_iterator v = evt->vertices_begin();
-    while (  v != evt->vertices_end() ) {
-      if (std::find(rhvertices.begin(), rhvertices.end(), *v)!=rhvertices.end()) {
-        HepMC::GenVertex *vv = *v;//a rhadron!
-        //remove the other particles in the hadronization of this vertex...
-        for (HepMC::GenVertex::particles_out_const_iterator p = vv->particles_out_const_begin(); p!=vv->particles_out_const_end(); ++p){
-          HepMC::GenParticle *pp = *p;
-          if (std::find(m_rhs.begin(),m_rhs.end(),abs(pp->pdg_id()))!=m_rhs.end()){
-            //std::cout<<"Keeping the RHadron particle, and status = "<<pp->status()<<std::endl;
-          }
-          else {
-            ATH_MSG_INFO("Killing "<<pp->pdg_id()<<" with status "<<pp->status());
-            delete vv->remove_particle(pp);
-            p = vv->particles_out_const_begin();//don't forget to go back to the start of the NEW list...
-          }
-        }
-        ++v;  continue;
-      }
-      HepMC::GenVertex *vv = *v;
-      evt->remove_vertex(vv);
-      v = evt->vertices_begin();
-    }
-  }
-
-  if (m_rotate_rh){
-    ATH_MSG_INFO("\n--- Rotating ---");
-    double rx = CLHEP::RandFlat::shoot(engine,0.0,2.*M_PI);
-    double ry = CLHEP::RandFlat::shoot(engine,0.0,2.*M_PI);
-    double rz = CLHEP::RandFlat::shoot(engine,0.0,2.*M_PI);
-    ATH_MSG_INFO("rx ry rz = "<<rx<<" "<<ry<<" "<<rz);
-    CLHEP::Hep3Vector tot_before, tot_after; int nfinal=0;
-    for ( HepMC::GenEvent::particle_iterator p = evt->particles_begin(); p != evt->particles_end(); ++p ) {
-      HepMC::GenParticle *pp=*p;
-      //pp->print();
-      FourVector mom4 = pp->momentum();
-      CLHEP::HepLorentzVector bm(mom4.px(),mom4.py(),mom4.pz(),mom4.e());
-      if (pp->status()==1){
-        tot_before+=bm;
-      }
-      bm.rotateX(rx);
-      bm.rotateY(ry);
-      bm.rotateZ(rz);
-      pp->set_momentum(bm);
-      //pp->print();
-      if (pp->status()==1){
-        FourVector mom4a = pp->momentum();
-	CLHEP::HepLorentzVector bma(mom4a.px(),mom4a.py(),mom4a.pz(),mom4a.e());
-        tot_after+=bma;
-        ++nfinal;
-      }
-    }
-    ATH_MSG_INFO("Momentum before rotate:"<< tot_before);
-    ATH_MSG_INFO("Momentum after rotate: "<< tot_after);
-    ATH_MSG_INFO(nfinal<<" final-state particles");
-    assert((tot_before-tot_after).mag()<1e-6);
-  }
-
-  if (m_translate_rh_to_stopping_position){
-    ATH_MSG_INFO("\n--- Moving ---");
-    int rhid = 0;
-    if (m_StoppingInput.size()>1) {
-      unsigned int e=m_events;
-      ATH_MSG_INFO("Using stopping input from vector position "<<e);
-      if (e>=m_StoppingInput.size()) {
-        ATH_MSG_WARNING("FAILURE! Out of stopping inputs! Only "<<m_StoppingInput.size()<<" were input!");
-      }
-      m_xshift=m_StoppingInput[e][0];
-      m_yshift=m_StoppingInput[e][1];
-      m_zshift=m_StoppingInput[e][2];
-      //m_tshift=m_StoppingInput[e][3]; //we want the time of the DECAY, not the stopping time...
-      if (m_randomtshift!=0){
-        //adjust time according to flat distribution within +-randomtshift ns
-        m_tshift = CLHEP::RandFlat::shoot(engine,-m_randomtshift,m_randomtshift);
-      }
-      if (fabs(m_StoppingInput[e][4]-2)<.1){
-        if (fabs(m_StoppingInput[e][5]-1)<.1) rhid=1;
-        if (fabs(m_StoppingInput[e][5]-2)<.1) rhid=2;
-        ATH_MSG_WARNING("Two stopped in an event!"<<rhid);
-        if (rhid==1) {
-          m_doubleid++;
-          ATH_MSG_DEBUG("m_doubleid is now = "<<m_doubleid);
-        }
-      }
-    }
-    ATH_MSG_INFO("shift x y z t = "<<m_xshift<<"mm "<<m_yshift<<"mm "<<m_zshift<<"mm "<<m_tshift<<"ns");
-    for (HepMC::GenEvent::vertex_iterator v = evt->vertices_begin();  v != evt->vertices_end(); ++v ) {
-      HepMC::GenVertex *vv = *v;
-
-      //The id will be used to keep track of a unique ID which will be the same for each pair of "double stop" decays
-      if (rhid>0) vv->set_id(m_doubleid);
-      else vv->set_id(-1);
-
-      FourVector pos = vv->position();
-      CLHEP::HepLorentzVector hpos(pos.x(),pos.y(),pos.z(),pos.t());
-      //std::cout<<"position/time before: "<<hpos<<std::endl;
-      //tshift gets multiplied by 300 because HepMC uses units of mm/c = 3.33e-12s or 0.00333ns
-      vv->set_position(FourVector(hpos.x()+m_xshift,hpos.y()+m_yshift,hpos.z()+m_zshift,hpos.t()+m_tshift*300.));
-      FourVector posa = vv->position();
-      CLHEP::HepLorentzVector hposa(posa.x(),posa.y(),posa.z(),posa.t());
-      //std::cout<<"position/time after: "<<hposa<<std::endl;
-    }
-  }
-
-  ATH_MSG_INFO("\n--- Done with RHadron decay manipulations ---\n");
-}
diff --git a/Generators/PythiaRhad_i/src/PythiaRhadModified/pyprep.F b/Generators/PythiaRhad_i/src/PythiaRhadModified/pyprep.F
deleted file mode 100644
index 653756b91663ec68d6c26e777471357a0ec32a33..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/src/PythiaRhadModified/pyprep.F
+++ /dev/null
@@ -1,1495 +0,0 @@
-C from http://pythia6.hepforge.org/svn/tags/v_6_4_27/pyprep.f
- 
-C*********************************************************************
- 
-C...PYPREP
-C...Rearranges partons along strings.
-C...Special considerations for systems with junctions, with
-C...possibility of junction-antijunction annihilation.
-C...Allows small systems to collapse into one or two particles.
-C...Checks flavours and colour singlet invariant masses.
- 
-      SUBROUTINE PYPREP(IP)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYINT1/MINT(400),VINT(400)
-C...The common block of colour tags.
-      COMMON/PYCTAG/NCT,MCT(4000,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYINT1/,/PYCTAG/,
-     &/PYPARS/
-      DATA NERRPR/0/
-      SAVE NERRPR
-C...Local arrays.
-      DIMENSION DPS(5),DPC(5),UE(3),PG(5),E1(3),E2(3),E3(3),E4(3),
-     &ECL(3),IJUNC(10,0:4),IPIECE(30,0:4),KFEND(4),KFQ(4),
-     &IJUR(4),PJU(4,6),IRNG(4,2),TJJ(2,5),T(5),PUL(3,5),
-     &IJCP(0:6),TJUOLD(5)
-      CHARACTER CHTMP*6
- 
-C...Function to give four-product.
-      FOUR(I,J)=P(I,4)*P(J,4)-P(I,1)*P(J,1)-P(I,2)*P(J,2)-P(I,3)*P(J,3)
- 
-C...Rearrange parton shower product listing along strings: begin loop.
-      MSTU(24)=0
-      NOLD=N
-      I1=N
-      NJUNC=0
-      NPIECE=0
-      NJJSTR=0
-      MSTU32=MSTU(32)+1
-      DO 100 I=MAX(1,IP),N
-C...First store junction positions.
-        IF(K(I,1).EQ.42) THEN
-          NJUNC=NJUNC+1
-          IJUNC(NJUNC,0)=I
-          IJUNC(NJUNC,4)=0
-        ENDIF
-  100 CONTINUE
- 
-      DO 250 MQGST=1,3
-        DO 240 I=MAX(1,IP),N
-C...Special treatment for junctions
-          IF (K(I,1).LE.0) GOTO 240
-          IF(K(I,1).EQ.42) THEN
-C...MQGST=2: Look for junction-junction strings (not detected in the
-C...main search below).
-            IF (MQGST.EQ.2.AND.NPIECE.NE.3*NJUNC) THEN
-              IF (NJJSTR.EQ.0) THEN
-                NJJSTR = (3*NJUNC-NPIECE)/2
-              ENDIF
-C...Check how many already identified strings end on this junction
-              ILC=0
-              DO 110 J=1,NPIECE
-                IF (IPIECE(J,4).EQ.I) ILC=ILC+1
-  110         CONTINUE
-C...If less than 3, remaining must be to another junction
-              IF (ILC.LT.3) THEN
-                IF (ILC.NE.2) THEN
-C...Multiple j-j connections not handled yet.
-                  CALL PYERRM(2,
-     &            '(PYPREP:) Too many junction-junction strings.')
-                  MINT(51)=1
-                  RETURN
-                ENDIF
-C...The colour information in the junction is unreadable for the
-C...colour space search further down in this routine, so we must
-C...start on the colour mother of this junction and then "artificially"
-C...prevent the colour mother from connecting here again.
-                ITJUNC=MOD(K(I,4)/MSTU(5),MSTU(5))
-                KCS=4
-                IF (MOD(ITJUNC,2).EQ.0) KCS=5
-C...Switch colour if the junction-junction leg is presumably a
-C...junction mother leg rather than a junction daughter leg.
-                IF (ITJUNC.GE.3) KCS=9-KCS
-                IF (MINT(33).EQ.0) THEN
-C...Find the unconnected leg and reorder junction daughter pointers so
-C...MOD(K(I,4),MSTU(5)) always points to the junction-junction string
-C...piece.
-                  IA=MOD(K(I,4),MSTU(5))
-                  IF (K(IA,KCS)/MSTU(5)**2.GE.2) THEN
-                    ITMP=MOD(K(I,5),MSTU(5))
-                    IF (K(ITMP,KCS)/MSTU(5)**2.GE.2) THEN
-                      ITMP=MOD(K(I,5)/MSTU(5),MSTU(5))
-                      K(I,5)=K(I,5)+(IA-ITMP)*MSTU(5)
-                    ELSE
-                      K(I,5)=K(I,5)+(IA-ITMP)
-                    ENDIF
-                    K(I,4)=K(I,4)+(ITMP-IA)
-                    IA=ITMP
-                  ENDIF
-                  IF (ITJUNC.LE.2) THEN
-C...Beam baryon junction
-                    K(IA,KCS)   = K(IA,KCS) + 2*MSTU(5)**2
-                    K(I,KCS)    = K(I,KCS) + 1*MSTU(5)**2
-C...Else 1 -> 2 decay junction
-                  ELSE
-                    K(IA,KCS)   = K(IA,KCS) + MSTU(5)**2
-                    K(I,KCS)    = K(I,KCS) + 2*MSTU(5)**2
-                  ENDIF
-                  I1BEG = I1
-                  NSTP = 0
-                  GOTO 170
-C...Alternatively use colour tag information.
-                ELSE
-C...Find a final state parton with appropriate dangling colour tag.
-                  JCT=0
-                  IA=0
-                  IJUMO=K(I,3)
-                  DO 140 J1=MAX(1,IP),N
-                    IF (K(J1,1).NE.3) GOTO 140
-C...Check for matching final-state colour tag
-                    IMATCH=0
-                    DO 120 J2=MAX(1,IP),N
-                      IF (K(J2,1).NE.3) GOTO 120
-                      IF (MCT(J1,KCS-3).EQ.MCT(J2,6-KCS)) IMATCH=1
-  120               CONTINUE
-                    IF (IMATCH.EQ.1) GOTO 140
-C...Check whether this colour tag belongs to the present junction
-C...by seeing whether any parton with this colour tag has the same
-C...mother as the junction.
-                    JCT=MCT(J1,KCS-3)
-                    IMATCH=0
-                    DO 130 J2=MINT(84)+1,N
-                      IMO2=K(J2,3)
-C...First scattering partons have IMO1 = 3 and 4.
-                      IF (IMO2.EQ.MINT(83)+3.OR.IMO2.EQ.MINT(83)+4)
-     &                     IMO2=IMO2-2
-                      IF (MCT(J2,KCS-3).EQ.JCT.AND.IMO2.EQ.IJUMO)
-     &                     IMATCH=1
-  130               CONTINUE
-                    IF (IMATCH.EQ.0) GOTO 140
-                    IA=J1
-  140             CONTINUE
-C...Check for junction-junction strings without intermediate final state
-C...glue (not detected above).
-                  IF (IA.EQ.0) THEN
-                    DO 160 MJU=1,NJUNC
-                      IJU2=IJUNC(MJU,0)
-                      IF (IJU2.EQ.I) GOTO 160
-                      ITJU2=MOD(K(IJU2,4)/MSTU(5),MSTU(5))
-C...Only opposite types of junctions can connect to each other.
-                      IF (MOD(ITJU2,2).EQ.MOD(ITJUNC,2)) GOTO 160
-                      IS=0
-                      DO 150 J=1,NPIECE
-                        IF (IPIECE(J,4).EQ.IJU2) IS=IS+1
-  150                 CONTINUE
-                      IF (IS.EQ.3) GOTO 160
-                      IB=I
-                      IA=IJU2
-  160               CONTINUE
-                  ENDIF
-C...Switch to other side of adjacent parton and step from there.
-                  KCS=9-KCS
-                  I1BEG = I1
-                  NSTP = 0
-                  GOTO 170
-                ENDIF
-              ELSE IF (ILC.NE.3) THEN
-              ENDIF
-            ENDIF
-          ENDIF
- 
-C...Look for coloured string endpoint, or (later) leftover gluon.
-          IF(K(I,1).NE.3) GOTO 240
-          KC=PYCOMP(K(I,2))
-          IF(KC.EQ.0) GOTO 240
-          KQ=KCHG(KC,2)
-          IF(KQ.EQ.0.OR.(MQGST.LE.2.AND.KQ.EQ.2)) GOTO 240
- 
-C...Pick up loose string end.
-          KCS=4
-          IF(KQ*ISIGN(1,K(I,2)).LT.0) KCS=5
-          IA=I
-          IB=I
-          I1BEG=I1
-          NSTP=0
-  170     NSTP=NSTP+1
-          IF(NSTP.GT.4*N) THEN
-            CALL PYERRM(14,'(PYPREP:) caught in infinite loop')
-            MINT(51)=1
-            RETURN
-          ENDIF
- 
-C...Copy undecayed parton. Finished if reached string endpoint.
-          IF(K(IA,1).EQ.3) THEN
-            IF(I1.GE.MSTU(4)-MSTU32-5) THEN
-              CALL PYERRM(11,'(PYPREP:) no more memory left in PYJETS')
-              MINT(51)=1
-              MSTU(24)=1
-              RETURN
-            ENDIF
-            I1=I1+1
-            K(I1,1)=2
-            IF(NSTP.GE.2.AND.KCHG(PYCOMP(K(IA,2)),2).NE.2) K(I1,1)=1
-            K(I1,2)=K(IA,2)
-            K(I1,3)=IA
-            K(I1,4)=0
-            K(I1,5)=0
-            DO 180 J=1,5
-              P(I1,J)=P(IA,J)
-              V(I1,J)=V(IA,J)
-  180       CONTINUE
-            K(IA,1)=K(IA,1)+10
-            IF(K(I1,1).EQ.1) GOTO 240
-          ENDIF
- 
-C...Also finished (for now) if reached junction; then copy to end.
-          IF(K(IA,1).EQ.42) THEN
-            NCOPY=I1-I1BEG
-            IF(I1.GE.MSTU(4)-MSTU32-NCOPY-5) THEN
-              CALL PYERRM(11,'(PYPREP:) no more memory left in PYJETS')
-              MINT(51)=1
-              MSTU(24)=1
-              RETURN
-            ENDIF
-            IF (MQGST.LE.2.AND.NCOPY.NE.0) THEN
-              DO 200 ICOPY=1,NCOPY
-                DO 190 J=1,5
-                  K(MSTU(4)-MSTU32-ICOPY,J)=K(I1BEG+ICOPY,J)
-                  P(MSTU(4)-MSTU32-ICOPY,J)=P(I1BEG+ICOPY,J)
-                  V(MSTU(4)-MSTU32-ICOPY,J)=V(I1BEG+ICOPY,J)
-  190           CONTINUE
-  200         CONTINUE
-            ENDIF
-C...For junction-junction strings, find end leg and reorder junction
-C...daughter pointers so MOD(K(I,4),MSTU(5)) always points to the
-C...junction-junction string piece.
-            IF (K(I,1).EQ.42.AND.MINT(33).EQ.0) THEN
-              ITMP=MOD(K(IA,4),MSTU(5))
-              IF (ITMP.NE.IB) THEN
-                IF (MOD(K(IA,5),MSTU(5)).EQ.IB) THEN
-                  K(IA,5)=K(IA,5)+(ITMP-IB)
-                ELSE
-                  K(IA,5)=K(IA,5)+(ITMP-IB)*MSTU(5)
-                ENDIF
-                K(IA,4)=K(IA,4)+(IB-ITMP)
-              ENDIF
-            ENDIF
-            NPIECE=NPIECE+1
-C...IPIECE:
-C...0: endpoint in original ER
-C...1:
-C...2:
-C...3: Parton immediately next to junction
-C...4: Junction
-            IPIECE(NPIECE,0)=I
-            IPIECE(NPIECE,1)=MSTU32+1
-            IPIECE(NPIECE,2)=MSTU32+NCOPY
-            IPIECE(NPIECE,3)=IB
-            IPIECE(NPIECE,4)=IA
-            MSTU32=MSTU32+NCOPY
-            I1=I1BEG
-            GOTO 240
-          ENDIF
- 
-C...GOTO next parton in colour space.
-          IB=IA
-          IF (MINT(33).EQ.0) THEN
-            IF(MOD(K(IB,KCS)/MSTU(5)**2,2).EQ.0.AND.MOD(K(IB,KCS),MSTU(5
-     &           )).NE.0) THEN
-              IA=MOD(K(IB,KCS),MSTU(5))
-              K(IB,KCS)=K(IB,KCS)+MSTU(5)**2
-              MREV=0
-            ELSE
-              IF(K(IB,KCS).GE.2*MSTU(5)**2.OR.MOD(K(IB,KCS)/MSTU(5),
-     &             MSTU(5)).EQ.0) KCS=9-KCS
-              IA=MOD(K(IB,KCS)/MSTU(5),MSTU(5))
-              K(IB,KCS)=K(IB,KCS)+2*MSTU(5)**2
-              MREV=1
-            ENDIF
-            IF(IA.LE.0.OR.IA.GT.N) THEN
-              CALL PYERRM(12,'(PYPREP:) colour rearrangement failed')
-              IF(NERRPR.LT.5) THEN
-                NERRPR=NERRPR+1
-                WRITE(MSTU(11),*) 'started at:', I
-                WRITE(MSTU(11),*) 'ended going from',IB,' to',IA
-                WRITE(MSTU(11),*) 'MQGST =',MQGST
-                CALL PYLIST(4)
-              ENDIF
-              MINT(51)=1
-              RETURN
-            ENDIF
-            IF(MOD(K(IA,4)/MSTU(5),MSTU(5)).EQ.IB.OR.MOD(K(IA,5)/MSTU(5)
-     &           ,MSTU(5)).EQ.IB) THEN
-              IF(MREV.EQ.1) KCS=9-KCS
-              IF(MOD(K(IA,KCS)/MSTU(5),MSTU(5)).NE.IB) KCS=9-KCS
-              K(IA,KCS)=K(IA,KCS)+2*MSTU(5)**2
-            ELSE
-              IF(MREV.EQ.0) KCS=9-KCS
-              IF(MOD(K(IA,KCS),MSTU(5)).NE.IB) KCS=9-KCS
-              K(IA,KCS)=K(IA,KCS)+MSTU(5)**2
-            ENDIF
-            IF(IA.NE.I) GOTO 170
-C...Use colour tag information
-          ELSE
-C...First create colour tags starting on IB if none already present.
-            IF (MCT(IB,KCS-3).EQ.0) THEN
-              CALL PYCTTR(IB,KCS,IB)
-              IF(MINT(51).NE.0) RETURN
-            ENDIF
-            JCT=MCT(IB,KCS-3)
-            IFOUND=0
-C...Find final state tag partner
-            DO 210 IT=MAX(1,IP),N
-              IF (IT.EQ.IB) GOTO 210
-              IF (MCT(IT,6-KCS).EQ.JCT.AND.K(IT,1).LT.10.AND.K(IT,1).GT
-     &             .0) THEN
-                IFOUND=IFOUND+1
-                IA=IT
-              ENDIF
-  210       CONTINUE
-C...Just copy and goto next if exactly one partner found.
-            IF (IFOUND.EQ.1) THEN
-              GOTO 170
-C...When no match found, match is presumably junction.
-            ELSEIF (IFOUND.EQ.0.AND.MQGST.LE.2) THEN
-C...Check whether this colour tag matches a junction
-C...by seeing whether any parton with this colour tag has the same
-C...mother as a junction.
-C...NB: Only type 1 and 2 junctions handled presently.
-              DO 230 IJU=1,NJUNC
-                IJUMO=K(IJUNC(IJU,0),3)
-                ITJUNC=MOD(K(IJUNC(IJU,0),4)/MSTU(5),MSTU(5))
-C...Colours only connect to junctions, anti-colours to antijunctions:
-                IF (MOD(ITJUNC+1,2)+1.NE.KCS-3) GOTO 230
-                IMATCH=0
-                DO 220 J1=MAX(1,IP),N
-                  IF (K(J1,1).LE.0) GOTO 220
-C...First scattering partons have IMO1 = 3 and 4.
-                  IMO=K(J1,3)
-                  IF (IMO.EQ.MINT(83)+3.OR.IMO.EQ.MINT(83)+4)
-     &                 IMO=IMO-2
-                  IF (MCT(J1,KCS-3).EQ.JCT.AND.IMO.EQ.IJUMO.AND.MOD(K(J1
-     &                 ,3+ITJUNC)/MSTU(5),MSTU(5)).EQ.IJUNC(IJU,0))
-     &                 IMATCH=1
-C...Attempt at handling type > 3 junctions also. Not tested.
-                  IF (ITJUNC.GE.3.AND.MCT(J1,6-KCS).EQ.JCT.AND.IMO.EQ
-     &                 .IJUMO) IMATCH=1
-  220           CONTINUE
-                IF (IMATCH.EQ.0) GOTO 230
-                IA=IJUNC(IJU,0)
-                IFOUND=IFOUND+1
-  230         CONTINUE
- 
-              IF (IFOUND.EQ.1) THEN
-                GOTO 170
-              ELSEIF (IFOUND.EQ.0) THEN
-                WRITE(CHTMP,'(I6)') JCT
-                CALL PYERRM(12,'(PYPREP:) no matching colour tag: '
-     &               //CHTMP)
-                IF(NERRPR.LT.5) THEN
-                  NERRPR=NERRPR+1
-                  CALL PYLIST(4)
-                ENDIF
-                MINT(51)=1
-                RETURN
-              ENDIF
-            ELSEIF (IFOUND.GE.2) THEN
-              WRITE(CHTMP,'(I6)') JCT
-              CALL PYERRM(12
-     &             ,'(PYPREP:) too many occurences of colour line: '//
-     &             CHTMP)
-              IF(NERRPR.LT.5) THEN
-                NERRPR=NERRPR+1
-                CALL PYLIST(4)
-              ENDIF
-              MINT(51)=1
-              RETURN
-            ENDIF
-          ENDIF
-          K(I1,1)=1
-  240   CONTINUE
-  250 CONTINUE
- 
-C...Junction systems remain.
-      IJU=0
-      IJUS=0
-      IJUCNT=0
-      MREV=0
-      IJJSTR=0
-  260 IJUCNT=IJUCNT+1
-      IF (IJUCNT.LE.NJUNC) THEN
-C...If we are not processing a j-j string, treat this junction as new.
-        IF (IJJSTR.EQ.0) THEN
-          IJU=IJUNC(IJUCNT,0)
-          MREV=0
-C...If junction has already been read, ignore it.
-          IF (IJUNC(IJUCNT,4).EQ.1) GOTO 260
-C...If we are on a j-j string, goto second j-j junction.
-        ELSE
-          IJUCNT=IJUCNT-1
-          IJU=IJUS
-        ENDIF
-C...Mark selected junction read.
-        DO 270 J=1,NJUNC
-          IF (IJUNC(J,0).EQ.IJU) IJUNC(J,4)=1
-  270   CONTINUE
-C...Determine junction type
-        ITJUNC = MOD(K(IJU,4)/MSTU(5),MSTU(5))
-C...Type 1 and 2 junctions: ~chi -> q q q, ~chi -> qbar,qbar,qbar
-C...Type 3 and 4 junctions: ~qbar -> q q , ~q -> qbar qbar
-C...Type 5 and 6 junctions: ~g -> q q q, ~g -> qbar qbar qbar
-        IF (ITJUNC.GE.1.AND.ITJUNC.LE.6) THEN
-          IHK=0
-  280     IHK=IHK+1
-C...Find which quarks belong to given junction.
-          IHF=0
-          DO 290 IPC=1,NPIECE
-            IF (IPIECE(IPC,4).EQ.IJU) THEN
-              IHF=IHF+1
-              IF (IHF.EQ.IHK) IEND=IPIECE(IPC,3)
-            ENDIF
-            IF (IHK.EQ.3.AND.IPIECE(IPC,0).EQ.IJU) IEND=IPIECE(IPC,3)
-  290     CONTINUE
-C...IHK = 3 is special. Either normal string piece, or j-j string.
-          IF(IHK.EQ.3) THEN
-            IF (MREV.NE.1) THEN
-              DO 300 IPC=1,NPIECE
-C...If there is a j-j string starting on the present junction which has
-C...zero length, insert next junction immediately.
-                IF (IPIECE(IPC,0).EQ.IJU.AND.K(IPIECE(IPC,4),1)
-     &          .EQ.42.AND.IPIECE(IPC,1)-1-IPIECE(IPC,2).EQ.0) THEN
-                  IJJSTR = 1
-                  GOTO 340
-                ENDIF
-  300         CONTINUE
-              MREV = 1
-C...If MREV is 1 and IHK is 3 we are finished with this system.
-            ELSE
-              MREV=0
-              GOTO 260
-            ENDIF
-          ENDIF
- 
-C...If we've gotten this far, then either IHK < 3, or
-C...an interjunction string exists, or just a third normal string.
-          IJUNC(IJUCNT,IHK)=0
-          IJJSTR = 0
-C..Order pieces belonging to this junction. Also look for j-j.
-          DO 310 IPC=1,NPIECE
-            IF (IPIECE(IPC,3).EQ.IEND) IJUNC(IJUCNT,IHK)=IPC
-            IF (IHK.EQ.3.AND.IPIECE(IPC,0).EQ.IJUNC(IJUCNT,0)
-     &      .AND.K(IPIECE(IPC,4),1).EQ.42) THEN
-              IJUNC(IJUCNT,IHK)=IPC
-              IJJSTR = 1
-              MREV = 0
-            ENDIF
-  310     CONTINUE
-C...Copy back chains in proper order. MREV=0/1 : descending/ascending
-          IPC=IJUNC(IJUCNT,IHK)
-C...Temporary solution to cover for bug.
-          IF(IPC.LE.0) THEN
-            CALL PYERRM(12,'(PYPREP:) fails to hook up junctions')
-            MINT(51)=1
-            RETURN
-          ENDIF
-          DO 330 ICP=IPIECE(IPC,1+MREV),IPIECE(IPC,2-MREV),1-2*MREV
-            I1=I1+1
-            DO 320 J=1,5
-              K(I1,J)=K(MSTU(4)-ICP,J)
-              P(I1,J)=P(MSTU(4)-ICP,J)
-              V(I1,J)=V(MSTU(4)-ICP,J)
-  320       CONTINUE
-  330     CONTINUE
-          K(I1,1)=2
-C...Mark last quark.
-          IF (MREV.EQ.1.AND.IHK.GE.2) K(I1,1)=1
-C...Do not insert junctions at wrong places.
-          IF(IHK.LT.2.OR.MREV.NE.0) GOTO 360
-C...Insert junction.
-  340     IJUS = IJU
-          IF (IHK.EQ.3) THEN
-C...Shift to end junction if a j-j string has been processed.
-            IF (IJJSTR.NE.0) IJUS = IPIECE(IPC,4)
-            MREV= 1
-          ENDIF
-          I1=I1+1
-          DO 350 J=1,5
-            K(I1,J)=0
-            P(I1,J)=0.
-            V(I1,J)=0.
-  350     CONTINUE
-          K(I1,1)=41
-          K(IJUS,1)=K(IJUS,1)+10
-          K(I1,2)=K(IJUS,2)
-          K(I1,3)=IJUS
-  360     IF (IHK.LT.3) GOTO 280
-        ELSE
-          CALL PYERRM(12,'(PYPREP:) Unknown junction type')
-          MINT(51)=1
-          RETURN
-        ENDIF
-        IF (IJUCNT.NE.NJUNC) GOTO 260
-      ENDIF
-      N=I1
- 
-C...Rearrange three strings from junction, e.g. in case one has been
-C...shortened by shower, so the last is the largest-energy one.
-      IF(NJUNC.GE.1) THEN
-C...Find systems with exactly one junction.
-        MJUN1=0
-        NBEG=NOLD+1
-        DO 470 I=NOLD+1,N
-          IF(K(I,1).NE.1.AND.K(I,1).NE.41) THEN
-          ELSEIF(K(I,1).EQ.41) THEN
-            MJUN1=MJUN1+1
-          ELSEIF(K(I,1).EQ.1.AND.MJUN1.NE.1) THEN
-            MJUN1=0
-            NBEG=I+1
-          ELSE
-            NEND=I
-C...Sum up energy-momentum in each junction string.
-            DO 370 J=1,5
-              PJU(1,J)=0D0
-              PJU(2,J)=0D0
-              PJU(3,J)=0D0
-  370       CONTINUE
-            NJU=0
-            DO 390 I1=NBEG,NEND
-              IF(K(I1,2).NE.21) THEN
-                NJU=NJU+1
-                IJUR(NJU)=I1
-              ENDIF
-              DO 380 J=1,5
-                PJU(MIN(NJU,3),J)=PJU(MIN(NJU,3),J)+P(I1,J)
-  380         CONTINUE
-  390       CONTINUE
-C...Find which of them has highest energy (minus mass) in rest frame.
-            DO 400 J=1,5
-              PJU(4,J)=PJU(1,J)+PJU(2,J)+PJU(3,J)
-  400       CONTINUE
-            PMJU=SQRT(MAX(0D0,PJU(4,4)**2-PJU(4,1)**2-PJU(4,2)**2-
-     &      PJU(4,3)**2))
-            DO 410 I2=1,3
-              PJU(I2,6)=(PJU(4,4)*PJU(I2,4)-PJU(4,1)*PJU(I2,1)-
-     &        PJU(4,2)*PJU(I2,2)-PJU(4,3)*PJU(I2,3))/PMJU-PJU(I2,5)
-  410       CONTINUE
-            IF(PJU(3,6).LT.MIN(PJU(1,6),PJU(2,6))) THEN
-C...Decide how to rearrange so that new last has highest energy.
-              IF(PJU(1,6).LT.PJU(2,6)) THEN
-                IRNG(1,1)=IJUR(1)
-                IRNG(1,2)=IJUR(2)-1
-                IRNG(2,1)=IJUR(4)
-                IRNG(2,2)=IJUR(3)+1
-                IRNG(4,1)=IJUR(3)-1
-                IRNG(4,2)=IJUR(2)
-              ELSE
-                IRNG(1,1)=IJUR(4)
-                IRNG(1,2)=IJUR(3)+1
-                IRNG(2,1)=IJUR(2)
-                IRNG(2,2)=IJUR(3)-1
-                IRNG(4,1)=IJUR(2)-1
-                IRNG(4,2)=IJUR(1)
-              ENDIF
-              IRNG(3,1)=IJUR(3)
-              IRNG(3,2)=IJUR(3)
-C...Copy in correct order below bottom of current event record.
-              I2=N
-              DO 440 II=1,4
-                DO 430 I1=IRNG(II,1),IRNG(II,2),
-     &          ISIGN(1,IRNG(II,2)-IRNG(II,1))
-                  I2=I2+1
-                  IF(I2.GE.MSTU(4)-MSTU32-5) THEN
-                    CALL PYERRM(11,
-     &              '(PYPREP:) no more memory left in PYJETS')
-                    MINT(51)=1
-                    MSTU(24)=1
-                    RETURN
-                  ENDIF
-                  DO 420 J=1,5
-                    K(I2,J)=K(I1,J)
-                    P(I2,J)=P(I1,J)
-                    V(I2,J)=V(I1,J)
-  420             CONTINUE
-                  IF(K(I2,1).EQ.1) K(I2,1)=2
-  430           CONTINUE
-  440         CONTINUE
-              K(I2,1)=1
-C...Copy back up, overwriting but now in correct order.
-              DO 460 I1=NBEG,NEND
-                I2=I1-NBEG+N+1
-                DO 450 J=1,5
-                  K(I1,J)=K(I2,J)
-                  P(I1,J)=P(I2,J)
-                  V(I1,J)=V(I2,J)
-  450           CONTINUE
-  460         CONTINUE
-            ENDIF
-            MJUN1=0
-            NBEG=I+1
-          ENDIF
-  470   CONTINUE
- 
-C...Check whether q-q-j-j-qbar-qbar systems should be collapsed
-C...to two q-qbar systems.
-C...(MSTJ(19)=1 forces q-q-j-j-qbar-qbar.)
-        IF (MSTJ(19).NE.1) THEN
-          MJUN1  = 0
-          JJGLUE = 0
-          NBEG   = NOLD+1
-C...Force collapse when MSTJ(19)=2.
-          IF (MSTJ(19).EQ.2) THEN
-            DELMJJ = 1D9
-            DELMQQ = 0D0
-          ENDIF
-C...Find systems with exactly two junctions.
-          DO 700 I=NOLD+1,N
-C...Count junctions
-            IF (K(I,1).EQ.41) THEN
-              MJUN1 = MJUN1+1
-C...Check for interjunction gluons
-              IF (MJUN1.EQ.2.AND.K(I-1,1).NE.41) THEN
-                JJGLUE = 1
-              ENDIF
-            ELSEIF(K(I,1).EQ.1.AND.(MJUN1.NE.2)) THEN
-C...If end of system reached with either zero or one junction, restart
-C...with next system.
-              MJUN1  = 0
-              JJGLUE = 0
-              NBEG   = I+1
-            ELSEIF(K(I,1).EQ.1) THEN
-C...If end of system reached with exactly two junctions, compute string
-C...length measure for the (q-q-j-j-qbar-qbar) topology and compare with
-C...length measure for the (q-qbar)(q-qbar) topology.
-              NEND=I
-C...Loop down through chain.
-              ISID=0
-              DO 480 I1=NBEG,NEND
-C...Store string piece division locations in event record
-                IF (K(I1,2).NE.21) THEN
-                  ISID       = ISID+1
-                  IJCP(ISID) = I1
-                ENDIF
-  480         CONTINUE
-C...Randomly choose between (1,3)(2,4) and (1,4)(2,3) topologies.
-              ISW=0
-              IF (PYR(0).LT.0.5D0) ISW=1
-C...Randomly choose which qqbar string gets the jj gluons.
-              IGS=1
-              IF (PYR(0).GT.0.5D0) IGS=2
-C...Only compute string lengths when no topology forced.
-              IF (MSTJ(19).EQ.0) THEN
-C...Repeat following for each junction
-                DO 570 IJU=1,2
-C...Initialize iterative procedure for finding JRF
-                  IJRFIT=0
-                  DO 490 IX=1,3
-                    TJUOLD(IX)=0D0
-  490             CONTINUE
-                  TJUOLD(4)=1D0
-C...Start iteration. Sum up momenta in string pieces
-  500             DO 540 IJS=1,3
-C...JD=-1 for first junction, +1 for second junction.
-C...Find out where piece starts and ends and which direction to go.
-                    JD=2*IJU-3
-                    IF (IJS.LE.2) THEN
-                      IA = IJCP((IJU-1)*7 - JD*(IJS+1)) + JD
-                      IB = IJCP((IJU-1)*7 - JD*IJS)
-                    ELSEIF (IJS.EQ.3) THEN
-                      JD =-JD
-                      IA = IJCP((IJU-1)*7 + JD*(IJS)) + JD
-                      IB = IJCP((IJU-1)*7 + JD*(IJS+3))
-                    ENDIF
-C...Initialize junction pull 4-vector.
-                    DO 510 J=1,5
-                      PUL(IJS,J)=0D0
-  510               CONTINUE
-C...Initialize weight
-                    PWT = 0D0
-                    PWTOLD = 0D0
-C...Sum up (weighted) momenta along each string piece
-                    DO 530 ISP=IA,IB,JD
-C...If present parton not last in chain
-                      IF (ISP.NE.IA.AND.ISP.NE.IB) THEN
-C...If last parton was a junction, store present weight
-                        IF (K(ISP-JD,2).EQ.88) THEN
-                          PWTOLD = PWT
-C...If last parton was a quark, reset to stored weight.
-                        ELSEIF (K(ISP-JD,2).NE.21) THEN
-                          PWT = PWTOLD
-                        ENDIF
-                      ENDIF
-C...Skip next parton if weight already large
-                      IF (PWT.GT.10D0) GOTO 530
-C...Compute momentum in TJUOLD frame:
-                      TDP=TJUOLD(1)*P(ISP,1)+TJUOLD(2)*P(ISP,2)+TJUOLD(3
-     &                     )*P(ISP,3)
-                      BFC=TDP/(1D0+TJUOLD(4))+P(ISP,4)
-                      DO 520 J=1,3
-                        TMP=P(ISP,J)+TJUOLD(J)*BFC
-                        PUL(IJS,J)=PUL(IJS,J)+TMP*EXP(-PWT)
-  520                 CONTINUE
-C...Boosted energy
-                      TMP=TJUOLD(4)*P(ISP,4)+TDP
-                      PUL(IJS,4)=PUL(IJS,J)+TMP*EXP(-PWT)
-C...Update weight
-                      PWT=PWT+TMP/PARJ(48)
-C...Put |p| rather than m in 5th slot
-                      PUL(IJS,5)=SQRT(PUL(IJS,1)**2+PUL(IJS,2)**2
-     &                     +PUL(IJS,3)**2)
-  530               CONTINUE
-  540             CONTINUE
-C...Compute boost
-                  IJRFIT=IJRFIT+1
-                  CALL PYJURF(PUL,T)
-C...Combine new boost (T) with old boost (TJUOLD)
-                  TMP=T(1)*TJUOLD(1)+T(2)*TJUOLD(2)+T(3)*TJUOLD(3)
-                  DO 550 IX=1,3
-                    TJUOLD(IX)=T(IX)+TJUOLD(IX)*(TMP/(1D0+TJUOLD(4))+T(4
-     &                   ))
-  550             CONTINUE
-                  TJUOLD(4)=SQRT(1D0+TJUOLD(1)**2+TJUOLD(2)**2+TJUOLD(3)
-     &                 **2)
-C...If last boost small, accept JRF, else iterate.
-C...Also prevent possibility of infinite loop.
-                  IF (ABS((T(4)-1D0)/TJUOLD(4)).GT.0.01D0.AND.
-     &                 IJRFIT.LT.MSTJ(18))THEN
-                    GOTO 500
-                  ELSEIF (IJRFIT.GE.MSTJ(18)) THEN
-                    CALL PYERRM(1,'(PYPREP:) failed to converge on JRF')
-                  ENDIF
-C...Store final boost, with change of sign since TJJ motion vector.
-                  DO 560 IX=1,3
-                    TJJ(IJU,IX)=-TJUOLD(IX)
-  560             CONTINUE
-                  TJJ(IJU,4)=SQRT(1D0+TJJ(IJU,1)**2+TJJ(IJU,2)**2
-     &                 +TJJ(IJU,3)**2)
-  570           CONTINUE
-C...String length measure for (q-qbar)(q-qbar) topology.
-C...Note only momenta of nearest partons used (since rest of system
-C...identical).
-                IF (JJGLUE.EQ.0) THEN
-                  DELMQQ=4D0*FOUR(IJCP(2)-1,IJCP(4+ISW)+1)*FOUR(IJCP(3)
-     &                 -1,IJCP(5-ISW)+1)
-                ELSE
-C...Put jj gluons on selected string (IGS selected randomly above).
-                  IF (IGS.EQ.1) THEN
-                    DELMQQ=8D0*FOUR(IJCP(2)-1,IJCP(4)-1)*FOUR(IJCP(3)+1
-     &                   ,IJCP(4+ISW)+1)*FOUR(IJCP(3)-1,IJCP(5-ISW)+1)
-                  ELSE
-                    DELMQQ=8D0*FOUR(IJCP(2)-1,IJCP(4+ISW)+1)
-     &                   *FOUR(IJCP(3)-1,IJCP(4)-1)*FOUR(IJCP(3)+1
-     &                   ,IJCP(5-ISW)+1)
-                  ENDIF
-                ENDIF
-C...String length measure for q-q-j-j-q-q topology.
-                T1G1=0D0
-                T2G2=0D0
-                T1T2=0D0
-                T1P1=0D0
-                T1P2=0D0
-                T2P3=0D0
-                T2P4=0D0
-                ISGN=-1
-C...Note only momenta of nearest partons used (since rest of system
-C...identical).
-                DO 580 IX=1,4
-                  IF (IX.EQ.4) ISGN=1
-                  T1P1=T1P1+ISGN*TJJ(1,IX)*P(IJCP(2)-1,IX)
-                  T1P2=T1P2+ISGN*TJJ(1,IX)*P(IJCP(3)-1,IX)
-                  T2P3=T2P3+ISGN*TJJ(2,IX)*P(IJCP(4)+1,IX)
-                  T2P4=T2P4+ISGN*TJJ(2,IX)*P(IJCP(5)+1,IX)
-                  IF (JJGLUE.EQ.0) THEN
-C...Junction motion vector dot product gives length when inter-junction
-C...gluons absent.
-                    T1T2=T1T2+ISGN*TJJ(1,IX)*TJJ(2,IX)
-                  ELSE
-C...Junction motion vector dot products with gluon momenta give length
-C...when inter-junction gluons present.
-                    T1G1=T1G1+ISGN*TJJ(1,IX)*P(IJCP(3)+1,IX)
-                    T2G2=T2G2+ISGN*TJJ(2,IX)*P(IJCP(4)-1,IX)
-                  ENDIF
-  580           CONTINUE
-                DELMJJ=16D0*T1P1*T1P2*T2P3*T2P4
-                IF (JJGLUE.EQ.0) THEN
-                  DELMJJ=DELMJJ*(T1T2+SQRT(T1T2**2-1))
-                ELSE
-                  DELMJJ=DELMJJ*4D0*T1G1*T2G2
-                ENDIF
-              ENDIF
-C...If delmjj > delmqq collapse string system to q-qbar q-qbar
-C...(Always the case for MSTJ(19)=2 due to initialization above)
-              IF (DELMJJ.GT.DELMQQ) THEN
-C...Put new system at end of event record
-                NCOP=N
-                DO 650 IST=1,2
-                  DO 600 ICOP=IJCP(IST),IJCP(IST+1)-1
-                    NCOP=NCOP+1
-                    DO 590 IX=1,5
-                      P(NCOP,IX)=P(ICOP,IX)
-                      K(NCOP,IX)=K(ICOP,IX)
-  590               CONTINUE
-  600             CONTINUE
-                  IF (JJGLUE.NE.0.AND.IST.EQ.IGS) THEN
-C...Insert inter-junction gluon string piece (reversed)
-                    NJJGL=0
-                    DO 620 ICOP=IJCP(4)-1,IJCP(3)+1,-1
-                      NJJGL=NJJGL+1
-                      NCOP=NCOP+1
-                      DO 610 IX=1,5
-                        P(NCOP,IX)=P(ICOP,IX)
-                        K(NCOP,IX)=K(ICOP,IX)
-  610                 CONTINUE
-  620               CONTINUE
-                    ENDIF
-                  IFC=-2*IST+3
-                  DO 640 ICOP=IJCP(IST+IFC*ISW+3)+1,IJCP(IST+IFC*ISW+4)
-                    NCOP=NCOP+1
-                    DO 630 IX=1,5
-                      P(NCOP,IX)=P(ICOP,IX)
-                      K(NCOP,IX)=K(ICOP,IX)
-  630               CONTINUE
-  640             CONTINUE
-                  K(NCOP,1)=1
-  650           CONTINUE
-C...Copy system back in right order
-                DO 670 ICOP=NBEG,NEND-2
-                  DO 660 IX=1,5
-                    P(ICOP,IX)=P(N+ICOP-NBEG+1,IX)
-                    K(ICOP,IX)=K(N+ICOP-NBEG+1,IX)
-  660             CONTINUE
-  670           CONTINUE
-C...Shift down rest of event record
-                DO 690 ICOP=NEND+1,N
-                  DO 680 IX=1,5
-                    P(ICOP-2,IX)=P(ICOP,IX)
-                    K(ICOP-2,IX)=K(ICOP,IX)
-  680             CONTINUE
-  690             CONTINUE
-C...Update length of event record.
-                N=N-2
-              ENDIF
-              MJUN1=0
-              NBEG=I+1
-            ENDIF
-  700     CONTINUE
-        ENDIF
-      ENDIF
- 
-C...Done if no checks on small-mass systems.
-      IF(MSTJ(14).LT.0) RETURN
-      IF(MSTJ(14).EQ.0) GOTO 1140
- 
-C...Find lowest-mass colour singlet jet system.
-      NS=N
-  710 NSIN=N-NS
-      PDMIN=1D0+PARJ(32)
-      IC=0
-      DO 770 I=MAX(1,IP),N
-        IF(K(I,1).NE.1.AND.K(I,1).NE.2) THEN
-        ELSEIF(K(I,1).EQ.2.AND.IC.EQ.0) THEN
-          NSIN=NSIN+1
-          IC=I
-          DO 720 J=1,4
-            DPS(J)=P(I,J)
-  720     CONTINUE
-          MSTJ(93)=1
-          DPS(5)=PYMASS(K(I,2))
-        ELSEIF(K(I,1).EQ.2.AND.K(I,2).NE.21) THEN
-          DO 730 J=1,4
-            DPS(J)=DPS(J)+P(I,J)
-  730     CONTINUE
-          MSTJ(93)=1
-          DPS(5)=DPS(5)+PYMASS(K(I,2))
-        ELSEIF(K(I,1).EQ.2) THEN
-          DO 740 J=1,4
-            DPS(J)=DPS(J)+P(I,J)
-  740     CONTINUE
-        ELSEIF(IC.NE.0.AND.KCHG(PYCOMP(K(I,2)),2).NE.0) THEN
-          DO 750 J=1,4
-            DPS(J)=DPS(J)+P(I,J)
-  750     CONTINUE
-          MSTJ(93)=1
-          DPS(5)=DPS(5)+PYMASS(K(I,2))
-          PD=SQRT(MAX(0D0,DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2))-
-     &    DPS(5)
-          IF(PD.LT.PDMIN) THEN
-            PDMIN=PD
-            DO 760 J=1,5
-              DPC(J)=DPS(J)
-  760       CONTINUE
-            IC1=IC
-            IC2=I
-          ENDIF
-          IC=0
-        ELSE
-          NSIN=NSIN+1
-        ENDIF
-  770 CONTINUE
- 
-C...Done if lowest-mass system above threshold for string frag.
-      IF(PDMIN.GE.PARJ(32)) GOTO 1140
- 
-C...Fill small-mass system as cluster.
-      NSAV=N
-      PECM=SQRT(MAX(0D0,DPC(4)**2-DPC(1)**2-DPC(2)**2-DPC(3)**2))
-      K(N+1,1)=11
-      K(N+1,2)=91
-      K(N+1,3)=IC1
-      P(N+1,1)=DPC(1)
-      P(N+1,2)=DPC(2)
-      P(N+1,3)=DPC(3)
-      P(N+1,4)=DPC(4)
-      P(N+1,5)=PECM
- 
-C...Set up history, assuming cluster -> 2 hadrons.
-      NBODY=2
-      K(N+1,4)=N+2
-      K(N+1,5)=N+3
-      K(N+2,1)=1
-      K(N+3,1)=1
-      IF(MSTU(16).NE.2) THEN
-        K(N+2,3)=N+1
-        K(N+3,3)=N+1
-      ELSE
-        K(N+2,3)=IC1
-        K(N+3,3)=IC2
-      ENDIF
-      K(N+2,4)=0
-      K(N+3,4)=0
-      K(N+2,5)=0
-      K(N+3,5)=0
-      V(N+1,5)=0D0
-      V(N+2,5)=0D0
-      V(N+3,5)=0D0
- 
-C...Find total flavour content - complicated by presence of junctions.
-      NQ=0
-      NDIQ=0
-      DO 780 I=IC1,IC2
-        IF((K(I,1).EQ.1.OR.K(I,1).EQ.2).AND.K(I,2).NE.21) THEN
-          NQ=NQ+1
-          KFQ(NQ)=K(I,2)
-          IF(IABS(K(I,2)).GT.1000) NDIQ=NDIQ+1
-        ENDIF
-  780 CONTINUE
- 
-C...If several diquarks, split up one to give even number of flavours.
-      IF(NQ.EQ.3.AND.NDIQ.GE.2) THEN
-        I1=3
-        IF(IABS(KFQ(3)).LT.1000) I1=1
-        KFQ(4)=ISIGN(MOD(IABS(KFQ(I1))/100,10),KFQ(I1))
-        KFQ(I1)=KFQ(I1)/1000
-        NQ=4
-        NDIQ=NDIQ-1
-      ENDIF
- 
-C...If four quark ends, join two to diquark.
-      IF(NQ.EQ.4.AND.NDIQ.EQ.0) THEN
-        I1=1
-        I2=2
-        IF(KFQ(I1)*KFQ(I2).LT.0) I2=3
-        IF(I2.EQ.3.AND.KFQ(I1)*KFQ(I2).LT.0) I2=4
-        KFLS=2*INT(PYR(0)+3D0*PARJ(4)/(1D0+3D0*PARJ(4)))+1
-        IF(KFQ(I1).EQ.KFQ(I2)) KFLS=3
-        KFQ(I1)=ISIGN(1000*MAX(IABS(KFQ(I1)),IABS(KFQ(I2)))+
-     &  100*MIN(IABS(KFQ(I1)),IABS(KFQ(I2)))+KFLS,KFQ(I1))
-        KFQ(I2)=KFQ(4)
-        NQ=3
-        NDIQ=1
-      ENDIF
- 
-C...If two quark ends, plus quark or diquark, join quarks to diquark.
-      IF(NQ.EQ.3) THEN
-        I1=1
-        I2=2
-        IF(IABS(KFQ(I1)).GT.1000) I1=3
-        IF(IABS(KFQ(I2)).GT.1000) I2=3
-        KFLS=2*INT(PYR(0)+3D0*PARJ(4)/(1D0+3D0*PARJ(4)))+1
-        IF(KFQ(I1).EQ.KFQ(I2)) KFLS=3
-        KFQ(I1)=ISIGN(1000*MAX(IABS(KFQ(I1)),IABS(KFQ(I2)))+
-     &  100*MIN(IABS(KFQ(I1)),IABS(KFQ(I2)))+KFLS,KFQ(I1))
-        KFQ(I2)=KFQ(3)
-        NQ=2
-        NDIQ=NDIQ+1
-      ENDIF
- 
-C...Form two particles from flavours of lowest-mass system, if feasible.
-      NTRY = 0
-  790 NTRY = NTRY + 1
- 
-C...Open string with two specified endpoint flavours.
-      IF(NQ.EQ.2) THEN
-        KC1=PYCOMP(KFQ(1))
-        KC2=PYCOMP(KFQ(2))
-        IF(KC1.EQ.0.OR.KC2.EQ.0) GOTO 1140
-        KQ1=KCHG(KC1,2)*ISIGN(1,KFQ(1))
-        KQ2=KCHG(KC2,2)*ISIGN(1,KFQ(2))
-        IF(KQ1+KQ2.NE.0) GOTO 1140
-C...Start with qq, if there is one. Only allow for rank 1 popcorn meson
-  800   K1=KFQ(1)
-        IF(IABS(KFQ(2)).GT.1000) K1=KFQ(2)
-        MSTU(125)=0
-        CALL PYDCYK(K1,0,KFLN,K(N+2,2))
-        CALL PYDCYK(KFQ(1)+KFQ(2)-K1,-KFLN,KFLDMP,K(N+3,2))
-        IF(K(N+2,2).EQ.0.OR.K(N+3,2).EQ.0) GOTO 800
- 
-C...Open string with four specified flavours.
-      ELSEIF(NQ.EQ.4) THEN
-        KC1=PYCOMP(KFQ(1))
-        KC2=PYCOMP(KFQ(2))
-        KC3=PYCOMP(KFQ(3))
-        KC4=PYCOMP(KFQ(4))
-        IF(KC1.EQ.0.OR.KC2.EQ.0.OR.KC3.EQ.0.OR.KC4.EQ.0) GOTO 1140
-        KQ1=KCHG(KC1,2)*ISIGN(1,KFQ(1))
-        KQ2=KCHG(KC2,2)*ISIGN(1,KFQ(2))
-        KQ3=KCHG(KC3,2)*ISIGN(1,KFQ(3))
-        KQ4=KCHG(KC4,2)*ISIGN(1,KFQ(4))
-        IF(KQ1+KQ2+KQ3+KQ4.NE.0) GOTO 1140
-C...Combine flavours pairwise to form two hadrons.
-  810   I1=1
-        I2=2
-        IF(KQ1*KQ2.GT.0.OR.(IABS(KFQ(1)).GT.1000.AND.
-     &  IABS(KFQ(2)).GT.1000)) I2=3
-        IF(I2.EQ.3.AND.(KQ1*KQ3.GT.0.OR.(IABS(KFQ(1)).GT.1000.AND.
-     &  IABS(KFQ(3)).GT.1000))) I2=4
-        I3=3
-        IF(I2.EQ.3) I3=2
-        I4=10-I1-I2-I3
-        CALL PYDCYK(KFQ(I1),KFQ(I2),KFLDMP,K(N+2,2))
-        CALL PYDCYK(KFQ(I3),KFQ(I4),KFLDMP,K(N+3,2))
-        IF(K(N+2,2).EQ.0.OR.K(N+3,2).EQ.0) GOTO 810
- 
-C...Closed string.
-      ELSE
-        IF(IABS(K(IC2,2)).NE.21) GOTO 1140
-C...No room for popcorn mesons in closed string -> 2 hadrons.
-        MSTU(125)=0
-  820   CALL PYDCYK(1+INT((2D0+PARJ(2))*PYR(0)),0,KFLN,KFDMP)
-        CALL PYDCYK(KFLN,0,KFLM,K(N+2,2))
-        CALL PYDCYK(-KFLN,-KFLM,KFLDMP,K(N+3,2))
-        IF(K(N+2,2).EQ.0.OR.K(N+3,2).EQ.0) GOTO 820
-      ENDIF
-      P(N+2,5)=PYMASS(K(N+2,2))
-      P(N+3,5)=PYMASS(K(N+3,2))
- 
-C...If it does not work: try again (a number of times), give up (if no
-C...place to shuffle momentum or too many flavours), or form one hadron.
-      IF(P(N+2,5)+P(N+3,5)+PARJ(64).GE.PECM) THEN
-        IF(NTRY.LT.MSTJ(17).OR.(NQ.EQ.4.AND.NTRY.LT.5*MSTJ(17))) THEN
-          GOTO 790
-        ELSEIF(NSIN.EQ.1.OR.NQ.EQ.4) THEN
-          GOTO 1140
-        ELSE
-          GOTO 890
-        END IF
-      END IF
- 
-C...Perform two-particle decay of jet system.
-C...First step: find reference axis in decaying system rest frame.
-C...(Borrow slot N+2 for temporary direction.)
-      DO 830 J=1,4
-        P(N+2,J)=P(IC1,J)
-  830 CONTINUE
-      DO 850 I=IC1+1,IC2-1
-        IF((K(I,1).EQ.1.OR.K(I,1).EQ.2).AND.
-     &  KCHG(PYCOMP(K(I,2)),2).NE.0) THEN
-          FRAC1=FOUR(IC2,I)/(FOUR(IC1,I)+FOUR(IC2,I))
-          DO 840 J=1,4
-            P(N+2,J)=P(N+2,J)+FRAC1*P(I,J)
-  840     CONTINUE
-        ENDIF
-  850 CONTINUE
-      CALL PYROBO(N+2,N+2,0D0,0D0,-DPC(1)/DPC(4),-DPC(2)/DPC(4),
-     &-DPC(3)/DPC(4))
-      THE1=PYANGL(P(N+2,3),SQRT(P(N+2,1)**2+P(N+2,2)**2))
-      PHI1=PYANGL(P(N+2,1),P(N+2,2))
- 
-C...Second step: generate isotropic/anisotropic decay.
-      PA=SQRT((PECM**2-(P(N+2,5)+P(N+3,5))**2)*(PECM**2-
-     &(P(N+2,5)-P(N+3,5))**2))/(2D0*PECM)
-  860 UE(3)=PYR(0)
-      IF(PARJ(21).LE.0.01D0) UE(3)=1D0
-      PT2=(1D0-UE(3)**2)*PA**2
-      IF(MSTJ(16).LE.0) THEN
-        PREV=0.5D0
-      ELSE
-        IF(EXP(-PT2/(2D0*MAX(0.01D0,PARJ(21))**2)).LT.PYR(0)) GOTO 860
-        PR1=P(N+2,5)**2+PT2
-        PR2=P(N+3,5)**2+PT2
-        ALAMBD=SQRT(MAX(0D0,(PECM**2-PR1-PR2)**2-4D0*PR1*PR2))
-        PREVCF=PARJ(42)
-        IF(MSTJ(11).EQ.2) PREVCF=PARJ(39)
-        PREV=1D0/(1D0+EXP(MIN(50D0,PREVCF*ALAMBD*PARJ(40))))
-      ENDIF
-      IF(PYR(0).LT.PREV) UE(3)=-UE(3)
-      PHI=PARU(2)*PYR(0)
-      UE(1)=SQRT(1D0-UE(3)**2)*COS(PHI)
-      UE(2)=SQRT(1D0-UE(3)**2)*SIN(PHI)
-      DO 870 J=1,3
-        P(N+2,J)=PA*UE(J)
-        P(N+3,J)=-PA*UE(J)
-  870 CONTINUE
-      P(N+2,4)=SQRT(PA**2+P(N+2,5)**2)
-      P(N+3,4)=SQRT(PA**2+P(N+3,5)**2)
- 
-C...Third step: move back to event frame and set production vertex.
-      CALL PYROBO(N+2,N+3,THE1,PHI1,DPC(1)/DPC(4),DPC(2)/DPC(4),
-     &DPC(3)/DPC(4))
-      DO 880 J=1,4
-        V(N+1,J)=V(IC1,J)
-        V(N+2,J)=V(IC1,J)
-        V(N+3,J)=V(IC2,J)
-  880 CONTINUE
-      N=N+3
-      GOTO 1120
- 
-C...Else form one particle, if possible.
-  890 NBODY=1
-      K(N+1,5)=N+2
-      DO 900 J=1,4
-        V(N+1,J)=V(IC1,J)
-        V(N+2,J)=V(IC1,J)
-  900 CONTINUE
- 
-C...Select hadron flavour from available quark flavours.
-  910 IF(NQ.EQ.2.AND.IABS(KFQ(1)).GT.100.AND.IABS(KFQ(2)).GT.100) THEN
-        GOTO 1140
-      ELSEIF(NQ.EQ.2) THEN
-        CALL PYKFDI(KFQ(1),KFQ(2),KFLDMP,K(N+2,2))
-      ELSE
-        KFLN=1+INT((2D0+PARJ(2))*PYR(0))
-        CALL PYKFDI(KFLN,-KFLN,KFLDMP,K(N+2,2))
-      ENDIF
-      IF(K(N+2,2).EQ.0) GOTO 910
-      P(N+2,5)=PYMASS(K(N+2,2))
- 
-C...Use old algorithm for E/p conservation? (EN)
-      IF (MSTJ(16).LE.0) GOTO 1080
- 
-C...Find the string piece closest to the cluster by a loop
-C...over the undecayed partons not in present cluster. (EN)
-      DGLOMI=1D30
-      IBEG=0
-      I0=0
-      NJUNC=0
-      DO 940 I1=MAX(1,IP),N-1
-        IF(K(I1,1).EQ.1) NJUNC=0
-        IF(K(I1,1).EQ.41) NJUNC=NJUNC+1
-        IF(K(I1,1).EQ.41) GOTO 940
-        IF(I1.GE.IC1-1.AND.I1.LE.IC2) THEN
-          I0=0
-        ELSEIF(K(I1,1).EQ.2) THEN
-          IF(I0.EQ.0) I0=I1
-          I2=I1
-  920     I2=I2+1
-          IF(K(I2,1).EQ.41) GOTO 940
-          IF(K(I2,1).GT.10) GOTO 920
-          IF(KCHG(PYCOMP(K(I2,2)),2).EQ.0) GOTO 920
-          IF(K(I1,2).EQ.21.AND.K(I2,2).NE.21.AND.K(I2,1).NE.1.AND.
-     &    NJUNC.EQ.0) GOTO 940
-          IF(K(I1,2).NE.21.AND.K(I2,2).EQ.21.AND.NJUNC.NE.0) GOTO 940
-          IF(K(I1,2).NE.21.AND.K(I2,2).NE.21.AND.(I1.GT.I0.OR.
-     &    K(I2,1).NE.1)) GOTO 940
- 
-C...Define velocity vectors e1, e2, ecl and differences e3, e4.
-          DO 930 J=1,3
-            E1(J)=P(I1,J)/P(I1,4)
-            E2(J)=P(I2,J)/P(I2,4)
-            ECL(J)=P(N+1,J)/P(N+1,4)
-            E3(J)=E2(J)-E1(J)
-            E4(J)=ECL(J)-E1(J)
-  930     CONTINUE
- 
-C...Calculate minimal D=(e4-alpha*e3)**2 for 0<alpha<1.
-          E3S=E3(1)**2+E3(2)**2+E3(3)**2
-          E4S=E4(1)**2+E4(2)**2+E4(3)**2
-          E34=E3(1)*E4(1)+E3(2)*E4(2)+E3(3)*E4(3)
-          IF(E34.LE.0D0) THEN
-            DDMIN=E4S
-          ELSEIF(E34.LT.E3S) THEN
-            DDMIN=E4S-E34**2/E3S
-          ELSE
-            DDMIN=E4S-2D0*E34+E3S
-          ENDIF
- 
-C...Is this the smallest so far?
-          IF(DDMIN.LT.DGLOMI) THEN
-            DGLOMI=DDMIN
-            IBEG=I0
-            IPCS=I1
-          ENDIF
-        ELSEIF(K(I1,1).EQ.1.AND.KCHG(PYCOMP(K(I1,2)),2).NE.0) THEN
-          I0=0
-        ENDIF
-  940 CONTINUE
- 
-C... Check if there are any strings to connect to the new gluon. (EN)
-      IF (IBEG.EQ.0) GOTO 1080
- 
-C...Delta_m = m_clus - m_had > 0: emit a 'gluon' (EN)
-      IF (P(N+1,5).GE.P(N+2,5)) THEN
- 
-C...Construct 'gluon' that is needed to put hadron on the mass shell.
-        FRAC=P(N+2,5)/P(N+1,5)
-        DO 950 J=1,5
-          P(N+2,J)=FRAC*P(N+1,J)
-          PG(J)=(1D0-FRAC)*P(N+1,J)
-  950   CONTINUE
- 
-C... Copy string with new gluon put in.
-        N=N+2
-        I=IBEG-1
-  960   I=I+1
-        IF(K(I,1).NE.1.AND.K(I,1).NE.2.AND.K(I,1).NE.41) GOTO 960
-        IF(KCHG(PYCOMP(K(I,2)),2).EQ.0.AND.K(I,1).NE.41) GOTO 960
-        N=N+1
-        
-c     ACH......check for infinite loop here, was causing crash
-c     write(*,'(A, I6, I6)') 'ACH N and I are now ', N, I
-        IF(N.GT.10000) THEN
-           CALL PYERRM(14,'(PYPREP:) caught in infinite loop 1')
-           MINT(51)=1
-           RETURN
-        ENDIF
-c     ACH......
-        
-        DO 970 J=1,5
-          K(N,J)=K(I,J)
-          P(N,J)=P(I,J)
-          V(N,J)=V(I,J)
-  970   CONTINUE
-        K(I,1)=K(I,1)+10
-        K(I,4)=N
-        K(I,5)=N
-        K(N,3)=I
-        IF(I.EQ.IPCS) THEN
-          N=N+1
-
-c     ACH......check for infinite loop here, was causing crash
-c     write(*,'(A, I6, I6)') 'ACH N and I are now ', N, I
-          IF(N.GT.10000) THEN
-             CALL PYERRM(14,'(PYPREP:) caught in infinite loop 2')
-             MINT(51)=1
-             RETURN
-          ENDIF
-c     ACH......
-
-          DO 980 J=1,5
-            K(N,J)=K(N-1,J)
-            P(N,J)=PG(J)
-            V(N,J)=V(N-1,J)
-  980     CONTINUE
-          K(N,2)=21
-          K(N,3)=NSAV+1
-        ENDIF
-        IF(K(I,1).EQ.12.OR.K(I,1).EQ.51) GOTO 960
-        GOTO 1120
- 
-C...Delta_m = m_clus - m_had < 0: have to absorb a 'gluon' instead,
-C...from string piece endpoints.
-      ELSE
- 
-C...Begin by copying string that should give energy to cluster.
-        N=N+2
-        I=IBEG-1
-  990   I=I+1
-        IF(K(I,1).NE.1.AND.K(I,1).NE.2.AND.K(I,1).NE.41) GOTO 990
-        IF(KCHG(PYCOMP(K(I,2)),2).EQ.0.AND.K(I,1).NE.41) GOTO 990
-        N=N+1
-        
-c     ACH......check for infinite loop here, was causing crash
-c     write(*,'(A, I6, I6)') 'ACH N and I are now ', N, I
-        IF(N.GT.10000) THEN
-           CALL PYERRM(14,'(PYPREP:) caught in infinite loop 3')
-           MINT(51)=1
-           RETURN
-        ENDIF
-c     ACH......
-
-        DO 1000 J=1,5
-          K(N,J)=K(I,J)
-          P(N,J)=P(I,J)
-          V(N,J)=V(I,J)
- 1000   CONTINUE
-        K(I,1)=K(I,1)+10
-        K(I,4)=N
-        K(I,5)=N
-        K(N,3)=I
-        IF(I.EQ.IPCS) I1=N
-        IF(K(I,1).EQ.12.OR.K(I,1).EQ.51) GOTO 990
-        I2=I1+1
- 
-C...Set initial Phad.
-        DO 1010 J=1,4
-          P(NSAV+2,J)=P(NSAV+1,J)
- 1010   CONTINUE
- 
-C...Calculate Pg, a part of which will be added to Phad later. (EN)
- 1020   IF(MSTJ(16).EQ.1) THEN
-          ALPHA=1D0
-          BETA=1D0
-        ELSE
-          ALPHA=FOUR(NSAV+1,I2)/FOUR(I1,I2)
-          BETA=FOUR(NSAV+1,I1)/FOUR(I1,I2)
-        ENDIF
-        DO 1030 J=1,4
-          PG(J)=ALPHA*P(I1,J)+BETA*P(I2,J)
- 1030   CONTINUE
-        PG(5)=SQRT(MAX(1D-20,PG(4)**2-PG(1)**2-PG(2)**2-PG(3)**2))
- 
-C..Solve 2nd order equation, use the best (smallest) solution. (EN)
-        PMSCOL=P(NSAV+2,4)**2-P(NSAV+2,1)**2-P(NSAV+2,2)**2-
-     &  P(NSAV+2,3)**2
-        PCLPG=(P(NSAV+2,4)*PG(4)-P(NSAV+2,1)*PG(1)-
-     &  P(NSAV+2,2)*PG(2)-P(NSAV+2,3)*PG(3))/PG(5)**2
-        DELTA=SQRT(PCLPG**2+(P(NSAV+2,5)**2-PMSCOL)/PG(5)**2)-PCLPG
- 
-C...If all gluon energy eaten, zero it and take a step back.
-        ITER=0
-        IF(DELTA*ALPHA.GT.1D0.AND.I1.GT.NSAV+3.AND.K(I1,2).EQ.21) THEN
-          ITER=1
-          DO 1040 J=1,4
-            P(NSAV+2,J)=P(NSAV+2,J)+P(I1,J)
-            P(I1,J)=0D0
- 1040     CONTINUE
-          P(I1,5)=0D0
-          K(I1,1)=K(I1,1)+10
-          I1=I1-1
-          IF(K(I1,1).EQ.41) ITER=-1
-        ENDIF
-        IF(DELTA*BETA.GT.1D0.AND.I2.LT.N.AND.K(I2,2).EQ.21) THEN
-          ITER=1
-          DO 1050 J=1,4
-            P(NSAV+2,J)=P(NSAV+2,J)+P(I2,J)
-            P(I2,J)=0D0
- 1050     CONTINUE
-          P(I2,5)=0D0
-          K(I2,1)=K(I2,1)+10
-          I2=I2+1
-          IF(K(I2,1).EQ.41) ITER=-1
-        ENDIF
-        IF(ITER.EQ.1) GOTO 1020
- 
-C...If also all endpoint energy eaten, revert to old procedure.
-        IF((1D0-DELTA*ALPHA)*P(I1,4).LT.P(I1,5).OR.
-     &  (1D0-DELTA*BETA)*P(I2,4).LT.P(I2,5).OR.ITER.EQ.-1) THEN
-          DO 1060 I=NSAV+3,N
-            IM=K(I,3)
-            K(IM,1)=K(IM,1)-10
-            K(IM,4)=0
-            K(IM,5)=0
- 1060     CONTINUE
-          N=NSAV
-          GOTO 1080
-        ENDIF
- 
-C... Construct the collapsed hadron and modified string partons.
-        DO 1070 J=1,4
-          P(NSAV+2,J)=P(NSAV+2,J)+DELTA*PG(J)
-          P(I1,J)=(1D0-DELTA*ALPHA)*P(I1,J)
-          P(I2,J)=(1D0-DELTA*BETA)*P(I2,J)
- 1070   CONTINUE
-          P(I1,5)=(1D0-DELTA*ALPHA)*P(I1,5)
-          P(I2,5)=(1D0-DELTA*BETA)*P(I2,5)
- 
-C...Finished with string collapse in new scheme.
-        GOTO 1120
-      ENDIF
- 
-C... Use old algorithm; by choice or when in trouble.
- 1080 CONTINUE
-C...Find parton/particle which combines to largest extra mass.
-      IR=0
-      HA=0D0
-      HSM=0D0
-      DO 1100 MCOMB=1,3
-        IF(IR.NE.0) GOTO 1100
-        DO 1090 I=MAX(1,IP),N
-          IF(K(I,1).LE.0.OR.K(I,1).GT.10.OR.(I.GE.IC1.AND.I.LE.IC2
-     &    .AND.K(I,1).GE.1.AND.K(I,1).LE.2)) GOTO 1090
-          IF(MCOMB.EQ.1) KCI=PYCOMP(K(I,2))
-          IF(MCOMB.EQ.1.AND.KCI.EQ.0) GOTO 1090
-          IF(MCOMB.EQ.1.AND.KCHG(KCI,2).EQ.0.AND.I.LE.NS) GOTO 1090
-          IF(MCOMB.EQ.2.AND.IABS(K(I,2)).GT.10.AND.IABS(K(I,2)).LE.100)
-     &    GOTO 1090
-          HCR=DPC(4)*P(I,4)-DPC(1)*P(I,1)-DPC(2)*P(I,2)-DPC(3)*P(I,3)
-          HSR=2D0*HCR+PECM**2-P(N+2,5)**2-2D0*P(N+2,5)*P(I,5)
-          IF(HSR.GT.HSM) THEN
-            IR=I
-            HA=HCR
-            HSM=HSR
-          ENDIF
- 1090   CONTINUE
- 1100 CONTINUE
- 
-C...Shuffle energy and momentum to put new particle on mass shell.
-      IF(IR.NE.0) THEN
-        HB=PECM**2+HA
-        HC=P(N+2,5)**2+HA
-        HD=P(IR,5)**2+HA
-        HK2=0.5D0*(HB*SQRT(MAX(0D0,((HB+HC)**2-4D0*(HB+HD)*P(N+2,5)**2)/
-     &  (HA**2-(PECM*P(IR,5))**2)))-(HB+HC))/(HB+HD)
-        HK1=(0.5D0*(P(N+2,5)**2-PECM**2)+HD*HK2)/HB
-        DO 1110 J=1,4
-          P(N+2,J)=(1D0+HK1)*DPC(J)-HK2*P(IR,J)
-          P(IR,J)=(1D0+HK2)*P(IR,J)-HK1*DPC(J)
- 1110   CONTINUE
-        N=N+2
-      ELSE
-        CALL PYERRM(3,'(PYPREP:) no match for collapsing cluster')
-        RETURN
-      ENDIF
- 
-C...Mark collapsed system and store daughter pointers. Iterate.
- 1120 DO 1130 I=IC1,IC2
-        IF((K(I,1).EQ.1.OR.K(I,1).EQ.2).AND.
-     &  KCHG(PYCOMP(K(I,2)),2).NE.0) THEN
-          K(I,1)=K(I,1)+10
-          IF(MSTU(16).NE.2) THEN
-            K(I,4)=NSAV+1
-            K(I,5)=NSAV+1
-          ELSE
-            K(I,4)=NSAV+2
-            K(I,5)=NSAV+1+NBODY
-          ENDIF
-        ENDIF
-        IF(K(I,1).EQ.41) K(I,1)=K(I,1)+10
- 1130 CONTINUE
-      IF(N.LT.MSTU(4)-MSTU(32)-5) GOTO 710
- 
-C...Check flavours and invariant masses in parton systems.
- 1140 NP=0
-      KFN=0
-      KQS=0
-      NJU=0
-      DO 1150 J=1,5
-        DPS(J)=0D0
- 1150 CONTINUE
-      DO 1180 I=MAX(1,IP),N
-        IF(K(I,1).EQ.41) NJU=NJU+1
-        IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 1180
-        KC=PYCOMP(K(I,2))
-        IF(KC.EQ.0) GOTO 1180
-        KQ=KCHG(KC,2)*ISIGN(1,K(I,2))
-        IF(KQ.EQ.0) GOTO 1180
-        NP=NP+1
-        IF(KQ.NE.2) THEN
-          KFN=KFN+1
-          KQS=KQS+KQ
-          MSTJ(93)=1
-          DPS(5)=DPS(5)+PYMASS(K(I,2))
-        ENDIF
-        DO 1160 J=1,4
-          DPS(J)=DPS(J)+P(I,J)
- 1160   CONTINUE
-        IF(K(I,1).EQ.1) THEN
-          NFERR=0
-          IF(NJU.EQ.0.AND.NP.NE.1) THEN
-            IF(KFN.EQ.1.OR.KFN.GE.3.OR.KQS.NE.0) NFERR=1
-          ELSEIF(NJU.EQ.1) THEN
-            IF(KFN.NE.3.OR.IABS(KQS).NE.3) NFERR=1
-          ELSEIF(NJU.EQ.2) THEN
-            IF(KFN.NE.4.OR.KQS.NE.0) NFERR=1
-          ELSEIF(NJU.GE.3) THEN
-            NFERR=1
-          ENDIF
-          IF(NFERR.EQ.1) THEN
-            CALL PYERRM(2,'(PYPREP:) unphysical flavour combination')
-            MINT(51)=1
-            RETURN
-          ENDIF
-          IF(NP.NE.1.AND.DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2.LT.
-     &    (0.9D0*PARJ(32)+DPS(5))**2) CALL PYERRM(3,
-     &    '(PYPREP:) too small mass in jet system')
-          NP=0
-          KFN=0
-          KQS=0
-          NJU=0
-          DO 1170 J=1,5
-            DPS(J)=0D0
- 1170     CONTINUE
-        ENDIF
- 1180 CONTINUE
- 
-      RETURN
-      END
-
diff --git a/Generators/PythiaRhad_i/src/PythiaRhadModified/pyrhad.F b/Generators/PythiaRhad_i/src/PythiaRhadModified/pyrhad.F
deleted file mode 100644
index 8a6458bb17478bec59f0b6634f3c93eaf54c562e..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/src/PythiaRhadModified/pyrhad.F
+++ /dev/null
@@ -1,1729 +0,0 @@
-C*********************************************************************
- 
-C...PYGGPRO
-C Sets the PROBGG parameter in the fragmentation
-
-C...  Double precision and integer declarations.
-      SUBROUTINE PYGGPRO(PROB)
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-
-
-      PROBGG=PROB
-
-      write(*,*) 'Gluino ball formation probability has been set to '
-     &     ,PROBGG
-
-      RETURN
-      END
-
-
- 
-C*********************************************************************
- 
-C...PYGLFR
-C...Fragments the string near to a gluino, to form a gluino-hadron, 
-C...either by producing a new g-g pair or two new q-qbar ones.
-
-      SUBROUTINE PYGLFRRE(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYDAT4/CHAF(500,2)
-      CHARACTER CHAF*16
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-      CHARACTER*16 CHRHAD
-
-
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.7D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-c      write(*,*) 'In PYGLFRRE'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-         ENDIF
-C JK 
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-         PMGB=P(IGL,5)+0.7
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+993
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            IF(KFSVMX.eq.KFSVMN.and.KFSVMX.gt.1) then
-               KFSVMN=1
-               KFSVMX=1
-            endif
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+3
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+2,
-     &           -KFSAV(1))
-            if(iabs(K(N+1,2)).ne.1093212) goto 90
-         ENDIF
-
-        CALL PYNAME(K(N+1,2),CHRHAD)
-        print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-c        print*, 'RMA KC = ',PYCOMP(K(N+1,2))
-c        print*, 'RMA CHAF = ',CHAF(PYCOMP(K(N+1,2)),1),', '
-c     &       ,CHAF(PYCOMP(K(N+1,2)),1)
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-      IF(IERR.GT.0) THEN
-         WRITE(*,*) '...skipping pyexec for this event!'
-      ELSE
-c         call pylist(2)
-         CALL PYEXEC
-      ENDIF
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
- 
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-c.... ACH - check for more errors from pyexec
-      IF(MSTU(24).GT.0) THEN
-         IERR=MSTU(24)
-         WRITE(*,*) 'ACH123 IERR being set to ', IERR
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
-
-C*********************************************************************
-
-
- 
-C...PYGLDC
-C...Decays the gluino inside a gluino-hadron.
- 
-      SUBROUTINE PYGLDC
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-
-C...Optional offset of constituent quark/diquark mass,
-C...representing gluon cloud around gluino not part of the decay.
-      PMOFF = 0.2D0
-
-C...The probability that it has spin 1.
-C...(Except for identical flavours, where spin 1 is only possibility.)
-C...(Recall that all R-baryon codes were given as if spin 1, sloppily.)
-      PROBS1=0.5D0
-
-C...Loop through to find R-hadrons.
-      DO 150 I=1,N
-C...If only one of the R-hadrons should decay inside the detector, 
-C...you could here pick at random whether to allow the one with 
-C...K(I,1) = 6 or the one with =7. (Where the random choice of course
-C...could depend on the position of an imagined displaced vertex.)
-        IF(K(I,1).EQ.6.OR.K(I,1).EQ.7) THEN
-
-C...Begin resolve R-hadron flavour content to q + qbar or q + qq.
-          KFRH=(IABS(K(I,2))-KSUSY1)/10
-C...Gluino - g : split g to u ubar or d dbar.
-          IF(KFRH.LT.100) THEN
-            KF1=1+INT(0.5D0+PYR(0))             
-            KF2=-KF1
-          ELSEIF(KFRH.LT.1000) THEN
-C...Gluino-meson: split to q + qbar.
-            KFRH=KFRH-900
-            KF1=KFRH/10
-            KF2=-MOD(KFRH,10)
-            IF(MOD(KF1,2).EQ.1) THEN
-              KF1=MOD(KFRH,10)
-              KF2=-(KFRH/10)
-            ENDIF
-c...Gluino-baryon: split to q + qq (diquark). Pick diquark at random.
-          ELSE 
-            KFRH=KFRH-9000
-            KFA=KFRH/100
-            KFB=MOD(KFRH/10,10) 
-            KFC=MOD(KFRH,10)
-            RDIQ=3D0*PYR(0)
-            IF(RDIQ.LT.1D0) THEN
-              KF1=KFA
-              KF2=1000*KFB+100*KFC+3
-              IF(KFB.NE.KFC.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ELSEIF(RDIQ.LT.2D0) THEN
-              KF1=KFB
-              KF2=1000*KFA+100*KFC+3
-              IF(KFA.NE.KFC.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ELSE
-              KF1=KFC
-              KF2=1000*KFA+100*KFB+3
-              IF(KFA.NE.KFB.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ENDIF
-          ENDIF
-C...Flip for anti-R-hadron. 
-          IF(K(I,2).LT.0) THEN
-            KFSV=KF1
-            KF1=-KF2
-            KF2=-KFSV
-          ENDIF 
-
-C...Subdivide R-hadron into gluino + 2 light (di)quarks in new slots. 
-          DO 120 I1=N+1,N+3
-            K(I1,1)=3
-            K(I1,3)=I
-            K(I1,4)=0
-            K(I1,5)=0
-            DO 110 J=1,5
-              V(I1,J)=0D0
-  110       CONTINUE
-  120     CONTINUE 
-
-C...Store new flavours.
-          K(N+1,2)=KSUSY1+21
-          K(N+2,2)=KF1
-          K(N+3,2)=KF2
-
-C...Set up colour flow.
-          K(N+1,4)=MSTU(5)*(N+3) 
-          K(N+1,5)=MSTU(5)*(N+2) 
-          K(N+2,4)=MSTU(5)*(N+1) 
-          K(N+3,5)=MSTU(5)*(N+1)
-
-C...Define effective quark/diquark masses.
-          MSTJ(93)=1 
-          PM1=PYMASS(KF1)+PMOFF         
-          MSTJ(93)=1 
-          PM2=PYMASS(KF2)+PMOFF         
-         
-C...Share gluino"hadron" momentum with two light quarks.
-          FAC1=PM1/P(I,5)
-          FAC2=PM2/P(I,5)
-          DO 130 J=1,5
-            P(N+1,J)=(1D0-FAC1-FAC2)*P(I,J)
-            P(N+2,J)=FAC1*P(I,J)
-            P(N+3,J)=FAC2*P(I,J)
-  130     CONTINUE
-
-C...If you want a displaced vertex, you could also write that info
-C...into the V array, but you have to calculate that vertex yourself.
-
-C...Mark R-hadron decayed and update number counter.
-          K(I,1)=K(I,1)+10
-          K(I,4)=N+1
-          K(I,5)=N+3
-          N=N+3
-
-C...Let gluino decay now.
-          CALL PYRESD(N-2)
-
-C...End of loop over two R-hadrons.
-        ENDIF
- 150  CONTINUE
-
-C...And then the decay products can fragment, etc.
-      CALL PYEXEC
-
-    
-      RETURN
-      END       
-
-
-CCCCCCCCCCCC
-
-C*********************************************************************
- 
-C...PYGLFR
-C... Gluino fragmentation for Regge model
- 
-      SUBROUTINE PYGLFR(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-      CHARACTER*16 CHRHAD
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.7D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-      write(*,*) 'In PYGLFR'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-         ENDIF
-C JK 
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-         PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+993
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+3
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+4,
-     &           -KFSAV(1))
-         ENDIF
-        CALL PYNAME(K(N+1,2),CHRHAD)
-        print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-
-
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-      IF(IERR.GT.0) THEN
-         WRITE(*,*) '...skipping pyexec for this event!'
-      ELSE
-c         call pylist(2)
-         CALL PYEXEC
-      ENDIF
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
- 
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-c.... ACH - check for more errors from pyexec
-      IF(MSTU(24).GT.0) THEN
-         IERR=MSTU(24)
-         WRITE(*,*) 'ACH123 IERR being set to ', IERR
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
-
-cccccccccccc
-
-C*********************************************************************
- 
-C...PYGLFRIN
-C... Gluino fragmentation for Regge model
- 
-      SUBROUTINE PYGLFRIN(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-      CHARACTER*16 CHRHAD
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.33D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-      write(*,*) 'In PYGLFRIN'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-C JK 
-         ENDIF
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-c         PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-         if(IABS(KFSAV(1)).lt.10.and.IABS(KFSAV(2)).lt.10) then
-            if(IABS(KFSAV(1)).ne.3.and.IABS(KFSAV(2)).ne.3) then
-               PMGB=P(IGL,5)+0.33
-            else
-               PMGB=P(IGL,5)+0.46
-            endif
-         else
-            PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-         endif
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+991
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            IF(KFSVMX.eq.KFSVMN.and.KFSVMX.gt.1) then
-               KFSVMN=1
-               KFSVMX=1
-            endif
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+1
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFSPIN=(MOD(KFSVMX,10)-1)/2
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
- 235        continue
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+2*KFSPIN
-     &           +2, -KFSAV(1))
-            if(KFA.eq.KFC.and.KFA.eq.KFB) goto 90
-            if(CHRHAD.eq.' '.and.KFA.eq.3) then
-               KFA=1
- 238           if(KFC.gt.KFA.or.KFB.gt.KFA.or.KFC.gt.KFB) then
-                  if(KFB.gt.KFA) then
-                     KFTMP=KFA
-                     KFA=KFB
-                     KFB=KFTMP
-                  endif
-                  if(KFC.gt.KFB) then
-                     KFTMP=KFB
-                     KFB=KFC
-                     KFC=KFTMP
-                  endif
-                  goto 238
-               endif
-               goto 235
-            endif
-            CALL PYNAME(K(N+1,2),CHRHAD)
-            if(CHRHAD(1:1).ne.'~') goto 90
-         ENDIF
-         CALL PYNAME(K(N+1,2),CHRHAD)
-         if(CHRHAD(1:1).ne.'~') goto 90
-         print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-         P(N+1,5)=PYMASS(K(N+1,2))
-         P(N+1,4)=SQRT(
-     &        P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2+P(N+1,5)**2
-     &        )
-         
-         
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-      IF(IERR.GT.0) THEN
-         WRITE(*,*) '...skipping pyexec for this event!'
-      ELSE
-c         call pylist(2)
-         CALL PYEXEC
-      ENDIF
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
- 
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-c.... ACH - check for more errors from pyexec
-      IF(MSTU(24).GT.0) THEN
-         IERR=MSTU(24)
-         WRITE(*,*) 'ACH123 IERR being set to ', IERR
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
diff --git a/Generators/PythiaRhad_i/src/PythiaRhadModified/pysthad.F b/Generators/PythiaRhad_i/src/PythiaRhadModified/pysthad.F
deleted file mode 100644
index 2219e2fdeef8b7d7ddc40d268aed68ec5ff1ddeb..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/src/PythiaRhadModified/pysthad.F
+++ /dev/null
@@ -1,1294 +0,0 @@
-C*********************************************************************
-
-C...PYSTFR
-C...Fragments the string near to a stop, to form a stop-hadron, 
-C...by producing a new q-qbar pair.
- 
-      SUBROUTINE PYSTFR(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSTFR called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of stop mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+6
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two stops per event.
-C...Identify position of stop (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the stop belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this stop-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider stop-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for stop-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for stop-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+600-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-        
-
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of stop-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align stop along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired stop hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for stop-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+600-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &    (KFSAV/10)+MOD(KFSAV,10)
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &    (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          KFSTHD=-KFSTHD
-        ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for stop-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISTOP
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two stops.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with stop hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-
-C*********************************************************************
-
-C...PYSTFRRE
-C...Fragments the string near to a stop, to form a stop-hadron, 
-C...by producing a new q-qbar pair.
-C...Regge scheme applied 
-      SUBROUTINE PYSTFRRE(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSTFRRE called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of stop mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+6
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two stops per event.
-C...Identify position of stop (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the stop belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this stop-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider stop-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for stop-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for stop-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           if(KFSAV.eq.3.or.KFSAV.eq.5) then
-              KFSAV=1
-           endif
-           if(KFSAV.eq.4) then
-              KFSAV=2
-           endif
-           if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-              KFSAV=-1
-           endif
-           if(KFSAV.eq.-4) then
-              KFSAV=-2
-           endif
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+600-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-
-        if(KFSAV.eq.3.or.KFSAV.eq.5) then
-           KFSAV=1
-        endif
-        if(KFSAV.eq.4) then
-           KFSAV=2
-        endif
-        if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-           KFSAV=-1
-        endif
-        if(KFSAV.eq.-4) then
-           KFSAV=-2
-        endif
-
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of stop-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align stop along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired stop hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for stop-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+600-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) then
-             if (KFSAV/100.ne.21) goto 90
-             KFSAV=2101
-             KFSTHD=KSUSY1+6000+
-     &            (KFSAV/10)+MOD(KFSAV,10)
-          endif
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) then
-             if (-KFSAV/100.ne.21) goto 90
-             KFSAV=-2101
-             KFSTHD=KSUSY1+6000+
-     &            (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          endif
-          KFSTHD=-KFSTHD
-        ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for stop-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISTOP
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two stops.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with stop hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-C*********************************************************************
-
-C...PYSBFRRE
-C...Fragments the string near to a sbottom, to form a sbottom-hadron, 
-C...by producing a new q-qbar pair.
-C...Regge scheme applied 
-      SUBROUTINE PYSBFRRE(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSBFR called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of sbottom mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+5
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two sbottoms per event.
-C...Identify position of sbottom (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the sbottom belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this sbottom-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider sbottom-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for sbottom-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for sbottom-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           if(KFSAV.eq.3.or.KFSAV.eq.5) then
-              KFSAV=1
-           endif
-           if(KFSAV.eq.4) then
-              KFSAV=2
-           endif
-           if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-              KFSAV=-1
-           endif
-           if(KFSAV.eq.-4) then
-              KFSAV=-2
-           endif
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+500-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+5000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+500+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+5000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-        
-
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-
-        if(KFSAV.eq.3.or.KFSAV.eq.5) then
-           KFSAV=1
-        endif
-        if(KFSAV.eq.4) then
-           KFSAV=2
-        endif
-        if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-           KFSAV=-1
-        endif
-        if(KFSAV.eq.-4) then
-           KFSAV=-2
-        endif
-
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of sbottom-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align sbottom along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired sbottom hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for sbottom-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+500-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) then
-             if (KFSAV/100.ne.21) goto 90
-             KFSAV=2101
-             KFSTHD=KSUSY1+5000+
-     &            (KFSAV/10)+MOD(KFSAV,10)
-          endif
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+500+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) then
-             if (-KFSAV/100.ne.21) goto 90
-             KFSAV=-2101
-             KFSTHD=KSUSY1+5000+
-     &            (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          endif
-          KFSTHD=-KFSTHD
-       ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for sbottom-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISBOTTOM
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two sbottoms.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with sbottom hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-
-
-C*********************************************************************
- 
-C...PYSQDC
-C...Decays the squark inside a squark-hadron.
- 
-      SUBROUTINE PYSQDC(KSQUARK)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-C...Width properties.
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-      integer indices(2)
-C...Optional offset of constituent quark/diquark mass,
-C...representing gluon cloud around squark not part of the decay.
-      PMOFF = 0.2D0
-      MWID(PYCOMP(KSQUARK))=2
-
-C...The probability that it has spin 1.
-C...(Except for identical flavours, where spin 1 is only possibility.)
-C...(Recall that all R-baryon codes were given as if spin 1, sloppily.)
-      PROBS1=0.5D0
-
-
-      print*,'In PYSQDC'
-
-C...Loop through to find R-hadrons.
-      DO 150 I=1,N
-C...If only one of the R-hadrons should decay inside the detector, 
-C...you could here pick at random whether to allow the one with 
-C...K(I,1) = 6 or the one with =7. (Where the random choice of course
-C...could depend on the position of an imagined displaced vertex.)
-c         IF(IABS(K(I,2)).gt.100000) THEN
-c            print*,"RMA: ",K(I,1),K(I,2)
-c         endif
-        IF(K(I,1).EQ.5.or.K(I,1).EQ.6.OR.K(I,1).EQ.7) THEN
-
-C...Begin resolve R-hadron flavour content to ~q + qbar or ~q + qq.
-c           print*,'RMA: PDG: ',K(I,2)
-          KFRH=(IABS(K(I,2))-KSUSY1)/10
-          KSGN=K(I,2)/IABS(K(I,2));
-c          print*, 'RMA: Stripped PDG: ',KFRH
-c          print*, 'RMA: Sign: ',KSGN
-
-C...Squark meson : Strip quark
-          IF(KFRH.LT.100) THEN
-             KFQ=MOD(KFRH,10)*(-1)*KSGN
-c             print*, 'RMA: QUARK: ',KFQ
-
-C...Squarkbaryon : Strip diquark
-          ELSEIF(KFRH.LT.1000) THEN
-             KFQ=100*MOD(KFRH,100)+3
-             KFB=MOD(KFRH/10,10) 
-             KFC=MOD(KFRH,10)
-             if(KFB.NE.KFC.AND.PROBS1.LT.PYR(0)) KFQ=KFQ-2
-             KFQ=KSGN*KFQ
-c             print*, 'RMA: DIQUARK: ',KFQ
-          endif
-
-
-C...Subdivide R-hadron into squark + 1 light (di)quark in new slots. 
-          DO 120 I1=N+1,N+2
-            K(I1,1)=3
-            K(I1,3)=I
-            K(I1,4)=0
-            K(I1,5)=0
-            DO 110 J=1,5
-              V(I1,J)=0D0
-  110       CONTINUE
-  120     CONTINUE 
-
-C...Store new flavours.
-          K(N+1,2)=KSGN*(KSQUARK)
-c          K(N+1,2)=KSGN*6
-          K(N+2,2)=KFQ
-c          print*, 'RMA: PDG1: ',K(N+1,2)
-c          print*, 'RMA: PDG2: ',K(N+2,2)
-
-
-
-c          call pylist(3)
-C...Set up colour flow. Konverter til colur singlet. Find dokumentation
-C Squark
-c          K(N+1,4)=MSTU(5)*(N+2) 
-c          K(N+1,5)=MSTU(5)*(N+2) 
-
-C Quark/Di-quark
-c          K(N+2,4)=MSTU(5)*(N+1) 
-c          K(N+2,5)=MSTU(5)*(N+1) 
-
-c Saving the indices for PYJOIN later
-          indices(1)=N+1
-          indices(2)=N+2
-
-
-C...Define effective quark/diquark masses.
-          MSTJ(93)=1 
-          PM=PYMASS(KFQ)+PMOFF         
-c          print*,'RMA: PM: ',PM
-C...Share gluino"hadron" momentum with two light quarks.
-          FAC=PM/P(I,5)
-
-          DO 130 J=1,5
-            P(N+1,J)=(1D0-FAC)*P(I,J)
-            P(N+2,J)=FAC*P(I,J)
-  130     CONTINUE
-
-C...If you want a displaced vertex, you could also write that info
-C...into the V array, but you have to calculate that vertex yourself.
-
-C...Mark R-hadron decayed and update number counter.
-          K(I,1)=K(I,1)+10
-          K(I,4)=N+1
-          K(I,5)=N+2
-          N=N+2
-          call pyjoin(2,indices)
-
-cJack          call pylist(2)
-C...Let squark decay now.
-c          print*,'RMA: Trying to decay ',N-1
-          CALL PYRESD(N-1)
-c          call pylist(2)
-C...End of loop over two R-hadrons.
-        ENDIF
- 150  CONTINUE
-
-C...And then the decay products can fragment, etc.
-      CALL PYEXEC
-
-      RETURN
-      END       
diff --git a/Generators/PythiaRhad_i/src/components/PythiaRhad_i_entries.cxx b/Generators/PythiaRhad_i/src/components/PythiaRhad_i_entries.cxx
deleted file mode 100644
index 52ea905b5d1f35be92ebde7fa49353d52999879a..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/src/components/PythiaRhad_i_entries.cxx
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "PythiaRhad_i/PythiaRhad.h"
-
-DECLARE_COMPONENT( PythiaRhad )
-
diff --git a/Generators/PythiaRhad_i/src/setecm.F b/Generators/PythiaRhad_i/src/setecm.F
deleted file mode 100644
index 8cfae5f420d65c1aec9b8d1fbfb88c19d73da53c..0000000000000000000000000000000000000000
--- a/Generators/PythiaRhad_i/src/setecm.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      SUBROUTINE SETECM(WINMATCHIG)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-#include "GeneratorFortranCommon/heprup.inc"
-      EBMUP(1)=0.5*WINMATCHIG
-      EBMUP(2)=0.5*WINMATCHIG
-
-      RETURN
-      END
diff --git a/Generators/Pythia_i/CMakeLists.txt b/Generators/Pythia_i/CMakeLists.txt
deleted file mode 100644
index cd69fe77a2ac4744999de1a7d806ebe0fcd23231..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/CMakeLists.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-################################################################################
-# Package: Pythia_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( Pythia_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs(
-   PUBLIC
-   GaudiKernel
-   Generators/AcerMC_i
-   Generators/GeneratorModules
-   Generators/Lhef_i
-   Generators/Tauola_i
-   Control/CxxUtils
-   PRIVATE
-   Control/AthenaKernel
-   Generators/AlpGen_i
-   Generators/ExoGraviton_i
-   Generators/GeneratorFortranCommon
-   Generators/GeneratorUtils
-   Generators/MadGraph_i
-   Generators/TruthUtils
-   Generators/CompHep_i
-   Generators/MadCUP_i
-   Generators/Matchig_i
-   Generators/HvGen_i
-   Generators/Protos_i
-   Tools/PathResolver )
-
-# External dependencies:
-find_package( Boost COMPONENTS filesystem thread system )
-find_package( CLHEP )
-find_package( HepMC COMPONENTS HepMC HepMCfio )
-find_package( Lhapdf )
-find_package( Pythia6 )
-
-# Remove the --as-needed linker flags:
-atlas_disable_as_needed()
-
-# Component(s) in the package:
-atlas_add_library( Pythia_iLib
-   src/setPythiaTune.cxx src/atlasTune.cxx
-   src/Pythia.cxx src/Lhefinfo.cxx src/Pydat1.cxx
-   src/Pydatr.cxx src/Pydat2.cxx src/Pydat3_62.cxx
-   src/Pyssmt.cxx src/Pysubs.cxx src/Pypars.cxx
-   src/Pymssm.cxx src/Pypued.cxx src/Pypevwt.cxx
-   src/Pymsrv.cxx src/Pyint1.cxx src/Pyint2.cxx
-   src/Pyint5.cxx src/Pytcsm.cxx src/getaddr.cxx
-   src/upinit_py.F src/upevnt_py.F src/upveto_py.F
-   src/cldcay.F src/glhefinfo.F src/gpydat2.F
-   src/gpydatr.F src/gpypars.F src/gpysubs.F
-   src/gpydat1.F src/gpydat3_62.F src/gpymssm.F
-   src/gpypued.F src/gpypevwt.F src/gpymsrv.F
-   src/gpyssmt.F src/gpyint1.F src/gpyint2.F
-   src/gpyint5.F src/gpytcsm.F src/initpyblock.F
-   src/openrandom.F src/opdcay.F src/pyr.F
-   src/extproc.F src/gatlastaula_decres_py.F src/atopyt.F
-   src/opensusyfile.F src/addParticle.F src/parout.F
-   src/setecm.F src/PythiaDummies/pyevwt.F src/PythiaDummies/pykcut.F
-   src/PythiaDummies/pytaud.F src/PythiaDummies/pytime.F
-   src/PythiaDummies/sugra.F src/PythiaDummies/visaje.F
-   src/PythiaDummies/ssmssm.F src/PythiaDummies/fhhiggscorr.F
-   src/PythiaDummies/fhsetflags.F src/PythiaDummies/fhsetpara.F
-   PUBLIC_HEADERS Pythia_i
-   INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS}
-   PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
-   ${HEPMC_INCLUDE_DIRS}
-   PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} -DPY6VERSION="${PYTHIA6_VERSION}"
-   LINK_LIBRARIES ${PYTHIA6_LIBRARIES} ${PYTHIA6_LIBRARY_DIRS}/pydata.o ${LHAPDF_LIBRARIES} GaudiKernel
-   AcerMC_i Lhef_i GeneratorModulesLib Tauola_iLib GeneratorFortranCommonLib
-   PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES}
-   ${HEPMC_LIBRARIES} AthenaKernel AlpGen_i ExoGraviton_i MadGraph_i
-   TruthUtils PathResolver CompHep_i MadCUP_i Matchig_i HvGen_i Protos_i )
-
-atlas_add_component( Pythia_i
-   src/components/*.cxx
-   LINK_LIBRARIES GaudiKernel Pythia_iLib )
-
-# Install files from the package:
-atlas_install_joboptions( share/*.py )
diff --git a/Generators/Pythia_i/Pythia_i/Lhefinfo.h b/Generators/Pythia_i/Pythia_i/Lhefinfo.h
deleted file mode 100644
index b31d0f0a698568e780fff19f83e315d24d9cda70..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Lhefinfo.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef LHEFINFO_h
-#define LHEFINFO_h
-
-extern "C" {
-  void* lhefinfo_address_();
-}
-
-/**
-@class      Lhefinfo.hh
-
-@brief      Class definition for Lhefinfo common block.
-
-@author     Sebastian Piec 
-*/
-
-class Lhefinfo {
-public:
-  Lhefinfo();
-  ~Lhefinfo();
-  
-  inline void init(); // inlined for speed of access (small function)
-
-  int& id1();
-  int& id2();
-  double& x1();
-  double& x2();
-  double& scalePdf();
-  double& xPdf1();
-  double& xPdf2();
-
-private: 
-  struct LHEFINFO;
-  friend struct LHEFINFO;
-
-  struct LHEFINFO 
-  {
-    int id1, id2;
-    double x1, x2;
-    double scalePdf, xPdf1, xPdf2;
-  };
-
-  static LHEFINFO* s_lhefinfo;
-};
-
-#include "Pythia_i/Lhefinfo.icc"
-
-#endif
-
diff --git a/Generators/Pythia_i/Pythia_i/Lhefinfo.icc b/Generators/Pythia_i/Pythia_i/Lhefinfo.icc
deleted file mode 100644
index 5ebfb4da4009b44541ed93824e0c11ea216f06fc..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Lhefinfo.icc
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Lhefinfo  
-
-// initialise pointer
-void Lhefinfo::init() 
-{
-  if ( !s_lhefinfo ) {
-    s_lhefinfo = static_cast< LHEFINFO* >( lhefinfo_address_() );
-  }
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pydat1.h b/Generators/Pythia_i/Pythia_i/Pydat1.h
deleted file mode 100644
index e97ede8e4798258a168ccfad174fcc238430337f..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat1.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pydat1_h
-#define Pydat1_h
-
-extern "C" {
-  void* pydat1_address_(void);
-}
-
-/**
-@class      Pydat1.hh
-
-@brief      Class definition for Pydat1, which is used
-      to modify the Pythia Pydat1 common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-class Pydat1 {
-public:
-  Pydat1();
-  ~Pydat1();
-  int& mstu(int n);
-  double& paru(int n);
-  int& mstj(int n);
-  double& parj(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMstu() const {return s_lenMstu;}
-  int lenParu() const {return s_lenParu;}
-  int lenMstj() const {return s_lenMstj;}
-  int lenParj() const {return s_lenParj;}
-private: 
-
-  // Lengths of MSTU and PARU COMMONS
-  static const int s_lenMstu = 200;
-  static const int s_lenParu = 200;
-  static const int s_lenMstj = 200;
-  static const int s_lenParj = 200;
-
-  struct PYDAT1;
-  friend struct PYDAT1;
-
-  struct PYDAT1 {
-  int mstu[s_lenMstu];
-  double paru[s_lenParu];
-  int mstj[s_lenMstj];
-  double parj[s_lenParj];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDAT1* s_pydat1;
-};
-
-#include "Pythia_i/Pydat1.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pydat1.icc b/Generators/Pythia_i/Pythia_i/Pydat1.icc
deleted file mode 100644
index befac7203b5832a25db5bb595a8a0da0f68c5a66..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat1.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat1
-
-// initialise pointer
-void Pydat1::init(void) {
-  if (!s_pydat1) s_pydat1 = static_cast<PYDAT1*>(pydat1_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pydat2.h b/Generators/Pythia_i/Pythia_i/Pydat2.h
deleted file mode 100644
index b0f5ba5e18d9dbcd56ea07202c85b5356d791fc0..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat2.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pydat2_h
-#define Pydat2_h
-
-extern "C" {
-  void* pydat2_address_(void);
-}
-/**
-@class      Pydat2.hh
-
-@brief      Class definition for Pydat2, which is used
-      to modify the Pythia Pydat2 common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pydat2 {
-public:
-  Pydat2();
-  ~Pydat2();
-
-  int& kchg(int kc, int i);
-  double& pmas(int kc, int i);
-  double& parf(int n);
-  double& vckm(int i, int j);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int depthKchg() const {return s_depthKchg;}
-  int lenPmas() const {return s_lenPmas;}
-  int depthPmas() const {return s_depthPmas;}
-  int lenParf() const {return s_lenParf;}
-  int lenVckm() const {return s_lenVckm;}
-private: 
-
-  // Lengths of array in PYDAT2 common
-  static const int s_lenPmas   = 500;
-  static const int s_depthPmas = 4;
-  static const int s_depthKchg = 4;
-  static const int s_lenParf   = 2000;
-  static const int s_lenVckm = 4;
-
-  struct PYDAT2;
-  friend struct PYDAT2;
-  struct PYDAT2 {
-  int kchg[s_depthKchg][s_lenPmas];
-  double pmas[s_depthPmas][s_lenPmas];
-  double parf[s_lenParf];
-  double vckm[s_lenVckm][s_lenVckm];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDAT2* s_pydat2;
-};
-
-#include "Pythia_i/Pydat2.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pydat2.icc b/Generators/Pythia_i/Pythia_i/Pydat2.icc
deleted file mode 100644
index 83bd076d14ab26ea5327ccae1f2c8caacb510964..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat2.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat2
-
-// initialise pointer
-void Pydat2::init(void) {
-  if (!s_pydat2) s_pydat2 = static_cast<PYDAT2*>(pydat2_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pydat3.h b/Generators/Pythia_i/Pythia_i/Pydat3.h
deleted file mode 100644
index 380fdfddcb49e92b0152be2ddff96778fcadf362..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat3.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pydat3_h
-#define Pydat3_h
-
-extern "C" {
-  void* pydat3_address_(void);
-}
-/**
-@class      Pydat3.hh
-
-@brief      Class definition for Pydat3, which is used
-      to modify the Pythia Pydat3 common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pydat3 {
-public:
-  Pydat3();
-  ~Pydat3();
-
-  int& mdcy(int kc, int i);
-  int& mdme(int idc, int i);
-  double& brat(int idc);
-  int& kfdp(int idc, int kf);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMdcy() const {return s_lenMdcy;}
-  int depthMdcy() const {return s_depthMdcy;}
-  int lenMdme() const {return s_lenMdme;}
-  int depthMdme() const {return s_depthMdme;}
-  int lenBrat() const {return s_lenBrat;}
-  int lenKfdp() const {return s_lenKfdp;}
-  int depthKfdp() const {return s_depthKfdp;}
-private: 
-
-  // Lengths of array in PYDAT2 common
-  static const int s_lenMdcy = 500;
-  static const int s_depthMdcy = 3;
-  static const int s_lenMdme = 8000;
-  static const int s_depthMdme = 2;
-  static const int s_lenBrat = 8000;
-  static const int s_lenKfdp = 8000;
-  static const int s_depthKfdp = 5;
-
-  struct PYDAT3;
-  friend struct PYDAT3;
-  struct PYDAT3 {
-    int mdcy[s_depthMdcy][s_lenMdcy];
-    int mdme[s_depthMdme][s_lenMdme];
-    double brat[s_lenBrat];
-    int kfdp[s_depthKfdp][s_lenKfdp];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDAT3* s_pydat3;
-};
-
-#include "Pythia_i/Pydat3.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pydat3.icc b/Generators/Pythia_i/Pythia_i/Pydat3.icc
deleted file mode 100644
index 78bb20f45ba050f6062d39f186fdb8a52d08c98f..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat3.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat3
-
-// initialise pointer
-void Pydat3::init(void) {
-  if (!s_pydat3) s_pydat3 = static_cast<PYDAT3*>(pydat3_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pydat3_61.h b/Generators/Pythia_i/Pythia_i/Pydat3_61.h
deleted file mode 100644
index df6c7e0bf458038bd53650a295d6b0b89a0cc209..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat3_61.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pydat3_h
-#define Pydat3_h
-
-extern "C" {
-  void* pydat3_address_(void);
-}
-
-/**
-
-@class      Pydat3.hh
-
-@brief      Class definition for Pydat3, which is used
-      to modify the Pythia Pydat3 common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pydat3 {
-public:
-  Pydat3();
-  ~Pydat3();
-
-  int& mdcy(int kc, int i);
-  int& mdme(int idc, int i);
-  double& brat(int idc);
-  int& kfdp(int idc, int kf);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMdcy() const {return _lenMdcy;}
-  int depthMdcy() const {return _depthMdcy;}
-  int lenMdme() const {return _lenMdme;}
-  int depthMdme() const {return _depthMdme;}
-  int lenBrat() const {return _lenBrat;}
-  int lenKfdp() const {return _lenKfdp;}
-  int depthKfdp() const {return _depthKfdp;}
-private: 
-
-  // Lengths of array in PYDAT2 common
-  static const int _lenMdcy = 500;
-  static const int _depthMdcy = 3;
-  static const int _lenMdme = 4000;
-  static const int _depthMdme = 2;
-  static const int _lenBrat = 4000;
-  static const int _lenKfdp = 4000;
-  static const int _depthKfdp = 5;
-
-  struct PYDAT3;
-  friend struct PYDAT3;
-  struct PYDAT3 {
-    int mdcy[_depthMdcy][_lenMdcy];
-    int mdme[_depthMdme][_lenMdme];
-    double brat[_lenBrat];
-    int kfdp[_depthKfdp][_lenKfdp];
-  };
-  int _dummy;
-  double _realdummy;
-  static PYDAT3* _pydat3;
-};
-
-#include "Pythia_i/Pydat3.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pydat3_61.icc b/Generators/Pythia_i/Pythia_i/Pydat3_61.icc
deleted file mode 100644
index b609dd187f48400c5fca60d59f555d22103017cf..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat3_61.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat3
-
-// initialise pointer
-void Pydat3::init(void) {
-  if (!_pydat3) _pydat3 = static_cast<PYDAT3*>(pydat3_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pydat3_62.h b/Generators/Pythia_i/Pythia_i/Pydat3_62.h
deleted file mode 100644
index 9e96629cbb1e74df4de79d1a0ce7d600c955d2eb..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat3_62.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pydat3_h
-#define Pydat3_h
-
-extern "C" {
-  void* pydat3_address_(void);
-}
-
-/**
-@class Pydat3.hh
-
-@brief Description:
-      Class definition for Pydat3, which is used
-      to modify the Pythia Pydat3 common.
-
- Environment:
-      CDF Run 2
-
-@author       Chris Green,   Purdue University
-      
-Stan Thompson, Glasgow University    
-
-
- Pythia Common access method
-*/
-
-class Pydat3 {
-public:
-  Pydat3();
-  ~Pydat3();
-
-  int& mdcy(int kc, int i);
-  int& mdme(int idc, int i);
-  double& brat(int idc);
-  int& kfdp(int idc, int kf);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMdcy() const {return s_lenMdcy;}
-  int depthMdcy() const {return s_depthMdcy;}
-  int lenMdme() const {return s_lenMdme;}
-  int depthMdme() const {return s_depthMdme;}
-  int lenBrat() const {return s_lenBrat;}
-  int lenKfdp() const {return s_lenKfdp;}
-  int depthKfdp() const {return s_depthKfdp;}
-private: 
-
-  // Lengths of array in PYDAT2 common
-  static const int s_lenMdcy = 500;
-  static const int s_depthMdcy = 3;
-  static const int s_lenMdme = 8000;
-  static const int s_depthMdme = 2;
-  static const int s_lenBrat = 8000;
-  static const int s_lenKfdp = 8000;
-  static const int s_depthKfdp = 5;
-
-  struct PYDAT3;
-  friend struct PYDAT3;
-  struct PYDAT3 {
-    int mdcy[s_depthMdcy][s_lenMdcy];
-    int mdme[s_depthMdme][s_lenMdme];
-    double brat[s_lenBrat];
-    int kfdp[s_depthKfdp][s_lenKfdp];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDAT3* s_pydat3;
-};
-
-#include "Pythia_i/Pydat3.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pydat3_62.icc b/Generators/Pythia_i/Pythia_i/Pydat3_62.icc
deleted file mode 100644
index b609dd187f48400c5fca60d59f555d22103017cf..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydat3_62.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydat3
-
-// initialise pointer
-void Pydat3::init(void) {
-  if (!_pydat3) _pydat3 = static_cast<PYDAT3*>(pydat3_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pydatr.h b/Generators/Pythia_i/Pythia_i/Pydatr.h
deleted file mode 100644
index 2377c4101e897c8743f7cb14b1e9f471a3e5e05d..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydatr.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pydatr_h
-#define Pydatr_h
-
-extern "C" {
-  void* pydatr_address_(void);
-}
-
-/**
-@class     Pydatr.hh
-
-@brief Description:
-      Class definition for Pydatr, which is used
-      to modify the Pythia Pydatr common.
-
- Environment:
-      CDF Run 2
-
-@author
-      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-class Pydatr {
-public:
-  Pydatr();
-  ~Pydatr();
-  int& mrpy(int n);
-  double& rrpy(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMrpy() const {return s_lenMrpy;}
-  int lenRrpy() const {return s_lenRrpy;}
-private: 
-
-  // Lengths of array in PYDATR common
-  static const int s_lenMrpy = 6;
-  static const int s_lenRrpy = 100;
-  struct PYDATR;
-  friend struct PYDATR;
-  struct PYDATR {
-  int mrpy[s_lenMrpy];
-  double rrpy[s_lenRrpy];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYDATR* s_pydatr;
-};
-
-#include "Pythia_i/Pydatr.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pydatr.icc b/Generators/Pythia_i/Pythia_i/Pydatr.icc
deleted file mode 100644
index 273eee3d694b727b589a2290c5bd308403d3ac76..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pydatr.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pydatr
-
-// initialise pointer
-void Pydatr::init(void) {
-  if (!s_pydatr) s_pydatr = static_cast<PYDATR*>(pydatr_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pyint1.h b/Generators/Pythia_i/Pythia_i/Pyint1.h
deleted file mode 100644
index 5da7c676d0a8e81683f73d3a6aa10bf550eb4cc5..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pyint1.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pyint1_h
-#define Pyint1_h
-extern "C" {
-  void* pyint1_address_(void);
-}
-/**
-@class      Pyint1.h
-
-@brief      Class definition for Pyint1, which is used
-      to modify the Pythia Pyint1 common.
-
- Environment:
-     ATLAS/ATHENA
-
-@author      Elzbieta Richter-Was, Cracow INP  
-
- Pythia Common access method
-*/
-
-class Pyint1 {
-public:
-  Pyint1();
-  ~Pyint1();
-  int& mint(int n);
-  double& vint(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMint() const {return s_lenMint;}
-  int lenVint() const {return s_lenVint;}
-private: 
-
-  // Lengths of MINT and VINT COMMONS
-  static const int s_lenMint = 400;
-  static const int s_lenVint = 400;
- 
-  struct PYINT1;
-  friend struct PYINT1;
-
-  struct PYINT1 {
-  int mint[s_lenMint];
-  double vint[s_lenVint];
-  };        
-  int m_dummy;
-  double m_realdummy;
-  static PYINT1* s_pyint1;
-};
-#include "Pythia_i/Pyint1.icc"
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pyint1.icc b/Generators/Pythia_i/Pythia_i/Pyint1.icc
deleted file mode 100644
index c8a9d1e3ce36388de606f0ae2c96c9d342120c40..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pyint1.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pyint1
-
-// initialise pointer
-void Pyint1::init(void) {
-  if (!s_pyint1) s_pyint1 = static_cast<PYINT1*>(pyint1_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pyint2.h b/Generators/Pythia_i/Pythia_i/Pyint2.h
deleted file mode 100644
index 68694932e59cce6c0768ff2bc7515996fd598f04..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pyint2.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pyint2_h
-#define Pyint2_h
-
-extern "C" {
-  void* pyint2_address_(void);
-}
-/**
-
-@class      Pyint2.h
-
-@brief      Class definition for Pyint2, which is used
-      to modify the Pythia Pyint2 common.
-
- Environment:
-      ATLAS/ATHENA
-
-@author      Ian Hinchliffe LBNL  
-
- Pythia Common access method
-*/
-
-class Pyint2 {
-public:
-  Pyint2();
-  ~Pyint2();
-  int& iset(int n);
-  int& kfpr(int n, int i);
-  double& coef(int n, int i);
-  int& icol(int n,int i,int j);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenIset() const {return s_lenIset;}
-  int depthKfpr() const {return s_depthKfpr;}
-  int lenKfpr() const {return s_lenKfpr;}
-  int lenCoef() const {return s_lenCoef;}
-  int depthCoef() const {return s_depthCoef;}
-  int lenIcol() const {return s_lenIcol;}
-  int depthIcol() const {return s_depthIcol;}
-  int widthIcol() const {return s_widthIcol;}
-private: 
-
-  // Lengths of ISET and KFPR COMMONS
-  static const int s_lenIset = 500;
-  static const int s_lenKfpr = 500;
-  static const int s_depthKfpr = 2; 
-  static const int s_lenCoef = 500;
-  static const int s_depthCoef = 20; 
-  static const int s_lenIcol = 40;
-  static const int s_depthIcol = 4; 
-  static const int s_widthIcol = 2; 
-
-  struct PYINT2;
-  friend struct PYINT2;
-
-  struct PYINT2 {
-  int iset[s_lenIset];
-  int kfpr[s_depthKfpr][s_lenKfpr];
-  double coef[s_depthCoef][s_lenCoef];
-  int icol[s_widthIcol][s_depthIcol][s_lenIcol];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYINT2* s_pyint2;
-};
-
-#include "Pythia_i/Pyint2.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pyint2.icc b/Generators/Pythia_i/Pythia_i/Pyint2.icc
deleted file mode 100644
index 7687be646c47a55e902d941a9fd30a6755feadbe..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pyint2.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pyint2
-
-// initialise pointer
-void Pyint2::init(void) {
-  if (!s_pyint2) s_pyint2 = static_cast<PYINT2*>(pyint2_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pyint5.h b/Generators/Pythia_i/Pythia_i/Pyint5.h
deleted file mode 100644
index 5f529f58eda61c4cd028c020d3348a6b51651ea2..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pyint5.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Pyint5_h
-#define Pyint5_h
-
-extern "C" {
-  void* pyint5_address_(void);
-}
-/**
-@class      Pyint5.h
-
-@brief      Class definition for Pyint5, which is used
-      to modify the Pythia Pyint5 common.
-
- Environment:
-      ATLAS/ATHENA
-
-@author      Ian Hinchliffe LBNL  
-
- Pythia Common access method
-*/
-
-class Pyint5 {
-public:
-  Pyint5();
-  ~Pyint5();
-  int& ngenpd();
-  int& ngen(int n, int i);
-  double& xsec(int n, int i);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int depthNgen() const {return s_depthNgen;}
-  int lenNgen() const {return s_lenNgen;}
-  int lenXsec() const {return s_lenXsec;}
-  int depthXsec() const {return s_depthXsec;}
-private: 
-
-  // Lengths of NGENPD and NGEN COMMONS
-  static const int s_lenNgen = 501;
-  static const int s_depthNgen = 3; 
-  static const int s_lenXsec = 501;
-  static const int s_depthXsec = 3; 
-
-  struct PYINT5;
-  friend struct PYINT5;
-
-  struct PYINT5 {
-  int ngenpd;
-  int ngen[s_depthNgen][s_lenNgen];
-  double xsec[s_depthXsec][s_lenXsec];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYINT5* s_pyint5;
-};
-
-#include "Pythia_i/Pyint5.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pyint5.icc b/Generators/Pythia_i/Pythia_i/Pyint5.icc
deleted file mode 100644
index 73afaa3afe5963410da6e5f4afb1a68012c63772..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pyint5.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pyint5
-
-// initialise pointer
-void Pyint5::init(void) {
-  if (!s_pyint5) s_pyint5 = static_cast<PYINT5*>(pyint5_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pymsrv.h b/Generators/Pythia_i/Pythia_i/Pymsrv.h
deleted file mode 100644
index b27d494654a545629561a5d468ce4d7cf67c1d29..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pymsrv.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
-*/
-
-//--------------------------------------------------------------------------
-// File and Version Information:
-//      Pymsrv.hh
-//
-// Description:
-//      Class definition for Pymsrv, which is used
-//      to modify the Pythia Pymsrv common.
-//
-//
-// Author List:
-//      Claus Horn
-//
-//------------------------------------------------------------------------
-// Pythia Common access method
-#ifndef PYMSRV_H
-#define PYMSRV_H
-
-#include "CxxUtils/unused.h"
-
-extern "C" {
-  void* pymsrv_address_(void);
-}
-
-class Pymsrv {
-public:
-  Pymsrv();
-  ~Pymsrv();
-
-  double& rvlam(int n);
-  double& rvlamp(int n);
-  double& rvlamb(int n);
-
-  int lenRVlam() const {return 27;}
-  int lenRVlamp() const {return 27;}
-  int lenRVlamb() const {return 27;}
-
-  inline void init();
-
-private: 
-
-  struct PYMSRV;
-  friend struct PYMSRV;
-
-  struct PYMSRV {
-    double rvlam[3][3][3];
-    double rvlamp[3][3][3];
-    double rvlamb[3][3][3];
-  };
-
-  double ATH_UNUSED_MEMBER(m_dummy);
-  double ATH_UNUSED_MEMBER(m_realdummy);
-
-  static PYMSRV* s_pymsrv;
-};
-
-#include "Pythia_i/Pymsrv.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pymsrv.icc b/Generators/Pythia_i/Pythia_i/Pymsrv.icc
deleted file mode 100644
index c12fd8bc7d1dff0706678fe388c6fe613a8da9c6..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pymsrv.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pymsrv
-
-// initialise pointer
-void Pymsrv::init(void) {
-  if (!s_pymsrv) s_pymsrv = static_cast<PYMSRV*>(pymsrv_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pymssm.h b/Generators/Pythia_i/Pythia_i/Pymssm.h
deleted file mode 100644
index 00fc92718fa166eb4907c6582a0d7a4d50e28040..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pymssm.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef PYMSSM_H
-#define PYMSSM_H
-
-extern "C" {
-  void* pymssm_address_(void);
-}
-/**
-@class      Pymssm.hh
-
-@brief      Class definition for Pymssm, which is used
-      to modify the Pythia Pymssm common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-class Pymssm {
-public:
-  Pymssm();
-  ~Pymssm();
-
-  int& imss(int n);
-  double& rmss(int n);
-
-  int lenImss() const {return s_lenImss;}
-  int lenRmss() const {return s_lenRmss;}
-
-  inline void init();
-
-private: 
-
-  static const int s_lenImss = 100;
-  static const int s_lenRmss = 100;
-
-  struct PYMSSM;
-  friend struct PYMSSM;
-
-  struct PYMSSM {
-    int imss[s_lenImss];
-    double rmss[s_lenRmss];
-  };
-
-  int m_dummy;
-  double m_realdummy;
-
-  static PYMSSM* s_pymssm;
-};
-
-#include "Pythia_i/Pymssm.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pymssm.icc b/Generators/Pythia_i/Pythia_i/Pymssm.icc
deleted file mode 100644
index f7657d2ce9477772def020ed3eb9499394d73824..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pymssm.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pymssm
-
-// initialise pointer
-void Pymssm::init(void) {
-  if (!s_pymssm) s_pymssm = static_cast<PYMSSM*>(pymssm_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pypars.h b/Generators/Pythia_i/Pythia_i/Pypars.h
deleted file mode 100644
index 0ab44a22ccef3bb89fdc3ec555dd4aec6bf611e4..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pypars.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pypars_h
-#define Pypars_h
-
-extern "C" {
-  void* pypars_address_(void);
-}
-/**
-@class      Pypars.hh
-
-@brief      Class definition for Pypars, which is used
-      to modify the Pythia Pypars common.
-
- Environment:
-      CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pypars {
-public:
-  Pypars();
-  ~Pypars();
-  int& mstp(int n);
-  double& parp(int n);
-  int& msti(int n);
-  double& pari(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMstp() const {return s_lenMstp;}
-  int lenParp() const {return s_lenParp;}
-  int lenMsti() const {return s_lenMsti;}
-  int lenPari() const {return s_lenPari;}
-private: 
-
-  // Lengths of MSTU and PARU COMMONS
-  static const int s_lenMstp = 200;
-  static const int s_lenParp = 200;
-  static const int s_lenMsti = 200;
-  static const int s_lenPari = 200;
-
-  struct PYPARS;
-  friend struct PYPARS;
-  struct PYPARS {
-  int mstp[s_lenMstp];
-  double parp[s_lenParp];
-  int msti[s_lenMsti];
-  double pari[s_lenPari];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYPARS* s_pypars;
-};
-
-#include "Pythia_i/Pypars.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pypars.icc b/Generators/Pythia_i/Pythia_i/Pypars.icc
deleted file mode 100644
index fa7d61023695bf45bdd7e29a6903f942e3a95d68..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pypars.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pypars
-
-// initialise pointer
-void Pypars::init(void) {
-  if (!s_pypars) s_pypars = static_cast<PYPARS*>(pypars_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pypevwt.h b/Generators/Pythia_i/Pythia_i/Pypevwt.h
deleted file mode 100644
index 69c6fd600aa14071ce2e00ae4622911548a1b4be..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pypevwt.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYPEVWT_H
-#define PYPEVWT_H
-
-extern "C"{
-  void* pypevwt_address_(void);
-}
-
-/**
-@class      Pypevwt.h
-
-@brief      Class definition for Pypevwt, which is used
-            to modify the Pythia Pypevwt common block that holds variables related
-            to event weighting.
-        
-@author     Eric Feng (Chicago):  Eric.Feng@cern.ch,   March 2010
-
-*/
-
-class Pypevwt 
-{
-  //______________________________________________________________________
-  //public methods and members
-  public:
-
-  //constructor and destructor
-  Pypevwt();
-  ~Pypevwt();
-  
-  int& ievwt(int n);
-  double& revwt(int n);
-
-  int lenIevwt() const {return s_lenIevwt;}
-  int lenRevwt() const {return s_lenRevwt;}
-
-  //PYPEVWT* _pypevwt initialization
-  inline void init();
-  //______________________________________________________________________
-  //private methods and members
- private: 
-  
-  static const int s_lenIevwt = 100;
-  static const int s_lenRevwt = 100;
-
-  //PYPEVWT common block declaration and members
-  struct PYPEVWT;
-  friend struct PYPEVWT;
-
-  struct PYPEVWT
-  {
-    int ievwt[s_lenIevwt];
-    double revwt[s_lenRevwt];
-  };
-
-  int m_dummy;
-  double m_realdummy;
-
-  static PYPEVWT* s_pypevwt;
-};
-
-#include "Pythia_i/Pypevwt.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pypevwt.icc b/Generators/Pythia_i/Pythia_i/Pypevwt.icc
deleted file mode 100644
index 1dec09ba1e1678ed615a0052fde6ac40aa726215..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pypevwt.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pypevwt
-
-// initialise pointer
-void Pypevwt::init(void) {
-  if (!s_pypevwt) s_pypevwt = static_cast<PYPEVWT*>(pypevwt_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pypued.h b/Generators/Pythia_i/Pythia_i/Pypued.h
deleted file mode 100644
index 0ea86430c149c077b94024e2a3943c786a586f27..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pypued.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYPUED_H
-#define PYPUED_H
-
-extern "C"{
-  void* pypued_address_(void);
-}
-
-/**
-@class      Pypued.hh
-
-@brief      Class definition for Pypued, which is used
-            to modify the Pythia Pypued common block, which holds variables related
-            to the Universal Extra Dimensions model.
-@author
-
-            L. Mijovic (liza.mijovic@cern.ch), Oct. 2008
-
-*/
-
-class Pypued 
-{
-  //______________________________________________________________________
-  //public methods and members
-  public:
-
-  //constructor and destructor
-  Pypued();
-  ~Pypued();
-  
-  int& iued(int n);
-  double& rued(int n);
-
-  int lenIued() const {return s_lenIued;}
-  int lenRued() const {return s_lenRued;}
-
-  //PYPUED* _pypued initialization
-  inline void init();
-  //______________________________________________________________________
-  //private methods and members
- private: 
-  
-  static const int s_lenIued = 100;
-  static const int s_lenRued = 100;
-
-  //PYPUED common block declaration and members
-  struct PYPUED;
-  friend struct PYPUED;
-
-  struct PYPUED
-  {
-    int iued[s_lenIued];
-    double rued[s_lenRued];
-  };
-
-  int m_dummy;
-  double m_realdummy;
-
-  static PYPUED* s_pypued;
-};
-
-#include "Pythia_i/Pypued.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pypued.icc b/Generators/Pythia_i/Pythia_i/Pypued.icc
deleted file mode 100644
index e613b6b81ed2c2d191a720853839d2ad93071ec3..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pypued.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pypued
-
-// initialise pointer
-void Pypued::init(void) {
-  if (!s_pypued) s_pypued = static_cast<PYPUED*>(pypued_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pyssmt.h b/Generators/Pythia_i/Pythia_i/Pyssmt.h
deleted file mode 100644
index 69181b0419a493577027e7cae2f981d84ad739ef..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pyssmt.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef PYSSMT_H
-#define PYSSMT_H
-
-extern "C" {
-  void* pyssmt_address_(void);
-}
-/**
-
-@class      Pyssmt.hh
-
-@brief      Class definition for Pyssmt, which is used
-      to modify the Pythia Pyssmt common.
-
- Environment:
-      CDF Run 2
-
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-class Pyssmt {
-public:
-  Pyssmt();
-  ~Pyssmt();
-
-  const double& zmix(int i, int j) const;
-  const double& umix(int i, int j) const;
-  const double& vmix(int i, int j) const;
-  const double& smz(int i) const;
-  const double& smw(int i) const;
-  const double& sfmix(int i, int j) const;
-
-  inline void init();
-
-private: 
-
-  static const int s_sizeZmix = 4;
-  static const int s_sizeUmix = 2;
-  static const int s_sizeVmix = 2;
-  static const int s_lenSmz = 4;
-  static const int s_lenSmw = 2;
-  static const int s_lenSfmix = 4;
-  static const int s_widthSfmix = 16;
-
-  struct PYSSMT;
-  friend struct PYSSMT;
-
-  struct PYSSMT {
-    double zmix[s_sizeZmix][s_sizeZmix];
-    double umix[s_sizeUmix][s_sizeUmix];
-    double vmix[s_sizeVmix][s_sizeVmix];
-    double smz[s_lenSmz];
-    double smw[s_lenSmw];
-    double sfmix[s_lenSfmix][s_widthSfmix];
-  };
-
-  mutable int m_dummy;
-  mutable double m_realdummy;
-
-  static PYSSMT const * s_pyssmt;
-};
-
-#include "Pythia_i/Pyssmt.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pyssmt.icc b/Generators/Pythia_i/Pythia_i/Pyssmt.icc
deleted file mode 100644
index b29d597c6453df77ae20f913a55fe99906d6cc71..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pyssmt.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pyssmt
-
-// initialise pointer
-void Pyssmt::init(void) {
-  if (!s_pyssmt) s_pyssmt = static_cast<PYSSMT*>(pyssmt_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pysubs.h b/Generators/Pythia_i/Pythia_i/Pysubs.h
deleted file mode 100644
index 16d2ff9f4ce378456ad3bb13fdfcc412b5600d36..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pysubs.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#ifndef Pysubs_h
-#define Pysubs_h
-
-extern "C" {
-  void* pysubs_address_(void);
-}
-
-/**
-@class      Pysubs.hh
-
-@brief      Class definition for Pysubs, which is used
-      to modify the Pythia Pysubs common.
-
- Environment:
-     CDF Run 2
-
-@author      Chris Green,   Purdue University
-      Stan Thompson, Glasgow University    
-
- Pythia Common access method
-*/
-
-class Pysubs {
-public:
-  Pysubs();
-  ~Pysubs();
-  int& msel(); 
-  int& msub(int n);
-  int& kfin(int iside, int jflav);
-  double& ckin(int n);
-  inline void init(); // inlined for speed of access (small function)
-  // return common array lengths
-  int lenMsub() const {return s_lenMsub;}
-  int lenCkin() const {return s_lenCkin;}
-  int lenKfin() const {return s_lenKfin;}
-  int depthKfin() const {return s_depthKfin;}
-private: 
-
-  // Lengths of array in PYSUBS common
-  static const int s_lenMsub = 500;
-  static const int s_lenCkin = 200;
-  static const int s_lenKfin = 81;
-  static const int s_depthKfin = 2;
-
-  struct PYSUBS;
-  friend struct PYSUBS;
-  struct PYSUBS {
-  int msel;
-  int padding;
-  int msub[s_lenMsub];
-  int kfin[s_lenKfin][s_depthKfin];
-  double ckin[s_lenCkin];
-  };
-  int m_dummy;
-  double m_realdummy;
-  static PYSUBS* s_pysubs;
-};
-
-#include "Pythia_i/Pysubs.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pysubs.icc b/Generators/Pythia_i/Pythia_i/Pysubs.icc
deleted file mode 100644
index ba48892423c5e63ef4e2ce9a4245c6110146692a..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pysubs.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pysubs
-
-// initialise pointer
-void Pysubs::init(void) {
-  if (!s_pysubs) s_pysubs = static_cast<PYSUBS*>(pysubs_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pytcsm.h b/Generators/Pythia_i/Pythia_i/Pytcsm.h
deleted file mode 100644
index bdc084da4fb01aede2dc11d04801e73fbaac8178..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pytcsm.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PYTCSM_H
-#define PYTCSM_H
-
-extern "C" {
-  void* pytcsm_address_(void);
-}
-/**
-@class   Pytcsm.hh
-
-@brief Description:
-      Class definition for Pytcsm, which is used
-      to modify the Pythia Pytcsm common.
-
-@author      Georgios Stavropoulos, U.C. Berkeley
-
- Pythia Common access method
-*/
-class Pytcsm {
-public:
-  Pytcsm();
-  ~Pytcsm();
-
-  int& itcm(int n);
-  double& rtcm(int n);
-
-  int lenItcm() const {return s_lenItcm;}
-  int lenRtcm() const {return s_lenRtcm;}
-
-  inline void init();
-
-private: 
-
-  static const int s_lenItcm = 100;
-  static const int s_lenRtcm = 100;
-
-  struct PYTCSM;
-  friend struct PYTCSM;
-
-  struct PYTCSM {
-    int itcm[s_lenItcm];
-    double rtcm[s_lenRtcm];
-  };
-
-  int m_dummy;
-  double m_realdummy;
-
-  static PYTCSM* s_pytcsm;
-};
-
-#include "Pythia_i/Pytcsm.icc"
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/Pytcsm.icc b/Generators/Pythia_i/Pythia_i/Pytcsm.icc
deleted file mode 100644
index d6ab0487e908c2aff171eaef95dd78ebda31a55b..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pytcsm.icc
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// Inline implementations for Pytcsm
-
-// initialise pointer
-void Pytcsm::init(void) {
-  if (!s_pytcsm) s_pytcsm = static_cast<PYTCSM*>(pytcsm_address_());
-}
-
diff --git a/Generators/Pythia_i/Pythia_i/Pythia.h b/Generators/Pythia_i/Pythia_i/Pythia.h
deleted file mode 100644
index ae998e8f3448aaaf00ce9b8ad143d92e6a7237c0..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/Pythia.h
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENERATORMODULESPYTHIA_H
-#define GENERATORMODULESPYTHIA_H
-
-#include "GeneratorModules/GenModule.h"
-
-#include "Pythia_i/Pydat1.h"
-#include "Pythia_i/Pydat2.h"
-#include "Pythia_i/Pydat3.h"
-#include "Pythia_i/Pysubs.h"
-#include "Pythia_i/Pypars.h"
-#include "Pythia_i/Pydatr.h"
-#include "Pythia_i/Pymssm.h"
-#include "Pythia_i/Pypued.h"
-#include "Pythia_i/Pypevwt.h"
-#include "Pythia_i/Pymsrv.h"
-#include "Pythia_i/Pyint1.h"
-#include "Pythia_i/Pyint2.h"
-#include "Pythia_i/Pyint5.h"
-#include "Pythia_i/Pytcsm.h"
-
-#include "AcerMC_i/AcerMC_acset.h"
-#include "Tauola_i/Atlas_HEPEVT.h"
-
-/// @todo Not in a header file!
-using std::string;
-
-/// @todo Inside class (these are being declared as global symbols)
-typedef std::vector<std::string> CommandVector;
-typedef std::vector<std::string> PygiveCommandVector;
-
-// Forward declaration of RNG service interface
-class IAtRndmGenSvc;
-
-
-/**
-@brief This code is used to get a PYTHIA Monte Carlo event.
-
-    genInitialize() is used to read parameters
-
-    setPythiaTune() is used to choose Pythia parameter set used
-
-    callGenerator() makes the event
-
-    genFinalize() writes log files etc
-
-    fillEvt(HepMC::GenEvent* evt) passes the event to HepMC
-
-    The output will be stored in the transient event store so it can be
-    passed to the simulation.
-
-@author
-
-     Ian Hinchliffe, June 2000 (modelled on the CDF code by Stan Thompson)
-     
-     Added access to pyint2 common, Feb 2001
-     
-     Added access to pyint5 common, Feb 2002
-
-	 Added access to lesatlas common not part of pythia but needed for external process, May 2002
-
-	 Added access to pyint1 common, Sept 2002
-
-	 Ewelina Lobodzinska: Doxygen doc added, Jan 2008
-     
-     Added access to UED common block pypued, Oct 2008 
-
-     Liza Mijovic: Changes to move Pythia ATLAS tune from Pythia_i + jO to Pythia_i, May 2009
-
-     Liza Mijovic: Tune choice schema implementation, Aug 2009
-     added event weight common block pypevwt, March 2010, E. Feng (Chicago) <Eric.Feng@cern.ch>
-*/
-
-
-class Pythia : public GenModule {
-public:
-
-  /// @name Construction / destruction
-  //@{
-  /// Standard constructor
-  Pythia(const std::string& name, ISvcLocator* pSvcLocator);
-  /// Destructor
-  virtual ~Pythia();
-  //@}
-
-
-  /// @name Event loop methods
-  //@{
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode genFinalize();
-  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
-  //@}
-
-
-  /// @name Tune switches
-  /// @brief ATLAS tune and parameters implementation, introduced for MC09/MC08. See atlasTune.cxx
-  //@{
-
-  /// Set tune via function call 
-  virtual StatusCode setPythiaTune();
-
-  /// Use current ATLAS tune 
-  virtual StatusCode atlasTune();
-
-  //@}
-
-
-  /// @ name Accessors to PYTHIA COMMONS
-  //@{
-  Pydat1& pydat1();
-  Pydat2& pydat2();
-  Pydat3& pydat3();
-  Pysubs& pysubs();
-  Pypars& pypars();
-  Pydatr& pydatr();
-  Pymssm& pymssm();
-  Pypued& pypued();
-  Pypevwt& pypevwt();
-  Pymsrv& pymsrv();
-  Pyint1& pyint1();
-  Pyint2& pyint2();
-  Pyint5& pyint5();
-  Pytcsm& pytcsm();
-  //@}
-
-  /// Accessor for external processes
-  AcerMC_acset& acermc_acset();
-
-  // Pointer to AtRndmGenSvc
-  static IAtRndmGenSvc* p_AtRndmGenSvc;
-  static std::string pythia_stream;
-
-
-protected:
-
-  // Settable Properties
-
-  /// @name Inputs to @c pyinit
-  //@{
-  std::string m_frame;
-  std::string m_external; //to specify the specific process when m_frame is set to user
-  std::string m_beam;
-  std::string m_target;
-  double m_win;
-  //@}
-
-
-  /// Tune setting, assumed form is  m_Default_Tune_Name=TUNETYPE_TUNEINDEX
-  std::string m_Tune_Name;  
-
-  /// PYGIVE argument as C string
-  const char* m_pygive_cstr;
-  const char* m_pygive_init_cstr;
-  const char* m_pygive_gen_cstr;
-
-  /// @name Various input parameters
-  //@{
-  int  m_msel;
-  int  m_firstlistevent;
-  int  m_lastlistevent;
-  int  m_eventlistlevel;
-  std::vector<int>  m_pystatlistlevel;
-  int  m_initlistlevel;
-  int  m_randomseed;
-  std::string  m_envval1;
-  int  m_fortout;
-  //@}
-
-  /// @name Random file numbers, offsets, etc.
-  //@{
-  std::string  m_RndmFileName;
-  int	m_RndmFileNumber;
-  int	m_RndmSwitch;
-  int	m_RndmFirstEvent;
-  int	m_RndmSkipEvents;
-  int	m_RndmMOVE;
-  int	m_RndmFileLength;
-  //@}
-
-  /// RNG seeds
-  std::vector<long int> m_seeds;
-
-  /// Event counter
-  int m_events;
-
-  /// @name Common blocks
-  //@{
-  /// Subprocess switches
-  Pysubs m_pysubs;
-  /// Pydat1 data, methods 
-  Pydat1 m_pydat1;  
-  /// Pypars data, methods 
-  Pypars m_pypars;
-  /// Pydat2 data, methods 
-  Pydat2 m_pydat2;
-  /// Pydat3 data, methods 
-  Pydat3 m_pydat3;  
-  /// Pydatr access for random numbers (only set the 1st seed just now
-  Pydatr m_pydatr;
-  /// Pyint1 access for data
-  Pyint1 m_pyint1;
-  /// Pyint2 access for data
-  Pyint2 m_pyint2;	
-  /// Pyint5 access for data
-  Pyint5 m_pyint5;	
-  /// SUSY access
-  Pymssm m_pymssm; 
-  /// UED access
-  Pypued m_pypued;
-  // Event weight access
-  Pypevwt m_pypevwt; 
-  /// RPV
-  Pymsrv m_pymsrv; 
-  /// PYTCSM access
-  Pytcsm m_pytcsm; 
-  //@}
-
-  /// External process
-  int m_ExternalProcess; 
-  AcerMC_acset m_acermc_acset;
-
-//sgluon
-  bool m_addParticle;
-
-  // Commands to setup pythia
-  CommandVector m_pythiaCommandVector;
-  // Commands to setup pythia / make param. querries - via PYGIVE:
-  // pass parameters or querry parameter value before PYINIT
-  PygiveCommandVector m_PygiveCommandVector;
-  // querry parameter value after PYINIT e.g. to check if initializaton resets the value
-  PygiveCommandVector m_Param_Query_AfterInit;
-  // querry parameter value after PYEVNT e.g. to get event-specific param. value
-  PygiveCommandVector m_Param_Query_AfterGen;
-
-  /// @deprecated ???
-  bool m_AtlasDefaults;
-
-  /// @name Tunes implemented as switches
-  /// @deprecated Kept for backward compatibility -- strongly prefer to use Tune_Name flag 
-  //@{
-  /** use ATLAS PYTHIA technical settings [default:true]
-      eventRecord, errors*/
-  bool m_useAtlasPythiaRecomm, m_Default_useAtlasPythiaRecomm; 
-  /**use ATLAS PYTHIA parameters [default:true]
-      masses, dec. widths, etc. */
-  bool m_useAtlasPythiaCommon,m_Default_useAtlasPythiaCommon; 
-  /** complete mc09 tune Pythia parameters set [default:true]*/
-  bool m_useAtlasPythiaTune09,m_Default_useAtlasPythiaTune09;
-  /**complete mc08 tune Pythia parameters set [default:false]
-     if set to true overrides mc09 tune, 
-     mc09 should be set to false in order to use mc08 only */
-  bool m_useAtlasPythiaTune08,m_Default_useAtlasPythiaTune08;
-  /** use no ATLAS PYTHIA settings, apart from pynit inputs [default:false]*/
-  bool m_useNoAtlasPythiaParam,m_Default_useNoAtlasPythiaParam;
-
-
-  ///call pytune directly in case any parameters set py the tune are to be overwritten from jO
-  //@{
-  int m_direct_call_to_pytune;
-  //@}
-
-  /// The susy file name
-  std::string m_read_Filesusy; 
-
-  //-----------------------------------------------------------------------------
-
-  /// @name Other class members (not properties)
-  //@{
-
-  // more tune-related vars:
-  //m_Tune_Index  see AtlasTune.cxx for catalogue
-  //m_Default_Tune_Name=TUNETYPE_TUNEINDEX
-  //so that (after parsing in Pythia.cxx): m_Tune_Type=TUNETYPE and m_Tune_Index=TUNEINDEX
-  int  m_Tune_Index;
-  std::string m_Tune_Type;
-  // needed in tune setting for protection against tune-seting inf. loop
-  int m_atlasTune_loop_prot;
-  //tune to be assumed by default and in cases of invalid TUNETYPE or TUNEINDEX when TUNETYPE=="ATLAS"
-  std::string m_Default_Tune_Name, m_Default_Tune_Type; int m_Default_Tune_Index;
-  // dummy starting tune string
-  std::string m_Starting_Tune_Name, m_Starting_Tune_Type; int m_Starting_Tune_Index;
-  // backward compatibility with early 08/09 jO when tunes were impl. as switches:
-  // to be updated if MC08 and MC09 tunes Tune_Type or Tune_Index are changed 
-  std::string m_mc0809_Tune_Type;
-  int m_mc09_Tune_Index;
-  int m_mc08_Tune_Index;
-  // 
-
-  //@}
-
-  // multiply x-section by a num. factor
-  // add both in the MetaData print-out 
-  double m_Default_xsscale, m_xsscale; 
-
-  // print out manually set x-section from the MetaData 
-  double m_Default_SetCrossSection, m_SetCrossSection;
-
-  /// Method to Manage the random seed IO from/to a file
-  void RandomNumberIO();
-
-  /// I/O to HEPEVT
-  void store_Atlas_HEPEVT();
-
-  /// TAUOLA HEPEVT
-  static Atlas_HEPEVT* s_atlas_HEPEVT;
-
-};
-
-
-#endif
diff --git a/Generators/Pythia_i/Pythia_i/config.h b/Generators/Pythia_i/Pythia_i/config.h
deleted file mode 100644
index d4b986a8e4b2cc960f7f03f7f3d9040ed2318b00..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/* Pythia_i/config.h.  Generated automatically by configure.  */
-/* GeneratorModules/config.h.in.  Generated automatically from configure.in by autoheader.  */
diff --git a/Generators/Pythia_i/Pythia_i/config.h.in b/Generators/Pythia_i/Pythia_i/config.h.in
deleted file mode 100644
index b29742ce5dc6c4433dbc5fb48caaa6bf242c5b4c..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/Pythia_i/config.h.in
+++ /dev/null
@@ -1 +0,0 @@
-/* GeneratorModules/config.h.in.  Generated automatically from configure.in by autoheader.  */
diff --git a/Generators/Pythia_i/doc/Pythia_i.pdf b/Generators/Pythia_i/doc/Pythia_i.pdf
deleted file mode 100644
index f5dfbb0a3d3ff9bdfc1d2358b453654428c66c4e..0000000000000000000000000000000000000000
Binary files a/Generators/Pythia_i/doc/Pythia_i.pdf and /dev/null differ
diff --git a/Generators/Pythia_i/doc/Pythia_i.tex b/Generators/Pythia_i/doc/Pythia_i.tex
deleted file mode 100644
index 96e6a7d1317d27b195f57c23a65a5cc9bad0f2bd..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/doc/Pythia_i.tex
+++ /dev/null
@@ -1,281 +0,0 @@
-\documentclass[11pt]{article}
-\newdimen\SaveHeight \SaveHeight=\textheight
-\textwidth=6.5in
-\textheight=8.9in
-\hoffset=-.5in
-\voffset=-1in
-\def\topfraction{1.}
-\def\textfraction{0.}           
-
-\begin{document}
-\title{Pythia\_i: An interface between Pythia and Athena}
-\author{ Ian Hinchliffe (I\_Hinchliffe@lbl.gov), G. Stavropoulos (George.Stavropoulos@cern.ch)}
-%\today
-
-\maketitle           
-
-This package runs Pythia from within Athena, puts the events into the
-transient store in HepMC format. See the documentation on GenModule  for
-general information. The note refers only to Pythia specific
-material. The External/Pythia package is used to set up the paths to
-the Pythia  library which is now pointing to the release maintained by
-Genser. The current Pythia version interfaced is 6.410
-
-The module is activated from the jobOptions service. \\See the examples
-in {\bf Pythia\_i/share/jobOptions.pythia.py }
-
-The pythia parameters are set from the job options service.
-{\bf Note that all parameters passed to Pythia are in the units
-  specified in the Pythia manual. In particular, energies and
-  masses are in GeV, not the standard atlas units of MeV.}
-The following is needed if you wish to run Pythia
-\begin{verbatim}
-theAppDLLs  += [ "Pythia_i"]
-theAppTopAlg = ["Pythia"]
-\end{verbatim}
-The parameters are passed via the following line in the jobOptions.py
-file.
-
-\begin{verbatim}Pythia.PythiaCommand = ["common_block_name variable index value", 
-"common_block_name1 variable1 index1 value1"]
-\end{verbatim} 
-
-Each quoted string sets one parameter. You can have as many as you like
-seperated by commas. 
-{\bf common\_block\_name} must be one of the following common block names and
-must be in lower case.\\
-pydatr\\
-pydat1\\
-pydat2\\
-pydat3\\
-pypars\\
-pymssm\\
-pysubs\\
-pyint2\\
-pyinit\\
-pystat\\
-The pyinit deals with parameters associated with the job setup, while the pystat one deals
-with the setting of the print level of the PYSTAT routine (called at the end of the run). 
-An error message is returned if the common block is not one of
-these. The job continues to run but the behaviour may not be what you
-expect.
-{\bf variable} must be the variable name that you are adjusting.
-Valid names are as follows (lower case is required)\\
-for pydatr -- mrpy and rrpy\\
-for pydat1 -- mstu paru mstj and parj. Do not change mstu(11) (see below)\\
-for pydat2 -- kchg pmas parf and vckm\\
-for pydat3 -- mdcy mdme brat and kfdp\\
-for pymssm -- imss and rmss\\
-for pypars -- mstp parp msti and pari\\
-for pysubs -- msel msub kfin and ckin\\
-for pyint2 -- iset kfpr coef and icol\\
-The following do not correspond to a common block but the parsing is
-similar\\
-pyinit  access variable that are either passed in the call to PYINIT
-or to variables that control the listing. The choices are
-pyinit -- pbar (changes one of the incoming particles to pbar), user
-(changes the process selection to user code for connection to external
-processes, a string then specifies the specific procees, see
-discussion of external processes below), FIXT which switches to fixed
-target operation, win
-(changes the center of mass energy, units are GeV) output (controls
-redirection of output) pylisti (gives
-the number to be passed to pylist on the setup)  pylistf  (gives
-the number to be passed to pylist on the dumped events) dumpr (is two
-integers specifying the range of events to be written out).
-%rndm\_IO
-%(dumps/reads the random seeds used by PYTHIA to/from a file).\\
-{\bf Settings in the pyinit groups should come before others. This
-  is essential if you are using an external process such as comphep or
-AcerMC}\\
-pystat sets the print level of the PYSTAT routine (called at the end of the run).
-
-Again an error message is returned if the common block is not one of
-these. The job continues to run but the behaviour may not be what you
-expect.
-
-The remainder of the values in the " " specify the indices (if any) of
-the variable and the value that you are setting it to. The range of
-the indices is as described in the Pythia manual (Do not try to be
-clever and offset them). You must specify the indices and value
-completely. The number of quantities that you must provide depends on
-the variable. The order is "(first\_index) (second\_index) value"; if
-there is no corresponding index, omit it.
- There is currently minimal  error checking here so you will get junk or a 
-core dump if you make a mistake. The variable and common block names are 
-parsed and checked. A message is sent to the Athena LOG if an error is
-detected but the job does not abort. 
-
-Examples should make it clear\\
-
-\noindent
-"pysubs msel 13" will turn on Z/gamma+jet production\\
-"pysubs ckin 3 18." will set the minimum $p_T$ to 18 GeV\\
-"pypars mstp 43 2" wiil turn off the photon and Z/photon
-interference.\\
-"pyinit win 1800." changes the center of mass energy to 1800 GeV\\
-Note that the entries are seperated by a single space and that reals
-must have a decimal point.\\
-"pyinit pylisti 12" dumps all the particle and decay data (see pythia
-manual)  after initialization.\\
-"pyinit output junk.dat" causes all the pythia output to dump into a
-file junk.dat (it resets mstu(11))\\
-"pyinit  pylistf 1 " dumps the complete event record for the specified
-events\\
-"pyinit dumpr 3 12 " causes events 6 through 12 to be written out\\
-``pystat 3 5 7'' sets the PYSTAT print levels. Pystat is called as many times
-as integers after pystat. In the example, pystat will be called with prin-level 3 followed by
-a call with print-level 5 and then by a call with print-level 7. The default is to call pystat
-once with print-level 1.\\
-"pydat2 pmas 4000011 1 1000." will set the mass of particle with {\bf KF code} 4000011 to 1000 GeV.
-{\bf WARNING: Someone has to give the KF and NOT the KC code. The KF code is converted (via a call to
-PYCOMP) to the KC code internally in Pythia.cxx}\\
-
-% The format of the rndm\_IO option of the pyinit ``menu'' is the following\\
-% "pyinit rndm\_IO file\_name Switch FirstEvent SkipEvents MOVE"\\
-% Where\\
-% {\bf file\_name } is the name of the file to/from where PYTHIA dumps/reads the rndm seeds\\
-% {\bf Switch } Control variable : 0 (default)=NO action,
-% 1=Write (pyrget is called, paragarph 4.3 of PYTHIA manual), 2=Read (pyrset is called).An Athena
-% INFO message is printed for every event generated with rndm seeds read from the file.\\
-% {\bf FirstEvent } For Switch=1 is the first Event to be dumped in the file. For Switch=2
-% is the first record in the file to be read. Default value is 1. Values $<$ 1 are not allowed
-% and the Switch flag is set to 0 internally by the program (an Athena error message is printed)\\
-% {\bf SkipEvents } For Switch=1 is the number of events to be skipped before the next
-% event to be dumped in the file. For Switch=2 is the number of records to be skipped before
-% the next record is read. Default value is 0. Values $<$ 0 are not allowed
-% and the Switch flag is set to 0 internally by the program (an Athena error message is printed)\\
-% {\bf MOVE } Sets the MOVE (2nd argument) of the pyrget and pyrset subroutines of PYTHIA
-% (Paragarph 4.3 of PYTHIA manual). Default value is 0. Setting this variable to a
-% value different than 0 when Switch=2, ignores FirstEvent and SkipEvents.
-
-The jobOptions.tex file that has this example is contained in {\bf Pythia\_i/share/jobOptions.pythia.py }\\
-
-
-{\large \bf Default Parameters}\\
-
-The ATLAS settings are set inside Pythia.cxx. The default initialization corresponds to $pp$ collsions at 14 TeV, PYLIST is called 
-as PYLIST(11) after initialization.
-The current set of defaults is the ones in the Pythia release 6.410 with the 
-following exceptions.
-\begin{itemize}
-\item pmas(6,1)=175.;  // top quark mass
-\item pmas(24,1)=80.42; // W mass
-\item pmas(24,2)=2.124; // W width
-\item pmas(23,1)=91.19; // Z0 mass
-\item pmas(23,2)=2.495; // Z0 width
-\item mstp(128)=1;     // fix junk output for documentary particles
-\item mstu(21)=1;     // error handling switch
-\item mstp(81)=21; // ATLAS default for MI and also for the associated
-treatment of initial- and final-state showers and beam remnants. MI on; new model for PYEVNW.
-\item mstp(70)=2;      // (virtuality scale for ISR)
-\item mstp(72)=0;
-\item mstp(82)=4;      // (mutiple interaction model)
-\item mstp(84)=1;
-\item mstp(85)=1;
-\item mstp(86)=2;
-\item mstp(87)=4;
-\item mstp(88)=0;
-\item mstp(89)=1;
-\item mstp(90)=1;
-\item mstp(95)=1;
-\item parp(78)=0.2;
-\item parp(80)=0.01;
-\item parp(82)=1.9;    // (cut off scale)
-\item parp(83)=0.3;
-\item parp(84)=0.5;    // (matter distribution)
-\item parp(89)=1800.;
-\item parp(90)=0.22;   // (cut off scale)
-\item mstj(11)=3;      // (select peterson for charm fragmentation)
-\item mstj(22)=2;      // (Make K\_S, Lambda stable)
-\item parj(54)=-0.07;  // (c hadronization)
-\item parj(55)=-0.006; // (b hadronization)
-\item parj(81)=0.14;
-\item mstp(52)=2;      // (needed for CTEQ6L)
-\item mstp(54)=2;      // (needed for CTEQ6L)
-\item mstp(56)=2;      // (needed for CTEQ6L)
-\item mstp(51)=10042;  // (needed for CTEQ6L)
-\item mstp(53)=10042;  // (needed for CTEQ6L)
-\item mstp(55)=10042;  // (needed for CTEQ6L)
-\end{itemize}
-
-
-{\large \bf Random Numbers}\\
-
- Pythia.cxx is using the AtRndmGenSvc Athena Service to provide to Pythia (via the pyr function,
- found in Pythia\_i/src/pyr.F) the necessary random numbers. This service is using the RanecuEngine of CLHEP,
- and is based on the ``stream'' logic, each stream being able to provide an idependent sequence of random
- numbers. Pythia.cxx is using two streams: PYTHIA\_INIT and PYTHIA. The first stream is used to provide
- random numbers for the initialization phase of Pythia and the second one for the event generation. The user
- can set the initial seeds of each stream via the following option in the jobOption file.
-
- \begin{verbatim} 
- AtRndmGenSvc.Seeds = [``PYTHIA_INIT 2345533 9922199'', ``PYTHIA 5498921 659091'']
- \end{verbatim}
-
- The above sets the seeds of the PYTHIA\_INIT stream to 2345533 and 9922199 and of the PYTHIA one to
- 5498921 and 659091. If the user will not set the seeds of a stream then the AtRndmGenSvc will use default
- values.
-
- The seeds of the Random number service are saved for each event in the HepMC Event record and they are printed
- on screen by DumpMC. In this way an event can be reproduced easily. The user has to rerun the job by simply seting
- the seeds of the PYTHIA stream (the seeds of the PYTHIA\_INIT stream should stay the same) to the seeds of that
- event.
-
- Additionaly the AtRndmGenSvc is dumping into a file (AtRndmGenSvc.out) the seeds of all the streams at the end
- of the job. This file can be read back by the service if the user set the option
- \begin{verbatim} AtRndmGenSvc.ReadFromFile = True \end{verbatim} (default = False). In this case the file
- AtRndmGenSvc.out is read and the streams saved in this file are created with seeds as in this file. The name of
- the file to be read can be set by the user via the option
- \begin{verbatim} AtRndmGenSvc.FileToRead = MyFileName \end{verbatim}
-
- The above file is also written out when a job crashes.
- 
- The {\bf Pythia\_i/share/jobOptions.pythia.py } contains the above options.\\
- 
- {\large \bf User modifications}\\
-
-Two types of user modifications are common
-
-\begin{itemize}
-\item If you are trying to replace an existing routine that is in the
-  Pythia library this is straightforward.
-Assume that you are trying to replace test.f that exists in Pythia.
-Check out Pythia\_i under CMT,  (use cmt co -r Pythia\_i-xx-xx-xx  Generators/Pythia\_i where
-xx-xx-xx is the version in the release that you are running against), put your version of test.f into the /src area of the checked out
-code. Then in the /cmt area edit the requirements file and add test.f
-into the list of files that get complied. Note that each generator has
-its own library. You must therefore put your file in the right
-place. For Pythia, here is the example.
-\item If you want to access ``External Process''. This is done in
-  Pythia by setting ``USER''(see section 9.9 of the 6.4 Pythia
-  manual). External procesess usually read a file containting events.  At present several externals are available,
-  CompHep, AcerMC, Alpgen, Matchig, HvGen, MadCUP, MadGraph, TopRex, GR@PPA,
-  and the fourth is a dummy that users can adapt to their
-  needs by following one of the examples above. To find out how to run these external processes
-  please refer to the documentation of these generators. \\
-  To add your own external, create your own  inituser.f and useuser.f,
-  put these filenames into the cmt/requirements so that they are built
-  into libPythia\_i.so and then rebuild the Pythia\_i  package  (cmt make) and then
-  set\\ 
-  "pyinit user user''
-
-{\large \bf Note on LHApdf stucture functions}
-
-In the case you want to run Pythia with the LHAPDF structure functions you need to
-set the mstp(52), mstp(54) and mstp(56) variables equal to 2 and the mstp(51),
-mstp(53) and mstp(55) ones to the LHAPDF set/member index (see the documentation
-of the Generators/Lhapdf\_i package for the LHAPDF set/member index settings).
-
-\end{itemize}
-
-
-
-\end{document}
-
-
-
-
-
-
-
diff --git a/Generators/Pythia_i/doc/packagedoc.h b/Generators/Pythia_i/doc/packagedoc.h
deleted file mode 100644
index 8e0ead5591dec579f7baa80415e19c2ed0c1208c..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/doc/packagedoc.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-@page Pythia_i_page Pythia_i
-
-@author  Giorgios.Stavropoulos@cern.ch, Ian.Hinchliffe@cern.ch,  Judith.Katzy@cern.ch, Liza Mijovic (at_cern.ch)
-
-@section Pythia_i_introductionPythia_i The interface between Pythia and Athena
- 
-This package runs Pythia  from within Athena, puts the events into the
-transient store in HepMC format. See the documentation on Generators/GeneratorModules and <a href="https://twiki.cern.ch/twiki/bin/view/AtlasProtected/McGeneratorsOverview">ATLAS MC group wiki pages</a>
-for general information. This note refers only to Pythia specific material. The External/Pythia package is used to set up the paths to the Pythia  library which is  pointing to the release maintained by
-Genser. To see the Pythia version interfaced in a specific release check in the file External/Pythia/requirements the line 'macro pythia_native_version 412.2' . i.e. in release 13.0.30 pythia 6.412 has been used.
-
-The module is activated from the jobOptions service. The example jobOptions files are available inb  Pythia_i/share/ directory.
-
-Pythia parameters can be set via the job options service.
-Note that all parameters passed to Pythia are in the units
-  specified in the Pythia manual. In particular, energies and
-  masses are in GeV, not the standard atlas units of MeV.
-
-The following is needed if you wish to run Pythia:
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-The parameters are passed via the following line in the jobOptions.py
-file.
-
-Pythia.PythiaCommand = ["common_block_name variable index value",
-"common_block_name1 variable1 index1 value1"]
-
-Each quoted string sets one parameter. You can have as many as you like
-seperated by commas.
-common_block_name must be one of the following common block names and
-must be in lower case.
-
-- pydat1
-- pydat2
-- pydat3
-- pysubs
-- pypars
-- pydatr
-- pymssm
-- pypued
-- pymsrv
-- pyint1
-- pyint2
-- pyint5
-- pytcsm
-
-The pyinit deals with parameters associated with the job setup, while the pystat one deals
-with the setting of the print level of the PYSTAT routine (called at the end of the run).An error message is returned if the common block is not one of
-these. The job continues to run but the behaviour may not be what you
-expect. variable must be the variable name that you are adjusting.
-Valid names are as follows (lower case is required):
-
-- for pydat1 -- mstu paru mstj and parj. Do not change mstu(11) (see below)
-- for pydat2 -- kchg pmas parf and vckm
-- for pydat3 -- mdcy mdme brat and kfdp
-- for pysubs -- msel msub kfin and ckin
-- for pypars -- mstp parp msti and pari
-- for pydatr -- mrpy and rrpy
-- for pymssm -- imss and rmss
-- for pypued -- iued and rued
-- for pymsrv -- rvlam rvlamp and rvlamb
-- for pyint1 -- mint and vint 
-- for pyint2 -- iset kfpr coef and icol
-- for pyint5 -- ngen and xsec
-- for pytcsm -- 
-
-The following do not correspond to a common block but the parsing is
-similar:
-
-pyinit; access variable that are either passed in the call to PYINIT
-or to variables that control the listing. The choices are
- pyinit -- pbar (changes one of the incoming particles to pbar), user
-(changes the process selection to user code for connection to external
-processes, a string then specifies the specific procees, see
-discussion of external processes below), FIXT which switches to fixed
-target operation, win
-(changes the center of mass energy, units are GeV) output (controls
-redirection of output) pylisti (gives
-the number to be passed to pylist on the setup)  pylistf  (gives
-the number to be passed to pylist on the dumped events) dumpr (is two
-integers specifying the range of events to be written out).
-
-
-Settings in the pyinit groups should come before others. This
-  is essential if you are using an external process such as comphep or
-AcerMC. 
-pystat sets the print level of the PYSTAT routine (called at the end of the run).
-
-Again an error message is returned if the common block is not one of
-these. The job continues to run but the behaviour may not be what you
-expect.
-
-The remainder of the values in the " " specify the indices (if any) of
-the variable and the value that you are setting it to. The range of
-the indices is as described in the Pythia manual (Do not try to be
-clever and offset them). You must specify the indices and value
-completely. The number of quantities that you must provide depends on
-the variable. The order is "(first_index) (second_index) value"; if
-there is no corresponding index, omit it.
- There is currently minimal  error checking here so you will get junk or a 
-core dump if you make a mistake. The variable and common block names are 
-parsed and checked. A message is sent to the Athena LOG if an error is
-detected but the job does not abort. 
-
-Examples should make it clear
-
-- "pysubs msel 13" will turn on Z/gamma+jet production
-- "pysubs ckin 3 18." will set the minimum $p_T$ to 18 GeV
-- "pypars mstp 43 2" will turn off the photon and Z/photon interference.
-- "pyinit win 1800." changes the center of mass energy to 1800 GeV
-Note that the entries are seperated by a single space and that reals
-must have a decimal point.
-- "pyinit pylisti 12" dumps all the particle and decay data (see pythia
-manual)  after initialization.
-- "pyinit output junk.dat" causes all the pythia output to dump into a
-file junk.dat (it resets mstu(11))
-- "pyinit  pylistf 1 " dumps the complete event record for the specified
-events
-- "pyinit dumpr 3 12 " causes events 6 through 12 to be written out
-``pystat 3 5 7'' sets the PYSTAT print levels. Pystat is called as many times
-as integers after pystat. In the example, pystat will be called with prin-level 3 followed by
-a call with print-level 5 and then by a call with print-level 7. The default is to call pystat
-once with print-level 1.
-- "pydat2 pmas 4000011 1 1000." will set the mass of particle with KF code 4000011 to 1000 GeV.
-- WARNING: Someone has to give the KF and NOT the KC code. The KF code is converted (via a call to PYCOMP) to the KC code internally in Pythia.cxx
-
-@section Pythia_i_defaultparamsPythia_i Default Parameters
-
-The ATLAS settings for MC08 production were set in 
-Generators/EvgenJobOptions/share/MC8_Pythia_Common.py and some are inside Pythia.cxx. PYLIST is called as PYLIST(11) after initialization. Common parameters 
- for MC08 production are defined and documented on the MC Group Twiki at  
-https://twiki.cern.ch/twiki/bin/view/AtlasProtected/McProductionCommonParameters .
-For MC09 production (15.2.0) the Pythia parameters are set by the interface in Pythia_i/src/atlasTune.cxx. 
-By default the MC09 tune for MRST2007lomod (LO* for MC) is enabled. The MC08 tune remains available for use with CTEQ6L1.
-Both tunes are available as complete sets of Pythia parameters used/considered for tuning. Examples how the tunes are to be
-used are available in Pythia_i/share directory. 
-
-From Pythia_i-00-02-18 on PYGIVE (see Pythia Manual) calls are supported and support for seemless running of PYTUNE choice within Athena is added. 
-see Pythia_i/share/xxxx_tune_test_Zmumu_jO.py for examples.
-
-More info is available on the Atlas WiKi Pythia pages https://twiki.cern.ch/twiki/bin/view/AtlasProtected/PythiaForAtlas .
-
-
-@section Pythia_i_randomPythia_i Random Numbers
-
- Pythia.cxx is using the AtRndmGenSvc Athena Service to provide to Pythia (via the pyr function,
- found in Pythia_i/src/pyr.F) the necessary random numbers. This service is using the RanecuEngine of CLHEP,
- and is based on the ``stream'' logic, each stream being able to provide an idependent sequence of random
- numbers. Pythia.cxx is using two streams: PYTHIA_INIT and PYTHIA. The first stream is used to provide
- random numbers for the initialization phase of Pythia and the second one for the event generation. The user
- can set the initial seeds of each stream via the following option in the jobOption file.
-
-
- AtRndmGenSvc.Seeds = [``PYTHIA_INIT 2345533 9922199'', ``PYTHIA 5498921 659091'']
-
-
- The above sets the seeds of the PYTHIA_INIT stream to 2345533 and 9922199 and of the PYTHIA one to
- 5498921 and 659091. If the user will not set the seeds of a stream then the AtRndmGenSvc will use default
- values.
-
- The seeds of the Random number service are saved for each event in the HepMC Event record and they are printed
- on screen by DumpMC. In this way an event can be reproduced easily. The user has to rerun the job by simply seting
- the seeds of the PYTHIA stream (the seeds of the PYTHIA_INIT stream should stay the same) to the seeds of that
- event.
-
- Additionaly the AtRndmGenSvc is dumping into a file (AtRndmGenSvc.out) the seeds of all the streams at the end
- of the job. This file can be read back by the service if the user set the option
-
-AtRndmGenSvc.ReadFromFile = True 
-
-(default = False). In this case the file
- AtRndmGenSvc.out is read and the streams saved in this file are created with seeds as in this file. The name of
- the file to be read can be set by the user via the option
-
-  AtRndmGenSvc.FileToRead = MyFileName 
-
- The above file is also written out when a job crashes.
- 
- The  Pythia_i/share/jobOptions.pythia.py  contains the above options.
- 
-@section Pythia_i_User User modifications
-
-Two types of user modifications are common
-
-- If you are trying to replace an existing routine that is in the
-  Pythia library this is straightforward.
-Assume that you are trying to replace test.f that exists in Pythia.
-Check out Pythia_i under CMT,  (use cmt co -r Pythia_i-xx-xx-xx  Generators/Pythia_i where
-xx-xx-xx is the version in the release that you are running against), put your version of test.f into the /src area of the checked out
-code. Then in the /cmt area edit the requirements file and add test.f
-into the list of files that get complied. Note that each generator has
-its own library. You must therefore put your file in the right
-place. For Pythia, here is the example.
-
-- If you want to access ``External Process''. This is done in
-  Pythia by setting ``USER''(see section 9.9 of the 6.4 Pythia
-  manual). External procesess usually read a file containting events.  At present several externals are available,
-  CompHep, AcerMC, Alpgen, Matchig, HvGen, MadCUP, MadGraph, TopRex, GR\@PPA,
-  and the fourth is a dummy that users can adapt to their
-  needs by following one of the examples above. To find out how to run these external processes
-  please refer to the documentation of these generators. 
-
-  To add your own external, create your own  inituser.f and useuser.f,
-  put these filenames into the cmt/requirements so that they are built
-  into libPythia_i.so and then rebuild the Pythia_i  package  (cmt make) and then
-  set
-
-  "pyinit user user''
-
-@section Pythia_i_LHApdfPythia_i Note on LHApdf stucture functions
-
-In the case you want to run Pythia with the LHAPDF structure functions you need to
-set the mstp(52), mstp(54) and mstp(56) variables equal to 2 and the mstp(51),
-mstp(53) and mstp(55) ones to the LHAPDF set/member index (see the documentation
-of the Generators/Lhapdf_i package for the LHAPDF set/member index settings).
-
-
-*/
diff --git a/Generators/Pythia_i/share/ATUNE_pprintout.py b/Generators/Pythia_i/share/ATUNE_pprintout.py
deleted file mode 100644
index e0fa29bb2a46c31665bbc67b2abdd6268e56484a..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/ATUNE_pprintout.py
+++ /dev/null
@@ -1,28 +0,0 @@
-#______________________________________________________________________________________________________________________
-# author: liza.mijovic@_nospam_cern.ch 
-#
-# jO effect: dump the values of all PYTUNE parameters ATLAS tune sets - this jopts are meant for runnig with GET_TUNE_params.sh
-# warning: particle masses and EW params are not included
-# ______________________________________________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 0
-
-Pythia.Tune_Name="REPNAM_REPIND"
-
-PYDAT1_PARAMS=[ "MSTU", "PARU", "MSTJ", "PARJ" ]
-PYPARS_PARAMS=[ "MSTP", "PARP", "MSTI", "PARI" ]
-PYTUNE_PARAMS=PYDAT1_PARAMS+PYPARS_PARAMS
-
-PQ_LIST=[]
-for i in PYTUNE_PARAMS:
-    PQ_LIST+=[i+"("+repr(x)+")=" for x in range(1,201)]
-
-Pythia.PygiveCommand += PQ_LIST
-Pythia.Param_Query_AfterInit += PQ_LIST
diff --git a/Generators/Pythia_i/share/DEF_pprintout.py b/Generators/Pythia_i/share/DEF_pprintout.py
deleted file mode 100644
index 0463c6be032037b7be68b745e217bdd619305f83..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/DEF_pprintout.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#______________________________________________________________________________________________________________________
-# author: liza.mijovic@_nospam_cern.ch 
-#
-# jO effect: dump the values of all parameters PYTUNE can set - this jopts are meant for runnig with GET_PYTUNE_params.sh
-#
-# ______________________________________________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 0
-
-Pythia.Tune_Name="ATLAS_-1"              # turn off ATLAS defaults
-Pythia.PygiveCommand += [ "mstj(22)=2" ] # ATLAS stable particles convention  
-
-PYDAT1_PARAMS=[ "MSTU", "PARU", "MSTJ", "PARJ" ]
-PYPARS_PARAMS=[ "MSTP", "PARP", "MSTI", "PARI" ]
-PYTUNE_PARAMS=PYDAT1_PARAMS+PYPARS_PARAMS
-
-PQ_LIST=[]
-for i in PYTUNE_PARAMS:
-    PQ_LIST+=[i+"("+repr(x)+")=" for x in range(1,201)]
-
-Pythia.PygiveCommand += PQ_LIST
-Pythia.Param_Query_AfterInit += PQ_LIST
diff --git a/Generators/Pythia_i/share/GET_TUNE_params.sh b/Generators/Pythia_i/share/GET_TUNE_params.sh
deleted file mode 100755
index a4a482cc956d9a7fb153468e39a2b101f6df3d66..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/GET_TUNE_params.sh
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/bin/bash
-#___________________________________________________________________________________________
-# author: liza.mijovic_at_nospam_cern.ch
-# dump PYTUNE tune parameter settings to file TNAME_TINDEX_params.txt
-# run like: (chmod +x GET_PYTUNE_params.sh)
-# ./GET_PYTUNE_params.sh TNAME TINDEX
-# TNAME should be replaced with either ATLAS or PYTUNE
-# TINDEX should be replaced by tune's index (ATLAS tunes) or MSTP(5) value (PYTUNE tunes)
-#___________________________________________________________________________________________
-
-if [ "$1" == "-h" -o "$1" == "-help" ]; then
-    echo ""
-    echo "Script prints a list of parameters of a tune that differ from the Pythia defaults." 
-    echo ""
-    echo "Run like: "      
-    echo "./GET_PYTUNE_params.sh TNAME TINDEX [AI]"
-    echo ""
-    echo "TNAME = tune name; ATLAS or PYTUNE" 
-    echo "- ATLAS : query params of ATLAS-internal tune implementation."
-    echo "- PYTUNE : query params of Pythia-internal tune implementation." 
-    echo ""   
-    echo "TINDEX = tune index"
-    echo ""
-    echo "AI (opt.) : pass anything to enable debug printout of parameter values after Pythia initialization."
-    echo ""
-    echo "Examples:"
-    echo "./GET_PYTUNE_params.sh ATLAS 20100001"
-    echo "./GET_PYTUNE_params.sh PYTUNE 327"
-    echo "./GET_PYTUNE_params.sh PYTUNE 20100001 AI "
-    echo ""
-    echo "Parameters are printed to file: TNAME_TINDEX_params.txt."  
-    echo ""  
-    exit 0 
-fi
-
-if [ "$1" != "PYTUNE" -a "$1" != "ATLAS" ] || [ "$2" == "" ]; then
-    echo "Invalid script call; it should be e.g.:"
-    echo ""
-    echo "./GET_TUNE_params.sh ATLAS 20100001"
-    echo "./GET_TUNE_params.sh PYTUNE 327"
-    echo "" 
-    echo "Run ./GET_TUNE_params.sh -h or ./GET_TUNE_params.sh -help for furhter help."    
-    exit 0
-fi 
-
-if [ "$1" == "PYTUNE" ]; then
-    cp PYTUNE_pprintout.py TUNE_pprintout_$2.py
-else
-    cp ATUNE_pprintout.py TUNE_pprintout_$2.py
-fi
-
-perl -e "s/REPNAM/$1/g;" -pi TUNE_pprintout_$2.py
-perl -e "s/REPIND/$2/g;" -pi TUNE_pprintout_$2.py
-
-athena.py TUNE_pprintout_$2.py &> tprint_temp.out
-grep -A 1599 MSTU\(1\) tprint_temp.out &> tprint_temp2.out
-grep 'has the value' tprint_temp2.out &> before_init.out
-mv before_init.out tprint_tune1.out
-mv after_init.out tprint_tune2.out
-rm tprint_temp2.out
-
-athena.py DEF_pprintout.py &> tprint_temp.out
-grep -A 1599 MSTU\(1\) tprint_temp.out &> tprint_temp2.out
-grep 'has the value' tprint_temp2.out &> before_init.out
-mv before_init.out tprint_def1.out
-mv after_init.out tprint_def2.out
-rm tprint_temp2.out
-
-# tune index should not be set expliciltly [MSTP(5)]
-diff tprint_tune1.out tprint_def1.out | grep -v 'MSTP(5)' | grep \< &> tprint_temp1.out
-diff tprint_tune2.out tprint_def2.out | grep -v 'MSTP(5)' | grep \< &> tprint_temp2.out
-
-perl -e "s/<//g;" -pi tprint_temp1.out 
-perl -e "s/<//g;" -pi tprint_temp2.out
-perl -e "s/has the value/=/g;" -pi tprint_temp1.out 
-perl -e "s/has the value/=/g;" -pi tprint_temp2.out
-
-# clean old files:
-if [[ -s $1_$2_params.txt ]]; then
-    rm $1_$2_params.txt
-fi
-if [[ -s $1_$2_params_afterInit.txt ]]; then
-    rm $1_$2_params_afterInit.txt
-fi
-
-
-BAKIFS=$IFS
-IFS=$(echo -en "\n\b")
-exec 3<&0
-exec 0<tprint_temp1.out
-nn=0
-while read line
-do
-        let "nn += 1"
-        echo $line | tr -d ' ' >> $1_$2_params.txt
-done
-exec 0<&3
-
-IFS=$BAKIFS
-
-if [ "$3" != "" ]; then 
-BAKIFS=$IFS
-IFS=$(echo -en "\n\b")
-exec 3<&0
-exec 0<tprint_temp2.out
-nn=0
-while read line
-do
-        let "nn += 1"
-        echo $line | tr -d ' ' >> $1_$2_params_afterInit.txt
-done
-exec 0<&3
-fi
-
-echo "The parameters of the $1 tune" $2 "have been printed to file" $1_$2_params.txt
-if [ "$3" != "" ]; then
-    echo "Parameter diffs after the initialization have been printed to" $1_$2_params_afterInit.txt
-fi    
-
-#clean-up:
-rm tprint_*.out TUNE_pprintout_$2.py
-
-exit 0
\ No newline at end of file
diff --git a/Generators/Pythia_i/share/HERA_LQ_jO.py b/Generators/Pythia_i/share/HERA_LQ_jO.py
deleted file mode 100644
index 051fbde3b77d146bf8c21f236e8e0b5e40742b9d..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/HERA_LQ_jO.py
+++ /dev/null
@@ -1,68 +0,0 @@
-#______________________________________________________________________________________________________________
-# author: liza.mijovic@_nospam_cern.ch 
-# generate 10 LQ Pythia events at HERA,   demonstrating the use of new pyinit block use_PYINIT for 3mom frame
-# source (physics contents of the setup): Pythia Examples http://projects.hepforge.org/pythia6/examples/
-#______________________________________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 1000
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-#-------------------------------------------------------------------------------------------------------------
-# initialization setup:
-#-------------------------------------------------------------------------------------------------------------
-# general Athena syntax is : 
-# Pythia.PythiaCommand +=["pyinit use_PYINIT FRAME BEAM TARGET WIN"]
-# which is translated to PYTHIA PYINIT SUBROUTINE CALL as: 
-# PYINIT(FRAME,BEAM,TARGET,WIN)
-# allowed FRAME BEAM TARGET WIN values are same as for Pythia standalone running
-# when using pyinit use_PYINIT please make sure that:
-# 1) all four FRAME BEAM TARGET WIN values are passed, even if some of them correspond to LHC defaults
-# 2) WIN is passed as a double (i.e. not as an integer) 
-# 3) info on the Athena and PYTHIA setup can be checked is printed-out before event generation is started 
-#-------------------------------------------------------------------------------------------------------------
-# HERA-specific : 
-# 3mom frame: need to set beam and target's P-vectors explicitly,
-# need to set beam and target's P-vectors explicitly,
-# PYJETS commonblock not accessible via PythiaCommand += syntax, but only via PYGIVE 
-Pythia.PygiveCommand += [ "P(1,1)=0.0", 
-                          "P(1,2)=0.0",
-                          "P(1,3)=-27.5",
-                          "P(2,1)=0.0",
-                          "P(2,2)=0.0",
-                          "P(2,3)=820.0"]
-# e+, p beam and target - can use any PYTHIA-supported syntax to specify these
-Pythia.PythiaCommand +=["pyinit use_PYINIT 3mom e+ p 0.0"]
-
-#-------------------------------------------------------------------------------------------------------------
-#using PYGIVE (ATLAS independant syntax for params.)
-Pythia.PygiveCommand += [ "msel=0",                  # Users decay choice.
-                          "msub(145)=1",             # LQ process
-                          "pmas(39,1)=200.0",        # LQ mass
-                          "kfdp(539,1)=2",           # quark species
-                          "kfdp(539,2)=-11",         # lepton species
-                          "paru(151)=0.01",          # LQ Yukawa coupling value
-                          "mstj(50)=0",              # no initial and final state partons interference due to long LQ lifetime
-                          "mstp(67)=0"                           
-                          ]
-
-#-------------------------------------------------------------------------------------------------------------
-# our pp tuned parameters might as well be worse as defaults ...  
-# use no ATLAS parameter settings
-#Pythia.Tune_Name="ATLAS_0" : you'll get TestHepMC crashes by doing this only 
-# use only recommended ATLAS parameter settings (i.e. the ones necessary for succsfull && consistent simulation within Athena)
-Pythia.Tune_Name="ATLAS_-1" # keep ER structure and new PS/MI ... see .log file for exact parameters settings
-# use recommended + common (PDF, mass, MI schema etc., but not parameters commonly used for tuning) ATLAS parameter
-#Pythia.Tune_Name="ATLAS_-2"
-#______________________________________________________________________________________________________________
-
-
diff --git a/Generators/Pythia_i/share/JobOptions.pythiaUED.py b/Generators/Pythia_i/share/JobOptions.pythiaUED.py
deleted file mode 100644
index cf44ca911fb6fd33b318fe2dc15dc0f559c5eb9e..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/JobOptions.pythiaUED.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#########################################
-# r14 example jO
-# Pythia 6.4.20 UED swicthes description
-#########################################
-#
-# Integer switches
-#
-#      IUED(1) =  The main UED ON(=1)/OFF(=0) switch  
-#                 Default value = 0
-#
-#      IUED(2) =  On/Off switch for the extension to (N+4)-dimensional gravity
-#                 (switching it on enables gravity-mediated LKP decay): ON(=1)/OFF(=0)  
-#                 Default value = 0
-#
-#      IUED(3) =  The number of KK excitation quark flavors  
-#                 Default value = 5
-#
-#      IUED(4) =  N, the number of large extra dimensions where only the graviton propagates.
-#                 Only used when IUED(2)=1.  
-#                 Default value = 6 (can be set to 2, 4 or 6)
-# 
-#      IUED(5) =  Selects whether the code takes Lambda (=0) or Lambda*R (=1) as input. 
-#                 See also   {RUED(3:4)}.  
-#                 Default value = 0
-#
-#      IUED(6) =  Selects whether the KK particle masses include radiative corrections (=1) 
-#                 or are nearly degenerate m_KK ~ 1/R (=0).  
-#                 Default value = 1
-#
-# Real switches
-#
-#      RUED(1) =  1/R, the curvature of the extra dimension  
-#                 Default value = 1000 GeV
-#
-#      RUED(2) =  M_D, the (4+N)-dimensional Planck scale. Only used when IUED(2)=1.  
-#                 Default value = 5000 GeV
-#
-#      RUED(3) =  Lambda, the cutoff scale. Used when IUED(5)=0.
-#                 Default value = 20000 GeV
-#
-#      RUED(4) =  Lambda*R, the cutoff scale times the radius of the extra dimension.
-#                 Used when IUED(5)=1.  
-#                 Default value = 20
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-include ( "EvgenJobOptions/MC8_Pythia_Common.py" )
-
-theApp.EvtMax = 10
-
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-
-Pythia.PythiaCommand += ["pysubs msel 0",
-                         "pyinit win 10000",    
-                         "pypued iued 1 1",      # turn ON UED =1 
-                         "pypued iued 2 1",      # turn ON =1 gravity mediated decays
-                         "pypued iued 3 5",      # number of KK quark flavors = 5
-                         "pypued iued 4 6",      # number or large extra dimensions = 6 for grav.med.deca.
-                         "pypued iued 5 1",      # Lambda*R is fixed to the RUED(4) value
-                         "pypued iued 6 1",      # KK masses radiative corrections turned ON
-                         "pysubs msub 311 1",    # all
-                         "pysubs msub 312 1",    # UED
-                         "pysubs msub 313 1",    # production
-                         "pysubs msub 314 1",    # processes
-                         "pysubs msub 315 1",    # are
-                         "pysubs msub 316 1",    # turned
-                         "pysubs msub 317 1",    # ON
-                         "pysubs msub 318 1",    #
-                         "pysubs msub 319 1",    #
-                         "pypued rued 1 1000",   # 1/R = 1000 GeV
-                         "pypued rued 2 5000.",  # M_D = 5000 GeV for grav.med.dec.
-                         "pypued rued 3 20000."] # Lambda = 20000 GeV if IUED(5)=0
diff --git a/Generators/Pythia_i/share/JobOptions.pythiaUEDmc09.py b/Generators/Pythia_i/share/JobOptions.pythiaUEDmc09.py
deleted file mode 100644
index 47be1ee03558412ccb5ae49b5cce277b73782b0a..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/JobOptions.pythiaUEDmc09.py
+++ /dev/null
@@ -1,82 +0,0 @@
-#########################################
-# r>15.2.0 example jO
-# Pythia 6.4.20 UED swicthes description
-#########################################
-#
-# Integer switches
-#
-#      IUED(1) =  The main UED ON(=1)/OFF(=0) switch  
-#                 Default value = 0
-#
-#      IUED(2) =  On/Off switch for the extension to (N+4)-dimensional gravity
-#                 (switching it on enables gravity-mediated LKP decay): ON(=1)/OFF(=0)  
-#                 Default value = 0
-#
-#      IUED(3) =  The number of KK excitation quark flavors  
-#                 Default value = 5
-#
-#      IUED(4) =  N, the number of large extra dimensions where only the graviton propagates.
-#                 Only used when IUED(2)=1.  
-#                 Default value = 6 (can be set to 2, 4 or 6)
-# 
-#      IUED(5) =  Selects whether the code takes Lambda (=0) or Lambda*R (=1) as input. 
-#                 See also   {RUED(3:4)}.  
-#                 Default value = 0
-#
-#      IUED(6) =  Selects whether the KK particle masses include radiative corrections (=1) 
-#                 or are nearly degenerate m_KK ~ 1/R (=0).  
-#                 Default value = 1
-#
-# Real switches
-#
-#      RUED(1) =  1/R, the curvature of the extra dimension  
-#                 Default value = 1000 GeV
-#
-#      RUED(2) =  M_D, the (4+N)-dimensional Planck scale. Only used when IUED(2)=1.  
-#                 Default value = 5000 GeV
-#
-#      RUED(3) =  Lambda, the cutoff scale. Used when IUED(5)=0.
-#                 Default value = 20000 GeV
-#
-#      RUED(4) =  Lambda*R, the cutoff scale times the radius of the extra dimension.
-#                 Used when IUED(5)=1.  
-#                 Default value = 20
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 10
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-
-Pythia.PythiaCommand += ["pysubs msel 0",
-                         #"pyinit win 10000",    default for r>15.2.0
-                         "pypued iued 1 1",      # turn ON UED =1 
-                         "pypued iued 2 1",      # turn ON =1 gravity mediated decays
-                         "pypued iued 3 5",      # number of KK quark flavors = 5
-                         "pypued iued 4 6",      # number or large extra dimensions = 6 for grav.med.deca.
-                         "pypued iued 5 1",      # Lambda*R is fixed to the RUED(4) value
-                         "pypued iued 6 1",      # KK masses radiative corrections turned ON
-                         "pysubs msub 311 1",    # all
-                         "pysubs msub 312 1",    # UED
-                         "pysubs msub 313 1",    # production
-                         "pysubs msub 314 1",    # processes
-                         "pysubs msub 315 1",    # are
-                         "pysubs msub 316 1",    # turned
-                         "pysubs msub 317 1",    # ON
-                         "pysubs msub 318 1",    #
-                         "pysubs msub 319 1",    #
-                         "pypued rued 1 1000",   # 1/R = 1000 GeV
-                         "pypued rued 2 5000.",  # M_D = 5000 GeV for grav.med.dec.
-                         "pypued rued 3 20000."] # Lambda = 20000 GeV if IUED(5)=0
-
-#uncomment these for MC08 tune 
-#Pythia.useAtlasPythiaTune09=False
-#Pythia.useAtlasPythiaTune08=True
diff --git a/Generators/Pythia_i/share/LEP_Zee_jO.py b/Generators/Pythia_i/share/LEP_Zee_jO.py
deleted file mode 100644
index 5cd00a9ad50703c43395cf733271489c8093c725..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/LEP_Zee_jO.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#______________________________________________________________________________________________________________
-# author: liza.mijovic@_nospam_cern.ch 
-# generate 1000 Zmumu Pythia events at LEP, demonstrating the use of new pyinit block use_PYINIT for e+ e- beams
-#______________________________________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 1000
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-#-------------------------------------------------------------------------------------------------------------
-# initialization setup:
-#-------------------------------------------------------------------------------------------------------------
-# general Athena syntax is : 
-# Pythia.PythiaCommand +=["pyinit use_PYINIT FRAME BEAM TARGET WIN"]
-# which is translated to PYTHIA PYINIT SUBROUTINE CALL as: 
-# PYINIT(FRAME,BEAM,TARGET,WIN)
-# allowed FRAME BEAM TARGET WIN values are same as for Pythia standalone running
-# when using pyinit use_PYINIT please make sure that:
-# 1) all four FRAME BEAM TARGET WIN values are passed, even if some of them correspond to LHC defaults
-# 2) WIN is passed as a double (i.e. not as an integer) 
-# 3) info on the Athena and PYTHIA setup can be checked is printed-out before event generation is started 
-#-------------------------------------------------------------------------------------------------------------
-# LEP-specific initialization: 
-# also set frame even though it it the same as default (needed for PythiaCommand vector parsing)
-# set beam and target to e+ and e-
-# set win to 91.2 GeV
-Pythia.PythiaCommand +=["pyinit use_PYINIT CMS e+ e- 91.2"]
-
-#-------------------------------------------------------------------------------------------------------------
-#using PYGIVE (ATLAS independant syntax for params.)
-Pythia.PygiveCommand += [ "msel=0",           # Users decay choice.
-                          "parj(90)=20000",   # Turn off FSR.
-                          "mdcy(15,1)=0",     # Turn off tau decays.
-                          "msub(1)=1",        # Create Z bosons.
-                          "ckin(1)=60.0",     # Lower invariant mass.
-                          "mdme(174,1)=0",
-                          "mdme(175,1)=0",
-                          "mdme(176,1)=0",
-                          "mdme(177,1)=0",
-                          "mdme(178,1)=0",
-                          "mdme(179,1)=0",
-                          "mdme(182,1)=0",    # Switch for Z->ee.
-                          "mdme(183,1)=0",
-                          "mdme(184,1)=1",    # Switch for Z->mumu.
-                          "mdme(185,1)=0",
-                          "mdme(186,1)=0",    # Switch for Z->tautau.
-                          "mdme(187,1)=0"]
-#-------------------------------------------------------------------------------------------------------------
-# our pp tuned parameters might as well be worse as defaults ...  
-# use no ATLAS parameter settings
-#Pythia.Tune_Name="ATLAS_0" : you'll get TestHepMC crashes by doing this only 
-# use only recommended ATLAS parameter settings (i.e. the ones necessary for succsfull && consistent simulation within Athena)
-Pythia.Tune_Name="ATLAS_-1" # keep ER structure and new PS/MI ... see .log file for exact parameters settings
-# use recommended + common (PDF, mass, MI schema etc., but not parameters commonly used for tuning) ATLAS parameter
-#Pythia.Tune_Name="ATLAS_-2"
-#______________________________________________________________________________________________________________
diff --git a/Generators/Pythia_i/share/MC10.109236.PythiaZtautaull_2Leptons_CSSF.py b/Generators/Pythia_i/share/MC10.109236.PythiaZtautaull_2Leptons_CSSF.py
deleted file mode 100644
index 9734bf688c1b7691ab8b91fc5510d1856df8340d..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/MC10.109236.PythiaZtautaull_2Leptons_CSSF.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#________________________________________________________________________________________
-#
-# Auth.: liza.mijovic_at_nospam.cern.ch
-# example how to use CrossSectionScaleFactor property that multiplites x-section 
-# for the MetaData printout by a num. factor
-#
-# use-case: Pythia Z->tautau -> lept. decay with 2lepEF (lep=e,mu)
-#           tau BR determined by Tauola and is not picked by Pythia => wrong AMI value
-#           => take BR into account at jO level by setting CrossSectionScaleFactor
-#
-#________________________________________________________________________________________
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-# ... Pythia
-include ( "MC10JobOptions/MC10_Pythia_Common.py" )
-#________________________________________________________________________________________
-# Proc. setup
-#________________________________________________________________________________________
-Pythia.PythiaCommand += [ "pysubs msel 0",
-                          "pydat1 parj 90 20000", # Turn off FSR.
-                          "pydat3 mdcy 15 1 0",   # Turn off tau decays.
-                          "pysubs msub 1 1",      # Create Z bosons.
-                          "pysubs ckin 1 60.0",   # Lower invariant mass.
-                          "pydat3 mdme 174 1 0",
-                          "pydat3 mdme 175 1 0",
-                          "pydat3 mdme 176 1 0",
-                          "pydat3 mdme 177 1 0",
-                          "pydat3 mdme 178 1 0",
-                          "pydat3 mdme 179 1 0",
-                          "pydat3 mdme 182 1 0",    # Switch for Z->ee.
-                          "pydat3 mdme 183 1 0",
-                          "pydat3 mdme 184 1 0",    # Switch for Z->mumu.
-                          "pydat3 mdme 185 1 0",
-                          "pydat3 mdme 186 1 1",    # Switch for Z->tautau.
-                          "pydat3 mdme 187 1 0",
-                          "pydat3 mdme 188 1 0",
-                          "pydat3 mdme 189 1 0"
-                          ]
-#________________________________________________________________________________________
-# Part. Decay done by Gen-s other than Pythia
-#________________________________________________________________________________________
-# ... Tauola
-include ( "MC10JobOptions/MC10_Tauola_Fragment_LeptonicDecay.py" )
-# multiplicative factor for AMI MetaData
-Pythia.CrossSectionScaleFactor=0.1277 
-
-# ... Photos
-include ( "MC10JobOptions/MC10_Photos_Fragment.py" )
-#________________________________________________________________________________________
-# Filter
-#________________________________________________________________________________________
-
-from GeneratorFilters.GeneratorFiltersConf import MultiLeptonFilter
-topAlg += MultiLeptonFilter()
-
-MultiLeptonFilter = topAlg.MultiLeptonFilter
-MultiLeptonFilter.Ptcut = 5000.
-MultiLeptonFilter.Etacut = 3.0
-MultiLeptonFilter.NLeptons = 2
-
-try:
-    StreamEVGEN.RequireAlgs += [ "MultiLeptonFilter" ]
-except Exception, e:
-    pass            
-#________________________________________________________________________________________
-from MC10JobOptions.PythiaEvgenConfig import evgenConfig
-evgenConfig.efficiency = 0.34
-#________________________________________________________________________________________
diff --git a/Generators/Pythia_i/share/MC10.117960.MadGraph_TT_250010_SetCS.py b/Generators/Pythia_i/share/MC10.117960.MadGraph_TT_250010_SetCS.py
deleted file mode 100644
index f9586d8452b45475777e863dcd78b40e40ceb4e8..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/MC10.117960.MadGraph_TT_250010_SetCS.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# jO version showing how to manually set the crosssection value for the MetaData printout
-# using the SetCrossSection property
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-# --> use the following pythia tune if CTEQ6l1 pdf has been used
-include ( "MC10JobOptions/MC10_PythiaMC09p_Common.py" )
-
-Pythia.PythiaCommand += [ "pyinit user madgraph",
-                          "pyinit pylisti -1","pyinit pylistf 1","pyinit dumpr 1 2",
-                          "pydat1 parj 90 20000", # Turn off FSR.
-                          "pydat3 mdcy 15 1 0"    # Turn off tau decays.
-                        ]
-
-# set x before filtering efficiency in [nb] manually;
-#Pythia.SetCrossSection=3190.0
-
-## ... Tauola
-include ( "MC10JobOptions/MC10_Tauola_Fragment.py" )
-
-## ... Photos
-include ( "MC10JobOptions/MC10_Photos_Fragment.py" )
-
-# MultiLeptonFilter
-from GeneratorFilters.GeneratorFiltersConf import MultiLeptonFilter
-topAlg += MultiLeptonFilter()
-
-MultiLeptonFilter = topAlg.MultiLeptonFilter
-MultiLeptonFilter.Ptcut = 15.*GeV
-MultiLeptonFilter.Etacut = 2.7
-MultiLeptonFilter.NLeptons = 1
-
-#---------------------------------------------------------------
-# POOL / Root output
-#---------------------------------------------------------------
-try:
-    StreamEVGEN.RequireAlgs += [ "MultiLeptonFilter" ]
-except Exception, e:
-    pass
-
-from MC10JobOptions.PythiaEvgenConfig import evgenConfig
-#from MC10JobOptions.MadGraphEvgenConfig import evgenConfig
-
-evgenConfig.generators += ["MadGraph", "Pythia"]
-evgenConfig.inputfilebase = 'MadGraph'
-try:
-  if runArgs.ecmEnergy == 7000.0:
-    evgenConfig.inputfilebase = 'group10.phys-gener.MadGraph.117960.TT_250_010_7TeV.TXT.v3'
-  if runArgs.ecmEnergy == 8000.0:
-    evgenConfig.inputfilebase = 'group10.phys-gener.MadGraph.117960.TT_250_010_8TeV.TXT.v1'
-  if runArgs.ecmEnergy == 10000.0:
-    evgenConfig.inputfilebase = 'group10.phys-gener.MadGraph.117960.TT_250_010_10TeV.TXT.v1'
-  if runArgs.ecmEnergy == 14000.0:
-    evgenConfig.inputfilebase = 'group10.phys-gener.MadGraph.117960.TT_250_010_14TeV.TXT.v1'
-except NameError:
-  pass
-evgenConfig.efficiency = 0.08
-
-phojf=open('./pythia_card.dat', 'w')
-phojinp = """
-! exclusive or inclusive matching
-      IEXCFILE=0
-      showerkt=T
-      qcut=20
-      """
-phojf.write(phojinp)
-phojf.close()
diff --git a/Generators/Pythia_i/share/MC10_pygive_test_Zmumu_jO.py b/Generators/Pythia_i/share/MC10_pygive_test_Zmumu_jO.py
deleted file mode 100644
index 598bb0dfa4a28a2002282efcc89bc4baf1364c77..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/MC10_pygive_test_Zmumu_jO.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#_________________________________________________________________________________
-# Jul. 09
-# LM: parameters setup using PYGIVE example
-# generate Zmumu Pythia events using mc09 tune for MRST2007lomod (LO* for MC)
-# 1. setup Z production using PYGIVE calls
-#_________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 10
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-
-# set MC09:
-Pythia.Tune_Name="ATLAS_20100001"
-
-#_________________________________________________________________________________
-
-#1. setup Z production using PYGIVE calls
-#---------------------------------------------------------------------------------
-#using PythiaCommand
-#Pythia.PythiaCommand += [ "pysubs msel 0",         # Users decay choice.
-#                         "pydat1 parj 90 20000",   # Turn off FSR.
-#                         "pydat3 mdcy 15 1 0",     # Turn off tau decays.
-#                         "pysubs msub 1 1",        # Create Z bosons.
-#                         "pysubs ckin 1 60.0",     # Lower invariant mass.
-#                         "pydat3 mdme 174 1 0",
-#                         "pydat3 mdme 175 1 0",
-#                         "pydat3 mdme 176 1 0",
-#                         "pydat3 mdme 177 1 0",
-#                         "pydat3 mdme 178 1 0",
-#                         "pydat3 mdme 179 1 0",
-#                         "pydat3 mdme 182 1 0",    # Switch for Z->ee.
-#                         "pydat3 mdme 183 1 0",
-#                         "pydat3 mdme 184 1 1",    # Switch for Z->mumu.
-#                         "pydat3 mdme 185 1 0",
-#                         "pydat3 mdme 186 1 0",    # Switch for Z->tautau.
-#                         "pydat3 mdme 187 1 0"]
-#---------------------------------------------------------------------------------
-#using PYGIVE 
-Pythia.PygiveCommand += [ "msel=0",           # Users decay choice.
-                          "parj(90)=20000",   # Turn off FSR.
-                          "mdcy(15,1)=0",     # Turn off tau decays.
-                          "msub(1)=1",        # Create Z bosons.
-                          "ckin(1)=60.0",     # Lower invariant mass.
-                          "mdme(174,1)=0",
-                          "mdme(175,1)=0",
-                          "mdme(176,1)=0",
-                          "mdme(177,1)=0",
-                          "mdme(178,1)=0",
-                          "mdme(179,1)=0",
-                          "mdme(182,1)=0",    # Switch for Z->ee.
-                          "mdme(183,1)=0",
-                          "mdme(184,1)=1",    # Switch for Z->mumu.
-                          "mdme(185,1)=0",
-                          "mdme(186,1)=0",    # Switch for Z->tautau.
-                          "mdme(187,1)=0"]
-#---------------------------------------------------------------------------------
-
-# ... Tauola
-#include ( "EvgenJobOptions/MC10_Tauola_Fragment.py" )
-
-# ... Photos
-#include ( "EvgenJobOptions/MC10_Photos_Fragment.py" )
-
diff --git a/Generators/Pythia_i/share/MC11.108407.Pythia_directJpsimu4mu4_jPsi_wgt.py b/Generators/Pythia_i/share/MC11.108407.Pythia_directJpsimu4mu4_jPsi_wgt.py
deleted file mode 100644
index 0f8ff4df7ac7d2f6bd8688914890f48436134e31..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/MC11.108407.Pythia_directJpsimu4mu4_jPsi_wgt.py
+++ /dev/null
@@ -1,207 +0,0 @@
-###############################################################
-# PRODUCTION SYSTEM FRAGMENT
-#       jobOptions for quarkonium production in the
-#               NRQCD colour-octet framework
-# Author:   Darren D Price ( Darren.Price@cern.ch )
-# Date:     Jun 2006
-# Modified: Oct 2006, Oct 2009 E. Bouhova
-#==============================================================
-
-#--------------------------------------------------------------
-# Private Application Configuration options
-#--------------------------------------------------------------
-from MC11JobOptions.PythiaEvgenConfig import evgenConfig
-evgenConfig.efficiency = 0.0003
-
-from AthenaCommon.AlgSequence import AlgSequence 
-topAlg = AlgSequence("TopAlg") 
-
-include ( "MC11JobOptions/MC11_Pythia_Common.py" )
-
-from GeneratorFilters.GeneratorFiltersConf import BSignalFilter
-topAlg += BSignalFilter()
-
-
-Pythia.PythiaCommand += [ # quarkonium processes
-    
-    #"pysubs msel 0",   # user chooses decay mode(s)
-    "pysubs msel 61", # colour octet charmonium production (421-439)
-    #"pysubs msel 62", # colour octet bottomonium production (461-479)
-    #"pysubs msel 63", # colour octet onium production (msel 61+62)
-    
-    # ----- J/Psi production -----
-    # --- 3S1(1)                        
-    #"pysubs msub 421 1",  # gg->cc~[3S1(1)]+g
-    # --- 3S1(8)
-    #"pysubs msub 422 1",  # gg->cc~[3S1(8)]+g
-    #"pysubs msub 425 1",  # gq->q+cc~[3S1(8)]
-    #"pysubs msub 428 1",  # qq~->g+cc~[3S1(8)]
-    # --- 1S0(8)                        
-    #"pysubs msub 423 1",  # gg->cc~[1S0(8)]+g
-    #"pysubs msub 426 1",  # gq->q+cc~[1S0(8)]
-    #"pysubs msub 429 1",  # qq~->g+cc~[1S0(8)]
-    # --- 3PJ(8)
-    #"pysubs msub 424 1",  # gg->cc~[3PJ(8)]+g
-    #"pysubs msub 427 1",  # gq->q+cc~[3PJ(8)]
-    #"pysubs msub 430 1",  # qq~->g+cc~[3PJ(8)]
-
-    # ----- Chi's -----
-    #"pysubs msub 431 1",  # gg->cc~[3P0(1)]+g
-    #"pysubs msub 432 1",  # gg->cc~[3P1(1)]+g
-    #"pysubs msub 433 1",  # gg->cc~[3P2(1)]+g
-    #"pysubs msub 434 1",  # qg->q+cc~[3P0(1)]
-    #"pysubs msub 435 1",  # qg->q+cc~[3P1(1)]
-    #"pysubs msub 436 1",  # qg->q+cc~[3P2(1)]
-    #"pysubs msub 437 1",  # qq~->cc~[3P0(1)]+g
-    #"pysubs msub 438 1",  # qq~->cc~[3P1(1)]+g
-    #"pysubs msub 439 1",  # qq~->cc~[3P2(1)]+g
-                        
-    # ----- Upsilon production -----
-    # --- 3S1(1)
-    #"pysubs msub 461 1",  # gg->bb~[3S1(1)]+g
-    # --- 3S1(8)
-    #"pysubs msub 462 1",  # gg->bb~[3S1(8)]+g
-    #"pysubs msub 465 1",  # gq->q+bb~[3S1(8)]
-    #"pysubs msub 468 1",  # qq~->g+bb~[3S1(8)]
-    # --- 1S0(8)
-    #"pysubs msub 463 1",  # gg->bb~[1S0(8)]+g
-    #"pysubs msub 466 1",  # gq->q+bb~[1S0(8)]
-    #"pysubs msub 469 1",  # qq~->g+bb~[1S0(8)]
-    # --- 3PJ(8)
-    #"pysubs msub 464 1",  # gg->bb~[3PJ(8)]+g
-    #"pysubs msub 467 1",  # gq->q+bb~[3PJ(8)]
-    #"pysubs msub 470 1",  # qq~->g+bb~[3PJ(8)]
-
-    # ----- Chi's -----
-    #"pysubs msub 471 1",  # gg->bb~[3P0(1)]+g
-    #"pysubs msub 472 1",  # gg->bb~[3P1(1)]+g
-    #"pysubs msub 473 1",  # gg->bb~[3P2(1)]+g
-    #"pysubs msub 474 1",  # qg->q+bb~[3P0(1)]
-    #"pysubs msub 475 1",  # qg->q+bb~[3P1(1)]
-    #"pysubs msub 476 1",  # qg->q+bb~[3P2(1)]
-    #"pysubs msub 477 1",  # qq~->bb~[3P0(1)]+g
-    #"pysubs msub 478 1",  # qq~->bb~[3P1(1)]+g
-    #"pysubs msub 479 1",  # qq~->bb~[3P2(1)]+g
-    
-    ]                        
-
-Pythia.PythiaCommand += [ # force decays
-
-    "pydat3 mdme 858 1 0", # J/psi->e+e-
-    "pydat3 mdme 859 1 1", # J/psi->mumu (br 0.06)
-    "pydat3 mdme 860 1 0",  # J/psi->rndmflavpairs
-
-    #"pydat3 mdme 1501 1 1", # chi0c->J/psi gamma (br 0.007)
-    #"pydat3 mdme 1502 1 0", # chi0c->rfp 
-    
-    #"pydat3 mdme 1555 1 1", # chi1c->J/psi gamma (br 0.273)
-    #"pydat3 mdme 1556 1 0", # chi1c->rfp
-    
-    #"pydat3 mdme 861 1 1", # chi2c->J/psi gamma (br 0.135)
-    #"pydat3 mdme 862 1 0", # chi2c->rfp
-
-    #"pydat3 mdme 1034 1 0", # Upsilon->e+e- (br 0.0254)
-    #"pydat3 mdme 1035 1 1", # Upsilon->mu+mu- (br 0.0248)
-    #"pydat3 mdme 1036 1 0", # Upsilon->tau+tau- (br 0.0267)
-    #"pydat3 mdme 1037 1 0", # Upsilon->ddbar
-    #"pydat3 mdme 1038 1 0", # Upsilon->uubar
-    #"pydat3 mdme 1039 1 0", # Upsilon->ssbar
-    #"pydat3 mdme 1040 1 0", # Upsilon->ccbar
-    #"pydat3 mdme 1041 1 0", # Upsilon->ggg
-    #"pydat3 mdme 1042 1 0", # Upsilon->gamma gg
-    
-    #"pydat3 mdme 1520 1 1", # chi0b->Upsilon gamma (br 0.02)
-    #"pydat3 mdme 1521 1 0", # chi0b->gg
-    
-    #"pydat3 mdme 1565 1 1", # chi1b->Upsilon gamma (br 0.35)
-    #"pydat3 mdme 1566 1 0", # chi1b->gg
-    
-    #"pydat3 mdme 1043 1 1", # chi2b->Upsilon gamma (br 0.22)
-    #"pydat3 mdme 1044 1 0", # chi2b->gg
-    
-    ]
-
-Pythia.PythiaCommand += [ # NRQCD matrix elements
-    
-    "pypars parp 141 1.16",   # Jpsi-3S1(1) NRQCD ME
-    "pypars parp 142 0.0119", # Jpsi-3S1(8) NRQCD ME
-    "pypars parp 143 0.01",   # Jpsi-1S0(8) NRQCD ME
-    "pypars parp 144 0.01",   # Jpsi-3P0(8) NRQCD ME / m_c^2
-    "pypars parp 145 0.05",   # chi_c0-3P0(1) NRQCD ME / m_c^2
-
-    "pypars parp 146 9.28",   # Upsilon-3S1(1) NRQCD ME
-    "pypars parp 147 0.15",   # Upsilon-3S1(8) NRQCD ME
-    "pypars parp 148 0.02",   # Upsilon-1S0(8) NRQCD ME
-    "pypars parp 149 0.02",   # Upsilon-3P0(8) NRQCD ME / m_b^2 
-    "pypars parp 150 0.085",  # chi_b0-3P0(1) NRQCD ME / m_b^2
-        
-    ]
-
-#Pythia.PythiaCommand += [ ### Moraes tunings (here for reference only)
-
-#        "pypars mstp 70 2",
-#        "pypars mstp 72 0",
-
-#            "pypars mstp 81 1",
-#            "pypars mstp 82 4",
-
-#            "pypars mstp 84 1",
-#            "pypars mstp 85 1",
-#            "pypars mstp 86 2",
-#            "pypars mstp 87 4",
-#            "pypars mstp 88 0",
-#            "pypars mstp 89 1",
-#            "pypars mstp 90 1",
-
-#            "pypars mstp 95 1",
-
-#            "pypars parp 78 0.2",
-#            "pypars parp 80 0.01",
-#            "pypars parp 82 1.9",
-#            "pypars parp 83 0.3",
-#            "pypars parp 84 0.5",
-#            "pypars parp 89 1800",
-#            "pypars parp 90 0.22",
-
-#            "pydat1 parj 81 0.14",
-
-#            ]
-
-
-Pythia.PythiaCommand += [
-
-    "pysubs ckin 3 1.",   # lower pT cut on hard process in GeV
-
-    #"pypars mstp 61 0", # inital state showers off
-    #"pypars mstp 71 0", # final state showers off
-    #"pypars mstp 111 0" # fragmentation/hadronisation off
-    
-    ]
-
-Pythia.PythiaCommand += ["pyinit pylistf 1",
-                        "pystat mstat 1", 
-			"pyinit dumpr 0 3",#dump this event range to screen
-                         ]
-
-Pythia.PythiaCommand += ["pypars mstp 142 1",     # Enable event weighting
-                         "pypevwt ievwt 1 5" ]    # select  bug fix for J/psi + Upsilon
-
-
-#------- Muon Trigger Cuts --------
-BSignalFilter = topAlg.BSignalFilter
-#-------------- Level 1 Muon Cuts --------------------- 
-BSignalFilter.LVL1MuonCutOn = True
-BSignalFilter.LVL1MuonCutPT = 4000.0 
-BSignalFilter.LVL1MuonCutEta = 2.5 
-#-------------- Level 2 lepton cuts -------------------
-# These will only function if LVL1 trigger used. 
-BSignalFilter.LVL2MuonCutOn = True 
-BSignalFilter.LVL2MuonCutPT = 4000.0 
-BSignalFilter.LVL2MuonCutEta = 2.5
-StreamEVGEN.RequireAlgs += ["BSignalFilter"]
-
-#==============================================================
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Pythia_i/share/PYTUNE_pprintout.py b/Generators/Pythia_i/share/PYTUNE_pprintout.py
deleted file mode 100644
index 564fee7303a86b2b89df12767930b5600ed7390c..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/PYTUNE_pprintout.py
+++ /dev/null
@@ -1,32 +0,0 @@
-#______________________________________________________________________________________________________________________
-# author: liza.mijovic@_nospam_cern.ch 
-#
-# jO effect: dump the values of all parameters PYTUNE can set - this jopts are meant for runnig with GET_TUNE_params.sh
-#
-# ______________________________________________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 0
-
-Pythia.Tune_Name="ATLAS_-1"
-Pythia.Direct_call_to_pytune=REPIND
-# if one want the call to be equivalen to Pythia.Tune_Name="PYTUNE_XXX"
-# the ATLAS stable particles convention should also be added
-Pythia.PygiveCommand += [ "mstj(22)=2" ]
-
-PYDAT1_PARAMS=[ "MSTU", "PARU", "MSTJ", "PARJ" ]
-PYPARS_PARAMS=[ "MSTP", "PARP", "MSTI", "PARI" ]
-PYTUNE_PARAMS=PYDAT1_PARAMS+PYPARS_PARAMS
-
-PQ_LIST=[]
-for i in PYTUNE_PARAMS:
-    PQ_LIST+=[i+"("+repr(x)+")=" for x in range(1,201)]
-
-Pythia.PygiveCommand += PQ_LIST
-Pythia.Param_Query_AfterInit += PQ_LIST
diff --git a/Generators/Pythia_i/share/direct_pytune_test_Zmumu_jO.py b/Generators/Pythia_i/share/direct_pytune_test_Zmumu_jO.py
deleted file mode 100644
index 9705b42c869697815fc36c128e885d562c80b0f6..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/direct_pytune_test_Zmumu_jO.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#______________________________________________________________________________________________________________
-# author: liza.mijovic@_nospam_cern.ch
-# demonstrate how one can call a PYTUNE tune and change some parameters set by the tune on top from jO;
-#--------------------------------------------------------------------------------------------------------------
-# use-case: one wishes to study an effect of parameter variation for a certain Pythia tune available via PYTUNE
-#--------------------------------------------------------------------------------------------------------------
-# problem:
-# changing parameters on top of the values set explicitly by PYUTNE cannot be done by using MSTP(5) or Pythia.Tune_Name
-# (which also uses MSTP(5) ) as in these cases PYTUNE call is made within PYINIT in Pythia.
-# As at this point the parameter setting has already been done by Pythia the value set by PYTUNE will be assumed
-# for any parameter that the tune sets explicitly.
-#--------------------------------------------------------------------------------------------------------------
-# solution:
-# set the tune directly by SUBROUTINE PYTUNE call, than any parameters varied on top will have effect 
-#--------------------------------------------------------------------------------------------------------------
-# demonstration that the solution works:
-# Say one wants to study the effect of increasing PARP(82) in Perugia 10, where it has a value: PARP(82)=2.05 
-# So increase the value to say PARP(82)=2.2 on top but keep Perugia 10 for all other parameters
-# check the parameter values using parameter queries after initialization
-# finally generate a test sample of 10 Zmumu Pythia events using PYGIVE for setup 
-#______________________________________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 10
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-
-#-------------------------------------------------------------------------------------------------------------
-#using PYGIVE (ATLAS independant syntax for params.)
-Pythia.PygiveCommand += [ "msel=0",           # Users decay choice.
-                          "parj(90)=20000",   # Turn off FSR.
-                          "mdcy(15,1)=0",     # Turn off tau decays.
-                          "msub(1)=1",        # Create Z bosons.
-                          "ckin(1)=60.0",     # Lower invariant mass.
-                          "mdme(174,1)=0",
-                          "mdme(175,1)=0",
-                          "mdme(176,1)=0",
-                          "mdme(177,1)=0",
-                          "mdme(178,1)=0",
-                          "mdme(179,1)=0",
-                          "mdme(182,1)=0",    # Switch for Z->ee.
-                          "mdme(183,1)=0",
-                          "mdme(184,1)=1",    # Switch for Z->mumu.
-                          "mdme(185,1)=0",
-                          "mdme(186,1)=0",    # Switch for Z->tautau.
-                          "mdme(187,1)=0"]
-#-------------------------------------------------------------------------------------------------------------
-# use only recommended ATLAS parameter settings (i.e. the ones necessary for succsfull && consistent simulation within Athena)
-# all other ATLAS defaults are switched off
-Pythia.Tune_Name="ATLAS_-1"
-# call Perugia 10 in the mode that will allow parameter overwriting (using MSTP(5) or Pythia.Tune_Name="PYTUNE_325" wouldn't)
-Pythia.Direct_call_to_pytune=327
-# keep ATLAS stable particles definition
-Pythia.PygiveCommand += [ "mstj(22)=2" ]
-# now set PARP(82) to the desired value
-Pythia.PygiveCommand += [ "parp(82)=2.2" ]
-# check that PARP(82) has the desired value after initialization
-Pythia.Param_Query_AfterInit += [ "PARP(82)=" ]
-#-------------------------------------------------------------------------------------------------------------
-#______________________________________________________________________________________________________________
diff --git a/Generators/Pythia_i/share/jobOptions.pythia.py b/Generators/Pythia_i/share/jobOptions.pythia.py
deleted file mode 100644
index 9f2c26c762fb61932b942233611fcc4cbe43462c..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/jobOptions.pythia.py
+++ /dev/null
@@ -1,48 +0,0 @@
-###############################################################
-#
-# JOB OPTIONS FILE. THIS FILE IS TO DEMONSTRATE HOW THE USER CAN
-# CHANGE THE PYTHIA PARAMETERS. IT DOES NOT NECESARILY COMPLY TO
-# THE ATLAS DEFAULTS FOR PHYSICS EVENT GENERATION.
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = INFO
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-"PYTHIA_INIT 820021 2347532"]
-# ServiceManager.AtRndmGenSvc.ReadFromFile = true;
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Pythia_i.Pythia_iConf import Pythia
-job +=Pythia()
-job.Pythia.PythiaCommand = ["pysubs msel 13","pysubs ckin 3 18.","pypars mstp 43 2"]
-job.Pythia.PythiaCommand += ["pypars mstp 51 19070", "pypars mstp 52 2",
-                        "pypars mstp 53 19070", "pypars mstp 54 2",
-                        "pypars mstp 55 19070", "pypars mstp 56 2"]
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-from TruthExamples.TruthExamplesConf import TestHepMC
-job += TestHepMC()
-job.TestHepMC.CmEnergy=10000000
-from TruthExamples.TruthExamplesConf import PrintMC
-job += PrintMC()
-
-
-
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Pythia_i/share/jobOptions.pythia_RPV.py b/Generators/Pythia_i/share/jobOptions.pythia_RPV.py
deleted file mode 100644
index 2563973a26e3fa9f4928656ecb8379af860ca23c..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/jobOptions.pythia_RPV.py
+++ /dev/null
@@ -1,80 +0,0 @@
-###############################################################
-#
-# JOB OPTIONS FILE. THIS FILE IS TO DEMONSTRATE HOW THE USER CAN
-# CHANGE THE PYTHIA PARAMETERS. IT DOES NOT NECESARILY COMPLY TO
-# THE ATLAS DEFAULTS FOR PHYSICS EVENT GENERATION.
-#==============================================================
-#--------------------------------------------------------------
-# Private Application Configuration option
-from AthenaCommon.AppMgr import ServiceMgr
-ServiceMgr.MessageSvc.OutputLevel = DEBUG
-
-#--------------------------------------------------------------
-# Event related parameters
-#--------------------------------------------------------------
-# Number of events to be processed (default is 10)
-theApp.EvtMax = 5
-#--------------------------------------------------------------
-# Algorithms Private Options
-#--------------------------------------------------------------
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-"PYTHIA_INIT 820021 2347532"]
-# ServiceManager.AtRndmGenSvc.ReadFromFile = true;
-
-from AthenaCommon.AlgSequence import AlgSequence
-job=AlgSequence()
-from Pythia_i.Pythia_iConf import Pythia
-job +=Pythia()
-####################
-job.Pythia.PythiaCommand = ["pyinit pylisti 12"] #print out particle properties settings
-job.Pythia.PythiaCommand += ["pyinit pylistf 1"] 
-job.Pythia.PythiaCommand += ["pysubs msel 0"]  # !
-job.Pythia.PythiaCommand += ["pysubs msub 271 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 272 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 273 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 274 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 275 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 276 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 277 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 278 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 279 1"]  # squark pair production 
-job.Pythia.PythiaCommand += ["pysubs msub 280 1"]  # squark pair production 
-#######
-job.Pythia.PythiaCommand+= ["pymssm imss 1 1"] # general MSSM !!
-#Pythia.PythiaCommand+= ["pymssm imss 52 1"] #switch on RPV lambda^prime coupling
-#Pythia.PythiaCommand += ["pymssm rmss 52 8."] # setting lambda^prime coupling strength to 10^{-rmss(52)}
-job.Pythia.PythiaCommand+= ["pymssm imss 52 3"] #switch on RPV lambda^prime coupling
-job.Pythia.PythiaCommand += ["pymsrv rvlam 111 0.000002"] # setting lambda^prime coupling strength 
-#job.Pythia.PythiaCommand += ["mdcy xxx 1"]
-job.Pythia.PythiaCommand += ["pydat1 mstj 22 3"] # allow long decay length
-job.Pythia.PythiaCommand += ["pydat1 parj 72 10000."]
-## only works for >=0.000009  , ct<=1cm
-## with current masses: 0.000002 -> ct=70mm
-job.Pythia.PythiaCommand += ["pydat3 mdme 2205 1 0"] # switch explicetly off special RPV decays  
-job.Pythia.PythiaCommand += ["pydat3 mdme 2206 1 0"] # switch explicetly off special RPV decays  
-##
-job.Pythia.PythiaCommand += ["pymssm rmss 1 500."] #M1 gaugino 
-job.Pythia.PythiaCommand += ["pymssm rmss 2 5000."] #M2 gaugino 
-job.Pythia.PythiaCommand += ["pymssm rmss 3 5000."] #M3 gluino
-job.Pythia.PythiaCommand += ["pymssm rmss 4 800."] #mu higgsino, default=800  ,important to make chi10 much lighter than other gauginos
-job.Pythia.PythiaCommand += ["pymssm rmss 5 2."]  #tan beta , default=2  ,important to make chi10 much lighter than other gauginos
-job.Pythia.PythiaCommand += ["pymssm rmss 6 5000."] #left slepton, makes sneutrino mass high (also eL), to surpress LQD decay to neutrinos
-job.Pythia.PythiaCommand += ["pymssm rmss 7 5000."] #right slepton, irrelevant in LQD 
-job.Pythia.PythiaCommand += ["pymssm rmss 8 700."] #left squark
-job.Pythia.PythiaCommand += ["pymssm rmss 9 700."] #right squark
-job.Pythia.PythiaCommand += ["pymssm rmss 10 5000."] #third generation 
-job.Pythia.PythiaCommand += ["pymssm rmss 11 5000."] #third generation
-job.Pythia.PythiaCommand += ["pymssm rmss 12 5000."] #third generation
-job.Pythia.PythiaCommand += ["pymssm rmss 13 5000."] #third generation
-job.Pythia.PythiaCommand += ["pymssm rmss 14 5000."] #third generation
-##############
-
-from TruthExamples.TruthExamplesConf import DumpMC
-job += DumpMC()
-
-#
-# End of job options file
-#
-###############################################################
diff --git a/Generators/Pythia_i/share/param_query_Zmumu_jO.py b/Generators/Pythia_i/share/param_query_Zmumu_jO.py
deleted file mode 100644
index 5425c663e9dec4eac32b0a9d87a5f6b39893f2a6..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/param_query_Zmumu_jO.py
+++ /dev/null
@@ -1,75 +0,0 @@
-#______________________________________________________________________________________________________________________
-# author: liza.mijovic@_nospam_cern.ch 
-#
-# jO purpose:show how (and why) to query Pythia parameter values ather generator initialization and event generation
-#
-# run jO like: athena.py param_query_Zmumu_jO.py
-#
-# please note: for ATLAS physics studies the event generation follow ATLAS central production standards: 
-# use the EVGEN jobtransforms and the relevant official include files for the common ATLAS parameters
-# (not done in this example)
-#
-#----------------------------------------------------------------------------------------------------------------------
-# jO description:
-#
-# - generate 10 Zmumu Pythia events; PYGIVE is used for the Zmumu process setup
-# - Z mass and width are set manually, they values are queried before and after the generator initialization in order
-#   to demonstrate that the Z-width is reset during the initialization 
-# - info on # of MI in the events is extracted by parameter query after the event generation 
-#----------------------------------------------------------------------------------------------------------------------
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 10
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-
-#----------------------------------------------------------------------------------------------------------------------
-#using PYGIVE (ATLAS independant syntax for params.)
-Pythia.PygiveCommand += [ "msel=0",           # Users decay choice.
-                          "parj(90)=20000",   # Turn off FSR.
-                          "mdcy(15,1)=0",     # Turn off tau decays.
-                          "msub(1)=1",        # Create Z bosons.
-                          "ckin(1)=60.0",     # Lower invariant mass.
-                          "mdme(174,1)=0",
-                          "mdme(175,1)=0",
-                          "mdme(176,1)=0",
-                          "mdme(177,1)=0",
-                          "mdme(178,1)=0",
-                          "mdme(179,1)=0",
-                          "mdme(182,1)=0",    # Switch for Z->ee.
-                          "mdme(183,1)=0",
-                          "mdme(184,1)=1",    # Switch for Z->mumu.
-                          "mdme(185,1)=0",
-                          "mdme(186,1)=0",    # Switch for Z->tautau.
-                          "mdme(187,1)=0"]
-
-#----------------------------------------------------------------------------------------------------------------------
-# not setting the tune - ATLAS default used for the Athena release you are running will be assumed
-#----------------------------------------------------------------------------------------------------------------------
-# set Z mass and width (to a too narrow value):
-Pythia.PygiveCommand += [ "PMAS(23,1)=91.1876",
-                          "PMAS(23,2)=2.0"]
-#----------------------------------------------------------------------------------------------------------------------
-# 1) query the Z mass and width values (same as when using PYGIVE queries before PYINIT in Pythia standalone) :
-# values are written to the stand. output && reflect the state before Pythia initialization has been completed 
-Pythia.PygiveCommand += [ "PMAS(23,1)=",
-                          "PMAS(23,2)="]
-#----------------------------------------------------------------------------------------------------------------------
-# 2) query the Z mass and width values after Pythia initialization has been completed:
-# values are written to par_after_init.out; since the Z-width is recalculated by (default by) Pythia the Z-width values
-# will be different for the queries 1) and 2)
-Pythia.Param_Query_AfterInit += [ "PMAS(23,1)=",
-                                  "PMAS(23,2)="]
-#----------------------------------------------------------------------------------------------------------------------
-# 3) example how to extract event-specific modelling-related info:
-# get # of MI after event generation: written to file par_after_gen.out
-Pythia.Param_Query_AfterGen += [ "MINT(31)=" ]
diff --git a/Generators/Pythia_i/share/set_frame_beam_target_ecm.py b/Generators/Pythia_i/share/set_frame_beam_target_ecm.py
deleted file mode 100644
index a7be5af007246867cdc1b981a81a11f8fd641046..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/set_frame_beam_target_ecm.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#______________________________________________________________________________________________________________________________________
-# Feb. 2010
-# LM: use_PYINIT setup example jO
-# use_PYINIT is a pyinit block entry, that enables setting frame, beam, target particles and CMS for generated events 
-# these are than passed to PYINIT(FRAME,BEAM,TARGET,WIN) PYHITA call
-# this jO file has some use_PYINIT setting techical examples, explaining rules for omiting parameters, error handling, white-space rules...
-# examples for allowed (these have # ok, comment) and what is not allowed (# not ok comment) syntax are available below process setting
-# formally the examples generate Zmumu Pythia events in pp or p~p collisions, using the ATLAS default tune for the used release (whatever that is ...)
-#______________________________________________________________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 10
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-
-#_________________________________________________________________________________
-
-#1. setup Z production using PYGIVE calls
-#---------------------------------------------------------------------------------
-Pythia.PygiveCommand += [ "msel=0",           # Users decay choice.
-                          "parj(90)=20000",   # Turn off FSR.
-                          "mdcy(15,1)=0",     # Turn off tau decays.
-                          "msub(1)=1",        # Create Z bosons.
-                          "ckin(1)=60.0",     # Lower invariant mass.
-                          "mdme(174,1)=0",
-                          "mdme(175,1)=0",
-                          "mdme(176,1)=0",
-                          "mdme(177,1)=0",
-                          "mdme(178,1)=0",
-                          "mdme(179,1)=0",
-                          "mdme(182,1)=0",    # Switch for Z->ee.
-                          "mdme(183,1)=0",
-                          "mdme(184,1)=1",    # Switch for Z->mumu.
-                          "mdme(185,1)=0",
-                          "mdme(186,1)=0",    # Switch for Z->tautau.
-                          "mdme(187,1)=0"]
-#---------------------------------------------------------------------------------
-#_________________________________________________________________________________
-#-------------------------------------------------------------------------------------------------------------
-# initialization setup:
-#-------------------------------------------------------------------------------------------------------------
-# general Athena syntax is : 
-# Pythia.PythiaCommand +=["pyinit use_PYINIT FRAME BEAM TARGET WIN"]
-# which is translated to PYTHIA PYINIT SUBROUTINE CALL as: 
-# PYINIT(FRAME,BEAM,TARGET,WIN)
-# allowed FRAME BEAM TARGET WIN values are same as for Pythia standalone running
-# when using pyinit use_PYINIT please make sure that:
-# 1) all four FRAME BEAM TARGET WIN values are passed, even if some of them correspond to LHC defaults
-# 2) WIN is passed as a double (i.e. not as an integer) 
-# 3) info on the Athena and PYTHIA setup can be checked is printed-out before event generation is started 
-#-------------------------------------------------------------------------------------------------------------
-# EXAMPLES should make it clear .... 
-#Pythia.PythiaCommand +=["pyinit use_PYINIT CMS P P 10000.0"]     # ok, set p-p explicitly 
-#---------------------------------------------------------------------------------
-#Pythia.PythiaCommand +=["pyinit use_PYINIT CMS p+ P+ 10000.0"]   # ok, set p-p explicitly 
-#---------------------------------------------------------------------------------
-#Pythia.PythiaCommand +=["pyinit use_PYINIT CMS p+ p+   10000.0"] # ok, note extra whitespace, set p-p explicitly
-#---------------------------------------------------------------------------------
-#Pythia.PythiaCommand +=["pyinit use_PYINIT CMS p+ p + 10000.0"]  # not ok: note extra whitespace, 
-                                                                  # PythiaCommand vector splist string into blocks by white-spaces
-                                                                  # error thrown by PYTHIA 
-#---------------------------------------------------------------------------------
-# just for fun - another not ok example:
-# some ~ obscure intentional attempts to trick error-handling can possibli pass, here's one:
-#Pythia.PythiaCommand +=["pyinit use_PYINIT CMS p+ p ~ 10000.0"]   # not parsed correctly, ECM set to 0 
-#Pythia.PythiaCommand +=["pyinit win 10000."]                      # but if you now override ECM it'll still work ... but p-p will be produced
-                                                                   # note that WARNINGS are printed so used has a chance to cathc such error ... 
-#---------------------------------------------------------------------------------
-#Pythia.PythiaCommand +=["pyinit use_PYINIT CMS p~ P+ 10000.0"]   # ok, set pbar-p, non-standard setup WARNING is printed  
-#---------------------------------------------------------------------------------
-#Pythia.PythiaCommand +=["pyinit use_PYINIT CMS p~ 10000.0"]      # not ok: ommiting beam/target is not parsed correctly, 
-                                                                  # please set full string, error thrown by PYTHIA
-#---------------------------------------------------------------------------------
-#Pythia.PythiaCommand +=["pyinit use_PYINIT CMS p p 10000.0"]
-#Pythia.PythiaCommand +=["pyinit win 7000."]                       # ok you can override CM energy
-#---------------------------------------------------------------------------------
-
-# ... Tauola
-#include ( "EvgenJobOptions/MC8_Tauola_Fragment.py" )
-
-# ... Photos
-#include ( "EvgenJobOptions/MC8_Photos_Fragment.py" )
-
diff --git a/Generators/Pythia_i/share/xxxx_tune_test_Zmumu_jO.py b/Generators/Pythia_i/share/xxxx_tune_test_Zmumu_jO.py
deleted file mode 100644
index 55a7e1b342df1fdd38e78f12dc6ac90d0c3e39f9..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/share/xxxx_tune_test_Zmumu_jO.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#______________________________________________________________________________________________________________
-# author: liza.mijovic@_nospam_cern.ch 
-# generate 10 Zmumu Pythia events using PYGIVE for setup + different Pythia (ATLAS/PYTUNE) tunes 
-#______________________________________________________________________________________________________________
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-from Pythia_i.Pythia_iConf import Pythia
-topAlg += Pythia()
-Pythia = topAlg.Pythia
-
-theApp.EvtMax = 10
-
-from AthenaServices.AthenaServicesConf import AtRndmGenSvc
-ServiceMgr += AtRndmGenSvc()
-ServiceMgr.AtRndmGenSvc.Seeds = ["PYTHIA 4789899 989240512",
-                                 "PYTHIA_INIT 820021 2347532"]
-
-#-------------------------------------------------------------------------------------------------------------
-#-------------------------------------------------------------------------------------------------------------
-#1. setup Z production : 
-# old way (remains supported)
-#---------------------------------------------------------------------------------
-#using PythiaCommand
-#Pythia.PythiaCommand += [ "pysubs msel 0",         # Users decay choice.
-#                         "pydat1 parj 90 20000",   # Turn off FSR.
-#                         "pydat3 mdcy 15 1 0",     # Turn off tau decays.
-#                         "pysubs msub 1 1",        # Create Z bosons.
-#                         "pysubs ckin 1 60.0",     # Lower invariant mass.
-#                         "pydat3 mdme 174 1 0",
-#                         "pydat3 mdme 175 1 0",
-#                         "pydat3 mdme 176 1 0",
-#                         "pydat3 mdme 177 1 0",
-#                         "pydat3 mdme 178 1 0",
-#                         "pydat3 mdme 179 1 0",
-#                         "pydat3 mdme 182 1 0",    # Switch for Z->ee.
-#                         "pydat3 mdme 183 1 0",
-#                         "pydat3 mdme 184 1 1",    # Switch for Z->mumu.
-#                         "pydat3 mdme 185 1 0",
-#                         "pydat3 mdme 186 1 0",    # Switch for Z->tautau.
-#                         "pydat3 mdme 187 1 0"]
-#---------------------------------------------------------------------------------
-#using PYGIVE (ATLAS independant syntax for params.)
-Pythia.PygiveCommand += [ "msel=0",           # Users decay choice.
-                          "parj(90)=20000",   # Turn off FSR.
-                          "mdcy(15,1)=0",     # Turn off tau decays.
-                          "msub(1)=1",        # Create Z bosons.
-                          "ckin(1)=60.0",     # Lower invariant mass.
-                          "mdme(174,1)=0",
-                          "mdme(175,1)=0",
-                          "mdme(176,1)=0",
-                          "mdme(177,1)=0",
-                          "mdme(178,1)=0",
-                          "mdme(179,1)=0",
-                          "mdme(182,1)=0",    # Switch for Z->ee.
-                          "mdme(183,1)=0",
-                          "mdme(184,1)=1",    # Switch for Z->mumu.
-                          "mdme(185,1)=0",
-                          "mdme(186,1)=0",    # Switch for Z->tautau.
-                          "mdme(187,1)=0"]
-#-------------------------------------------------------------------------------------------------------------
-#-------------------------------------------------------------------------------------------------------------
-
-#new tunes schema:
-#-------------------------------------------------------------------------------------------------------------
-#-------------------------------------------------------------------------------------------------------------
-#Pythia property Tune_Name of type std::string, syntax:  "TUNETYPE_TUNEINDEX"
-# see setPythiaTune.cxx for implemented TUNETYPE opts, see atlasTune.cxx for available TUNEINDEX opts
-#-------------------------------------------------------------------------------------
-# ATLAS tunes examples:
-#-------------------------------------------------------------------------------------
-#uncomment this for MC08 tune 
-#Pythia.Tune_Name="ATLAS_20080001"
-
-#uncomment this for MC09 tune
-#Pythia.Tune_Name="ATLAS_20090001"
-
-#uncomment this for MC09' tune (CTEQ6L1 rune for MC09 round) 
-#Pythia.Tune_Name="ATLAS_20090002"
-
-#uncomment this for MC09c tune (simmilar to MC09, but with lowered CR) 
-#Pythia.Tune_Name="ATLAS_20090003"
-
-#uncomment this for AMBT1 tune (2010 tune to ATLAS data) 
-Pythia.Tune_Name="ATLAS_20100001"
-#-------------------------------------------------------------------------------------
-
-# PYTUNE:
-# ATLAS defaults are turned off, only necessary parameters for seemless running within Athena are kept
-
-# call PYTUNE PERUGIA HARD (uses internal Pythia PDF)
-#Pythia.Tune_Name="PYTUNE_321"
-
-# call PYTUNE PERUGIA * (uses ext. PDF)
-#Pythia.Tune_Name="PYTUNE_325"
-
-# call PYTUNE D6T ; Rick Field's CDF Tune D6T (old shower/MI)
-#Pythia.Tune_Name="PYTUNE_109"
-#-------------------------------------------------------------------------------------
-
-# some special settings:
-# use no ATLAS parameter settings
-#Pythia.Tune_Name="ATLAS_0"
-# use only recommended ATLAS parameter settings (i.e. the ones necessary for succsfull && consistent simulation within Athena)
-#Pythia.Tune_Name="ATLAS_-1"
-# use recommended + common (PDF, mass, MI schema etc., but not parameters commonly used for tuning) ATLAS parameter
-#Pythia.Tune_Name="ATLAS_-2"
-
-
-#---------------------------------------
-# SETTING THE TUNE USING SWITCHES (AS WAS DONE IN MC09) IS DEPRECATED BUT IN  CASE IT IS NEEDED:
-# make sure to use new syntax (Pythia.Tune_Name) or old syntax (below) only
-# in case the old and new syntax is mixed WARNINGS will be printed and the generation will take place with ATLAS defaults
-#---------------------------------------
-# uncomment these and comment-out the Pythia.Tune_Name="ATLAS_20100001" line to set MC08 the old way:
-#Pythia.useAtlasPythiaTune09=False
-#Pythia.useAtlasPythiaTune08=True
-#---------------------------------------
-
-#---------------------------------------
-# uncomment these and comment-out the Pythia.Tune_Name="ATLAS_20100001" line to set MC09 the old way:
-#Pythia.useAtlasPythiaTune09=True
-#Pythia.useAtlasPythiaTune08=False
-#---------------------------------------
-
-#---------------------------------------
-# uncomment these and comment-out the Pythia.Tune_Name="ATLAS_20100001" line to use no ATLAS parameter settings
-#Pythia.useOldTuneSwitches=True 
-#Pythia.useNoAtlasPythiaParam=True
-#Pythia.useAtlasPythiaRecomm=False
-#Pythia.useAtlasPythiaCommon=False
-#Pythia.useAtlasPythiaTune09=False
-#---------------------------------------
-#-------------------------------------------------------------------------------------------------------------
-#-------------------------------------------------------------------------------------------------------------
-
-# ... Tauola
-#include ( "EvgenJobOptions/MC10_Tauola_Fragment.py" )
-
-# ... Photos
-#include ( "EvgenJobOptions/MC10_Photos_Fragment.py" )
-#______________________________________________________________________________________________________________
diff --git a/Generators/Pythia_i/src/Lhefinfo.cxx b/Generators/Pythia_i/src/Lhefinfo.cxx
deleted file mode 100644
index 7369bd9b16c9899dcbd558ac8857f1eaa5c22f76..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Lhefinfo.cxx
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access Lhef_i common block LHEFINFO
-#include "Pythia_i/Lhefinfo.h"
-
-// set pointer to zero at start
-Lhefinfo::LHEFINFO* Lhefinfo::s_lhefinfo = 0;
-
-// Constructor
-Lhefinfo::Lhefinfo() 
-{}
-
-// Destructor
-Lhefinfo::~Lhefinfo() 
-{}
-
-int& Lhefinfo::id1()
-{
-  init();
-  return s_lhefinfo->id1;
-}
-
-int& Lhefinfo::id2()
-{
-  init();
-  return s_lhefinfo->id2;
-}
-
-double& Lhefinfo::x1()
-{
-  init();
-  return s_lhefinfo->x1;
-}
-
-double& Lhefinfo::x2()
-{
-  init();
-  return s_lhefinfo->x2;
-}
-
-double& Lhefinfo::scalePdf()
-{
-  init();
-  return s_lhefinfo->scalePdf;
-}
-
-double& Lhefinfo::xPdf1()
-{
-  init();
-  return s_lhefinfo->xPdf1;
-}
-
-double& Lhefinfo::xPdf2()
-{
-  init();
-  return s_lhefinfo->xPdf2;
-}
-
diff --git a/Generators/Pythia_i/src/Pydat1.cxx b/Generators/Pythia_i/src/Pydat1.cxx
deleted file mode 100644
index f571297431ba3d9ad4c18a524d94f5e069eb12e1..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pydat1.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydat1
-#include "Pythia_i/Pydat1.h"
-
-// set pointer to zero at start
-Pydat1::PYDAT1* Pydat1::s_pydat1 =0;
-
-// Constructor
-Pydat1::Pydat1() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
-
-// Destructor
-Pydat1::~Pydat1() 
-{
-}
-
-// access mstu in common
-int& Pydat1::mstu(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMstu()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat1->mstu[n-1];
-}
-
-// access paru in common
-double& Pydat1::paru(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenParu()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat1->paru[n-1];
-}
-
-// access mstj in common
-int& Pydat1::mstj(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMstj()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat1->mstj[n-1];
-}
-
-// access parj in common
-double& Pydat1::parj(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenParj()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat1->parj[n-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pydat2.cxx b/Generators/Pythia_i/src/Pydat2.cxx
deleted file mode 100644
index 08043c1f4ae4b240435a2f003e0d6abc13a13c15..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pydat2.cxx
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydat2
-#include "Pythia_i/Pydat2.h"
-
-#ifdef DEFECT_OLD_STDC_HEADERS
-extern "C" {
-#include <stdlib.h>
-}
-#else
-#include <cstdlib>
-#endif
-
-// set pointer to zero at start
-Pydat2::PYDAT2* Pydat2::s_pydat2 =0;
-
-// Constructor
-Pydat2::Pydat2() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
-
-// Destructor
-Pydat2::~Pydat2() 
-{
-}
-
-// access kchg in common
-int& Pydat2::kchg(int kc, int i) {
-  init(); // check COMMON is initialized
-  if( kc < 1 || kc > lenPmas() ||
-      i  < 1 || i  > depthKchg())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat2->kchg[i-1][kc-1];
-}
-// access pmas in common
-double& Pydat2::pmas(int kc, int i) {
-  init(); // check COMMON is initialized
-  if( kc < 1 || kc > lenPmas() ||
-      i  < 1 || i  > depthPmas())
- {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat2->pmas[i-1][kc-1];
-}
-
-// access parf in common
-double& Pydat2::parf(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenParf()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat2->parf[n-1];
-
-}// access vckm in common
-double& Pydat2::vckm(int i,int j) {
-  init(); // check COMMON is initialized
-  if(i < 1 || i > lenVckm() ||
-     j < 1 || j > lenVckm()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat2->vckm[j-1][i-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pydat3.cxx b/Generators/Pythia_i/src/Pydat3.cxx
deleted file mode 100644
index 33ef6b4b59c62aaa01c6d158641778ec4637beda..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pydat3.cxx
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydat3
-#include "Pythia_i/Pydat3.h"
-
-#ifdef DEFECT_OLD_STDC_HEADERS
-extern "C" {
-#include <stdlib.h>
-}
-#else
-#include <cstdlib>
-#endif
-
-// set pointer to zero at start
-Pydat3::PYDAT3* Pydat3::s_pydat3 =0;
-
-// Constructor
-Pydat3::Pydat3() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
-
-// Destructor
-Pydat3::~Pydat3() 
-{
-}
-
-// access mdcy in common
-int& Pydat3::mdcy(int kc, int i) {
-  init(); // check COMMON is initialized
-  if( kc < 1 || kc > lenMdcy() ||
-      i  < 1 || i  > depthMdcy())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->mdcy[i-1][kc-1];
-}
-// access mdme in common
-int& Pydat3::mdme(int idc, int i) {
-  init(); // check COMMON is initialized
-  if( idc < 1 || idc > lenMdme() ||
-      i  < 1 || i  > depthMdme())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->mdme[i-1][idc-1];
-}
-// access brat in common
-double& Pydat3::brat(int idc) {
-  init(); // check COMMON is initialized
-  if(idc < 1 || idc > lenBrat()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat3->brat[idc-1];
-
-}
-// access kfdp in common
-int& Pydat3::kfdp(int idc, int kf) {
-  init(); // check COMMON is initialized
-  if( idc < 1 || idc > lenKfdp() ||
-      kf  < 1 || kf  > depthKfdp())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->kfdp[kf-1][idc-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pydat3_61.cxx b/Generators/Pythia_i/src/Pydat3_61.cxx
deleted file mode 100644
index fdf84183c50085c5c0f1de91c7949f023bd1c429..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pydat3_61.cxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydat3
-#include "Pythia_i/Pydat3.h"
-
-#ifdef DEFECT_OLD_STDC_HEADERS
-extern "C" {
-#include <stdlib.h>
-}
-#else
-#include <cstdlib>
-#endif
-
-// set pointer to zero at start
-Pydat3::PYDAT3* Pydat3::_pydat3 =0;
-
-// Constructor
-Pydat3::Pydat3() 
-  : 
-  _dummy(-999)
-  , _realdummy(-999.0) 
-{
-}
-
-// Destructor
-Pydat3::~Pydat3() 
-{
-}
-
-// access mdcy in common
-int& Pydat3::mdcy(int kc, int i) {
-  init(); // check COMMON is initialized
-  if( kc < 1 || kc > lenMdcy() ||
-      i  < 1 || i  > depthMdcy())
- {
-  _dummy = -999;
-  return _dummy;
-  }
-  return _pydat3->mdcy[i-1][kc-1];
-}
-// access mdme in common
-int& Pydat3::mdme(int idc, int i) {
-  init(); // check COMMON is initialized
-  if( idc < 1 || idc > lenMdme() ||
-      i  < 1 || i  > depthMdme())
- {
-  _dummy = -999;
-  return _dummy;
-  }
-  return _pydat3->mdme[i-1][idc-1];
-}
-// access brat in common
-double& Pydat3::brat(int idc) {
-  init(); // check COMMON is initialized
-  if(idc < 1 || idc > lenBrat()) {
-  _realdummy = -999.;
-  return _realdummy;
-  }
-  return _pydat3->brat[idc-1];
-
-}
-// access kfdp in common
-int& Pydat3::kfdp(int idc, int kf) {
-  init(); // check COMMON is initialized
-  if( idc < 1 || idc > lenKfdp() ||
-      kf  < 1 || kf  > depthKfdp())
- {
-  _dummy = -999;
-  return _dummy;
-  }
-  return _pydat3->kfdp[kf-1][idc-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pydat3_62.cxx b/Generators/Pythia_i/src/Pydat3_62.cxx
deleted file mode 100644
index 5eca48223bfbb2c7721278f795d4db4e65aa2776..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pydat3_62.cxx
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydat3  version for 6.2xxx
-#include "Pythia_i/Pydat3_62.h"
-
-#ifdef DEFECT_OLD_STDC_HEADERS
-extern "C" {
-#include <stdlib.h>
-}
-#else
-#include <cstdlib>
-#endif
-
-// set pointer to zero at start
-Pydat3::PYDAT3* Pydat3::s_pydat3 =0;
-
-// Constructor
-Pydat3::Pydat3() 
-{
-  m_dummy = -999;
-  m_realdummy = -999;
-}
-
-// Destructor
-Pydat3::~Pydat3() 
-{
-}
-
-// access mdcy in common
-int& Pydat3::mdcy(int kc, int i) {
-  init(); // check COMMON is initialized
-  if( kc < 1 || kc > lenMdcy() ||
-      i  < 1 || i  > depthMdcy())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->mdcy[i-1][kc-1];
-}
-// access mdme in common
-int& Pydat3::mdme(int idc, int i) {
-  init(); // check COMMON is initialized
-  if( idc < 1 || idc > lenMdme() ||
-      i  < 1 || i  > depthMdme())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->mdme[i-1][idc-1];
-}
-// access brat in common
-double& Pydat3::brat(int idc) {
-  init(); // check COMMON is initialized
-  if(idc < 1 || idc > lenBrat()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydat3->brat[idc-1];
-
-}
-// access kfdp in common
-int& Pydat3::kfdp(int idc, int kf) {
-  init(); // check COMMON is initialized
-  if( idc < 1 || idc > lenKfdp() ||
-      kf  < 1 || kf  > depthKfdp())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydat3->kfdp[kf-1][idc-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pydatr.cxx b/Generators/Pythia_i/src/Pydatr.cxx
deleted file mode 100644
index 38de5474c85eaf411439663d5c01b93e4f32280e..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pydatr.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pydatr
-#include "Pythia_i/Pydatr.h"
-
-// set pointer to zero at start
-Pydatr::PYDATR* Pydatr::s_pydatr =0;
-
-// Constructor
-Pydatr::Pydatr() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
-
-// Destructor
-Pydatr::~Pydatr() 
-{
-}
-
-// access mrpy in common
-int& Pydatr::mrpy(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMrpy()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pydatr->mrpy[n-1];
-}
-
-// access rrpy in common
-double& Pydatr::rrpy(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenRrpy()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pydatr->rrpy[n-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pyint1.cxx b/Generators/Pythia_i/src/Pyint1.cxx
deleted file mode 100644
index 48904af6261cd0cb60a95a2f090930eab32de726..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pyint1.cxx
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pyint1
-#include "Pythia_i/Pyint1.h"
-
-// set pointer to zero at start
-Pyint1::PYINT1* Pyint1::s_pyint1 =0;
-
-// Constructor
-Pyint1::Pyint1() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
- 
-// Destructor
-Pyint1::~Pyint1() 
-{
-}
-
-// access mint in common
-int& Pyint1::mint(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMint()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pyint1->mint[n-1];
-}
-
-// access iset in common
-double& Pyint1::vint(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenVint()) {
-  m_realdummy = -999;
-  return m_realdummy;
-  }
-  return s_pyint1->vint[n-1];
-}
diff --git a/Generators/Pythia_i/src/Pyint2.cxx b/Generators/Pythia_i/src/Pyint2.cxx
deleted file mode 100644
index b0df2968eea0596601db163484b63fbffd9eb7f9..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pyint2.cxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pyint2
-#include "Pythia_i/Pyint2.h"
-
-// set pointer to zero at start
-Pyint2::PYINT2* Pyint2::s_pyint2 =0;
-
-// Constructor
-Pyint2::Pyint2() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
- 
-// Destructor
-Pyint2::~Pyint2() 
-{
-}
-
-// access iset in common
-int& Pyint2::iset(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenIset()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pyint2->iset[n-1];
-}
-
-// access kfpr in common
-  int& Pyint2::kfpr(int n, int i) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenKfpr() ||
-     i <1 || i >depthKfpr()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pyint2->kfpr[i-1][n-1];
-}
-
-// access coef in common
-double& Pyint2::coef(int n, int i) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenCoef() ||
-     i <1 || i > depthCoef()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pyint2->coef[i-1][n-1];
-}
-
-// access icol in common
-int& Pyint2::icol(int n, int i ,int j) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenIcol() ||
-     i <1 || i > depthIcol() ||
-     j < 1 || j > widthIcol() ) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pyint2->icol[j-1][i-1][n-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pyint5.cxx b/Generators/Pythia_i/src/Pyint5.cxx
deleted file mode 100644
index b91fc8c9eb6e931acd08bc644eea4a3fb2538b3d..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pyint5.cxx
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pyint5
-#include "Pythia_i/Pyint5.h"
-
-// set pointer to zero at start
-Pyint5::PYINT5* Pyint5::s_pyint5 =0;
-
-// Constructor
-Pyint5::Pyint5() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
- 
-// Destructor
-Pyint5::~Pyint5() 
-{
-}
-
-// access ngenpd in common
-int& Pyint5::ngenpd() {
-  init(); // check COMMON is initialized
-  return s_pyint5->ngenpd;
-}
-
-// access ngen in common
-  int& Pyint5::ngen(int n, int i) {
-  init(); // check COMMON is initialized
-  if(n < 0 || n > lenNgen() ||
-     i <1 || i >depthNgen()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-//    return s_pyint5->ngen[i][n-1];
-  return s_pyint5->ngen[i-1][n];
-}
-
-// access xsec in common
-double& Pyint5::xsec(int n, int i) {
-  init(); // check COMMON is initialized
-  if(n < 0 || n > lenXsec() ||
-     i <1 || i > depthXsec()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-//    return s_pyint5->xsec[i][n-1];
-  return s_pyint5->xsec[i-1][n];
-}
-
-
-
diff --git a/Generators/Pythia_i/src/Pymsrv.cxx b/Generators/Pythia_i/src/Pymsrv.cxx
deleted file mode 100644
index 81b06cdc9e4e370e23082e6ebc8c04f7be7d2336..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pymsrv.cxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Pythia_i/Pymsrv.h"
-#include <iostream>
-
-Pymsrv::PYMSRV* Pymsrv::s_pymsrv = 0;
-
-Pymsrv::Pymsrv() 
-  : 
-  m_dummy(-999)
-  , m_realdummy(-999.0) 
-{
-  init();
-}
-
-Pymsrv::~Pymsrv()
-{
-}
-
-double& Pymsrv::rvlam(int n) {
-  int i1(n/100);
-  int i2((n-i1*100)/10);
-  int i3(n-i1*100-i2*10);
-  if (i1<1 || i1>3 || i2<1 || i2>3 || i3<1 || i3>3) {
-    std::cout
-      << "Pymsrv: attempt to read or write RVLAM out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    std::cout << "Pymsrv: lambda indices " << i1 << " " << i2 << " " << i3 << std::endl;
-    return s_pymsrv->rvlam[i3-1][i2-1][i1-1]; // note ``-1''. CLA, this way the indices work as expected.
-  }
-}
-
-double& Pymsrv::rvlamp(int n) {
-  int i1(n/100);
-  int i2((n-i1*100)/10);
-  int i3(n-i1*100-i2*10);
-  if (i1<1 || i1>3 || i2<1 || i2>3 || i3<1 || i3>3) {
-    std::cout
-      << "Pymsrv: attempt to read or write RVLAMP out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    std::cout << "Pymsrv: lambda^prime indices " << i1 << " " << i2 << " " << i3 << std::endl;
-    return s_pymsrv->rvlamp[i3-1][i2-1][i1-1]; // note ``-1''. CLA, this way the indices work as expected.
-  }
-}
-
-double& Pymsrv::rvlamb(int n) {
-  int i1(n/100);
-  int i2((n-i1*100)/10);
-  int i3(n-i1*100-i2*10);
-  if (i1<1 || i1>3 || i2<1 || i2>3 || i3<1 || i3>3) {
-    std::cout
-      << "Pymsrv: attempt to read or write RVLAMB out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    std::cout << "Pymsrv: lambda^doubelprime indices " << i1 << " " << i2 << " " << i3 << std::endl;
-    return s_pymsrv->rvlamb[i3-1][i2-1][i1-1]; // note ``-1''. CLA, this way the indices work as expected.
-  }
-}
diff --git a/Generators/Pythia_i/src/Pymssm.cxx b/Generators/Pythia_i/src/Pymssm.cxx
deleted file mode 100644
index a686836fb776f17309b65425ab7cd276b1e550ac..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pymssm.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Pythia_i/Pymssm.h"
-#include <iostream>
-
-Pymssm::PYMSSM* Pymssm::s_pymssm = 0;
-
-Pymssm::Pymssm() 
-  : 
-  m_dummy(-999)
-  , m_realdummy(-999.0) 
-{
-  init();
-}
-
-Pymssm::~Pymssm()
-{
-}
-
-int& Pymssm::imss(int n) {
-  if (n<0 || n>=s_lenImss) {
-    std::cout
-      << "Pymssm: attempt to read or write IMSS out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    return s_pymssm->imss[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
-
-double& Pymssm::rmss(int n) {
-  if (n<0 || n>=s_lenRmss) {
-    std::cout
-      << "Pymssm: attempt to read or write RMSS out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pymssm->rmss[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
diff --git a/Generators/Pythia_i/src/Pypars.cxx b/Generators/Pythia_i/src/Pypars.cxx
deleted file mode 100644
index e9ccd70234e5fda3b3ff08b5da5c8710b3e9db7f..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pypars.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access pythia common Pypars
-#include "Pythia_i/Pypars.h"
-
-// set pointer to zero at start
-Pypars::PYPARS* Pypars::s_pypars =0;
-
-// Constructor
-Pypars::Pypars() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
-
-// Destructor
-Pypars::~Pypars() 
-{
-}
-
-// access mstp in common
-int& Pypars::mstp(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMstp()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pypars->mstp[n-1];
-}
-
-// access parp in common
-double& Pypars::parp(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenParp()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pypars->parp[n-1];
-}
-
-// access msti in common
-int& Pypars::msti(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMsti()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pypars->msti[n-1];
-}
-
-// access pari in common
-double& Pypars::pari(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenPari()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pypars->pari[n-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pypevwt.cxx b/Generators/Pythia_i/src/Pypevwt.cxx
deleted file mode 100644
index 355ab522f6c2d2a7aa458c1b7414a03655b953e5..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pypevwt.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Pythia_i/Pypevwt.h"
-#include <iostream>
-
-Pypevwt::PYPEVWT* Pypevwt::s_pypevwt = 0;
-
-Pypevwt::Pypevwt() 
-  : 
-  m_dummy(-999)
-  , m_realdummy(-999.0) 
-{
-  init();
-}
-
-Pypevwt::~Pypevwt()
-{
-}
-
-int& Pypevwt::ievwt(int n) {
-  if (n<1 || n>=s_lenIevwt+1) {
-    std::cout
-      << "Pypevwt: attempt to read or write IEVWT out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    return s_pypevwt->ievwt[n-1];
-  }
-}
-
-double& Pypevwt::revwt(int n) {
-  if (n<1 || n>=s_lenRevwt+1) {
-    std::cout
-      << "Pypevwt: attempt to read or write REVWT out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pypevwt->revwt[n-1];
-  }
-}
diff --git a/Generators/Pythia_i/src/Pypued.cxx b/Generators/Pythia_i/src/Pypued.cxx
deleted file mode 100644
index 4846fadd8b545117524bb27d11268b7258461bd2..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pypued.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Pythia_i/Pypued.h"
-#include <iostream>
-
-Pypued::PYPUED* Pypued::s_pypued = 0;
-
-Pypued::Pypued() 
-  : 
-  m_dummy(-999)
-  , m_realdummy(-999.0) 
-{
-  init();
-}
-
-Pypued::~Pypued()
-{
-}
-
-int& Pypued::iued(int n) {
-  if (n<0 || n>=s_lenIued) {
-    std::cout
-      << "Pypued: attempt to read or write IUED out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    return s_pypued->iued[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
-
-double& Pypued::rued(int n) {
-  if (n<0 || n>=s_lenRued) {
-    std::cout
-      << "Pypued: attempt to read or write RUED out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pypued->rued[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
diff --git a/Generators/Pythia_i/src/Pyssmt.cxx b/Generators/Pythia_i/src/Pyssmt.cxx
deleted file mode 100644
index 63fe05b50e28acd584baf52725a067ca632ee0b1..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pyssmt.cxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Pythia_i/Pyssmt.h"
-#include <iostream>
-Pyssmt::PYSSMT const * Pyssmt::s_pyssmt = 0;
-
-Pyssmt::Pyssmt() 
-  : 
-  m_dummy(-999)
-  , m_realdummy(-999.0) 
-{
-  init();
-}
-
-Pyssmt::~Pyssmt()
-{
-}
-
-const double& Pyssmt::zmix(int i, int j) const {
-  if (i<0 || i>s_sizeZmix || j<0 || j>s_sizeZmix) {
-    std::cout 
-      << "Pyssmt: attempt to read or write ZMIX out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->zmix[j-1][i-1];
-  }
-}
-
-const double& Pyssmt::umix(int i, int j) const {
-  if (i<0 || i>s_sizeUmix || j<0 || j>s_sizeUmix) {
-    std::cout
-      << "Pyssmt: attempt to read or write UMIX out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->umix[j-1][i-1];
-  }
-}
-
-const double& Pyssmt::vmix(int i, int j) const {
-  if (i<0 || i>s_sizeVmix || j<0 || j>s_sizeVmix) {
-    std::cout
-      << "Pyssmt: attempt to read or write VMIX out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->vmix[j-1][i-1];
-  }
-}
-
-const double& Pyssmt::smz(int i) const {
-  if (i<0 || i>s_lenSmz) {
-    std::cout
-      << "Pyssmt: attempt to read or write SMZ out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->smz[i-1];
-  }
-}
-
-const double& Pyssmt::smw(int i) const {
-  if (i<0 || i>s_lenSmw) {
-    std::cout
-      << "Pyssmt: attempt to read or write SMW out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pyssmt->smw[i-1];
-  }
-}
-
-
diff --git a/Generators/Pythia_i/src/Pysubs.cxx b/Generators/Pythia_i/src/Pysubs.cxx
deleted file mode 100644
index 6ce0a3ff2354b5216edbfb0de7bc2f28cb54913b..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pysubs.cxx
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// access Pythia common Pysubs
-#include "Pythia_i/Pysubs.h"
-
-//#ifdef DEFECT_OLD_STDC_HEADERS
-//extern "C" {
-//#include <stdlib.h>
-//}
-//#else
-#include <cstdlib>
-//#endif
-
-// set pointer to zero at start
-Pysubs::PYSUBS* Pysubs::s_pysubs =0;
-
-// Constructor
-Pysubs::Pysubs() 
-{
-  m_dummy=-999;
-  m_realdummy=-999.;
-}
-
-// Destructor
-Pysubs::~Pysubs() 
-{
-}
-
-// access msel in common
-int& Pysubs::msel() {
-  init(); // check COMMON is initialized
-  return s_pysubs->msel;
-}
-
-// access msub in common
-int& Pysubs::msub(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenMsub()) {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pysubs->msub[n-1];
-}
-
-// access kfin in common
-int& Pysubs::kfin(int iside, int jflav) {
-  init(); // check COMMON is initialized
-  int half_lenKfin = lenKfin()/2;
-  if(std::abs(jflav) > half_lenKfin ||
-     iside < 1 || iside > depthKfin())
- {
-  m_dummy = -999;
-  return m_dummy;
-  }
-  return s_pysubs->kfin[jflav+half_lenKfin][iside-1];
-}
-
-// access ckin in common
-double& Pysubs::ckin(int n) {
-  init(); // check COMMON is initialized
-  if(n < 1 || n > lenCkin()) {
-  m_realdummy = -999.;
-  return m_realdummy;
-  }
-  return s_pysubs->ckin[n-1];
-}
-
diff --git a/Generators/Pythia_i/src/Pytcsm.cxx b/Generators/Pythia_i/src/Pytcsm.cxx
deleted file mode 100644
index fb7db6e9650d648e398502b761276885403df24e..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pytcsm.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Pythia_i/Pytcsm.h"
-#include <iostream>
-
-Pytcsm::PYTCSM* Pytcsm::s_pytcsm = 0;
-
-Pytcsm::Pytcsm() 
-  : 
-  m_dummy(-999)
-  , m_realdummy(-999.0) 
-{
-  init();
-}
-
-Pytcsm::~Pytcsm()
-{
-}
-
-int& Pytcsm::itcm(int n) {
-  if (n<0 || n>=s_lenItcm) {
-    std::cout
-      << "Pytcsm: attempt to read or write ITCM out of bounds" << std::endl;
-    m_dummy=-999;
-    return m_dummy;
-  } else {
-    return s_pytcsm->itcm[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
-
-double& Pytcsm::rtcm(int n) {
-  if (n<0 || n>=s_lenRtcm) {
-    std::cout
-      << "Pytcsm: attempt to read or write RTCM out of bounds" << std::endl;
-    m_realdummy=-999.0;
-    return m_realdummy;
-  } else {
-    return s_pytcsm->rtcm[n]; // note the lack of a ``-1''. This is intentional.
-  }
-}
diff --git a/Generators/Pythia_i/src/Pythia.cxx b/Generators/Pythia_i/src/Pythia.cxx
deleted file mode 100644
index 6f4100a5c385464a1e92ab4f37c622d41ce278c6..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/Pythia.cxx
+++ /dev/null
@@ -1,1088 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// File: GeneratorModules/Pythia.cxx
-// Description: Generate pythia events and store the result in the Transient Store.
-//
-// AuthorList:
-//   Ian Hinchliffe:  Initial Code June: 2000
-//   Modeled after the CDF code by Stan Thompson
-//   Parsing added August 2000
-//   More switches added Feb 2001
-//   Les Houches external process interface added May 2002
-//   Added access to pyint1 common Sept 2002
-//   Added access to pypued common Oct. 2008 (L. Mijovic, liza.mijovic@cern.ch)
-//   Direct use of generator codes - replaced with gen. names (E.M.Lobodzinska, Dec 2008)
-//   Remove obsolete code and pseudo atlas default pythia settings (Cano Ay, April 2009)
-//   Move Pythia ATLAS tune from Pythia_i + jO to Pythia_i, LM
-//   Added PYGIVE functionality, LM, Jul. 09
-//   Tunes schema, LM, Aug. 09
-//   Conversion to AthAlgorithm methods (via GenModule) and clean-up, Andy Buckley, Dec 2009
-// added access to pypevwt common, March 2010:  Eric Feng (Chicago) <Eric.Feng@cern.ch>
-
-#include "Pythia_i/Pythia.h"
-#include "TruthUtils/GeneratorName.h"
-#include "GeneratorUtils/StringParse.h"
-#include <cstdlib>
-
-#include "CLHEP/Random/RandFlat.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
-
-#include "HepMC/IO_HEPEVT.h"
-#include "HepMC/HEPEVT_Wrapper.h"
-
-#include "ExoGraviton_i/ExoGraviton.h"
-#include "PathResolver/PathResolver.h"
-
-#include "Pythia_i/Lhefinfo.h"
-
-#include "boost/algorithm/string/trim.hpp"
-
-
-// Pointer to AtRndmGenSvc
-IAtRndmGenSvc* Pythia::p_AtRndmGenSvc = 0;
-std::string	Pythia::pythia_stream = "PYTHIA_INIT";
-extern "C" double atl_pyr_( int* /*idummy*/ )
-{
-  CLHEP::HepRandomEngine* engine = 	Pythia::p_AtRndmGenSvc->GetEngine(Pythia::pythia_stream);
-  return CLHEP::RandFlat::shoot(engine);
-}
-
-extern "C" {
-  void initpyblock_(int*, const char*);
-  int  openrandom_(int*, int*, const char*);
-  void pyinit_(const char*,
-               const char*,
-               const char*,
-               double* ,
-               int, // lengths of character strings
-               int,// (should be value, not reference)
-               int
-               );
-  void pyevnt_();
-  void pyevnw_();
-  void pystat_(int*);
-  void pylist_(int*);
-  void pyupda_(int*, int*);
-  void pyrget_(int*, int*);
-  void pyrset_(int*, int*);
-  void addparticle_(const char*, int slen);
-  //pygive implementation: calls Pythia SUBROUTINE PYGIVE(CHIN) 
-  void pygive_(const char*,int); // character string to pygive && its length
-  //pytune : calls Pythia SUBROUTINE PYTUNE(ITUNE)
-  //this call should be used in case one wants to override some of the values PYTUNE sets from the jO
-  //in contrary to using MSTP(5) value the PYTUNE will in this case act before PYINIT
-  void pytune_(int*); // value of int corresponds to the respective ITUNE value 
-  int  pycomp_(int*);
-  //    void lunhep_(int*); // STDHEP routine for PYJETS->HEPEVT
-  void pyhepc_(int*);
-  int opdcay_(const char*, int*, char*, int, int);
-  void cldcay_(int*);
-  void rinpar_(); // comphep
-  void subnum_(); // comphep file
-  void rheader_(); // comphep initialization
-  void extproc_(int*);
-  void opensusyfile_(const char* ,int * , int);
-  void setecm_(double*);
-  void parout_(int*);
-
-  
-}
-
-
-Atlas_HEPEVT* Pythia::s_atlas_HEPEVT = new Atlas_HEPEVT();
-
-
-//--------------------------------------------------------------------------
-
-
-Pythia::Pythia(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenModule(name, pSvcLocator)
-{
-  pythia_stream="PYTHIA_INIT";
-  // ATLAS default tune
-  m_Default_Tune_Name="ATLAS_20100001";
-  m_Default_Tune_Type="ATLAS";
-  m_Default_Tune_Index=20100001;
-  m_Starting_Tune_Name="ATLAS_99999999";
-  m_Starting_Tune_Type="ATLAS";
-  m_Starting_Tune_Index=99999999;
-  //set dummy values at start
-  m_Tune_Index=0;
-  m_Tune_Type="";
-  //for non-0 value call PYTUNE directly
-  m_direct_call_to_pytune=0;
-  // some defaults
-  m_firstlistevent = -1;
-  m_lastlistevent  = -1;
-  // old schema, backw. compatibility
-  m_mc0809_Tune_Type="ATLAS";
-  m_mc09_Tune_Index=20090001;
-  m_mc08_Tune_Index=20080001;
-  m_Default_useAtlasPythiaRecomm=true;
-  m_Default_useAtlasPythiaCommon=true;
-  m_Default_useAtlasPythiaTune09=false;
-  m_Default_useAtlasPythiaTune08=false;
-  m_Default_useNoAtlasPythiaParam=false;
-  // printing-out manually set x-section for the MetaData
-  m_Default_SetCrossSection=-1.0;
-  m_Default_xsscale=-99999;
-  // properties
-  declareProperty("SusyInputFile",    m_read_Filesusy = " ");
-  declareProperty("PythiaCommand",    m_pythiaCommandVector);
-  declareProperty("PygiveCommand",    m_PygiveCommandVector);
-  declareProperty("Direct_call_to_pytune", m_direct_call_to_pytune);  
-  declareProperty("Param_Query_AfterInit",m_Param_Query_AfterInit);
-  declareProperty("Param_Query_AfterGen", m_Param_Query_AfterGen);
-  declareProperty("CrossSectionScaleFactor", m_xsscale=m_Default_xsscale); 
-  declareProperty("SetAtlasDefaults", m_AtlasDefaults = false );
-  declareProperty("Tune_Name",  m_Tune_Name = m_Starting_Tune_Name );
-  declareProperty("SetCrossSection",m_SetCrossSection=m_Default_SetCrossSection);
-  declareProperty("addParticle", m_addParticle = false );
-  // old schema, backw. compatibility
-  declareProperty("useAtlasPythiaRecomm",  m_useAtlasPythiaRecomm = m_Default_useAtlasPythiaRecomm);
-  declareProperty("useAtlasPythiaCommon",  m_useAtlasPythiaCommon = m_Default_useAtlasPythiaCommon);
-  declareProperty("useAtlasPythiaTune09",  m_useAtlasPythiaTune09 = m_Default_useAtlasPythiaTune09);
-  declareProperty("useAtlasPythiaTune08",  m_useAtlasPythiaTune08 = m_Default_useAtlasPythiaTune08);
-  declareProperty("useNoAtlasPythiaParam", m_useNoAtlasPythiaParam = m_Default_useNoAtlasPythiaParam);
-
-  m_pygive_cstr = 0;
-  m_pygive_gen_cstr = 0;
-  m_pygive_init_cstr = 0;
-
-  m_win = 0.;
-  m_msel = 0;
-  m_eventlistlevel = 0;
-  m_initlistlevel = 0;
-  m_randomseed = 0;
-  m_fortout = 0;
-  m_RndmFileNumber = 0;
-  m_RndmSwitch = 0;
-  m_RndmFirstEvent = 0;
-  m_RndmSkipEvents = 0;
-  m_RndmMOVE = 0;
-  m_RndmFileLength = 0;
-  m_events = 0;
-  m_ExternalProcess = 0;
-  m_atlasTune_loop_prot = 0;
-  
-}
-//--------------------------------------------------------------------------
-Pythia::~Pythia(){
-//--------------------------------------------------------------------------
-}
-//-------------------------------------------------------------
-//--------------
-// Operations --
-//--------------
-Pydat1& Pythia::pydat1() {
-   return m_pydat1;
-}
-Pydat2& Pythia::pydat2() {
-   return m_pydat2;
-}
-Pydat3& Pythia::pydat3() {
-   return m_pydat3;
-}
-Pysubs& Pythia::pysubs() {
-   return m_pysubs;
-}
-Pypars& Pythia::pypars() {
-   return m_pypars;
-}
-Pydatr& Pythia::pydatr() {
-   return m_pydatr;
-}
-Pymssm& Pythia::pymssm() {
-   return m_pymssm;
-}
-Pypued& Pythia::pypued() {
-   return m_pypued;
-}
-Pypevwt& Pythia::pypevwt() {
-   return m_pypevwt;
-}
-Pymsrv& Pythia::pymsrv() {
-   return m_pymsrv;
-}
-Pyint1& Pythia::pyint1() {
-   return m_pyint1;
-}
-Pyint2& Pythia::pyint2() {
-   return m_pyint2;
-}
-Pyint5& Pythia::pyint5() {
-   return m_pyint5;
-}
-Pytcsm& Pythia::pytcsm() {
-   return m_pytcsm;
-}
-AcerMC_acset& Pythia::acermc_acset() {
-   return m_acermc_acset;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode Pythia::genInitialize() {
-  // Initialise the listing output, parameter and decay data input streams
-  ATH_MSG_INFO(" PYTHIA INITIALISING.");
-
-  /// @todo Use ServiceHandle
-  static const bool CREATEIFNOTTHERE(true);
-  StatusCode RndmStatus = service("AtRndmGenSvc",
-				  Pythia::p_AtRndmGenSvc,
-				  CREATEIFNOTTHERE);
-  if (!RndmStatus.isSuccess() || 0 == Pythia::p_AtRndmGenSvc)
-  {
-      ATH_MSG_ERROR(" Could not initialize Random Number Service");
-      return RndmStatus;
-  }
-  Pythia::pythia_stream	= "PYTHIA_INIT";
-
-  m_atlasTune_loop_prot=0;
-
-  // set up the input parameters to pyinit: these can be changed by the user
-  m_frame  = "CMS   ";
-  m_beam   = "P     ";
-  m_target = "P  ";
-  m_win=10000.;
-  m_initlistlevel=11;
-  m_pystatlistlevel.push_back(1);
-  m_fortout=0;
-
-  m_RndmFileName=" ";
-  m_RndmFileNumber=0;
-  m_RndmSwitch=0;
-  m_RndmFirstEvent=1;
-  m_RndmSkipEvents=0;
-  m_RndmMOVE=0;
-  m_RndmFileLength=0;
-  m_ExternalProcess = 0;
-
-  // end of setup to pyinit
-// special initialisation for Pythiasgluon
-   if(m_addParticle==true)
- {
-//adding a new particle to Pythia for PythiaSgluon
-  std::string s_newParticleCARD_path =
-  PathResolver::find_file("sgluons.dat", "DATAPATH");
-  const char* c_newParticleCARD_path = s_newParticleCARD_path.c_str();
-  addparticle_(c_newParticleCARD_path,strlen(c_newParticleCARD_path));
-  }
-  //now set defaults
-  m_randomseed=19780503;
-  this->pydatr().mrpy(1) = m_randomseed; // can be overwritten by user
-  // default process is ttbar
-  // these can be overwritten by user.
-  m_msel=6;
-  this->pysubs().msel() = m_msel;
-
-  // Set the ATLAS defaults
-  if (m_AtlasDefaults)
-    {
-      ATH_MSG_WARNING("********** You have chosen the default Atlas Settings.  **********");
-      ATH_MSG_WARNING("********** This switch is not valid any more.           **********");
-    }
-
-  //m_Tune_Name parsing to find m_Tune_Type and m_Tune_Index for setPythiaTune() and atlasTune() calls
-  std::string::size_type sep_index = m_Tune_Name.find_first_of('_');
-  if (sep_index != std::string::npos)
-    {
-      m_Tune_Type=m_Tune_Name.substr(0,sep_index);
-      // atoi : returns 0 if conversion not possible - no additional protection needed
-      m_Tune_Index=atoi((m_Tune_Name.substr(sep_index+1,m_Tune_Name.length()-1)).c_str());
-    }
-  else
-    {
-      // invalid Tune_Name, m_Tune_Type and  m_Tune_Index kept at the dummy vals from constructor,
-      // let setPythiaTune() handle the error
-      ATH_MSG_WARNING("Invalid Tune_Name: "<< m_Tune_Name <<" specified .");
-    }
-  // set any Pythia parameters different from Pythia defaults
-  // allow only one reset
-  if (m_atlasTune_loop_prot<2)
-    {
-      // m_atlasTune_loop_prot counts setPythiaTune() calls in setPythiaTune.cxx
-      StatusCode sc=setPythiaTune();
-      if ( sc.isFailure() )
-	{
-	  ATH_MSG_FATAL("ERROR returned from setPythiaTune, exit.");
-	  return StatusCode::FAILURE;
-	}
-    }
-  else
-    {
-      ATH_MSG_FATAL("More than one reset attempt of tune using setPythiaTune.");
-      ATH_MSG_FATAL("Please correct your jobOptions.");
-      return StatusCode::FAILURE;
-    }
-
-  //call pytune directly in case any parameters set py the tune are to be overwritten from jO
-  if (m_direct_call_to_pytune!=0) pytune_(&m_direct_call_to_pytune);
-
-  //PYGIVE command parsing && call
-  for (unsigned int i = 0; i < m_PygiveCommandVector.size(); i++)
-    {
-      m_pygive_cstr = (m_PygiveCommandVector[i]).c_str();
-      pygive_(m_pygive_cstr,strlen(m_pygive_cstr));
-    }
-
-  // Parse Commands and Set Values from Properties Service...
-  for (unsigned int i = 0; i < m_pythiaCommandVector.size(); i++) {
-    ATH_MSG_INFO(" Command is: " << m_pythiaCommandVector[i]);
-    StringParse mystring(m_pythiaCommandVector[i]);
-    string myblock = mystring.piece(1);
-	string myentry = mystring.piece(2);
-	string mystr = mystring.piece(3);
-	string mystr2 = mystring.piece(4);
-	string mystr3 = mystring.piece(5);
-	int myint1 = mystring.intpiece(3);
-	int myint2 = mystring.intpiece(4);
-	int myint3 = mystring.intpiece(5);
-	int myint4 = mystring.intpiece(6);
-	int myint5 = mystring.intpiece(7);
-	double myfl0 = mystring.numpiece(3);
-	double myfl1 = mystring.numpiece(4);
-	double myfl2 = mystring.numpiece(5);
-	double myfl3 = mystring.numpiece(6);
-    // For ExoGraviton_i and PythiaBc_i user param. input
-    int myint6 = mystring.intpiece(2);
-
-    // Print a warning when attempt is made to choose PYTUNE tune via MSTP(5) ;
-    // more than MSTP(5) setting is needed for consistent PYTUNE run within Athena
-    if (myblock == "pypars" && myentry == "mstp" && myint1==5)
-      {
-        ATH_MSG_WARNING("--------------------------------------------------------------------------------\n"
-                        << " MSTP(5) set to "<< myint2 <<", Pythia recieves a command to run PYTUNE # " << myint2 << "\n"
-                        << " Please note: " << "\n"
-                        << " 1. it is up to you to switch off any ATLAS defaults you do not want to use; " << "\n"
-                        << " - the interface takes care of this if PYTUNE tune is called via Pythia.Tune_Name=\"PYTUNE_" << myint2 << "\" in the jO." << "\n"
-                        << " 2. in the jO overrides of the parameters set by PYTUNE # " << myint2 << " will have no effect " << "\n"
-                        << " - this correspods to (standalone) Pythia behavior " << "\n"
-                        << " 3. handling of non-existing PYTUNE tune is same as for (default) Pythia standalone." << "\n"
-                        << "--------------------------------------------------------------------------------");
-      }
-
-    // Note that Pythia needs doubles hence the convert here
-    if (myentry!="use_PYINIT")
-      {
-	ATH_MSG_INFO(myblock << " block  " << myentry << " item  " << myint1 << "  value " << myfl1);
-      }
-    else ATH_MSG_INFO(myblock << " block  " << myentry << " set to " << mystr << " " <<mystr2<<" " <<mystr3<<" "<<myfl3);
-
-    if (myblock=="pyinit") {
-      if (myentry=="user"){
-        m_frame = "USER  ";
-        m_external=mystr;
-        m_ExternalProcess = generator_int(mystr);
-        extproc_(&m_ExternalProcess);
-      }
-      else if(myentry=="use_PYINIT")
-	{
-	  m_frame=mystr;
-	  m_beam=mystr2;
-	  m_target=mystr3;
-	  m_win=myfl3;
-	}
-      else if(myentry=="FIXT"){
-        m_frame="FIXT";
-      }
-      else if(myentry=="pbar"){
-        m_beam="P~- ";
-      }
-      else if(myentry=="win"){
-        m_win=myfl0;
-      }
-      else if(myentry=="pylisti"){
-        m_initlistlevel=myint1;
-      }
-      else if(myentry=="pylistf"){
-        m_eventlistlevel=myint1;
-      }
-      else if(myentry=="dumpr"){
-        m_firstlistevent=myint1;
-        m_lastlistevent=myint2;
-      }
-      else if(myentry=="output"){
-	m_envval1=mystr;
-	m_fortout=49;
-	this->pydat1().mstu(11)=m_fortout;
-      }
-      else if(myentry=="rndm_IO"){
-        m_RndmFileName=mystr;
-        m_RndmFileNumber=36;
-        m_RndmSwitch=myint2;
-        m_RndmFirstEvent=myint3;
-        m_RndmSkipEvents=myint4;
-        m_RndmMOVE=myint5;
-	if (m_RndmSwitch == 1) ++m_RndmSkipEvents;
-
-	if (m_RndmSwitch > 0)
-	  {
-	    if (m_RndmFirstEvent < 1 || m_RndmSkipEvents < 0)
-	      {
-		ATH_MSG_ERROR(" INCONSISTENT SET OF rndm_IO PARAMETERS : FirstEvent < 1 || SkipEvents < 0. DUMPING RNDM SEEDS SWITCHED OFF" << myentry);
-		m_RndmSwitch = 0;
-	      }
-	  }
-
-	ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-	ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-	ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-	ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-	ATH_MSG_INFO(" DETAILS LOOK IN  ");
-	ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-	ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-
-	m_RndmSwitch = 0;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, entry PYINIT has  USER PBAR PYLISTI  PYLISTF  PYSTAT  OUTPUT DUMPR WIN use_PYINIT AND RNDM_IO: YOU HAVE SPECIFIED " << myentry);
-      }
-
-
-    }
-    else if (myblock == "pysubs") {
-      if(myentry == "msel"){
-	this->pysubs().msel()=myint1;
-      }
-      else if (myentry == "msub"){
-	this->pysubs().msub(myint1)=myint2;
-      }
-      else if (myentry == "ckin"){
-	this->pysubs().ckin(myint1)=myfl1;
-      }
-      else if (myentry == "kfin"){
-	this->pysubs().kfin(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYSUBS has MSEL, MSUB, KFIN AND CKIN: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pypars"){
-      if(myentry == "mstp"){
-	this->pypars().mstp(myint1)=myint2;
-      }
-      else if(myentry == "msti"){
-	this->pypars().msti(myint1)=myint2;
-      }
-      else if(myentry == "parp"){
-	this->pypars().parp(myint1)=myfl1;
-      }
-      else if(myentry == "pari"){
-	this->pypars().pari(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYPARS has MSTP,PARP, MSTI AND PARI: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat1"){
-      if(myentry == "mstu"){
-	this->pydat1().mstu(myint1)=myint2;
-      }
-      else if(myentry == "mstj"){
-	this->pydat1().mstj(myint1)=myint2;
-      }
-      else if(myentry == "paru"){
-	this->pydat1().paru(myint1)=myfl1;
-      }
-      else if(myentry == "parj"){
-	this->pydat1().parj(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT1  HAS MSTU, MSTJ, PARU AND PARJ: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat2"){
-      if(myentry == "kchg"){
-	this->pydat2().kchg(myint1,myint2)=myint3;
-      }
-      else if(myentry == "pmas"){
-	this->pydat2().pmas(pycomp_(&myint1),myint2)=myfl2;
-      }
-      else if(myentry == "parf"){
-	this->pydat2().parf(myint1)=myfl1;
-      }
-      else if(myentry == "vckm"){
-	this->pydat2().vckm(myint1,myint2)=myfl2;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT2  HAS KCHG, PMAS, PARF AND VCKM: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydat3"){
-      if(myentry == "mdcy"){
-	this->pydat3().mdcy(myint1,myint2)=myint3;
-      }
-      else if(myentry == "mdme"){
-	this->pydat3().mdme(myint1,myint2)=myint3;
-      }
-      else if(myentry == "brat"){
-	this->pydat3().brat(myint1)=myfl1;
-      }
-      else if(myentry == "kfdp"){
-	this->pydat3().kfdp(myint1,myint2)=myint3;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDAT3  HAS KFDP, MDCY, BRAT AND MDME : YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pydatr"){
-      if(myentry == "mrpy"){
-        ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA RANDOM NUMBERS !!!!!!!! ");
-        ATH_MSG_INFO(" THE ATHENA/PYTHIA DOES NOT USE ANY MORE THE STANDARD  ");
-        ATH_MSG_INFO(" PYTHIA RANDOM NUMBER SERVICES. SINCE RELEASE 5.2.0 THE");
-        ATH_MSG_INFO(" ATHENA SERVICE AtRndmGenSvc IS USED. PLEASE FOR MORE  ");
-        ATH_MSG_INFO(" DETAILS LOOK IN  ");
-        ATH_MSG_INFO(" http://atlassw1.phy.bnl.gov/lxrsource/current/atlas/Generators/GeneratorModules/doc/Pythia.pdf ");
-        ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
-
-	this->pydatr().mrpy(myint1)=myint2;
-      }
-      else if(myentry == "rrpy"){
-	this->pydatr().rrpy(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYDATR HAS MRPY AND RRPY: YOU HAVE SPECIFIED " << myentry);
-      }
-    }
-    else if (myblock == "pymssm"){
-      if (myentry=="imss"){
-        if (myint1 == 21 || myint1 == 22) {
-          ATH_MSG_WARNING("The setting of imss(21) and imss(22) is not allowed. When imss(1)=11 is chosen imss(21) and imss(22) are set to 66 by default");
-        } else {
-          this->pymssm().imss(myint1)=myint2;
-        }
-      }
-      else if (myentry=="rmss"){
-        this->pymssm().rmss(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYMSSM has IMSS AND RMSS: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pypued"){
-      if (myentry=="iued")
-        {
-          this->pypued().iued(myint1)=myint2;
-        }
-      else if (myentry=="rued"){
-	this->pypued().rued(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYPUED has IUED AND RUED: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-   else if (myblock == "pypevwt"){
-      if (myentry=="ievwt")
-	{
- 	  this->pypevwt().ievwt(myint1)=myint2;
-	}
-      else if (myentry=="revwt"){
-	this->pypevwt().revwt(myint1)=myfl1;
-      }
-      else {
-	ATH_MSG_ERROR("PYTHIA ERROR, block PYPEVWT has IEVWT AND REVWT: YOU HAVE SPECIFIED "<< myentry) ;
-      }
-    }
-    //CLA: RPV couplings
-    else if (myblock == "pymsrv") {
-      //LLE
-      if (myentry=="rvlam"){
-        this->pymsrv().rvlam(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda to "<< myfl1);
-      }
-      //LQD
-      else if (myentry=="rvlamp"){
-        this->pymsrv().rvlamp(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda^prime to "<< myfl1);
-      }
-      //UDD
-      else if (myentry=="rvlamb"){
-        this->pymsrv().rvlamb(myint1)=myfl1;
-        ATH_MSG_INFO("setting Yukawa coupling lambda^doubelprime to "<< myfl1);
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYMSRV has RVLAM, RVLAMP AND RVLAMB: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pyint2"){
-      if (myentry == "iset"){
-        this->pyint2().iset(myint1)=myint2;
-      }
-      else if (myentry == "kfpr"){
-        this->pyint2().kfpr(myint1,myint2)=myint3;
-      }
-      else if (myentry == "coef"){
-        this->pyint2().coef(myint1,myint2)=myfl2;
-      }
-      else if (myentry == "icol"){
-        this->pyint2().icol(myint1,myint2,myint3)=myint4;
-      }
-      else {
-      ATH_MSG_ERROR("PYTHIA ERROR, block PYINT2 has ISET KFPR COEF AND ICOL: YOU HAVE SPECIFIED "<< myentry);
-      }
-    }
-    else if (myblock == "pystat"){
-      m_pystatlistlevel.clear();
-      for (unsigned i = 2; i <= mystring.string_size(); ++i)
-	    m_pystatlistlevel.push_back(mystring.intpiece(i));
-    }
-    else if (myblock == "pytcsm"){
-      if (myentry == "itcm"){
-        this->pytcsm().itcm(myint1)=myint2;
-      }
-      else if (myentry=="rtcm"){
-        this->pytcsm().rtcm(myint1)=myfl1;
-      }
-      else {
-        ATH_MSG_ERROR("PYTHIA ERROR, block PYTCM has ITCM AND RTCM: YOU HAVE SPECIFIED "<< myentry);
-      }
-
-    }
-
-    // AcerMC tt~ decay mode switching
-    else if (myblock == "acermc" && myentry=="acset12") {
-      if (m_ExternalProcess == ACERMC) {
-        this->acermc_acset().acset12()=myint1;
-      }
-    }
-    // for ExoGraviton user parameter setup
-    else if (myblock == "grav")
-     {
-       ::WriteGravParam(myint6, myint1, (double)myfl0);
-     }
-    // for PythiaBc_i user parameters setup
-    /*
-    else if (myblock == "pythiabc")
-     {
-       ::WritePythiaBcParam(myint6, myint1, (double)myfl0);
-     }
-    */
-    else {
-      ATH_MSG_ERROR(" ERROR in PYTHIA PARAMETERS   " << myblock << " is and invalid common block name !");
-    }
-  }
-  // End of param parsing
-
-  // Set the logical Unit Number for the immss(1)=11 option and open the file
-  if (this->pymssm().imss(1) == 11) {
-    int syunit = 66;
-    this->pymssm().imss(21) = syunit;
-    this->pymssm().imss(22) = syunit;
-    const std::string& fileName = m_read_Filesusy;
-    opensusyfile_(fileName.c_str(),&syunit,fileName.size());
-  }
-
-  // !!!!! PROTECT AGAINST mstp(81)/mstp(82) Pythia looping
-  if (this->pypars().mstp(81) == 0 && this->pypars().mstp(82) > 2)
-  {
-      this->pypars().mstp(82) = 1;
-      ATH_MSG_INFO(" !!!!!!!!!!  WARNING ON PYTHIA LOOPING !!!!!!!!");
-      ATH_MSG_INFO(" YOU HAVE SWITCHED OFF MULTIPLE INTERACTIONS, mstp(81) = 0");
-      ATH_MSG_INFO(" THE DEFAULT ATLAS MULTIPLE INTERACTIONS SCENARIO, mstp(82) = 4");
-      ATH_MSG_INFO(" CHANGED TO mstp(82) = 1, BECAUSE PYTHIA IS LOOPING WHEN");
-      ATH_MSG_INFO(" mstp(81) = 0 and mstp(82) > 2");
-      ATH_MSG_INFO(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
-  }
-
-  // Now call pyinit and set listing
-  // Note the `extra' arguments to pyinit on the end of the argument
-  // list which do *not* explicitly occur in the FORTRAN
-  // implementation of the function -- one for each character
-  // variable, in the same order (reference Randy Herber,
-  // herber@fnal.gov). Note also that the `extern "C"' function
-  // declaration matches the C usage rather than the FORTRAN
-  // definition of the PYINIT function and therefore includes the 3
-  // extra arguments.
-  // activate the block data
-  const char* envval = m_envval1.c_str();
-  initpyblock_(&m_fortout,envval);
-
-  if (m_RndmSwitch > 0)
-  {
-      const char* RndmFileName = m_RndmFileName.c_str();
-      m_RndmFileLength = openrandom_(&m_RndmSwitch, &m_RndmFileNumber, RndmFileName);
-      if (m_RndmSwitch ==2 ) {
-        ATH_MSG_INFO(" THERE ARE " << m_RndmFileLength << " EVENTS STORED IN THE PYTHIA RANDOM NUMBER FILE");
-      }
-  }
-
-  const char* frame = m_frame.c_str();
-  const char* beam = m_beam.c_str();
-  double winval = m_win;
-  const char* target = m_target.c_str();
-  int minlist   = m_initlistlevel;
-  // special initialization for comphep
-  if(m_external=="comphep"){
-    rinpar_();
-    subnum_();
-    rheader_();
-  }
-  // special initialization for matchig
-  if(m_external=="matchig")
-    {
-      ATH_MSG_DEBUG("Calling setecm with argument winval=" << winval);
-      setecm_(&winval);
-    }
-
-  // end of comphep initialization
-
-  ATH_MSG_DEBUG(" ****** BEFORE PYINIT ********");
-  ATH_MSG_DEBUG(" MSTU(11) " << this->pydat1().mstu(11) <<
-                " MSTU(20) " << this->pydat1().mstu(20)  <<
-                " MSTU(118) " << this->pydat1().mstu(118));
-  ATH_MSG_DEBUG(" PARU(108) " << this->pydat1().paru(108) <<
-                " PARU(117) " << this->pydat1().paru(117) <<
-                " PARU(118) " << this->pydat1().paru(118));
-  for (int ii = 210; ii < 353; ++ii)
-      {
-	      ATH_MSG_DEBUG(" BRAT(" << ii << ") "
-		  <<  this->pydat3().brat(ii));
-	  }
-  ATH_MSG_DEBUG(" MDCY(310) "
-                << this->pydat3().mdcy(310,1) << ", "
-                << this->pydat3().mdcy(310,2) << ", "
-                << this->pydat3().mdcy(310,3));
-
-  // Save the PYTHIA_INIT stream seeds....
-  CLHEP::HepRandomEngine* engine = Pythia::p_AtRndmGenSvc->GetEngine(Pythia::pythia_stream);
-  const long* sip = engine->getSeeds();
-  long int	si1 = sip[0];
-  long int	si2 = sip[1];
-
-
-  // write warning for non p-p collistion, strip white-spaces off beam and target strings
-  std::string beam_strp(beam); boost::trim(beam_strp);
-  std::string target_strp(target); boost::trim(target_strp);
-  if ((beam_strp!="P" && beam_strp!="P+" && beam_strp!="p" && beam_strp!="p+") || (target_strp!="P" && target_strp!="P+" && target_strp!="p" && target_strp!="p+"))
-    {
-      ATH_MSG_WARNING("PYINIT(FRAME,BEAM,TARGET,WIN) called from within ATHENA using parameters: ");
-      ATH_MSG_WARNING("FRAME : "<< frame << ", BEAM : "<< beam <<", TARGET: "<< target<< ", WIN: "<< winval);
-      ATH_MSG_WARNING("Initialization with non-standard BEAM-TARGET combination: ");
-      ATH_MSG_WARNING("making sure sensible PYTHIA parameters setup is used is up to you.");
-    }
-
-
-  pyinit_(frame, beam, target, &winval,
-          strlen(frame), strlen(beam), strlen(target));
-
-  // ... and set them back to the stream for proper save
-  Pythia::p_AtRndmGenSvc->CreateStream(si1, si2, Pythia::pythia_stream);
-
-  Pythia::pythia_stream	= "PYTHIA";
-
-  ATH_MSG_DEBUG(" ****** AFTER PYINIT ********");
-  ATH_MSG_DEBUG(" MSTU(11) " << this->pydat1().mstu(11) <<
-                " MSTU(20) " << this->pydat1().mstu(20)  <<
-                " MSTU(118) " << this->pydat1().mstu(118));
-  ATH_MSG_DEBUG(" PARU(108) " << this->pydat1().paru(108) <<
-                " PARU(117) " << this->pydat1().paru(117) <<
-                " PARU(118) " << this->pydat1().paru(118));
-  for (int ii = 210; ii < 353; ++ii)
-    {
-      ATH_MSG_DEBUG(" BRAT(" << ii << ") "
-                    <<  this->pydat3().brat(ii));
-    }
-  ATH_MSG_DEBUG(" MDCY(310) "
-                << this->pydat3().mdcy(310,1) << ", "
-                << this->pydat3().mdcy(310,2) << ", "
-                << this->pydat3().mdcy(310,3));
-
-  ATH_MSG_DEBUG(std::resetiosflags(std::ios::fixed));
-
-  pylist_(&minlist);
-  m_events = 0;
-  ATH_MSG_DEBUG(" kfpr (186,2)============ " << this->pyint2().kfpr(186,2));
-  ATH_MSG_DEBUG(" kfpr (187,2)============ " << this->pyint2().kfpr(187,2));
-
-  //decay table
-  const char *p_envar1="PYDAT";
-  //  char *p_envval1=0;
-  //  p_envval1 = 
-  getenv(p_envar1);
-
-  // do parameter querries after PYINIT :
-  //PYGIVE command parsing && call
-
-  if (m_Param_Query_AfterInit.size()!=0)
-    {
-      //save MSTU(11) value before the parout_ call which starts a new stream:
-      int tmp_m11=this->pydat1().mstu(11);
-      // set output to a dedicated file for params after the initialization
-      int tmp_mode=1;
-      parout_(&tmp_mode);
-      // query the requested parameter values:
-      for (unsigned int i = 0; i < m_Param_Query_AfterInit.size(); i++) 
-	{
-	  m_pygive_init_cstr = (m_Param_Query_AfterInit[i]).c_str();
-	  pygive_(m_pygive_init_cstr,strlen(m_pygive_init_cstr));
-	}
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }
-  
-  // get rid of an residual old event generation parameters data:  
-  if (m_Param_Query_AfterGen.size()!=0)
-    {
-      //save MSTU(11) value before the parout_ call which starts a new stream:
-      int tmp_m11=this->pydat1().mstu(11);
-      // set output to a dedicated file for params after the initialization
-      int tmp_mode=2;
-      parout_(&tmp_mode);
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }
-
-  // Set size of common blocks in HEPEVT: note these correspond to stdhep
-  HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof(int));
-  HepMC::HEPEVT_Wrapper::set_sizeof_real(8);
-  HepMC::HEPEVT_Wrapper::set_max_number_entries(10000);
-
-  return StatusCode::SUCCESS;
-}
-
-
-//---------------------------------------------------------------------------
-
-
-StatusCode Pythia::callGenerator() {
-  ATH_MSG_DEBUG(" PYTHIA generating.");
-
-  // Write/Read the random numbers to/from file if requested
-  if (m_RndmSwitch > 0)	RandomNumberIO();
-
-  // Save the random number seeds in the event
-  CLHEP::HepRandomEngine*	engine	=	Pythia::p_AtRndmGenSvc->GetEngine(Pythia::pythia_stream);
-  const long*		s	=	engine->getSeeds();
-  m_seeds.clear();
-  m_seeds.push_back(s[0]);
-  m_seeds.push_back(s[1]);
-
-  // Generate event
-  pyevnt_();
-
-  // update event counter
-  ++m_events;
-  int mevlist=m_eventlistlevel;
-  // Is the event to be listed
-  if ( m_events >= m_firstlistevent &&
-       m_events <= m_lastlistevent) {
-    ATH_MSG_INFO("PYEVNT event no. " << m_events << " will be listed");
-    if (m_frame == "USER  ")
-    {
-	int uspr = 7;
-	pylist_(&uspr); // Special listing when external generator was selected
-    }
-    pylist_(&mevlist); // List this event if required
-  } 
-
-  // make parameter querry after event generation:
-  for (unsigned int i = 0; i < m_Param_Query_AfterGen.size(); i++) 
-    {
-      int tmp_m11=this->pydat1().mstu(11); 
-      int tmp_mode=3;
-      parout_(&tmp_mode);      
-      m_pygive_gen_cstr = (m_Param_Query_AfterGen[i]).c_str();
-      pygive_(m_pygive_gen_cstr,strlen(m_pygive_gen_cstr));
-      //set MSTU(11) back to the default value
-      this->pydat1().mstu(11)=tmp_m11;
-    }   
-  
-  // Tell lunhep to convert from PYJETS to HEPEVT
-  int mconv=1;
-  // Do the conversion
-  pyhepc_(&mconv); // Use STDHEP translation routine 1999/01/27 CG
-  if ( HepMC::HEPEVT_Wrapper::number_entries() <= 0 ) {
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    std::cout << "!!! " << generator_name(m_ExternalProcess) << " TERMINATES NORMALLY: NO MORE EVENTS IN FILE !!!" << std::endl;
-    std::cout << "!!! PLEASE IGNORE ANY ATHENA ERROR MESSAGES LIKE !!!" << std::endl;
-    std::cout << "!!! AthenaEventLoopMgr  ERROR Terminating event processing loop due to errors !!!" << std::endl;
-    std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
-    return StatusCode::FAILURE;
-  }
-  HepMC::HEPEVT_Wrapper::set_event_number(m_events);
-  return StatusCode::SUCCESS;
-}
-
-//---------------------------------------------------------------------------
-
-StatusCode Pythia::genFinalize() {
-  ATH_MSG_INFO(" PYTHIA Ending." );
-  for (std::vector<int>::iterator i = m_pystatlistlevel.begin(); i != m_pystatlistlevel.end(); ++i)
-  {
-      ATH_MSG_INFO("Call PYSTAT at endRun with level " << *i);
-      pystat_(&(*i));
-  }
-  if (m_SetCrossSection==m_Default_SetCrossSection)
-    {
-      //always print out the non-scaled x-section
-      std::cout << "MetaData: cross-section (nb)= " << 1000000. * (this->pyint5().xsec(0,3))<< std::endl;
-      //print out additional MetaData fields if cross-section scaling is requested
-      if (m_xsscale != m_Default_xsscale)
-	{
-	    std::cout << "MetaData: cross-section*CrossSectionScaleFactor (nb)= " << 1000000. * (this->pyint5().xsec(0,3)) * m_xsscale << std::endl;
-	    std::cout << "MetaData: CrossSectionScaleFactor = " << m_xsscale << std::endl;
-	}
-    }
-  else
-    {
-      // cross section is a fixed number:
-      std::cout << " Printing cross-section passed by SetCrossSection in jO: "<< std::endl;
-      std::cout << " MetaData: cross-section (nb)= " << m_SetCrossSection << std::endl;
-    }
-
-  // version specified in External/Pythia
-  std::cout << "MetaData: generator = Pythia " << PY6VERSION << std::endl; 
-
-  return StatusCode::SUCCESS;
-}
-
-//---------------------------------------------------------------------------
-
-StatusCode Pythia::fillEvt(HepMC::GenEvent* evt) {
-  ATH_MSG_DEBUG(" PYTHIA Atlas_HEPEVT Filling.");
-  store_Atlas_HEPEVT();
-
-  ATH_MSG_DEBUG(" PYTHIA Filling." );
-  HepMC::IO_HEPEVT hepio;
-  hepio.set_print_inconsistency_errors(0);
-
-  hepio.fill_next_event(evt);
-  int pr_id = PYTHIA + m_ExternalProcess + this->pyint1().mint(1);
-  if (m_ExternalProcess > 0) pr_id = PYTHIA + m_ExternalProcess;
-  evt->set_signal_process_id(pr_id);
-  evt->set_random_states(m_seeds);
-  evt->weights().push_back(this->pypars().pari(7));
-  evt->weights().push_back(this->pypars().pari(9));
-  evt->weights().push_back(this->pypars().pari(10));
-
-  // Set beam particle status = 4
-  if (evt->valid_beam_particles()) {
-    evt->beam_particles().first->set_status(4);
-    evt->beam_particles().second->set_status(4);
-  }
-
-  // PDF weights, using Pdf Info object: pdf_id, x_1, x_1, Q2, f_1, f_2
-  const int id1=this->pypars().msti(15);
-  const int id2=this->pypars().msti(16);
-  const double x1=this->pypars().pari(33);
-  const double x2=this->pypars().pari(34);
-  const double q=this->pypars().pari(23);
-  const double pdf1=(double)this->pypars().pari(29); // x*pdf1
-  const double pdf2=(double)this->pypars().pari(30); // x*pdf2 
-  const int pdfId1 = (int)this->pypars().mstp( 51 );    // LHAPDF set id of first parton
-  const int pdfId2 = (int)this->pypars().mstp( 51 );    // LHAPDF set id of second --
-
-  if ( m_external == "lhef" ) {
-    Lhefinfo linfo; 
-
-    ATH_MSG_DEBUG("lhefinfo, id1: " << linfo.id1());
-    ATH_MSG_DEBUG("lhefinfo, id2: " << linfo.id2());
-    ATH_MSG_DEBUG("lhefinfo, x1: " << linfo.x1());
-    ATH_MSG_DEBUG("lhefinfo, x2: " << linfo.x2());
-    ATH_MSG_DEBUG("lhefinfo, scale: " << linfo.scalePdf());
-    ATH_MSG_DEBUG("lhefinfo, xpdf1: " << linfo.xPdf1());
-    ATH_MSG_DEBUG("lhefinfo, xpdf2: " << linfo.xPdf2());
-
-    HepMC::PdfInfo tmp_pdi(linfo.id1(), linfo.id2(), linfo.x1(), linfo.x2(),
-      linfo.scalePdf(), linfo.xPdf1(), linfo.xPdf2());
-    evt->set_pdf_info(tmp_pdi);
-
-  } else {
-    HepMC::PdfInfo tmp_pdi(id1, id2, x1, x2, q, pdf1, pdf2, pdfId1, pdfId2);
-    evt->set_pdf_info(tmp_pdi);
-  }
-
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->id1());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->id2());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->x1());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->x2());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->scalePDF());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->pdf1());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->pdf2());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->pdf_id1());
-  ATH_MSG_DEBUG("pdfinfo: "<<  evt->pdf_info()->pdf_id2());
-
-  // Convert cm->mm and GeV->MeV
-  // cmTomm(evt);
-  GeVToMeV(evt);
-
-  return StatusCode::SUCCESS;
-}
-
-
-void
-Pythia::RandomNumberIO()
-{
-    // m_RndmSwitch == 1 : Write the random numbers of the selected events into
-    //                     the file m_RndmFileNumber
-    if (m_RndmSwitch == 1)
-    {
-      int WriteEvent = m_events - m_RndmFirstEvent + 1;
-      if (WriteEvent >= 0)
-      {
-	    WriteEvent = WriteEvent%m_RndmSkipEvents;
-	    if (WriteEvent == 0) pyrget_(&m_RndmFileNumber, &m_RndmMOVE);
-      }
-    }
-    // m_RndmSwitch == 2 : Read the random numbers from the selected records from
-    //                     the file m_RndmFileNumber
-    else if (m_RndmSwitch == 2)
-    {
-        int MOVE = m_RndmMOVE;
-        if (MOVE == 0)
-        {
-            if (m_RndmFirstEvent > 0)
-            {
-                if (m_events == 0)
-                {
-                    MOVE = m_RndmFirstEvent - 1;
-                }
-                else
-                {
-                    MOVE = m_RndmSkipEvents;
-                }
-            }
-            int c_pos = this->pydatr().mrpy(6) + MOVE;
-            if (c_pos < m_RndmFileLength)
-            {
-                ATH_MSG_INFO("EVENT " << m_events+1
-                             << " will be generated with the random seeds read from record "
-                             << c_pos+1 << " in file " << m_RndmFileName);
-                pyrset_(&m_RndmFileNumber, &MOVE);
-            }
-        }
-        else
-        {
-            pyrset_(&m_RndmFileNumber, &MOVE);
-        }
-    }
-}
-
-
-
-void
-Pythia::store_Atlas_HEPEVT()
-{
-
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->nhep() );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->isthep(10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->idhep(10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->jmohep(1,10) );
-    ATH_MSG_DEBUG("s_atlas_HEPEVT------" << s_atlas_HEPEVT->jdahep(2,10) );
-
-    s_atlas_HEPEVT->fill();
-
-    Atlas_HEPEVT* ahep = new Atlas_HEPEVT();
-    *(ahep) = *(s_atlas_HEPEVT);
-    static const std::string keyid = "Pythia";
-    StatusCode sc = evtStore()->record(ahep, keyid);
-    if (!sc.isSuccess()) {
-      ATH_MSG_WARNING("Could not record Atlas_HEPEVT");
-    }
-
-}
diff --git a/Generators/Pythia_i/src/PythiaDummies/fhhiggscorr.F b/Generators/Pythia_i/src/PythiaDummies/fhhiggscorr.F
deleted file mode 100644
index c564bfb0ca3ca2fe6b192e81ee8b792d20881849..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/fhhiggscorr.F
+++ /dev/null
@@ -1,26 +0,0 @@
-
-C*********************************************************************
-
-C...FHHIGGSCORR
-C...Dummy function, to be removed when FEYNHIGGS is to be linked.
-
-      SUBROUTINE FHHIGGSCORR(IERR, RMHIGG, SAEFF, UHIGGS)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-C...FeynHiggs variables
-      DOUBLE PRECISION RMHIGG(4), SAEFF, UHIGGS(3,3) 
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link FEYNHIGGS correctly.'/
-     &1X,'Dummy routine FHSETPARA in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/fhsetflags.F b/Generators/Pythia_i/src/PythiaDummies/fhsetflags.F
deleted file mode 100644
index cf2a6dd35214abbdfd4b014842251cc7f85b22c5..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/fhsetflags.F
+++ /dev/null
@@ -1,32 +0,0 @@
- 
-C*********************************************************************
- 
-C...FHSETFLAGS
-C...Dummy function, to be removed when FEYNHIGGS is to be linked.
-
-      SUBROUTINE FHSETFLAGS(IERR,IMSP,IFR,ITBR,IHMX,IP2A,ILP,ITR,IBR)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-Cmssmpart = 4     # full MSSM [recommended]
-Cfieldren = 0     # MSbar field ren. [strongly recommended]
-Ctanbren =  0     # MSbar TB-ren. [strongly recommended]
-Chiggsmix = 2     # 2x2 (h0-HH) mixing in the neutral Higgs sector
-Cp2approx = 0     # no approximation [recommended]
-Clooplevel= 2     # include 2-loop corrections
-Ctl_running_mt= 1 # running top mass in 2-loop corrections [recommended]
-Ctl_bot_resum = 1 # resummed MB in 2-loop corrections [recommended]
-
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link FEYNHIGGS correctly.'/
-     &1X,'Dummy routine FHSETFLAGS in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/fhsetpara.F b/Generators/Pythia_i/src/PythiaDummies/fhsetpara.F
deleted file mode 100644
index 6a4cbde5b8e051bca9be1c7b21ccf6fa1f45d373..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/fhsetpara.F
+++ /dev/null
@@ -1,27 +0,0 @@
-
-C*********************************************************************
-
-C...FHSETPARA
-C...Dummy function, to be removed when FEYNHIGGS is to be linked.
-
-      SUBROUTINE FHSETPARA(IER,SCF,DMT,DMB,DMW,DMZ,DTANB,DMA,DMH,DM3L, 
-     &     DM3E,DM3Q,DM3U,DM3D,DM2L,DM2E,DM2Q,DM2U, DM2D,DM1L,DM1E,DM1Q, 
-     &     DM1U,DM1D,DMU,ATAU,AT,AB,AMU,AC,AS,AE,AU,AD,
-     &     DM1,DM2,DM3,RLT,RLB,QTAU,QT,QB)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link FEYNHIGGS correctly.'/
-     &1X,'Dummy routine FHSETPARA in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/pyevwt.F b/Generators/Pythia_i/src/PythiaDummies/pyevwt.F
deleted file mode 100644
index 58c437be19482e4b8fe4072dc1ae3a7b16c0121e..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/pyevwt.F
+++ /dev/null
@@ -1,203 +0,0 @@
-C...   Date:  March 2010
-C...   Description:  Routine to weight events based on cross-section
-C...   parameterization and/or binning function.
-C...
-C...   Authors:
-C...   - JX dijets weighting functions by S.L. Cheung, P.O. Deviveiros, and E. Feng
-C...   - Compositeness weighting functions by P.O. Deviveiros and L. Pribyl
-
-C... Usage instructions:
-C    choose a not-yet-used PYPEVWT/IEVWT(1) number
-C    implement the weighting function in this subroutine, wraped in the relevant IEVWT(1) loop 
-C    please make sure you fully separate your implementation from any other parts of the code; 
-C    since different weighting function impementations must coexist in this subrout.
-C    in your jO use (replace XX with the selected IEVWT(1) value)
-C    "pypars mstp 142 1",     # Enable event weighting
-C    "pypevwt ievwt 1 XX",    # Use the weighting function XX 
-
-
-      SUBROUTINE PYEVWT(WTXS)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      
-C...  PYTHIA params common blocks
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      
-C...  ATLAS-SPECIFIC COMMON: 
-C     SET IEVWT(1) for weighting fuction   [IEVWT(1)=0 : no weighting func. ] 
-C     SET IEVWT(2) for binning             [IEVWT(2)=0 : no binning modul.  ]
-      COMMON/PYPEVWT/IEVWT(100),REVWT(100)
-      
-      SAVE /PYDAT1/,/PYPARS/,/PYINT1/,/PYINT2/,/PYDAT1/,/PYPEVWT/
-
-C set defaults for the ATLAS commons:
-      DATA IEVWT/100*0/
-      DATA REVWT/100*0.0D0/
-
-
-C_______________________________________________________________________________________ 
-C...Read out subprocess number.
-      ISUB=MINT(1)
-      ISTSB=ISET(ISUB)
- 
-C...Read out tau, y*, cos(theta), tau' (where defined, else =0).
-      TAU=VINT(21)
-      YST=VINT(22)
-      CTH=0D0
-      IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
-      TAUP=0D0
-      IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
- 
-C...Read out x_1, x_2, x_F, shat, that, uhat, p_T^2.
-      X1=VINT(41)
-      X2=VINT(42)
-      XF=X1-X2
-      SHAT=VINT(44)
-      THAT=VINT(45)
-      UHAT=VINT(46)
-      PT=VINT(47)
-      PT2=VINT(48)
-
-
-C_______________________________________________________________________________________
-C ATLAS-specific body:
-
-C set defaults:
-
-C...  Default:  Unweighted (weight=1)
-      WTVAL=1D0
-
-C...  Default:  Fixed bin width
-      BNVAL = 1D0
-
-C_______________________________________________________________________________________
-C---------------------------------------------------------------------------------------
-C binning specific part that only has effect if IEVWT(2) is set in jO
-C---------------------------------------------------------------------------------------
-C...  Switch for weighting function
-      WTFCN=IEVWT(1)
-
-C...  WTFCN=0:  Unweighted
-      IF(WTFCN.EQ.0) WTVAL=1D0
-         
-C...  WTFCN=1:  JX Dijets
-      IF(WTFCN.EQ.1)THEN
-         VARA = 1.24360E+16
-         VARB = 8.91406E+00
-         VARC = 4.83110E+00
-         VARD = 1.83636E-01
-         WTVAL = VARA*(1.0D0-(PT/3500.0D0))**(VARB)
-         WTVAL = WTVAL/(PT**(VARC+VARD*LOG(PT/3500.0D0)))
-         IF(PT.LT.150) WTVAL = WTVAL * (1 + (1-PT/150.) )
-      ENDIF
-      
-C...  WTFCN=2:  L3 Compositeness
-      IF(WTFCN.EQ.2)THEN
-         WTVAL=1.94896E+06*EXP(-(PT-392.)/500.)
-         WTVAL2=EXP((PT-1100.)*(PT-1100.)/1.3E5)
-         WTVAL3=EXP((PT-350.)*(PT-350.)/0.1E5)
-
-         IF(PT.LT.1100)THEN
-            WTVAL = WTVAL*WTVAL2
-         ENDIF
-         IF(PT.LT.350)THEN
-            WTVAL = WTVAL*WTVAL3
-         ENDIF
-      ENDIF
-
-C...  WTFCN=3:  L4 Compositeness
-      IF(WTFCN.EQ.3)THEN
-         WTVAL=1.94896E+06*EXP(-(PT-392.)/420.)
-         WTVAL2=EXP((PT-1200.)*(PT-1200.)/1.2E5)
-         WTVAL3=EXP((PT-350.)*(PT-350.)/0.1E5)
-
-         IF(PT.LT.1200)THEN
-            WTVAL = WTVAL*WTVAL2
-         ENDIF
-         IF(PT.LT.350)THEN
-            WTVAL = WTVAL*WTVAL3
-         ENDIF
-      ENDIF
-
-C...  WTFCN=4:  L5 Compositeness
-      IF(WTFCN.EQ.4)THEN
-         WTVAL=1.94896E+06*EXP(-(PT-392.)/220.)
-         WTVAL2=EXP((PT-1200.)*(PT-1200.)/1.5E5)
-         WTVAL3=EXP((PT-350.)*(PT-350.)/0.1E5)
-
-         IF(PT.LT.1200)THEN
-            WTVAL = WTVAL*WTVAL2
-         ENDIF
-         IF(PT.LT.350)THEN
-            WTVAL = WTVAL*WTVAL3
-         ENDIF
-      ENDIF
-
-
-C...  WTFCN=5:  bug fix for J/psi + Upsilon recommended by T. Sjostrand
-      IF(WTFCN.EQ.5)THEN      
-C...  Copy form for pT0 as used in multiple interactions.
-C...  You are not forced to use this pT0 expression, .e.g. the studies
-C...  of Marianne Bargiotti indicates that a value larger than the
-C...  normal PARP(82) is required. Rather than then changing PARP(82)
-C...  itself, which would mess up the multiple interactions, you may
-C...  use another value, hardcoded or as a tunable parameter.
-         PT0=PARP(82)*(VINT(1)/PARP(89))**PARP(90)
-         PT20=PT0**2
-         
-C...  Introduce dampening factor.
-         WTXS=(PT2/(PT20+PT2))**2
-         
-C...  Also dampen alpha_strong by using larger Q2 scale.
-         Q2=VINT(52)
-         WTXS=WTXS*(PYALPS(PT20+Q2)/PYALPS(Q2))**3
-         
-C     ignore subseq. code parts:
-         RETURN
-         
-      ENDIF         
-
-C---------------------------------------------------------------------------------------
-C  end of weighting functions imple. that only have effect if IEVWT(1) is set in jO
-C---------------------------------------------------------------------------------------
-C---------------------------------------------------------------------------------------
-
-         
-C_______________________________________________________________________________________
-C---------------------------------------------------------------------------------------
-C binning specific part that only has effect if IEVWT(2) is set in jO
-C---------------------------------------------------------------------------------------
-C...  Switch for binning function
-      BNFCN=IEVWT(2)
-
-C...  BNFCN=0:  Fixed bin width
-      IF(BNFCN.EQ.0) BNVAL = 1D0
-         
-C...  BNFCN=1:  Linearly increasing bin width, yields flat distribution per log(pT):
-C...  dN/d(log pT) = dN/( 1/pT * d(pT) ) = pT * (dN/dpT)
-C...  Thus dN/d(log pT) = 1  -->  dN/dpT = pT  --> dpT = pT
-      IF(BNFCN.EQ.1)THEN
-         BNVAL = PT
-      ENDIF
-
-C...  BNFCN=2:  Jet energy resolution ~ sqrt(E)
-      IF(BNFCN.EQ.2)THEN
-         BNVAL = SQRT(PT)
-      ENDIF
-
-C---------------------------------------------------------------------------------------
-C  end of binning specific part that only has effect if IEVWT(2) is set in jO
-C---------------------------------------------------------------------------------------
-C---------------------------------------------------------------------------------------
-
-C     NB: BNVAL is set to 1 by default and is only changed if binn.-specific fuction is called using IEVWT(2) in jO
-C...  Finally compute efficiency (inverse of effective event weight) from weighting and binning functions
-      WTXS = 1./ (WTVAL * BNVAL)
- 
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/pykcut.F b/Generators/Pythia_i/src/PythiaDummies/pykcut.F
deleted file mode 100644
index 669834ad26e0e7017d883ff607a48ccccd088998..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/pykcut.F
+++ /dev/null
@@ -1,78 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYKCUT
-C...Dummy routine, which the user can replace in order to make cuts on
-C...the kinematics on the parton level before the matrix elements are
-C...evaluated and the event is generated. The cross-section estimates
-C...will automatically take these cuts into account, so the given
-C...values are for the allowed phase space region only. MCUT=0 means
-C...that the event has passed the cuts, MCUT=1 that it has failed.
- 
-      SUBROUTINE PYKCUT(MCUT)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYDAT1/,/PYINT1/,/PYINT2/
- 
-C...Set default value (accepting event) for MCUT.
-      MCUT=0
- 
-C...Read out subprocess number.
-      ISUB=MINT(1)
-      ISTSB=ISET(ISUB)
- 
-C...Read out tau, y*, cos(theta), tau' (where defined, else =0).
-      TAU=VINT(21)
-      YST=VINT(22)
-      CTH=0D0
-      IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
-      TAUP=0D0
-      IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
- 
-C...Calculate x_1, x_2, x_F.
-      IF(ISTSB.LE.2.OR.ISTSB.GE.5) THEN
-        X1=SQRT(TAU)*EXP(YST)
-        X2=SQRT(TAU)*EXP(-YST)
-      ELSE
-        X1=SQRT(TAUP)*EXP(YST)
-        X2=SQRT(TAUP)*EXP(-YST)
-      ENDIF
-      XF=X1-X2
- 
-C...Calculate shat, that, uhat, p_T^2.
-      SHAT=TAU*VINT(2)
-      SQM3=VINT(63)
-      SQM4=VINT(64)
-      RM3=SQM3/SHAT
-      RM4=SQM4/SHAT
-      BE34=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4))
-      RPTS=4D0*VINT(71)**2/SHAT
-      BE34L=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4-RPTS))
-      RM34=2D0*RM3*RM4
-      RSQM=1D0+RM34
-      RTHM=(4D0*RM3*RM4+RPTS)/(1D0-RM3-RM4+BE34L)
-      THAT=-(0.5D0*SHAT*MAX(RTHM,1D0-RM3-RM4-BE34*CTH))
-      UHAT=-(0.5D0*SHAT*MAX(RTHM,1D0-RM3-RM4+BE34*CTH))
-      PT2=MAX(VINT(71)**2,0.25D0*SHAT*BE34**2*(1D0-CTH**2))
- 
-C...Decisions by user to be put here.
- 
-C...Stop program if this routine is ever called.
-C...You should not copy these lines to your own routine.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link your PYKCUT routine ',
-     &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/pytaud.F b/Generators/Pythia_i/src/PythiaDummies/pytaud.F
deleted file mode 100644
index 6d4af33b27805f158f5c2a9417819617ce7d5165..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/pytaud.F
+++ /dev/null
@@ -1,46 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYTAUD
-C...Dummy routine, to be replaced by user, to handle the decay of a
-C...polarized tau lepton.
-C...Input:
-C...ITAU is the position where the decaying tau is stored in /PYJETS/.
-C...IORIG is the position where the mother of the tau is stored;
-C...     is 0 when the mother is not stored.
-C...KFORIG is the flavour of the mother of the tau;
-C...     is 0 when the mother is not known.
-C...Note that IORIG=0 does not necessarily imply KFORIG=0;
-C...     e.g. in B hadron semileptonic decays the W  propagator
-C...     is not explicitly stored but the W code is still unambiguous.
-C...Output:
-C...NDECAY is the number of decay products in the current tau decay.
-C...These decay products should be added to the /PYJETS/ common block,
-C...in positions N+1 through N+NDECAY. For each product I you must
-C...give the flavour codes K(I,2) and the five-momenta P(I,1), P(I,2),
-C...P(I,3), P(I,4) and P(I,5). The rest will be stored automatically.
- 
-      SUBROUTINE PYTAUD(ITAU,IORIG,KFORIG,NDECAY)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYJETS/,/PYDAT1/
- 
-C...Stop program if this routine is ever called.
-C...You should not copy these lines to your own routine.
-      NDECAY=ITAU+IORIG+KFORIG
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link your PYTAUD routine ',
-     &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/pytime.F b/Generators/Pythia_i/src/PythiaDummies/pytime.F
deleted file mode 100644
index 098103092ad6412950602bcab9084da30feea5b1..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/pytime.F
+++ /dev/null
@@ -1,76 +0,0 @@
- 
-C*********************************************************************
- 
-C...PYTIME
-C...Finds current date and time.
-C...Since this task is not standardized in Fortran 77, the routine
-C...is dummy, to be replaced by the user. Examples are given for
-C...the Fortran 90 routine and DEC Fortran 77, and what to do if
-C...you do not have access to suitable routines.
- 
-      SUBROUTINE PYTIME(IDATI)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C      CHARACTER*8 ATIME
-C...Local array.
-      INTEGER IDATI(6),IDTEMP(3)
- 
-C...Example 0: if you do not have suitable routines.
-      DO 100 J=1,6
-      IDATI(J)=0
-  100 CONTINUE
- 
-C...Example 1: Fortran 90 routine.
-C      INTEGER IVAL(8)
-C      CALL DATE_AND_TIME(VALUES=IVAL)
-C      IDATI(1)=IVAL(1)
-C      IDATI(2)=IVAL(2)
-C      IDATI(3)=IVAL(3)
-C      IDATI(4)=IVAL(5)
-C      IDATI(5)=IVAL(6)
-C      IDATI(6)=IVAL(7)
- 
-C...Example 2: DEC Fortran 77. AIX.
-C      CALL IDATE(IMON,IDAY,IYEAR)
-C      IDATI(1)=IYEAR
-C      IDATI(2)=IMON
-C      IDATI(3)=IDAY
-C      CALL ITIME(IHOUR,IMIN,ISEC)
-C      IDATI(4)=IHOUR
-C      IDATI(5)=IMIN
-C      IDATI(6)=ISEC
- 
-C...Example 3: DEC Fortran, IRIX, IRIX64.
-C      CALL IDATE(IMON,IDAY,IYEAR)
-C      IDATI(1)=IYEAR
-C      IDATI(2)=IMON
-C      IDATI(3)=IDAY
-C      CALL TIME(ATIME)
-C      IHOUR=0
-C      IMIN=0
-C      ISEC=0
-C      READ(ATIME(1:2),'(I2)') IHOUR
-C      READ(ATIME(4:5),'(I2)') IMIN
-C      READ(ATIME(7:8),'(I2)') ISEC
-C      IDATI(4)=IHOUR
-C      IDATI(5)=IMIN
-C      IDATI(6)=ISEC
- 
-C...Example 4: GNU LINUX libU77, SunOS.
-      CALL IDATE(IDTEMP)
-      IDATI(1)=IDTEMP(3)
-      IDATI(2)=IDTEMP(2)
-      IDATI(3)=IDTEMP(1)
-      CALL ITIME(IDTEMP)
-      IDATI(4)=IDTEMP(1)
-      IDATI(5)=IDTEMP(2)
-      IDATI(6)=IDTEMP(3)
- 
-C...Common code to ensure right century.
-      IDATI(1)=2000+MOD(IDATI(1),100)
- 
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/ssmssm.F b/Generators/Pythia_i/src/PythiaDummies/ssmssm.F
deleted file mode 100644
index 9c04878feb7f8fc821f218dd0f736a1ca4462166..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/ssmssm.F
+++ /dev/null
@@ -1,29 +0,0 @@
- 
-C*********************************************************************
- 
-C...SSMSSM
-C...Dummy function, to be removed when ISAJET (ISASUSY) is to be linked.
-
-      SUBROUTINE SSMSSM(RDUM1,RDUM2,RDUM3,RDUM4,RDUM5,RDUM6,RDUM7,
-     &RDUM8,RDUM9,RDUM10,RDUM11,RDUM12,RDUM13,RDUM14,RDUM15,RDUM16,
-     &RDUM17,RDUM18,RDUM19,RDUM20,RDUM21,RDUM22,RDUM23,RDUM24,RDUM25,
-     &IDUM1,IDUM2)
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      REAL RDUM1,RDUM2,RDUM3,RDUM4,RDUM5,RDUM6,RDUM7,RDUM8,RDUM9,
-     &RDUM10,RDUM11,RDUM12,RDUM13,RDUM14,RDUM15,RDUM16,RDUM17,RDUM18,
-     &RDUM19,RDUM20,RDUM21,RDUM22,RDUM23,RDUM24,RDUM25
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link ISAJET correctly.'/
-     &1X,'Dummy routine SSMSSM in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/sugra.F b/Generators/Pythia_i/src/PythiaDummies/sugra.F
deleted file mode 100644
index b32a4414a8669b2bfeaac7e949c0bc25db0d9127..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/sugra.F
+++ /dev/null
@@ -1,26 +0,0 @@
- 
-C*********************************************************************
- 
-C...SUGRA
-C...Dummy routine, to be removed when ISAJET (ISASUSY) is to be linked.
- 
-      SUBROUTINE SUGRA(MZERO,MHLF,AZERO,TANB,SGNMU,MTOP,IMODL)
-       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      REAL MZERO,MHLF,AZERO,TANB,SGNMU,MTOP
-      INTEGER IMODL
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link ISAJET correctly.'/
-     &1X,'Dummy routine SUGRA in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/upveto.F b/Generators/Pythia_i/src/PythiaDummies/upveto.F
deleted file mode 100644
index 22563542f03ada356185845332ea16c4b744a395..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/upveto.F
+++ /dev/null
@@ -1,46 +0,0 @@
-
-C*********************************************************************
- 
-C...UPVETO
-C...Dummy routine, to be replaced by user, to veto event generation 
-C...on the parton level, after parton showers but before multiple 
-C...interactions, beam remnants and hadronization is added.
-C...If resonances like W, Z, top, Higgs and SUSY particles are handed 
-C...undecayed from UPEVNT, or are generated by PYTHIA, they will also 
-C...be undecayed at this stage; if decayed their decay products will 
-C...have been allowed to shower. 
-
-C...All partons at the end of the shower phase are stored in the 
-C...HEPEVT commonblock. The interesting information is 
-C...NHEP = the number of such partons, in entries 1 <= i <= NHEP,
-C...IDHEP(I) = the particle ID code according to PDG conventions,
-C...PHEP(J,I) = the (p_x, p_y, p_z, E, m) of the particle.
-C...All ISTHEP entries are 1, while the rest is zeroed.
-
-C...The user decision is to be conveyed by the IVETO value.
-C...IVETO = 0 : retain current event and generate in full;
-C...      = 1 : abort generation of current event and move to next.
- 
-      SUBROUTINE UPVETO(IVETO)
-
-C...HEPEVT
-C      INCLUDE 'hepevt.inc'
-
-C...Next few lines allow you to see what info PYVETO extracted from 
-C...the full event record for the first two events. 
-C...Delete if you don't want it. 
-      INTEGER NLIST/0/
-      SAVE NLIST
-      IF(NLIST.LE.2) THEN
-        WRITE(*,*) ' Full event record at time of UPVETO call:'
-        CALL PYLIST(1)
-        WRITE(*,*) ' Part of event record made available to UPVETO:'
-        CALL PYLIST(5)
-        NLIST=NLIST+1
-      ENDIF
-
-C...Make decision here.
-      IVETO = 0
-
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaDummies/visaje.F b/Generators/Pythia_i/src/PythiaDummies/visaje.F
deleted file mode 100644
index 0bc7a3e4049262111072c4729a845b17631b8407..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaDummies/visaje.F
+++ /dev/null
@@ -1,29 +0,0 @@
- 
-C*********************************************************************
- 
-C...VISAJE
-C...Dummy function, to be removed when ISAJET (ISASUSY) is to be linked.
- 
-      FUNCTION VISAJE()
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-      CHARACTER*40 VISAJE
- 
-C...Commonblocks.
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      SAVE /PYDAT1/
- 
-C...Assign default value.
-      VISAJE='Undefined'
- 
-C...Stop program if this routine is ever called.
-      WRITE(MSTU(11),5000)
-      IF(PYR(0).LT.10D0) STOP
- 
-C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link ISAJET correctly.'/
-     &1X,'Dummy function VISAJE in PYTHIA file called instead.'/
-     &1X,'Execution stopped!')
- 
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaModified/pyrhad.F b/Generators/Pythia_i/src/PythiaModified/pyrhad.F
deleted file mode 100644
index e322ddfef95f922c123cfc07f9c497cf6f8260cd..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaModified/pyrhad.F
+++ /dev/null
@@ -1,1699 +0,0 @@
-C*********************************************************************
- 
-C...PYGGPRO
-C Sets the PROBGG parameter in the fragmentation
-
-C...  Double precision and integer declarations.
-      SUBROUTINE PYGGPRO(PROB)
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-
-
-      PROBGG=PROB
-
-      write(*,*) 'Gluino ball formation probability has been set to '
-     &     ,PROBGG
-
-      RETURN
-      END
-
-
- 
-C*********************************************************************
- 
-C...PYGLFR
-C...Fragments the string near to a gluino, to form a gluino-hadron, 
-C...either by producing a new g-g pair or two new q-qbar ones.
-
-      SUBROUTINE PYGLFRRE(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYDAT4/CHAF(500,2)
-      CHARACTER CHAF*16
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-      CHARACTER*16 CHRHAD
-
-
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.7D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-c      write(*,*) 'In PYGLFRRE'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-         ENDIF
-C JK 
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-         PMGB=P(IGL,5)+0.7
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+993
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            IF(KFSVMX.eq.KFSVMN.and.KFSVMX.gt.1) then
-               KFSVMN=1
-               KFSVMX=1
-            endif
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+3
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+2,
-     &           -KFSAV(1))
-            if(iabs(K(N+1,2)).ne.1093212) goto 90
-         ENDIF
-
-        CALL PYNAME(K(N+1,2),CHRHAD)
-        print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-c        print*, 'RMA KC = ',PYCOMP(K(N+1,2))
-c        print*, 'RMA CHAF = ',CHAF(PYCOMP(K(N+1,2)),1),', '
-c     &       ,CHAF(PYCOMP(K(N+1,2)),1)
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-
-      CALL PYEXEC
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
-      
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
-
-C*********************************************************************
-
-
- 
-C...PYGLDC
-C...Decays the gluino inside a gluino-hadron.
- 
-      SUBROUTINE PYGLDC
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-
-C...Optional offset of constituent quark/diquark mass,
-C...representing gluon cloud around gluino not part of the decay.
-      PMOFF = 0.2D0
-
-C...The probability that it has spin 1.
-C...(Except for identical flavours, where spin 1 is only possibility.)
-C...(Recall that all R-baryon codes were given as if spin 1, sloppily.)
-      PROBS1=0.5D0
-
-C...Loop through to find R-hadrons.
-      DO 150 I=1,N
-C...If only one of the R-hadrons should decay inside the detector, 
-C...you could here pick at random whether to allow the one with 
-C...K(I,1) = 6 or the one with =7. (Where the random choice of course
-C...could depend on the position of an imagined displaced vertex.)
-        IF(K(I,1).EQ.6.OR.K(I,1).EQ.7) THEN
-
-C...Begin resolve R-hadron flavour content to q + qbar or q + qq.
-          KFRH=(IABS(K(I,2))-KSUSY1)/10
-C...Gluino - g : split g to u ubar or d dbar.
-          IF(KFRH.LT.100) THEN
-            KF1=1+INT(0.5D0+PYR(0))             
-            KF2=-KF1
-          ELSEIF(KFRH.LT.1000) THEN
-C...Gluino-meson: split to q + qbar.
-            KFRH=KFRH-900
-            KF1=KFRH/10
-            KF2=-MOD(KFRH,10)
-            IF(MOD(KF1,2).EQ.1) THEN
-              KF1=MOD(KFRH,10)
-              KF2=-(KFRH/10)
-            ENDIF
-c...Gluino-baryon: split to q + qq (diquark). Pick diquark at random.
-          ELSE 
-            KFRH=KFRH-9000
-            KFA=KFRH/100
-            KFB=MOD(KFRH/10,10) 
-            KFC=MOD(KFRH,10)
-            RDIQ=3D0*PYR(0)
-            IF(RDIQ.LT.1D0) THEN
-              KF1=KFA
-              KF2=1000*KFB+100*KFC+3
-              IF(KFB.NE.KFC.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ELSEIF(RDIQ.LT.2D0) THEN
-              KF1=KFB
-              KF2=1000*KFA+100*KFC+3
-              IF(KFA.NE.KFC.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ELSE
-              KF1=KFC
-              KF2=1000*KFA+100*KFB+3
-              IF(KFA.NE.KFB.AND.PROBS1.LT.PYR(0)) KF2=KF2-2
-            ENDIF
-          ENDIF
-C...Flip for anti-R-hadron. 
-          IF(K(I,2).LT.0) THEN
-            KFSV=KF1
-            KF1=-KF2
-            KF2=-KFSV
-          ENDIF 
-
-C...Subdivide R-hadron into gluino + 2 light (di)quarks in new slots. 
-          DO 120 I1=N+1,N+3
-            K(I1,1)=3
-            K(I1,3)=I
-            K(I1,4)=0
-            K(I1,5)=0
-            DO 110 J=1,5
-              V(I1,J)=0D0
-  110       CONTINUE
-  120     CONTINUE 
-
-C...Store new flavours.
-          K(N+1,2)=KSUSY1+21
-          K(N+2,2)=KF1
-          K(N+3,2)=KF2
-
-C...Set up colour flow.
-          K(N+1,4)=MSTU(5)*(N+3) 
-          K(N+1,5)=MSTU(5)*(N+2) 
-          K(N+2,4)=MSTU(5)*(N+1) 
-          K(N+3,5)=MSTU(5)*(N+1)
-
-C...Define effective quark/diquark masses.
-          MSTJ(93)=1 
-          PM1=PYMASS(KF1)+PMOFF         
-          MSTJ(93)=1 
-          PM2=PYMASS(KF2)+PMOFF         
-         
-C...Share gluino"hadron" momentum with two light quarks.
-          FAC1=PM1/P(I,5)
-          FAC2=PM2/P(I,5)
-          DO 130 J=1,5
-            P(N+1,J)=(1D0-FAC1-FAC2)*P(I,J)
-            P(N+2,J)=FAC1*P(I,J)
-            P(N+3,J)=FAC2*P(I,J)
-  130     CONTINUE
-
-C...If you want a displaced vertex, you could also write that info
-C...into the V array, but you have to calculate that vertex yourself.
-
-C...Mark R-hadron decayed and update number counter.
-          K(I,1)=K(I,1)+10
-          K(I,4)=N+1
-          K(I,5)=N+3
-          N=N+3
-
-C...Let gluino decay now.
-          CALL PYRESD(N-2)
-
-C...End of loop over two R-hadrons.
-        ENDIF
- 150  CONTINUE
-
-C...And then the decay products can fragment, etc.
-      CALL PYEXEC
-
-    
-      RETURN
-      END       
-
-
-CCCCCCCCCCCC
-
-C*********************************************************************
- 
-C...PYGLFR
-C... Gluino fragmentation for Regge model
- 
-      SUBROUTINE PYGLFR(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-      CHARACTER*16 CHRHAD
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.7D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-      write(*,*) 'In PYGLFR'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-         ENDIF
-C JK 
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-         PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+993
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+3
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+4,
-     &           -KFSAV(1))
-         ENDIF
-        CALL PYNAME(K(N+1,2),CHRHAD)
-        print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-
-
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-
-      CALL PYEXEC
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
-      
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
-
-cccccccccccc
-
-C*********************************************************************
- 
-C...PYGLFRIN
-C... Gluino fragmentation for Regge model
- 
-      SUBROUTINE PYGLFRIN(IERR)
-
-C...  Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...  Parameter statement to help give large particle numbers
-C...  (left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...  Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...  Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &     /PYINT2/
-C...  Local array.
-      DIMENSION PSUM(5),KFSAV(2),PMSAV(2),PSAV(2,5)
-
-      INTEGER IKFRH(20),IKCHGRH(20),IKANTRH(20)
-      integer ihad1,ihad2
-      REAL*8 PROBGG
-      COMMON/RHADB/IKFRH,IKCHGRH,IKANTRH,PROBGG
-      CHARACTER*16 CHRHAD
-
-C...  Free parameter: relative probability for gluino-gluon-ball.
-C...  (But occasional low-mass string will never become it anyway.)
-c     Rasmus: Moved to rhadb common block to make configurable
-c      PROBGG=0.1D0
-
-C...  Free parameter: gluon constituent mass.
-      PMGLU=0.33D0
-
-C...  Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
-
-C...  Switch off popcorn baryon production. (Not imperative, but more
-C...  failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...  Convenient shorthand.
-      KFGL=KSUSY1+21
-
-C***  Reset error code.
-      IERR=0
-
-      write(*,*) 'In PYGLFRIN'
-
-C...  Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
- 90   LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C***  Begin new code for testing.
-C...  Find if gluino put first or last in closed loop.
- 400  IBEGCL=0
-      IENDCL=0
-      IF(K(1,2).EQ.KFGL.AND.K(1,1).LE.2) IBEGCL=1
-      DO 410 I=2,N
-         IF(K(I,2).EQ.KFGL) THEN
-            IF(K(I-1,1).NE.2.AND.K(I,1).LE.2) IBEGCL=I
-            IF(K(I,1).EQ.1) IENDCL=I
-         ENDIF
- 410  CONTINUE
-      IF(IBEGCL.GT.0) IENDCL=0
-
-C...  Range of system beginning or ending with gluino.
-      IF(IBEGCL.NE.0) THEN
-         IBEG=IBEGCL
-         IEND=IBEG
- 420     IEND=IEND+1
-         IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 420
-         IF(IEND.GT.N) IEND=N
-      ELSEIF(IENDCL.NE.0) THEN
-         IEND=IENDCL
-         IBEG=IEND
- 430     IBEG=IBEG-1
-C JK REMOVING COMPILER WARNING
-         IF(IBEG.GE.2.AND.K(IBEG-1,1).EQ.2) THEN
- 431        IEND=IEND+1
-            IF(IEND.LT.N.AND.K(IEND,1).EQ.2) GOTO 431
-            IF(IEND.GT.N) IEND=N
-C JK 
-         ENDIF
-      ENDIF
-
-C...  Count number of gluinos in system. Error return if only gluinos.
-      IF(IBEGCL.NE.0.OR.IENDCL.NE.0) THEN
-         WRITE(*,*) ' Gluino found in closed string; ',
-     &        ' special processing begun '
-         NGLSYS=0
-         DO 435 I=IBEG,IEND
-            IF(K(I,2).EQ.KFGL) NGLSYS=NGLSYS+1
- 435     CONTINUE
-         IF(NGLSYS.EQ.IEND-IBEG+1) THEN
-            IERR=1
-            MSTJ(12)=MSTJ12
-            WRITE(*,*) ' Fail to fragment closed string of gluinos only'
-            RETURN
-         ENDIF
-
-C...  Decide to split system at random gluon.
- 440     ISPLIT=IBEG+INT(PYR(0)*(IEND+1-IBEG))
-         IF(ISPLIT.GT.IEND.OR.K(ISPLIT,2).EQ.KFGL) GOTO 440
-
-C...  Copy system from ISPLIT to end, beginning with a d or u quark.
-         KFSPL=INT(1.5D0+PYR(0))
-         DO 470 I=ISPLIT,IEND
-            N=N+1
-            DO 450 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 450        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,2)=KFSPL
-               DO 460 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 460           CONTINUE
-            ENDIF
- 470     CONTINUE
-
-C...  Copy system from beginning to ISPLIT, ending with a dbar or ubar quark.
-         DO 500 I=IBEG,ISPLIT
-            N=N+1
-            DO 480 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 480        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,1)=2
-            K(N,3)=I
-            IF(I.EQ.ISPLIT) THEN
-               K(N,1)=1
-               K(N,2)=-KFSPL
-               DO 490 J=1,5
-                  P(N,J)=0.5D0*P(N,J)
- 490           CONTINUE
-            ENDIF
- 500     CONTINUE
-
-C...  Loop back in case both gluinos need to be addressed this way.
-         GOTO 400
-      ENDIF
-C***  End new code for testing.
-
-C...  Take copy of string system(s), leaving extra free slot after gluino.
-C...  (Eventually to be overwritten by one q and one qbar string break.)
-      NOLD=N
-      NGLUI=0
-      DO 120 I=1,NOLD
-         ICOPY=0
-         IF(K(I,1).EQ.2) ICOPY=1
-         IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-            IF(K(I-1,1).EQ.12) ICOPY=1
-         ENDIF
-         IF(ICOPY.EQ.1) THEN
-            N=N+1
-            DO 100 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 100        CONTINUE
-            K(I,1)=K(I,1)+10
-            K(I,4)=N
-            K(I,5)=N
-            K(N,3)=I
-            IF(K(I,2).EQ.KFGL) THEN
-               NGLUI=NGLUI+1
-               N=N+1
-               DO 110 J=1,5
-                  K(N,J)=K(N-1,J)
-                  P(N,J)=0D0
-                  V(N,J)=V(I,J)
- 110           CONTINUE
-               K(I,5)=N
-               K(N,2)=21
-            ENDIF
-         ENDIF
- 120  CONTINUE
-
-C...  Loop over (up to) two gluinos per event.
-      DO 300 IGLUI=1,NGLUI
-
-C...  Identify position of gluino (randomize order of treatment).
-         IGL=0
-         NGL=0
-         DO 130 I=1,N
-            IF(K(I,1).EQ.2.AND.K(I,2).EQ.KFGL) THEN
-               NGL=NGL+1
-               IF(IGLUI.EQ.NGLUI) THEN
-                  IGL=I
-               ELSEIF(NGL.EQ.1) THEN
-                  IF(PYR(0).LT.0.5D0) IGL=I
-               ELSEIF(IGL.EQ.0) THEN
-                  IGL=I
-               ENDIF
-            ENDIF
- 130     CONTINUE
-
-C...  Identify range of partons on string the gluino belongs to.
-         IMIN=IGL
- 140     IMIN=IMIN-1
-         IF(K(IMIN-1,1).EQ.2) GOTO 140
-         IMAX=IGL
- 150     IMAX=IMAX+1
-         IF(K(IMAX,1).EQ.2) GOTO 150
-
-C...  Find mass of this gluino-string.
-         DO 170 J=1,5
-            PSUM(J)=0D0
-            DO 160 I=IMIN,IMAX
-               PSUM(J)=PSUM(J)+P(I,J)
- 160        CONTINUE
- 170     CONTINUE
-         PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &        PSUM(3)**2))
-
-C...  If low-mass, then consider gluino-hadron already formed.
-         IF(PSUM(5).LE.P(IGL,5)+P(IMIN,5)+P(IMAX,5)+PMKIN) THEN
-            DO 180 I=IMIN,IMAX
-               K(I,1)=15+IGLUI
- 180        CONTINUE
-            GOTO 300
-         ENDIF
-
-C...  Else break string by production of new gg or two new qqbar pairs.
-C...  (Also diquarks allowed, but not popcorn, and not two adjacent.)
-         IF(PYR(0).LT.PROBGG) THEN
-C...  Let a gluon occupy two slots, to make administration work the same
-C...  way as for the qqbar case.
-            KFSAV(1)=21
-            KFSAV(2)=21
-            PMSAV(1)=0.5D0*PMGLU
-            PMSAV(2)=0.5D0*PMGLU
-         ELSE
- 185        CALL PYDCYK(K(IMIN,2),0,KFSAV(1),KFDUM)
-            CALL PYDCYK(K(IMAX,2),0,KFSAV(2),KFDUM)
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(KFSAV(2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(1)).GT.10.AND.IABS(K(IGL-1,2)).GT.10) GOTO 185
-            IF(IABS(KFSAV(2)).GT.10.AND.IABS(K(IGL+2,2)).GT.10) GOTO 185
-            KFSAV(1)=ISIGN(MOD(IABS(KFSAV(1)),10000),KFSAV(1))
-            KFSAV(2)=ISIGN(MOD(IABS(KFSAV(2)),10000),KFSAV(2))
-            MSTJ(93)=1
-            PMSAV(1)=PYMASS(KFSAV(1))
-            MSTJ(93)=1
-            PMSAV(2)=PYMASS(KFSAV(2))
-         ENDIF
-
-C...  Mass of gluino-hadron.
-         PMGSAV=P(IGL,5)
-c         PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-         if(IABS(KFSAV(1)).lt.10.and.IABS(KFSAV(2)).lt.10) then
-            if(IABS(KFSAV(1)).ne.3.and.IABS(KFSAV(2)).ne.3) then
-               PMGB=P(IGL,5)+0.33
-            else
-               PMGB=P(IGL,5)+0.46
-            endif
-         else
-            PMGB=P(IGL,5)+PMSAV(1)+PMSAV(2)
-         endif
-
-C...  Pick at random order in which both sides of gluino string break.
-         ISIDE=INT(1.5D0+PYR(0))
-         DO 220 ISDE=1,2
-            IF(ISDE.EQ.1) IS=ISIDE
-            IF(ISDE.EQ.2) IS=3-ISIDE
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-            M11SAV=MSTJ(11)
-            PMBSAV=PARF(105)
-            MSTJ(11)=4
-            PARF(105)=PMGSAV
-            CALL PYZDIS(5,0,PMGB**2,ZGL)
-            MSTJ(11)=M11SAV
-            PARF(105)=PMBSAV
-            ZGL=MAX(0.9D0,MIN(0.9999D0,ZGL))
-            DO 190 J=1,5
-               PSAV(IS,J)=(1D0-ZGL)*P(IGL,J)
-               P(IGL,J)=ZGL*P(IGL,J)
- 190        CONTINUE
-
-C...  Target gluino-hadron mass for this stage of momentum reshuffling.
-            PMOLD=P(IGL,5)
-            IF(ISDE.EQ.1) PMNEW=PMGSAV+PMSAV(IS)
-            IF(ISDE.EQ.2) PMNEW=PMGB
-
-C...  Recoiling parton from which to shuffle momentum. System momentum.
-            IF(IS.EQ.1) IREC=IGL-1
-            IF(IS.EQ.2) IREC=IGL+2
- 200        DO 210 J=1,4
-               PSUM(J)=P(IGL,J)+P(IREC,J)
- 210        CONTINUE
-
-C...  Boost to rest frame of system, and align gluino along +z axis.
-            CALL PYROBO(IGL,IGL,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &           -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-            PHI=PYANGL(P(IGL,1),P(IGL,2))
-            CALL PYROBO(IGL,IGL,0D0,-PHI,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-            THETA=PYANGL(P(IGL,3),P(IGL,1))
-            CALL PYROBO(IGL,IGL,-THETA,0D0,0D0,0D0,0D0)
-            CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...  Calculate new kinematics in this frame, for desired gluino mass.
-            ETOT=P(IGL,4)+P(IREC,4)
-            IF(ETOT.GT.PMNEW+P(IREC,5)) THEN
-               IFAIL=0
-               PZNEW=0.5D0
-     &              *SQRT(MAX(0D0,(ETOT**2-PMNEW**2-P(IREC,5)**2)**2-
-     &              4D0*PMNEW**2*P(IREC,5)**2))/ETOT
-               P(IGL,3)=PZNEW
-               P(IGL,4)=SQRT(PZNEW**2+PMNEW**2)
-               P(IGL,5)=PMNEW
-               P(IREC,3)=-PZNEW
-               P(IREC,4)=SQRT(PZNEW**2+P(IREC,5)**2)
-
-C...  If not enough momentum, take what can be taken.
-            ELSE
-               IFAIL=1
-               PMOLD=ETOT-P(IREC,5)
-               P(IGL,3)=0D0
-               P(IGL,4)=PMOLD
-               P(IGL,5)=PMOLD
-               P(IREC,3)=0D0
-               P(IREC,4)=P(IREC,5)
-            ENDIF
-
-C...  Bost back to lab frame.
-            CALL PYROBO(IGL,IGL,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-            CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &           PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...  Loop back when not enough momentum could be shuffled.
-C...  (As long as there is something left on either side.)
-            IF(IFAIL.EQ.1) THEN
- 215           IF(IS.EQ.1.AND.IREC.GT.IMIN) THEN
-                  IREC=IREC-1
-                  GOTO 200
-               ELSEIF(IS.EQ.2.AND.IREC.LT.IMAX) THEN
-                  IREC=IREC+1
-                  GOTO 200
-               ELSEIF(ISDE.EQ.2.AND.IS.EQ.3-ISIDE) THEN
-                  IS=ISIDE
-                  IREC=IRECSV
-                  GOTO 215
-               ENDIF
-            ENDIF
-
-C...  End loop over fragmentation of two sides around gluino.
-            IRECSV=IREC
- 220     CONTINUE
-
-C...  New slot at end of record for gluino R-hadron.
-         DO 230 J=1,5
-            K(N+1,J)=0
-            P(N+1,J)=P(IGL,J)
-            V(N+1,J)=V(IGL,J)
- 230     CONTINUE
-
-C...  Status and code of this slot.
-         K(N+1,1)=15+IGLUI
-         KFSVMX=MAX(IABS(KFSAV(1)),IABS(KFSAV(2)))
-         KFSVMN=MIN(IABS(KFSAV(1)),IABS(KFSAV(2)))
-C...  Gluino-ball.
-         IF(KFSVMX.EQ.21) THEN
-            K(N+1,2)=KSUSY1+991
-C...  Gluino-meson.
-         ELSEIF(KFSVMX.LT.10) THEN
-            IF(KFSVMX.eq.KFSVMN.and.KFSVMX.gt.1) then
-               KFSVMN=1
-               KFSVMX=1
-            endif
-            K(N+1,2)=KSUSY1+9000+100*KFSVMX+10*KFSVMN+1
-            IF(KFSVMX.EQ.KFSVMN) THEN
-            ELSEIF(MOD(KFSVMX,2).EQ.0) THEN
-               IF(KFSVMX.EQ.KFSAV(1).OR.KFSVMX.EQ.KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ELSE
-               IF(KFSVMX.EQ.-KFSAV(1).OR.KFSVMX.EQ.-KFSAV(2))
-     &              K(N+1,2)=-K(N+1,2)
-            ENDIF
-C...  Gluino-baryon.
-         ELSE
-            KFSVX1=KFSVMX/1000
-            KFSVX2=MOD(KFSVMX/100,10)
-            KFA=MAX(KFSVX1,KFSVX2,KFSVMN)
-            KFC=MIN(KFSVX1,KFSVX2,KFSVMN)
-            KFSPIN=(MOD(KFSVMX,10)-1)/2
-            KFB=KFSVX1+KFSVX2+KFSVMN-KFA-KFC
- 235        continue
-            K(N+1,2)=SIGN(KSUSY1+90000+1000*KFA+100*KFB+10*KFC+2*KFSPIN
-     &           +2, -KFSAV(1))
-            if(KFA.eq.KFC.and.KFA.eq.KFB) goto 90
-            if(CHRHAD.eq.' '.and.KFA.eq.3) then
-               KFA=1
- 238           if(KFC.gt.KFA.or.KFB.gt.KFA.or.KFC.gt.KFB) then
-                  if(KFB.gt.KFA) then
-                     KFTMP=KFA
-                     KFA=KFB
-                     KFB=KFTMP
-                  endif
-                  if(KFC.gt.KFB) then
-                     KFTMP=KFB
-                     KFB=KFC
-                     KFC=KFTMP
-                  endif
-                  goto 238
-               endif
-               goto 235
-            endif
-            CALL PYNAME(K(N+1,2),CHRHAD)
-            if(CHRHAD(1:1).ne.'~') goto 90
-         ENDIF
-         CALL PYNAME(K(N+1,2),CHRHAD)
-         if(CHRHAD(1:1).ne.'~') goto 90
-         print*, 'R-hadron KF = ',K(N+1,2),' and name ',CHRHAD
-         P(N+1,5)=PYMASS(K(N+1,2))
-         P(N+1,4)=SQRT(
-     &        P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2+P(N+1,5)**2
-     &        )
-         
-         
-         K(N+1,3)=K(IGL,3)
-         N=N+1
-
-C...  Code and momentum of two new string endpoints.
-         K(IGL,2)=KFSAV(1)
-         K(IGL+1,2)=KFSAV(2)
-         IF(KFSAV(1).NE.21) K(IGL,1)=1
-         DO 240 J=1,5
-            P(IGL,J)=PSAV(1,J)
-            P(IGL+1,J)=PSAV(2,J)
- 240     CONTINUE
-
-C...  End of loop over two gluinos.
- 300  CONTINUE
-
-C...  Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-         IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-         ELSEIF(I.EQ.N+1) THEN
-            N=N+1
-         ELSE
-            N=N+1
-            DO 320 J=1,5
-               K(N,J)=K(I,J)
-               P(N,J)=P(I,J)
-               V(N,J)=V(I,J)
- 320        CONTINUE
-         ENDIF
- 330  CONTINUE
-
-C...  Finish off with standard hadronization.
-C...  Note that the R-hadrons are not affected here, since they
-C...  (deliberately erroneously) have been bookkept as decayed.
-
-      CALL PYEXEC
-
-C...  Restore code of gluino-hadrons to non-fragmented numbers.
-      N6=0
-      N7=0
-      DO 340 I=1,N
-        IF(K(I,1).EQ.16.OR.K(I,1).EQ.17) K(I,1)=K(I,1)-10
-C...      First R-hadron
-          IF(K(I,1).EQ.6) then 
-            ihad1=i
-c            WRITE(*,*) 'R-hadron 1 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-            N6=N6+1
-          ENDIF
-C...      Second R-hadron         
-          IF(K(I,1).EQ.7) then 
-            N7=N7+1
-            ihad2=i
-c            WRITE(*,*) 'R-hadron 2 chg:',PYCHGE(K(I,2))/3D0,K(I,2)
-          ENDIF
-
- 340  CONTINUE
-      IF(N6.GT.1.OR.N7.GT.1) MSTU(24)=1
-
-C...  Extracheck charge.
-
-      chgnew=pyp(0,6)
-
-      IF(ABS(CHGNEW-CHGSAV).GT.0.1D0) MSTU(24)=1
-c      WRITE(*,*) 'CHGNEW CHGSAV',CHGNEW,CHGSAV
-      
-C...  In case of trouble, make up to five attempts.
-      IF(MSTU(24).NE.0.AND.LOOP.LT.5) THEN
-         WRITE(*,*) '...give it new try...'
-         MSTU(23)=MSTU(23)-1
-         GOTO 90
-      ELSEIF(MSTU(24).NE.0) THEN
-         WRITE(*,*) '...but still fail after repeated attempts!'
-C***  Set error flag.
-         IERR=2
-      ELSEIF(MSTU(24).EQ.0.AND.LOOP.GT.1) THEN
-         WRITE(*,*) '...and now it worked!'
-      ENDIF
-
-C...  Finished. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-c      call pylist(2)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/PythiaModified/pysthad.F b/Generators/Pythia_i/src/PythiaModified/pysthad.F
deleted file mode 100644
index b32299a237ebaa4d2580db351b9bb824fe5953c1..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/PythiaModified/pysthad.F
+++ /dev/null
@@ -1,1294 +0,0 @@
-C*********************************************************************
-
-C...PYSTFR
-C...Fragments the string near to a stop, to form a stop-hadron, 
-C...by producing a new q-qbar pair.
- 
-      SUBROUTINE PYSTFR(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSTFR called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of stop mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+6
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two stops per event.
-C...Identify position of stop (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the stop belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this stop-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider stop-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for stop-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for stop-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+600-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-        
-
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of stop-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align stop along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired stop hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for stop-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+600-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &    (KFSAV/10)+MOD(KFSAV,10)
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &    (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          KFSTHD=-KFSTHD
-        ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for stop-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISTOP
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two stops.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with stop hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-
-C*********************************************************************
-
-C...PYSTFRRE
-C...Fragments the string near to a stop, to form a stop-hadron, 
-C...by producing a new q-qbar pair.
-C...Regge scheme applied 
-      SUBROUTINE PYSTFRRE(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSTFRRE called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of stop mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+6
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two stops per event.
-C...Identify position of stop (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the stop belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this stop-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider stop-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for stop-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for stop-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           if(KFSAV.eq.3.or.KFSAV.eq.5) then
-              KFSAV=1
-           endif
-           if(KFSAV.eq.4) then
-              KFSAV=2
-           endif
-           if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-              KFSAV=-1
-           endif
-           if(KFSAV.eq.-4) then
-              KFSAV=-2
-           endif
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+600-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+6000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+6000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-
-        if(KFSAV.eq.3.or.KFSAV.eq.5) then
-           KFSAV=1
-        endif
-        if(KFSAV.eq.4) then
-           KFSAV=2
-        endif
-        if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-           KFSAV=-1
-        endif
-        if(KFSAV.eq.-4) then
-           KFSAV=-2
-        endif
-
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of stop-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align stop along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired stop hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for stop-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+600-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) then
-             if (KFSAV/100.ne.21) goto 90
-             KFSAV=2101
-             KFSTHD=KSUSY1+6000+
-     &            (KFSAV/10)+MOD(KFSAV,10)
-          endif
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+600+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) then
-             if (-KFSAV/100.ne.21) goto 90
-             KFSAV=-2101
-             KFSTHD=KSUSY1+6000+
-     &            (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          endif
-          KFSTHD=-KFSTHD
-        ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for stop-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISTOP
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two stops.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with stop hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-C*********************************************************************
-
-C...PYSBFRRE
-C...Fragments the string near to a sbottom, to form a sbottom-hadron, 
-C...by producing a new q-qbar pair.
-C...Regge scheme applied 
-      SUBROUTINE PYSBFRRE(IERR)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-C      INTEGER PYK,PYCHGE,PYCOMP
-      INTEGER PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-C...Local array.
-C      DIMENSION PSUM(5),PSAV(5),IJOIN(2),IPOSST(10) 
-       DIMENSION PSUM(5),PSAV(5),IPOSST(10) 
-
-c      print*, "PYSBFR called"
-
-C...Default is no error.
-      IERR=0
- 
-C...Free parameter: max kinetic energy in gluino-hadron.
-      PMKIN=0.5D0
- 
-C...Free parameter: part of sbottom mass that does not participate
-C...in weak decay.
-      PMINAC=0.5D0
-
-C...Switch off popcorn baryon production. (Not imperative, but more
-C...failed events when popcorn is allowed.)
-      MSTJ12=MSTJ(12)
-      MSTJ(12)=1
-
-C...Convenient shorthand.
-      KFST=KSUSY1+6
-      KCST=PYCOMP(KFST)
-      KFGL=KSUSY1+21
-
-C...Loopback point for serious problems, with new try.
-      LOOP=0
-      CALL PYEDIT(21)
-      CHGSAV=PYP(0,6)
-   90 LOOP=LOOP+1
-      IF(LOOP.GT.1) CALL PYEDIT(22)
-
-C...Give up when too much problems.
-      IF(LOOP.GT.5) THEN
-        WRITE(*,*) ' Problematical event skipped'
-        IERR=1
-        RETURN
-      ENDIF
-
-C...Take copy of string system(s).
-      NOLD=N
-      NSTOP=0
-      DO 120 I=1,NOLD
-        ICOPY=0
-        IF(K(I,1).EQ.2) ICOPY=1
-        IF(K(I,1).EQ.1.AND.I.GE.2) THEN
-          IF(K(I-1,1).EQ.12) ICOPY=1
-        ENDIF
-        IF(ICOPY.EQ.1) THEN  
-          N=N+1
-          DO 100 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  100     CONTINUE
-          K(I,1)=K(I,1)+10
-          K(I,4)=N
-          K(I,5)=N
-          K(N,3)=I
-          IF(IABS(K(I,2)).EQ.KFST) THEN
-            NSTOP=NSTOP+1
-            IPOSST(NSTOP)=N
-          ENDIF   
-        ENDIF
-  120 CONTINUE
-      NTMP=N
-
-C...Loop over (up to) two sbottoms per event.
-C...Identify position of sbottom (randomize order of treatment).
-      IRNST=INT(1.5D0+PYR(0))
-      DO 300 ISTOP=1,NSTOP
-        IST=IPOSST(1)
-        IF(NSTOP.EQ.2.AND.ISTOP.NE.IRNST) IST=IPOSST(2)
-
-C...Identify range of partons on string the sbottom belongs to. 
-        IMIN=IST+1
-  140   IMIN=IMIN-1
-        IF(K(IMIN-1,1).EQ.2) GOTO 140
-        IMAX=IST-1
-  150   IMAX=IMAX+1
-        IF(K(IMAX,1).EQ.2) GOTO 150
-        IOTHER=IMAX
-        IF(IST.EQ.IMAX) IOTHER=IMIN  
- 
-C...Find mass of this sbottom-string. 
-        DO 170 J=1,5
-          PSUM(J)=0D0
-          DO 160 I=IMIN,IMAX
-            PSUM(J)=PSUM(J)+P(I,J)
-  160     CONTINUE
-  170   CONTINUE
-        PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &  PSUM(3)**2))
- 
-C...  If low-mass, then consider sbottom-hadron already formed.
-        IF(PSUM(5).LE.P(IST,5)+P(IOTHER,5)+PMKIN) THEN
-           
-C...  New slot at end of record for sbottom-hadron
-           N=N+1
-           DO 175 J=1,5
-              K(N,J)=0
-              P(N,J)=PSUM(J)
-              V(N,J)=V(IST,J)
- 175       CONTINUE
-           K(N,1)=5+ISTOP
-           K(N,3)=IST
-           
-C...  Particle code for sbottom-hadron in low-mass system.
-           KFSTHD=0
-           KFSAV=K(IOTHER,2)
-           if(KFSAV.eq.3.or.KFSAV.eq.5) then
-              KFSAV=1
-           endif
-           if(KFSAV.eq.4) then
-              KFSAV=2
-           endif
-           if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-              KFSAV=-1
-           endif
-           if(KFSAV.eq.-4) then
-              KFSAV=-2
-           endif
-           IF(K(IST,2).GT.0) THEN
-              IF(KFSAV.LE.-1.AND.KFSAV.GE.-5)
-     &             KFSTHD=KSUSY1+500-10*KFSAV+2
-              IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) KFSTHD=KSUSY1+5000+
-     &             (KFSAV/10)+MOD(KFSAV,10)
-           ELSE
-              IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+500+10*KFSAV+2
-              IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) KFSTHD=KSUSY1+5000+
-     &             (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-              KFSTHD=-KFSTHD
-           ENDIF
-           IF(KFSTHD.EQ.0) THEN
-              WRITE(*,*) ' Failed to find R-hadron code from ',
-     &             K(IST,2),KFSAV
-              IERR=1
-              RETURN
-           ENDIF
-           K(N,2)=KFSTHD
-           
-C...  Mark original partons decayed. Done for low-mass system.
-           DO 180 I=IMIN,IMAX
-              K(I,1)=K(I,1)+10
-              K(I,4)=N
-              K(I,5)=N
- 180       CONTINUE
-           GOTO 300
-        ENDIF
-        
-
-
-C...Else break string by production of new qqbar pair.
-C...(Also diquarks allowed, but not popcorn.)
-        INFLAV=ISIGN(4,K(IST,2))
-        CALL PYDCYK(INFLAV,0,KFSAV,KFDUM)
-        KFSAV=ISIGN(MOD(IABS(KFSAV),10000),KFSAV)
-
-        if(KFSAV.eq.3.or.KFSAV.eq.5) then
-           KFSAV=1
-        endif
-        if(KFSAV.eq.4) then
-           KFSAV=2
-        endif
-        if(KFSAV.eq.-3.or.KFSAV.eq.-5) then
-           KFSAV=-1
-        endif
-        if(KFSAV.eq.-4) then
-           KFSAV=-2
-        endif
-
-        MSTJ(93)=1 
-        PMSAV=PYMASS(KFSAV)         
-
-C...Mass of sbottom-hadron.
-        PMSSAV=P(IST,5)
-        PMSHAD=P(IST,5)+PMSAV
-
-C...Pick momentum sharing according to fragmentation function as if bottom.
-        PMBSAV=PARF(105)
-        PARF(105)=PMSSAV
-        CALL PYZDIS(5,0,PMSHAD**2,ZST)
-        PARF(105)=PMBSAV 
-        ZST=MAX(0.9D0,MIN(0.9999D0,ZST)) 
-        DO 190 J=1,5
-          PSAV(J)=(1D0-ZST)*P(IST,J)
-          P(IST,J)=ZST*P(IST,J)
-  190  CONTINUE
-
-C...Recoiling parton from which to shuffle momentum. System momentum.
-        IF(IST.EQ.IMIN) IREC=IST+1
-        IF(IST.EQ.IMAX) IREC=IST-1
-  200   DO 210 J=1,4
-          PSUM(J)=P(IST,J)+P(IREC,J)
-  210   CONTINUE           
-
-C...Boost to rest frame of system, and align sbottom along +z axis.
-        CALL PYROBO(IST,IST,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        CALL PYROBO(IREC,IREC,0D0,0D0,-(PSUM(1)/PSUM(4)),
-     &  -(PSUM(2)/PSUM(4)),-(PSUM(3)/PSUM(4)))
-        PHI=PYANGL(P(IST,1),P(IST,2))
-        CALL PYROBO(IST,IST,0D0,-PHI,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,0D0,-PHI,0D0,0D0,0D0)
-        THETA=PYANGL(P(IST,3),P(IST,1)) 
-        CALL PYROBO(IST,IST,-THETA,0D0,0D0,0D0,0D0)
-        CALL PYROBO(IREC,IREC,-THETA,0D0,0D0,0D0,0D0)
-
-C...Calculate new kinematics in this frame, for desired sbottom hadron mass.
-        ETOT=P(IST,4)+P(IREC,4)
-        PMREC=P(IREC,5)
-        IF(K(IREC,2).NE.21.AND.IABS(K(IREC,2)).NE.KFST) THEN
-          MSTJ(93)=1 
-          PMREC=PYMASS(K(IREC,2))         
-        ENDIF 
-        IF(ETOT.GT.PMSHAD+PMREC) THEN
-          IFAIL=0
-          PZNEW=0.5D0*SQRT(MAX(0D0,(ETOT**2-PMSHAD**2-PMREC**2)**2-
-     &    4D0*PMSHAD**2*PMREC**2))/ETOT
-          P(IST,3)=PZNEW
-          P(IST,4)=SQRT(PZNEW**2+PMSHAD**2)
-          P(IST,5)=PMSHAD
-          P(IREC,3)=-PZNEW
-          P(IREC,4)=SQRT(PZNEW**2+PMREC**2)
-          P(IREC,5)=PMREC
-
-C...If not enough momentum, take what can be taken.
-        ELSE
-          IFAIL=1
-          P(IST,3)=0D0
-          P(IST,4)=ETOT-PMREC
-          P(IST,5)=P(IST,4)
-          P(IREC,3)=0D0
-          P(IREC,4)=PMREC
-          P(IREC,5)=PMREC
-        ENDIF
-
-C...Bost back to lab frame.
-        CALL PYROBO(IST,IST,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-        CALL PYROBO(IREC,IREC,THETA,PHI,PSUM(1)/PSUM(4),
-     &  PSUM(2)/PSUM(4),PSUM(3)/PSUM(4))
-
-C...Loop back when not enough momentum could be shuffled.
-C...(As long as there is something left.)
-        IF(IFAIL.EQ.1) THEN
-          IF(IST.EQ.IMIN.AND.IREC.LT.IMAX) THEN
-            IREC=IREC+1
-            GOTO 200
-          ELSEIF(IST.EQ.IMAX.AND.IREC.GT.IMIN) THEN
-            IREC=IREC-1
-            GOTO 200
-          ENDIF
-        ENDIF
-
-C...Particle code for sbottom-hadron.
-        KFSTHD=0 
-        IF(K(IST,2).GT.0) THEN
-          IF(KFSAV.LE.-1.AND.KFSAV.GE.-5) KFSTHD=KSUSY1+500-10*KFSAV+2
-          IF(KFSAV.GE.1103.AND.KFSAV.LE.3303) then
-             if (KFSAV/100.ne.21) goto 90
-             KFSAV=2101
-             KFSTHD=KSUSY1+5000+
-     &            (KFSAV/10)+MOD(KFSAV,10)
-          endif
-        ELSE
-          IF(KFSAV.GE.1.AND.KFSAV.LE.5) KFSTHD=KSUSY1+500+10*KFSAV+2
-          IF(KFSAV.LE.-1103.AND.KFSAV.GE.-3303) then
-             if (-KFSAV/100.ne.21) goto 90
-             KFSAV=-2101
-             KFSTHD=KSUSY1+5000+
-     &            (IABS(KFSAV)/10)+MOD(IABS(KFSAV),10)
-          endif
-          KFSTHD=-KFSTHD
-       ENDIF
-        IF(KFSTHD.EQ.0) THEN
-          WRITE(*,*) ' Failed to find R-hadron code from ',
-     &    K(IST,2),KFSAV 
-          IERR=1 
-          RETURN
-        ENDIF
-
-C...New slot at end of record for sbottom-hadron
-        DO 230 J=1,5
-          K(N+1,J)=0
-          P(N+1,J)=P(IST,J)
-          V(N+1,J)=V(IST,J)
-  230   CONTINUE
-        K(N+1,1)=5+ISBOTTOM
-        K(N+1,2)=KFSTHD
-        K(N+1,3)=K(IST,3)
-        N=N+1
-        
-C...Code and momentum of new string endpoint.
-        K(IST,2)=-KFSAV
-        DO 240 J=1,5
-          P(IST,J)=PSAV(J)
-  240   CONTINUE
- 
-C...End of loop over two sbottoms.
-  300 CONTINUE
-
-C...Cleanup: remove zero-energy gluons.
-      NNOW=N
-      N=NOLD
-      DO 330 I=NOLD+1,NNOW
-        IF(K(I,2).EQ.21.AND.P(I,4).LT.1D-10) THEN
-        ELSEIF(I.EQ.N+1) THEN
-          N=N+1
-        ELSE
-          N=N+1
-          DO 320 J=1,5
-            K(N,J)=K(I,J)
-            P(N,J)=P(I,J)
-            V(N,J)=V(I,J)
-  320     CONTINUE
-        ENDIF
-  330 CONTINUE
-      NNOW=N
-
-C...Check that no low-mass system of diquark-antidiquark kind,
-C...or very low-mass of any kind.
-      KFBEG=0
-      DO 332 J=1,5
-        PSUM(J)=0D0
-  332 CONTINUE
-      DO 338 I=NOLD+1,NNOW
-        DO 334 J=1,4
-          PSUM(J)=PSUM(J)+P(I,J)
-  334   CONTINUE
-        IF(KFBEG.EQ.0) THEN
-          KFBEG=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-        ELSEIF(K(I,1).EQ.1) THEN
-          KFEND=IABS(K(I,2))
-          MSTJ(93)=1 
-          PSUM(5)=PSUM(5)+PYMASS(K(I,2))         
-          DELTA=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
-     &    PSUM(3)**2))-PSUM(5)
-          IF(KFBEG.GT.10.AND.KFBEG.LT.10000.AND.KFEND.GT.10.AND.
-     &    KFEND.LT.10000.AND.DELTA.LT.PARJ(32).AND.(KFBEG.NE.21
-     &    .AND.KFEND.NE.21)) GOTO 90
-          IF(DELTA.LT.0D0) GOTO 90
-          KFBEG=0
-          DO 336 J=1,5
-            PSUM(J)=0D0
-  336     CONTINUE
-        ENDIF
-  338 CONTINUE
-
-C...Finished with sbottom hadronization. Restore baryon production model.
-      MSTJ(12)=MSTJ12
-
-C...Now hadronize everything else. Some cheating to allow sensible
-C...momentum shuffling.
-      MSTJ16=MSTJ(16)
-      MSTJ(16)=0
-      CALL PYEXEC
-      MSTJ(16)=MSTJ16
-      IF(MSTU(24).NE.0) THEN
-        WRITE(*,*) ' Event to be skipped'
-        IERR=1 
-      ENDIF
-c      call pylist(2)
-      RETURN
-      END
-
-
-C*********************************************************************
- 
-C...PYSQDC
-C...Decays the squark inside a squark-hadron.
- 
-      SUBROUTINE PYSQDC(KSQUARK)
- 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers
-C...(left- and righthanded SUSY, excited fermions).
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KEXCIT=4000000)
-C...Commonblocks.
-      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-C...Note that dimensions below grew from 4000 to 8000 in Pythia 6.2!
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-C...Width properties.
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      SAVE /PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,
-     &/PYINT2/
-      integer indices(2)
-C...Optional offset of constituent quark/diquark mass,
-C...representing gluon cloud around squark not part of the decay.
-      PMOFF = 0.2D0
-      MWID(PYCOMP(KSQUARK))=2
-
-C...The probability that it has spin 1.
-C...(Except for identical flavours, where spin 1 is only possibility.)
-C...(Recall that all R-baryon codes were given as if spin 1, sloppily.)
-      PROBS1=0.5D0
-
-
-      print*,'In PYSQDC'
-
-C...Loop through to find R-hadrons.
-      DO 150 I=1,N
-C...If only one of the R-hadrons should decay inside the detector, 
-C...you could here pick at random whether to allow the one with 
-C...K(I,1) = 6 or the one with =7. (Where the random choice of course
-C...could depend on the position of an imagined displaced vertex.)
-c         IF(IABS(K(I,2)).gt.100000) THEN
-c            print*,"RMA: ",K(I,1),K(I,2)
-c         endif
-        IF(K(I,1).EQ.5.or.K(I,1).EQ.6.OR.K(I,1).EQ.7) THEN
-
-C...Begin resolve R-hadron flavour content to ~q + qbar or ~q + qq.
-c           print*,'RMA: PDG: ',K(I,2)
-          KFRH=(IABS(K(I,2))-KSUSY1)/10
-          KSGN=K(I,2)/IABS(K(I,2));
-c          print*, 'RMA: Stripped PDG: ',KFRH
-c          print*, 'RMA: Sign: ',KSGN
-
-C...Squark meson : Strip quark
-          IF(KFRH.LT.100) THEN
-             KFQ=MOD(KFRH,10)*(-1)*KSGN
-c             print*, 'RMA: QUARK: ',KFQ
-
-C...Squarkbaryon : Strip diquark
-          ELSEIF(KFRH.LT.1000) THEN
-             KFQ=100*MOD(KFRH,100)+3
-             KFB=MOD(KFRH/10,10) 
-             KFC=MOD(KFRH,10)
-             if(KFB.NE.KFC.AND.PROBS1.LT.PYR(0)) KFQ=KFQ-2
-             KFQ=KSGN*KFQ
-c             print*, 'RMA: DIQUARK: ',KFQ
-          endif
-
-
-C...Subdivide R-hadron into squark + 1 light (di)quark in new slots. 
-          DO 120 I1=N+1,N+2
-            K(I1,1)=3
-            K(I1,3)=I
-            K(I1,4)=0
-            K(I1,5)=0
-            DO 110 J=1,5
-              V(I1,J)=0D0
-  110       CONTINUE
-  120     CONTINUE 
-
-C...Store new flavours.
-          K(N+1,2)=KSGN*(KSQUARK)
-c          K(N+1,2)=KSGN*6
-          K(N+2,2)=KFQ
-c          print*, 'RMA: PDG1: ',K(N+1,2)
-c          print*, 'RMA: PDG2: ',K(N+2,2)
-
-
-
-c          call pylist(3)
-C...Set up colour flow. Konverter til colur singlet. Find dokumentation
-C Squark
-c          K(N+1,4)=MSTU(5)*(N+2) 
-c          K(N+1,5)=MSTU(5)*(N+2) 
-
-C Quark/Di-quark
-c          K(N+2,4)=MSTU(5)*(N+1) 
-c          K(N+2,5)=MSTU(5)*(N+1) 
-
-c Saving the indices for PYJOIN later
-          indices(1)=N+1
-          indices(2)=N+2
-
-
-C...Define effective quark/diquark masses.
-          MSTJ(93)=1 
-          PM=PYMASS(KFQ)+PMOFF         
-c          print*,'RMA: PM: ',PM
-C...Share gluino"hadron" momentum with two light quarks.
-          FAC=PM/P(I,5)
-
-          DO 130 J=1,5
-            P(N+1,J)=(1D0-FAC)*P(I,J)
-            P(N+2,J)=FAC*P(I,J)
-  130     CONTINUE
-
-C...If you want a displaced vertex, you could also write that info
-C...into the V array, but you have to calculate that vertex yourself.
-
-C...Mark R-hadron decayed and update number counter.
-          K(I,1)=K(I,1)+10
-          K(I,4)=N+1
-          K(I,5)=N+2
-          N=N+2
-          call pyjoin(2,indices)
-
-cJack          call pylist(2)
-C...Let squark decay now.
-c          print*,'RMA: Trying to decay ',N-1
-          CALL PYRESD(N-1)
-c          call pylist(2)
-C...End of loop over two R-hadrons.
-        ENDIF
- 150  CONTINUE
-
-C...And then the decay products can fragment, etc.
-      CALL PYEXEC
-
-      RETURN
-      END       
diff --git a/Generators/Pythia_i/src/addParticle.F b/Generators/Pythia_i/src/addParticle.F
deleted file mode 100644
index f7e1ae4fbd5a0577051fe0aa789bcd6df685fd84..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/addParticle.F
+++ /dev/null
@@ -1,12 +0,0 @@
-      SUBROUTINE ADDPARTICLE(FCHAR)
-
-      CHARACTER*(*)  FCHAR
-   
-      OPEN(20,
-     & FILE=FCHAR)
-      
-      CALL PYUPDA(3,20)
-      CLOSE(20)
-
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/atlasTune.cxx b/Generators/Pythia_i/src/atlasTune.cxx
deleted file mode 100644
index faf8f45a053f1bdae45d3e6a17d4b908a46fc3ad..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/atlasTune.cxx
+++ /dev/null
@@ -1,1858 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Pythia_i/Pythia.h"
-
-/*
-  ________________________________________________________________________________________________________________________
-
-  L.M., 
-  Pythia parameter settings / TUNE
-
-  Aug. 09
-
-  called by Pythia.cxx
-  set ATLAS tune/parameters set determined by m_Tune_Index
-  m_Tune_Index 0,-1 and -2 are technical settings to run with 0, recommended or common set of ATLAS Pythia parameters
-  in case m_Tune_Index does not correspond to ATLAS tune index use default ATLAS tune (set by m_Default_Tune_Name)
-  -------------------------------------------------------------------------------------------------------------------------
-  Backw. compat: old tune setting syntax remains supported.
-  Mixing of the old and new tune settings is not supported and in this case Atlas default tune settings are used and 
-
-  May 09
-
-  In case only the old syntax is used, the switches have the following effect:
-  1. useAtlasPythiaRecomm  : false sets m_Tune_Index=0 [default:true ]
-     Event record, error handlig, new PS/MI model, MI structure
-  2. useAtlasPythiaCommon  : false sets m_Tune_Index=-1; [default:true ]
-     (ATLAS specific) print-out, particle properties, MI structure, pdf
-  3. useAtlasPythiaTune09  : sets m_Tune_Index=m_mc09_Tune_Index        [default:false ]
-  4. useAtlasPythiaTune08  : sets m_Tune_Index=m_mc08_Tune_Index        [default:false ]
-  5. useNoAtlasPythiaParam : sets bool m_useNoAtlasPythiaParam          [default:false ]
-     Using Pythia defaults + parameters set by the jO only.
-     Please note that the use of ATLAS defaults is recommended.
-     Please consider keeping the settings of switch 1.
-
-  ________________________________________________________________________________________________________________________
- */
-
-StatusCode Pythia::atlasTune()
-
-{
-  // if tune is left to the dummy starting value, use the default tune:
-  if (m_Tune_Index==m_Starting_Tune_Index) m_Tune_Index=m_Default_Tune_Index;
-
-  ATH_MSG_INFO( "\n________________________________________________________________________________\n"
-		<< "atlasTune:   [Pythia_i/src/atlasTune.cxx]                                       \n" 
-		<< "atlasTune: setting Pythia parameter values:                                     \n"
-		<< "--------------------------------------------------------------------------------"  ); 
-
-  // note: m_Tune_Name == "ATLAS_blah" will end here since atoi() returns 0 if it can't ocnvert arg. to int 
-  if (m_Tune_Index==0) 
-    {
-      ATH_MSG_WARNING( "setPythiaTune: m_Tune_Index=0 requested,                                       \n"
-		       << "setPythiaTune: skipping par. setting by Pythia_i, running with Pythia defaults. \n"
-		       << "setPythiaTune: Using Pythia defaults + parameters set by the USER.              \n"
-		       << "setPythiaTune: Please note that the use of ATLAS defaults is recommended.       \n"
-		       << "setPythiaTune: Please consider keeping the settings of Tune_Name=-1,-2.         \n"
-		       << "--------------------------------------------------------------------------------"  );
-      return StatusCode::SUCCESS; 
-    }//end of {m_Tune_Index==0} condition
-  //---------------------------------------------------------------------------  
-  //____________________________________________________________________________________________________________________________
-  // when not using an ATLAS tune but want to keep recommended / common settings: 
-  else if (m_Tune_Index<0)
-    {
-      if (m_Tune_Index==-1)
-	{
-	  //________________________________________________________________________________________________________________________
-	  // printout details + 
-	  this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-	  this->pydat1().mstu(21)   =1;      // error handling switch 
-	  this->pypars().mstp(81)   =21;     // run PYEVNW with PYEVNT 
-	  this->pydat1().mstj(22)=2;         // stable particles convention
-	  //________________________________________________________________________________________________________________________
-	  ATH_MSG_INFO( "mstp(128)  =  "<< this->pypars().mstp(128) << "\n" 
-			<< "mstu(21)   =  "<< this->pydat1().mstu(21)  << "\n" 
-			<< "mstp(81)   =  "<< this->pypars().mstp(81)  << "\n" 
-			<< "mstj(22)   =  "<< this->pydat1().mstj(22) );
-
-	  //________________________________________________________________________________________________________________________ 
-        }
-      if (m_Tune_Index==-2)
-	{
-	  //________________________________________________________________________________________________________________________
-	  // printout details 
-	  this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-	  this->pydat1().mstu(21)   =1;      // error handling switch 
-	  this->pypars().mstp(81)   =21;     // run PYEVNW with PYEVNT 
-	  this->pydat1().mstj(22)=2;         // stable particles convention
-	  //________________________________________________________________________________________________________________________
-   	  //physics-related
-	  this->pypars().mstp(82)=4;         // MI structure
-	  this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))	 
-	  this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))	 	 
-	  this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))	 	 
-	  this->pypars().mstp(51)=20651;     // LO**
-	  this->pypars().mstp(53)=20651;     // LO** 	 	 
-	  this->pypars().mstp(55)=20651;     // LO** 	
-	  this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-	  this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-	  //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-	  this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-	  //this->pydat2().pmas(23,2)=2.4952;  // PDG2007 Z0 width
-	  //________________________________________________________________________________________________________________________
-	  //printout details ... +
-	  ATH_MSG_INFO( "mstp(128)  =  "<< this->pypars().mstp(128) << "\n" 
-			<< "mstu(21)   =  "<< this->pydat1().mstu(21)  << "\n" 
-			<< "mstp(81)   =  "<< this->pypars().mstp(81)  << "\n" 
-			//physics-related
-			<< "mstp(82)  = "<<  this->pypars().mstp(82)     << "\n"    
-			<< "mstp(52)  = "<<  this->pypars().mstp(52)     << "\n"    
-			<< "mstp(54)  = "<<  this->pypars().mstp(54)     << "\n"    
-			<< "mstp(56)  = "<<  this->pypars().mstp(56)     << "\n"    
-			<< "mstp(51)  = "<<  this->pypars().mstp(51)     << "\n"
-			<< "mstp(53)  = "<<  this->pypars().mstp(53)     << "\n"
-			<< "mstp(55)  = "<<  this->pypars().mstp(55)     << "\n"
-			<< "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"  
-			<< "pmas(24,1)= "<<  this->pydat2().pmas(24,1)   << "\n"
-			//<< "pmas(24,2)= "<<  this->pydat2().pmas(24,2)   << "\n" 
-			<< "pmas(23,1)= "<<  this->pydat2().pmas(23,1)   << "\n" );             
-	  //<< "pmas(23,2)= "<<  this->pydat2().pmas(23,2)   << "\n" 
-	  //________________________________________________________________________________________________________________________
-	}
-    }
-  else if (m_Tune_Index==20090001)
-    {
-      // ATLAS jargon : MC09
-      // author : Markus Warsinsky
-      // Pythia : 6.4.20 
-      // date: May 2009
-      // short description: MC09 production round tune for LO* PDFs
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.3;       // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.25;      // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO( "--------------------------------------------------------------------------------\n" 
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
- 		    << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		    << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		    << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		    << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		    << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		    << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		    << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		    << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		    << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		    << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		    << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		    << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		    //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2)   << "\n"  
-		    << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		    //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)   << "\n" 
-		    << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		    << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		    << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		    << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		    << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		    << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		    << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		    << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		    << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		    << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		    << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		    << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		    << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		    << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		    << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		    << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		    << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		    << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		    << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		    << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		    << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		    << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		    << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		    << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20090001) condition
-  else if (m_Tune_Index==20080001)
-    {
-      // ATLAS jargon : MC08
-      // author : Arthur Moraes
-      // Pythia : ~ 6.4.18 
-      // date: ~ 2008
-      // short description: MC08 production round tune 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure
-      this->pypars().mstp(52)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(54)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(56)=2;         // (needed for CTEQ6L) 	 
-      this->pypars().mstp(51)=10042;     // (needed for CTEQ6L) 	 
-      this->pypars().mstp(53)=10042;     // (needed for CTEQ6L) 	 
-      this->pypars().mstp(55)=10042;     // (needed for CTEQ6L)
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.1;    // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;    // (matter distribution)
-      this->pypars().parp(90)=0.16;   // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=1; 
-      this->pydat1().mstj(11)=3;      // (select peterson for charm fragmentation)
-      this->pydat1().mstj(22)=2;      // (Make K_S, Lambda stable)
-      this->pydat1().parj(54)=-0.07;  // (c hadronization)
-      this->pydat1().parj(55)=-0.006; // (b hadronization)
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO( "--------------------------------------------------------------------------------\n" 
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		    << "mstp(128)  = "<< this->pypars().mstp(128)    << "\n" 
-		    << "mstu(21)   = "<< this->pydat1().mstu(21)    << "\n"
-		    << "mstp(81)   = "<< this->pypars().mstp(81)  << "\n" 
-		    << "mstp(82)   = "<< this->pypars().mstp(82)   << "\n"    
-		    << "mstp(52)   = "<< this->pypars().mstp(52)   << "\n"    
-		    << "mstp(54)   = "<< this->pypars().mstp(54)   << "\n"    
-		    << "mstp(56)   = "<< this->pypars().mstp(56)   << "\n"    
-		    << "mstp(51)   = "<< this->pypars().mstp(51) << "\n"
-		    << "mstp(53)   = "<< this->pypars().mstp(53) << "\n"
-		    << "mstp(55)   = "<< this->pypars().mstp(55) << "\n"
-		    << "pmas(6,1)  = "<< this->pydat2().pmas(6,1) << "\n"  
-		    << "pmas(24,1) = "<< this->pydat2().pmas(24,1)<< "\n"
-		    //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2) << "\n" 
-		    << "pmas(23,1) = "<< this->pydat2().pmas(23,1)<< "\n"
-		    //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)<< "\n" 
-		    << "mstp(70)   = "<< this->pypars().mstp(70)   << "\n"      
-		    << "mstp(72)   = "<< this->pypars().mstp(72)   << "\n"
-		    << "mstp(88)   = "<< this->pypars().mstp(88)   << "\n"
-		    << "mstp(90)   = "<< this->pypars().mstp(90)   << "\n"
-		    << "parp(78)   = "<< this->pypars().parp(78) << "\n"
-		    << "parp(80)   = "<< this->pypars().parp(80) << "\n"
-		    << "parp(82)   = "<< this->pypars().parp(82)  << "\n"    
-		    << "parp(83)   = "<< this->pypars().parp(83) << "\n"
-		    << "parp(84)   = "<< this->pypars().parp(84) << "\n"    
-		    << "parp(90)   = "<< this->pypars().parp(90)<< "\n"   
-		    << "parj(81)   = "<< this->pydat1().parj(81)<< "\n"
-		    << "mstp(95)   = "<< this->pypars().mstp(95)   << "\n" 
-		    << "mstj(11)   = "<< this->pydat1().mstj(11)   << "\n"      
-		    << "mstj(22)   = "<< this->pydat1().mstj(22)   << "\n"      
-		    << "parj(54)   = "<< this->pydat1().parj(54) << "\n"  
-		    << "parj(55)   = "<< this->pydat1().parj(55) << "\n" 
-		    << "mstp(84)   = "<< this->pypars().mstp(84)   << "\n"
-		    << "mstp(85)   = "<< this->pypars().mstp(85)   << "\n"
-		    << "mstp(86)   = "<< this->pypars().mstp(86)   << "\n"
-		    << "mstp(87)   = "<< this->pypars().mstp(87)   << "\n"
-		    << "mstp(89)   = "<< this->pypars().mstp(89)   << "\n"
-		    << "parp(89)   = "<< this->pypars().parp(89)<< "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		    << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    } // end of if (m_Tune_Index==20080001) condition
-  else if (m_Tune_Index==20090002)
-    {
-      // ATLAS jargon : MC09' 
-      // author :  Markus Warsinsky 
-      // Pythia : 6.4.20
-      // date: Jun. 2009
-      // short description: MC08 tune update for the MC09 production 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for ext. PDF)    
-      this->pypars().mstp(54)=2;         // (needed for ext. PDF)    
-      this->pypars().mstp(56)=2;         // (needed for ext. PDF)     
-      this->pypars().mstp(51)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().mstp(53)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().mstp(55)=10042;     // (needed for CTEQ6L) this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      //this->pydat2().pmas(24,2)=2.141;  W-width is calculated dynamically
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      //this->pydat2().pmas(23,2)=2.4952;  // Z-width is calculated dynamically
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.3;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.1;       // this is changed for MC08'' (20090002) wrt MC09 20090001
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.25;      // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     //<< "pmas(24,2) = "<< this->pydat2().pmas(24,2)   << "\n"  
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     //<< "pmas(23,2) = "<< this->pydat2().pmas(23,2)   << "\n" 
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" ); 
-      //________________________________________________________________________________________________________________________
-    } 
-  else if (m_Tune_Index==20090003)
-    {
-      // ATLAS jargon     : MC09c
-      // references       : ATL-COM-PHYS-2010-040, ATL-PHYS-PUB-2010-002
-      // author           : Markus Warsinsky et. al
-      // Pythia           : 6.4.21 
-      // impl. date       : June  2010
-      // tune produced in : 2009
-      // short description: simmilar to MC09, but with lowered CR
-      // changes wrt. MC09: 
-      //         MC09c has: parp(78)=0.224,    parp(82)=2.315,    parp(90)=0.2487 
-      //          MC09 has: parp(78)=0.3,      parp(82)=2.3,      parp(90)=0.25
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(78)=0.224;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.315;  // (cut off scale)
-      this->pypars().parp(83)=0.8;
-      this->pypars().parp(84)=0.7;       // (matter distribution)
-      this->pypars().parp(90)=0.2487;  // (cut off scale)
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n"     
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" );
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20090003) condition
-  else if (m_Tune_Index==20100001)
-    {
-      // ATLAS jargon     : AMBT1
-      // references       : ATLAS-CONF-2010-031, ATL-COM-PHYS-2010-267, ATL-COM-PHYS-2010-268
-      // author           : Markus Warsinsky et. al
-      // Pythia           : 6.4.21 
-      // impl. date       : June 2010
-      // tune produced in : 2010
-      // short description: the first tune including the ATLAS (MinBias, UE, 0.9TeV and 7TeV) data 
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      //physics - related
-      this->pypars().mstp(81)=21;        // run PYEVNW with PYEVNT 
-      this->pypars().mstp(82)=4;         // MI structure           
-      this->pypars().mstp(52)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(54)=2;         // (needed for MRST2007lomod (LO* for MC))    
-      this->pypars().mstp(56)=2;         // (needed for MRST2007lomod (LO* for MC))     
-      this->pypars().mstp(51)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(53)=20650;     // (needed for MRST2007lomod (LO* for MC)) 	 
-      this->pypars().mstp(55)=20650;     // (needed for MRST2007lomod (LO* for MC))
-      this->pydat2().pmas(6,1)=172.5;    // PDG2007 TOP mass
-      this->pydat2().pmas(24,1)=80.399;  // PDG2007 W mass
-      this->pydat2().pmas(23,1)=91.1876; // PDG2007 Z0 mass
-      this->pypars().parp(62)=1.025;
-      this->pypars().mstp(70)=0;         // (virtuality scale for ISR)
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(77)=1.016;
-      this->pypars().parp(78)=0.538;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(82)=2.292;  // (cut off scale)
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(84)=0.651; // (matter distribution)
-      this->pypars().parp(90)=0.250;  // (cut off scale)
-      this->pypars().parp(93)=10.0;
-      this->pydat1().parj(81)=0.29;
-      this->pypars().mstp(95)=6; 
-      this->pydat1().mstj(11)=4;         // select Lund-Bowler for c && b fragmentation
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      this->pydat1().parj(41)=0.3;       // Lund-Bowler a
-      this->pydat1().parj(42)=0.58;      // Lund-Bowler b
-      this->pydat1().parj(46)=0.75;      // Lund-Bowler rQ
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      //________________________________________________________________________________________________________________________
-      ATH_MSG_INFO(   "--------------------------------------------------------------------------------\n" 
-		     << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :       \n" 
-		     << "mstp(128) = "<< this->pypars().mstp(128)    << "\n" 
-		     << "mstu(21)  = "<< this->pydat1().mstu(21)     << "\n"
-		     << "mstp(81) = "<<   this->pypars().mstp(81)     << "\n"       
-		     << "mstp(82) = "<<   this->pypars().mstp(82)     << "\n"        
-		     << "mstp(52) = "<<   this->pypars().mstp(52)     << "\n"        
-		     << "mstp(54) = "<<   this->pypars().mstp(54)     << "\n"        
-		     << "mstp(56) = "<<   this->pypars().mstp(56)     << "\n"        
-		     << "mstp(51) = "<<   this->pypars().mstp(51)     << "\n"    
-		     << "mstp(53) = "<<   this->pypars().mstp(53)     << "\n"    
-		     << "mstp(55) = "<<   this->pypars().mstp(55)     << "\n"    
-		     << "pmas(6,1) = "<<  this->pydat2().pmas(6,1)    << "\n"   
-		     << "pmas(24,1) = "<< this->pydat2().pmas(24,1)   << "\n" 
-		     << "pmas(23,1) = "<< this->pydat2().pmas(23,1)   << "\n"
-		     << "parp(62) = "<<   this->pypars().parp(62)     << "\n"
-		     << "mstp(70) = "<<   this->pypars().mstp(70)     << "\n"        
-		     << "mstp(72) = "<<   this->pypars().mstp(72)     << "\n"
-		     << "mstp(88) = "<<   this->pypars().mstp(88)     << "\n"
-		     << "mstp(90) = "<<   this->pypars().mstp(90)     << "\n"
-		     << "parp(77) = "<<   this->pypars().parp(77)     << "\n"
-		     << "parp(78) = "<<   this->pypars().parp(78)     << "\n"
-		     << "parp(80) = "<<   this->pypars().parp(80)     << "\n"
-		     << "parp(82) = "<<   this->pypars().parp(82)     << "\n"      
-		     << "parp(83) = "<<   this->pypars().parp(83)     << "\n"
-		     << "parp(84) = "<<   this->pypars().parp(84)     << "\n"      
-		     << "parp(90) = "<<   this->pypars().parp(90)     << "\n" 
-		     << "parp(93) = "<<   this->pypars().parp(93)     << "\n"    
-		     << "parj(81) = "<<   this->pydat1().parj(81)     << "\n"
-		     << "mstp(95) = "<<   this->pypars().mstp(95)     << "\n" 
-		     << "mstj(11) = "<<   this->pydat1().mstj(11)     << "\n"        
-		     << "mstj(22) = "<<   this->pydat1().mstj(22)     << "\n"        
-		     << "parj(41) = "<<   this->pydat1().parj(41)     << "\n"      
-		     << "parj(42) = "<<   this->pydat1().parj(42)     << "\n"     
-		     << "parj(46) = "<<   this->pydat1().parj(46)     << "\n"     
-		     << "mstp(84) = "<<   this->pypars().mstp(84)     << "\n"
-		     << "mstp(85) = "<<   this->pypars().mstp(85)     << "\n"
-		     << "mstp(86) = "<<   this->pypars().mstp(86)     << "\n"
-		     << "mstp(87) = "<<   this->pypars().mstp(87)     << "\n"
-		     << "mstp(89) = "<<   this->pypars().mstp(89)     << "\n"
-		     << "parp(89) = "<<   this->pypars().parp(89)     << "\n"
-		     << "-----------------------------------------------                                 \n"
-		     << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n" 
-		     << "--------------------------------------------------------------------------------\n" );
-      //________________________________________________________________________________________________________________________
-    }// end of if (m_Tune_Index==20100001) condition
-  else if (m_Tune_Index==20110001)
-    {
-      // ATLAS jargon     : AUET2
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Mar 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for UE
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.265;
-      this->pypars().parp(1)=0.265;
-      this->pypars().parp(61)=0.265;
-      this->pydat1().mstu(112)=4;
-      this->pypars().mstp(70)=0;
-      this->pypars().mstp(64)=3;
-      this->pypars().mstp(72)=2;
-      this->pypars().parp(62)=2.803673e+00;
-      this->pypars().parp(64)=2.213751e+00;
-      this->pypars().parp(67)=6.635356e-01;
-      this->pypars().parp(72)=2.496789e-01;
-      this->pypars().parp(91)=1.918441e+00;
-      this->pypars().parp(77)=1.127437e+00;
-      this->pypars().parp(78)=3.320624e-01;
-      this->pypars().parp(82)=2.451288e+00;
-      this->pypars().parp(84)=5.296569e-01;
-      this->pypars().parp(90)=2.290732e-01;    
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21) << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81) << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstu(112)=" << this->pydat1().mstu(112) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "mstp(64)=" << this->pypars().mstp(64) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110001 (AUET2) condition
-  else if (m_Tune_Index==20110101)
-    {
-      // ATLAS jargon     : AMBT2
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Mar 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for MinBias
-      //________________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.265;
-      this->pypars().parp(1)=0.265;
-      this->pypars().parp(61)=0.265;
-      this->pydat1().mstu(112)=4;
-      this->pypars().mstp(70)=0;
-      this->pypars().mstp(64)=3;
-      this->pypars().mstp(72)=2;
-      this->pypars().parp(62)=2.803673e+00;
-      this->pypars().parp(64)=2.213751e+00;
-      this->pypars().parp(67)=6.635356e-01;
-      this->pypars().parp(72)=2.496789e-01;
-      this->pypars().parp(91)=1.918441e+00;
-      this->pypars().parp(77)=0.88;
-      this->pypars().parp(78)=0.18;
-      this->pypars().parp(82)=2.49;
-      this->pypars().parp(84)=0.61;
-      this->pypars().parp(90)=0.244;    
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21) << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81) << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstu(112)=" << this->pydat1().mstu(112) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "mstp(64)=" << this->pypars().mstp(64) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110101 (AMBT2) condition
-  else if (m_Tune_Index==20110002)
-    {
-      // ATLAS jargon     : AMBT1FF / AUET2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for UE
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=2.17;
-      this->pypars().parp(64)=0.60;
-      this->pypars().parp(72)=0.43;
-      this->pypars().parp(77)=9.006820e-01;
-      this->pypars().parp(78)=3.092771e-01;
-      this->pypars().parp(82)=2.437442e+00;
-      this->pypars().parp(84)=5.598934e-01;
-      this->pypars().parp(90)=2.414007e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110002 (AMBT1FF/AUET2b) condition
-  else if (m_Tune_Index==20110102)
-    {
-      // ATLAS jargon     : AMBT2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: LO** tune incl. ISR/FSR parameters, optimized for MinBias
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=20651;
-      this->pypars().mstp(53)=20651;
-      this->pypars().mstp(55)=20651;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=2.17;
-      this->pypars().parp(64)=0.60;
-      this->pypars().parp(72)=0.43;
-      this->pypars().parp(77)=1.100584e+00;
-      this->pypars().parp(78)=2.478809e-01;
-      this->pypars().parp(82)=2.592214e+00;
-      this->pypars().parp(84)=6.669917e-01;
-      this->pypars().parp(90)=2.552765e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110102 (AMBT2b) condition
-  else if (m_Tune_Index==20110003)
-    {
-      // ATLAS jargon     : AUET2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: CTEQ6L1 tune incl. ISR/FSR parameters, optimized for UE
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=10042;
-      this->pypars().mstp(53)=10042;
-      this->pypars().mstp(55)=10042;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=1.13;
-      this->pypars().parp(64)=0.68;
-      this->pypars().parp(72)=0.527;
-      this->pypars().parp(77)=4.905171e-01;
-      this->pypars().parp(78)=3.105197e-01;
-      this->pypars().parp(82)=2.259809e+00;
-      this->pypars().parp(84)=4.430423e-01;
-      this->pypars().parp(90)=2.490763e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110003 (AUET2b) condition
-  //==========================================================
-  else if (m_Tune_Index==20110004)
-    {
-      // ATLAS jargon     : AUET2B-MSTW2008LO
-      // references       : todo : add
-      // author           : A. Buckley (et. al)
-      // Pythia           : 6.4.25 
-      // impl. date       : Mar 2012
-      // tune produced in : 2011
-      // short description: AUET2B variant for MSTW2008LO PDF
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=21000;
-      this->pypars().mstp(53)=21000;
-      this->pypars().mstp(55)=21000;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=1.26;
-      this->pypars().parp(64)=1.11;
-      this->pypars().parp(72)=0.49;
-      this->pypars().parp(77)=0.597;
-      this->pypars().parp(78)=0.371;
-      this->pypars().parp(82)=1.99;
-      this->pypars().parp(84)=0.499;
-      this->pypars().parp(90)=0.266;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110003 (AUET2b) condition
-  //==========================================================
-  else if (m_Tune_Index==20110005)
-    {
-      // ATLAS jargon     : AUET2B-CTEQ66 
-      // references       : todo : add
-      // author           : A. Buckley (et. al)
-      // Pythia           : 6.4.25 
-      // impl. date       : Mar 2012
-      // tune produced in : 2011
-      // short description: Underlying Event Tune (CTEQ66 PDF)
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=10550;
-      this->pypars().mstp(53)=10550;
-      this->pypars().mstp(55)=10550;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=0.95;
-      this->pypars().parp(64)=1.03;
-      this->pypars().parp(72)=0.40;
-      this->pypars().parp(77)=0.428;
-      this->pypars().parp(78)=0.281;
-      this->pypars().parp(82)=1.892;
-      this->pypars().parp(84)=0.388;
-      this->pypars().parp(90)=0.211;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110005 (AUET2B-CTEQ66) condition
-  else if (m_Tune_Index==20110006)
-    {
-      // ATLAS jargon     : AUET2B-CT10 
-      // references       : todo : add
-      // author           : A. Buckley (et. al)
-      // Pythia           : 6.4.25 
-      // impl. date       : Mar 2012
-      // tune produced in : 2011
-      // short description: Underlying Event Tune (CT10 PDF)
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=10800;
-      this->pypars().mstp(53)=10800;
-      this->pypars().mstp(55)=10800;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=0.312;
-      this->pypars().parp(64)=0.939;
-      this->pypars().parp(72)=0.537;
-      this->pypars().parp(77)=0.125;
-      this->pypars().parp(78)=0.309;
-      this->pypars().parp(82)=1.89;
-      this->pypars().parp(84)=0.415;
-      this->pypars().parp(90)=0.182;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110006 (AUET2B-CT10) condition
-  else if (m_Tune_Index==20110103)
-    {
-      // ATLAS jargon     : AMBT2b
-      // references       : todo : add
-      // author           : A. Buckley, J. Katzy (et. al)
-      // Pythia           : 6.4.23 
-      // impl. date       : Apr 2011
-      // tune produced in : 2011
-      // short description: CTEQ6L1 tune incl. ISR/FSR parameters, optimized for MinBias
-      //_______________________________________________________________________________________________________________________
-      this->pypars().mstp(128)=1;
-      this->pydat1().mstu(21)=1;
-      this->pypars().mstp(81)=21;
-      this->pypars().mstp(82)=4;
-      this->pypars().mstp(72)=1;
-      this->pypars().mstp(88)=1;
-      this->pypars().mstp(90)=0;
-      this->pypars().parp(80)=0.1;
-      this->pypars().parp(83)=0.356;
-      this->pypars().parp(93)=10.0;
-      this->pypars().mstp(95)=6;
-      this->pydat1().mstj(22)=2;
-      this->pydat1().parj(46)=0.75;
-      this->pypars().mstp(84)=1;
-      this->pypars().mstp(85)=1;
-      this->pypars().mstp(86)=2;
-      this->pypars().mstp(87)=4;
-      this->pypars().mstp(89)=1;
-      this->pypars().parp(89)=1800.;
-      this->pydat2().pmas(6,1)=172.5;
-      this->pydat2().pmas(24,1)=80.399;
-      this->pydat2().pmas(23,1)=91.1876;
-      this->pypars().mstp(51)=10042;
-      this->pypars().mstp(53)=10042;
-      this->pypars().mstp(55)=10042;
-      this->pypars().mstp(52)=2;
-      this->pypars().mstp(54)=2;
-      this->pypars().mstp(56)=2;
-      this->pydat1().mstj(11)=5;
-      this->pydat1().parj(1)=7.272809e-02;
-      this->pydat1().parj(2)=2.018845e-01;
-      this->pydat1().parj(3)=9.498471e-01;
-      this->pydat1().parj(4)=3.316182e-02;
-      this->pydat1().parj(11)=3.089764e-01;
-      this->pydat1().parj(12)=4.015396e-01;
-      this->pydat1().parj(13)=5.442874e-01;
-      this->pydat1().parj(25)=6.276964e-01;
-      this->pydat1().parj(26)=1.292377e-01;
-      this->pydat1().parj(21)=3.001463e-01;
-      this->pydat1().parj(41)=3.683123e-01;
-      this->pydat1().parj(42)=1.003531e+00;
-      this->pydat1().parj(47)=8.727703e-01;
-      this->pydat1().parj(81)=2.564716e-01;
-      this->pydat1().parj(82)=8.296215e-01;
-      this->pypars().mstp(3)=1;
-      this->pydat1().paru(112)=0.192;
-      this->pypars().parp(1)=0.192;
-      this->pypars().parp(61)=0.192;
-      this->pypars().mstp(70)=0;
-      this->pypars().parp(67)=1.00;
-      this->pypars().parp(91)=2.00;
-      this->pypars().parp(62)=1.13;
-      this->pypars().parp(64)=0.68;
-      this->pypars().parp(72)=0.527;
-      this->pypars().parp(77)=3.566023e-01;
-      this->pypars().parp(78)=2.350777e-01;
-      this->pypars().parp(82)=2.342685e+00;
-      this->pypars().parp(84)=6.053474e-01;
-      this->pypars().parp(90)=2.456730e-01;
-      ATH_MSG_INFO( "---------------------------------------------------------------------------------\n"
-		    << "atlasTune: parameter setting to Tune_Index "<<m_Tune_Index<<" tune values :      \n"
-		    << "-----------------------------------------------                                  \n"
-		    << "mstp(128)=" << this->pypars().mstp(128) << "\n"
-		    << "mstu(21)=" << this->pydat1().mstu(21)  << "\n"
-		    << "mstp(81)=" << this->pypars().mstp(81)  << "\n"
-		    << "mstp(82)=" << this->pypars().mstp(82) << "\n"
-		    << "mstp(72)=" << this->pypars().mstp(72) << "\n"
-		    << "mstp(88)=" << this->pypars().mstp(88) << "\n"
-		    << "mstp(90)=" << this->pypars().mstp(90) << "\n"
-		    << "parp(80)=" << this->pypars().parp(80) << "\n"
-		    << "parp(83)=" << this->pypars().parp(83) << "\n"
-		    << "parp(93)=" << this->pypars().parp(93) << "\n"
-		    << "mstp(95)=" << this->pypars().mstp(95) << "\n"
-		    << "mstj(22)=" << this->pydat1().mstj(22) << "\n"
-		    << "parj(46)=" << this->pydat1().parj(46) << "\n"
-		    << "mstp(84)=" << this->pypars().mstp(84) << "\n"
-		    << "mstp(85)=" << this->pypars().mstp(85) << "\n"
-		    << "mstp(86)=" << this->pypars().mstp(86) << "\n"
-		    << "mstp(87)=" << this->pypars().mstp(87) << "\n"
-		    << "mstp(89)=" << this->pypars().mstp(89) << "\n"
-		    << "parp(89)=" << this->pypars().parp(89) << "\n"
-		    << "pmas(6,1)=" << this->pydat2().pmas(6,1) << "\n"
-		    << "pmas(24,1)=" << this->pydat2().pmas(24,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "pmas(23,1)=" << this->pydat2().pmas(23,1) << "\n"
-		    << "mstp(51)=" << this->pypars().mstp(51) << "\n"
-		    << "mstp(53)=" << this->pypars().mstp(53) << "\n"
-		    << "mstp(55)=" << this->pypars().mstp(55) << "\n"
-		    << "mstp(52)=" << this->pypars().mstp(52) << "\n"
-		    << "mstp(54)=" << this->pypars().mstp(54) << "\n"
-		    << "mstp(56)=" << this->pypars().mstp(56) << "\n"
-		    << "mstj(11)=" << this->pydat1().mstj(11) << "\n"
-		    << "parj(1)=" << this->pydat1().parj(1) << "\n"
-		    << "parj(2)=" << this->pydat1().parj(2) << "\n"
-		    << "parj(3)=" << this->pydat1().parj(3) << "\n"
-		    << "parj(4)=" << this->pydat1().parj(4) << "\n"
-		    << "parj(11)=" << this->pydat1().parj(11) << "\n"
-		    << "parj(12)=" << this->pydat1().parj(12) << "\n"
-		    << "parj(13)=" << this->pydat1().parj(13) << "\n"
-		    << "parj(25)=" << this->pydat1().parj(25) << "\n"
-		    << "parj(26)=" << this->pydat1().parj(26) << "\n"
-		    << "parj(21)=" << this->pydat1().parj(21) << "\n"
-		    << "parj(41)=" << this->pydat1().parj(41) << "\n"
-		    << "parj(42)=" << this->pydat1().parj(42) << "\n"
-		    << "parj(47)=" << this->pydat1().parj(47) << "\n"
-		    << "parj(81)=" << this->pydat1().parj(81) << "\n"
-		    << "parj(82)=" << this->pydat1().parj(82) << "\n"
-		    << "mstp(3)=" << this->pypars().mstp(3) << "\n"
-		    << "paru(112)=" << this->pydat1().paru(112) << "\n"
-		    << "parp(1)=" << this->pypars().parp(1) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "parp(61)=" << this->pypars().parp(61) << "\n"
-		    << "mstp(70)=" << this->pypars().mstp(70) << "\n"
-		    << "parp(67)=" << this->pypars().parp(67) << "\n"
-		    << "parp(91)=" << this->pypars().parp(91) << "\n"
-		    << "parp(62)=" << this->pypars().parp(62) << "\n"
-		    << "parp(64)=" << this->pypars().parp(64) << "\n"
-		    << "parp(72)=" << this->pypars().parp(72) << "\n"
-		    << "parp(77)=" << this->pypars().parp(77) << "\n"
-		    << "parp(78)=" << this->pypars().parp(78) << "\n"
-		    << "parp(82)=" << this->pypars().parp(82) << "\n"
-		    << "parp(84)=" << this->pypars().parp(84) << "\n"
-		    << "parp(90)=" << this->pypars().parp(90) << "\n"
-		    << "-----------------------------------------------                                 \n"
-		    << "atlasTune: end of the list of Tune_Index "<<m_Tune_Index<<" tune values :         \n"
-		    << "--------------------------------------------------------------------------------\n" );
-    } // end of 20110103 (AMBT2b) condition
-  else
-    {
-      ATH_MSG_WARNING( "atlasTune: no tune with Tune_Index : "<<m_Tune_Index << "\n"
-		       << "run with current default ATLAS tune : "<<m_Default_Tune_Name << "\n" );
-      //set Tune_Type to empty to get common undefined tune behavior
-      m_Tune_Type=" ";
-      StatusCode sc = Pythia::setPythiaTune();
-      if ( !sc.isSuccess() ) { 
-	ATH_MSG_WARNING( "StatusCode in setPythiaTune: Failed \n");
-      }
-    }
-
-  ATH_MSG_INFO( "atlasTune: all done                                                             \n" 
-		<< "________________________________________________________________________________\n" );
-  return StatusCode::SUCCESS;
-  
-  //end of atlasTune def.
-}
-
diff --git a/Generators/Pythia_i/src/atopyt.F b/Generators/Pythia_i/src/atopyt.F
deleted file mode 100644
index cb9255589874b5406299f53c0b99f9ee5632c8b0..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/atopyt.F
+++ /dev/null
@@ -1,155 +0,0 @@
-      SUBROUTINE ALSHCD(CSHO)
-      CHARACTER*3 CSHO
-      CSHO='PYT'
-      END
-
-      SUBROUTINE ALSHEN
-      END
-
-      SUBROUTINE ALSHER(I)
-      INTEGER I
-      I=0
-      RETURN
-      END
-C----------------------------------------------------------------------
-      SUBROUTINE ALSHIN(I)
-C----------------------------------------------------------------------
-C     subroutine to initialise the events
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-#include "AlpGen_i/alpsho.inc"
-      INTEGER I
-C--LOCAL VARIABLES
-C     EASY-TEXT
-      CHARACTER*10 CGIVE
-      CHARACTER*12 CGIV2
-      CHARACTER*32 CPASS
-C LOCAL VARIABLES
-      DOUBLE PRECISION MQ
-      INTEGER IQ
-C COMMUNICATION CODE
-      I=661
-C FILL IN PYTHIA SPECIFIC INPUTS
-      IF(MC.NE.0.) THEN
-        IQ=4
-        MQ=MC
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF 
-      IF(MB.NE.0.) THEN
-        IQ=5
-        MQ=MB
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF 
-      IF(MT.NE.0.) THEN
-        IQ=6
-        MQ=MT
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF 
-      IF(MW.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MW
-        CPASS='PMAS(24,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(24,1)=MW
-      ENDIF
-      IF(MZ.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MZ
-        CPASS='PMAS(23,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(23,1)=MZ
-      ENDIF
-      IF(MH.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MH
-        CPASS='PMAS(25,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(25,1)=MH
-      ENDIF
-      END
-
-C-----------------------------------------------------------------------
-      SUBROUTINE ALSFIN
-C-----------------------------------------------------------------------
-C     PYTHIA END OF FILE TREATMENT
-C-----------------------------------------------------------------------
-C--   GUP Event common block
-#include "GeneratorFortranCommon/hepeup.inc"
-      NUP=0
-      END
-
-C----------------------------------------------------------------------
-      SUBROUTINE MGSHIN(I)
-C----------------------------------------------------------------------
-C     subroutine to initialise the events FOR MADGRAPH ONLY
-C----------------------------------------------------------------------
-      IMPLICIT NONE
-#include "MadGraph_i/madsho.inc"
-      INTEGER I
-C--LOCAL VARIABLES
-C     EASY-TEXT
-      CHARACTER*10 CGIVE
-      CHARACTER*12 CGIV2
-      CHARACTER*32 CPASS
-C LOCAL VARIABLES
-      DOUBLE PRECISION MQ
-      INTEGER IQ
-C COMMUNICATION CODE
-      I=661
-C FILL IN PYTHIA SPECIFIC INPUTS for SM
-      IF(MC.NE.0.) THEN
-        IQ=4
-        MQ=MC
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF
-      IF(MB.NE.0.) THEN
-        IQ=5
-        MQ=MB
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF
-      IF(MT.NE.0.) THEN
-        IQ=6
-        MQ=MT
-        WRITE(CGIVE,'(I5)') IQ
-        WRITE(CGIV2,'(D12.5)') MQ
-        CPASS='PMAS('//CGIVE//',1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(IQ,1)=MQ
-      ENDIF
-      IF(MW.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MW
-        CPASS='PMAS(24,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(24,1)=MW
-      ENDIF
-      IF(MZ.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MZ
-        CPASS='PMAS(23,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(23,1)=MZ
-      ENDIF
-      IF(MH.NE.0.) THEN
-        WRITE(CGIV2,'(D12.5)') MH
-        CPASS='PMAS(25,1)='//CGIV2
-        CALL PYGIVE(CPASS)
-C     PMAS(25,1)=MH
-      ENDIF
-      END
-
diff --git a/Generators/Pythia_i/src/cldcay.F b/Generators/Pythia_i/src/cldcay.F
deleted file mode 100644
index 5d4b5824f2143a6ec536389685aec31d67242a8d..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/cldcay.F
+++ /dev/null
@@ -1,8 +0,0 @@
-      SUBROUTINE CLDCAY(LUN)
-      IMPLICIT NONE
-      INTEGER LUN
-
-      CLOSE(LUN)
-
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/components/Pythia_i_entries.cxx b/Generators/Pythia_i/src/components/Pythia_i_entries.cxx
deleted file mode 100644
index b2204be8a0facf00b444cefe7a471488c12a7d98..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/components/Pythia_i_entries.cxx
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "Pythia_i/Pythia.h"
-
-DECLARE_COMPONENT( Pythia )
-
diff --git a/Generators/Pythia_i/src/extproc.F b/Generators/Pythia_i/src/extproc.F
deleted file mode 100644
index fcdb62b4dbbdc2c2d7164499d054f494342abd74..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/extproc.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      SUBROUTINE EXTPROC(IPROC)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-#include "GeneratorFortranCommon/lesatlas.inc"
-      ATLASCHOICE = IPROC
-
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gatlastaula_decres_py.F b/Generators/Pythia_i/src/gatlastaula_decres_py.F
deleted file mode 100644
index d1232a04495e05b3efd17a7fcd95542aa21bd4e3..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gatlastaula_decres_py.F
+++ /dev/null
@@ -1,22 +0,0 @@
-C FORKING ROUTINE TO DECAY LEFTOVER RESONANCES IN PYTHIA
-      SUBROUTINE TAUOLA_DECRES_PY(ISTART)
-
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      INTEGER ISTART
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-
-      PARAMETER (NMXHEP=10000)
-      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
-     &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
-      DOUBLE PRECISION PHEP,VHEP
-      SAVE /HEPEVT/
-
-      MSTU(12)=12345 ! PREVENT TOO MANY LOGOS
-      
-      CALL PYHEPC(2)
-C---DO UNSTABLE PARTICLE DECAYS
-      CALL PYEXEC               ! DECAY AN ODD PION...
-      CALL PYHEPC(1)
-c      CALL PYLIST(2)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/glhefinfo.F b/Generators/Pythia_i/src/glhefinfo.F
deleted file mode 100644
index b31849e8a74053616a19b18c806b23972327089f..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/glhefinfo.F
+++ /dev/null
@@ -1,12 +0,0 @@
-      FVOIDP FUNCTION LHEFINFO_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER PARTID1,PARTID2 
-      DOUBLE PRECISION PARTX1,PARTX2,SCALEPDF,XPDF1,XPDF2
-
-      COMMON/LHEFINFO/PARTID1,PARTID2,PARTX1,PARTX2,SCALEPDF,XPDF1,XPDF2
-c      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      
-      LHEFINFO_ADDRESS = GETADDR(PARTID1)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpydat1.F b/Generators/Pythia_i/src/gpydat1.F
deleted file mode 100644
index 35cb472d5928e33031d982920982da7985c7df59..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpydat1.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYDAT1_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER MSTU,MSTJ
-      DOUBLE PRECISION PARU,PARJ
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYDAT1_ADDRESS = GETADDR(MSTU(1))
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpydat2.F b/Generators/Pythia_i/src/gpydat2.F
deleted file mode 100644
index c4f6fb28bc3a9505493f93f177ba6e852122acc1..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpydat2.F
+++ /dev/null
@@ -1,13 +0,0 @@
-      FVOIDP FUNCTION PYDAT2_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NSUB,NPAR,NKDP,NPDP,NVDM
-      PARAMETER (NSUB=500,NPAR=2000,NKDP=4,NPDP=4,NVDM=4)
-      INTEGER KCHG
-      DOUBLE PRECISION PMAS,PARF,VCKM  
-      COMMON/PYDAT2/KCHG(NSUB,NKDP),PMAS(NSUB,NPDP),PARF(NPAR),
-     &     VCKM(NVDM,NVDM)
-      FVOIDP GETADDR 
-
-      PYDAT2_ADDRESS = GETADDR(KCHG)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpydat3.F b/Generators/Pythia_i/src/gpydat3.F
deleted file mode 100644
index 13d7ab1f32068b95ad9b2a6b73da1efbc62b718d..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpydat3.F
+++ /dev/null
@@ -1,14 +0,0 @@
-      FVOIDP FUNCTION PYDAT3_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NSUB,NPAR,NMDCY,NMDME,NKFDP
-      PARAMETER (NSUB=500,NPAR=8000,NMDCY=3,NMDME=2,NKFDP=5)
-      INTEGER MDCY,MDME,KFDP
-      DOUBLE PRECISION BRAT
-      COMMON/PYDAT3/MDCY(NSUB,NMDCY),MDME(NPAR,NMDME),BRAT(NPAR),
-     &     KFDP(NPAR,NKFDP)
-      
-      FVOIDP GETADDR 
-
-      PYDAT3_ADDRESS = GETADDR(MDCY(1,1))
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpydat3_61.F b/Generators/Pythia_i/src/gpydat3_61.F
deleted file mode 100644
index e722eeff8ea28b6fd50d232d656371e3b5666768..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpydat3_61.F
+++ /dev/null
@@ -1,14 +0,0 @@
-      FVOIDP FUNCTION PYDAT3_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NSUB,NPAR,NMDCY,NMDME,NKFDP
-      PARAMETER (NSUB=500,NPAR=4000,NMDCY=3,NMDME=2,NKFDP=5)
-      INTEGER MDCY,MDME,KFDP
-      DOUBLE PRECISION BRAT
-      COMMON/PYDAT3/MDCY(NSUB,NMDCY),MDME(NPAR,NMDME),BRAT(NPAR),
-     &     KFDP(NPAR,NKFDP)
-      
-      FVOIDP GETADDR 
-
-      PYDAT3_ADDRESS = GETADDR(MDCY(1,1))
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpydat3_62.F b/Generators/Pythia_i/src/gpydat3_62.F
deleted file mode 100644
index 13d7ab1f32068b95ad9b2a6b73da1efbc62b718d..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpydat3_62.F
+++ /dev/null
@@ -1,14 +0,0 @@
-      FVOIDP FUNCTION PYDAT3_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NSUB,NPAR,NMDCY,NMDME,NKFDP
-      PARAMETER (NSUB=500,NPAR=8000,NMDCY=3,NMDME=2,NKFDP=5)
-      INTEGER MDCY,MDME,KFDP
-      DOUBLE PRECISION BRAT
-      COMMON/PYDAT3/MDCY(NSUB,NMDCY),MDME(NPAR,NMDME),BRAT(NPAR),
-     &     KFDP(NPAR,NKFDP)
-      
-      FVOIDP GETADDR 
-
-      PYDAT3_ADDRESS = GETADDR(MDCY(1,1))
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpydatr.F b/Generators/Pythia_i/src/gpydatr.F
deleted file mode 100644
index 40f670a1a71571145fed1855b2c691e777713f0b..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpydatr.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYDATR_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER MRPY
-      DOUBLE PRECISION RRPY
-      COMMON/PYDATR/MRPY(6),RRPY(100)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYDATR_ADDRESS = GETADDR(MRPY(1))
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpyint1.F b/Generators/Pythia_i/src/gpyint1.F
deleted file mode 100644
index a00baeb6aac9fc7434dfddf1b24813abb0200ace..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpyint1.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYINT1_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER MINT
-      DOUBLE PRECISION VINT
-      COMMON/PYINT1/MINT(400),VINT(400)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYINT1_ADDRESS = GETADDR(MINT(1))
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpyint2.F b/Generators/Pythia_i/src/gpyint2.F
deleted file mode 100644
index 7bc1a12adfc960abde9b02c41e84ea80838b9083..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpyint2.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYINT2_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER ISET,KFPR,ICOL
-      DOUBLE PRECISION COEF
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYINT2_ADDRESS = GETADDR(ISET(1))
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpyint5.F b/Generators/Pythia_i/src/gpyint5.F
deleted file mode 100644
index 8e81c3fff6b2ee9324f2cbf8e5bdad071301a555..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpyint5.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYINT5_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NGENPD,NGEN
-      DOUBLE PRECISION XSEC
-      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYINT5_ADDRESS = GETADDR(NGENPD)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpymsrv.F b/Generators/Pythia_i/src/gpymsrv.F
deleted file mode 100644
index b502381e49772168e10ce2579954a69b94c3fa0a..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpymsrv.F
+++ /dev/null
@@ -1,14 +0,0 @@
-      FVOIDP FUNCTION PYMSRV_ADDRESS() 
-      IMPLICIT NONE
-      DOUBLE PRECISION RVLAM
-      DOUBLE PRECISION RVLAMP
-      DOUBLE PRECISION RVLAMB
-C      DATA RVLAM/27*0D0/
-C      DATA RVLAMP/27*0D0/
-C      DATA RVLAMB/27*0D0/
-      COMMON/PYMSRV/RVLAM(3,3,3), RVLAMP(3,3,3), RVLAMB(3,3,3)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYMSRV_ADDRESS = GETADDR(RVLAM)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpymssm.F b/Generators/Pythia_i/src/gpymssm.F
deleted file mode 100644
index 45efaadf57c2b5479c4697b95b11aee874a55bb3..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpymssm.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYMSSM_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER ISSM
-      DOUBLE PRECISION RSSM
-      COMMON /PYMSSM/ ISSM(0:99),RSSM(0:99)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYMSSM_ADDRESS = GETADDR(ISSM)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpypars.F b/Generators/Pythia_i/src/gpypars.F
deleted file mode 100644
index ccd83153ee3e03a096c7d6cc72766e5cd15a559f..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpypars.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      FVOIDP FUNCTION PYPARS_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER MSTP,MSTI
-      DOUBLE PRECISION PARP,PARI
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-
-      PYPARS_ADDRESS = GETADDR(MSTP(1))
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpypevwt.F b/Generators/Pythia_i/src/gpypevwt.F
deleted file mode 100644
index 6dfecba3623f32e6882372ea37e6bdd8ed5c1dba..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpypevwt.F
+++ /dev/null
@@ -1,9 +0,0 @@
-      FVOIDP FUNCTION PYPEVWT_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER IEVWT
-      DOUBLE PRECISION REVWT
-      COMMON /PYPEVWT/ IEVWT(0:99),REVWT(0:99)
-      FVOIDP GETADDR
-      PYPEVWT_ADDRESS = GETADDR(IEVWT)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpypued.F b/Generators/Pythia_i/src/gpypued.F
deleted file mode 100644
index bd3ccd28ab1816f32a3ca54ed395a568fe00fc57..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpypued.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYPUED_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER IUED
-      DOUBLE PRECISION RUED
-      COMMON /PYPUED/ IUED(0:99),RUED(0:99)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYPUED_ADDRESS = GETADDR(IUED)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpyssmt.F b/Generators/Pythia_i/src/gpyssmt.F
deleted file mode 100644
index 1e0a5eda76ed12c62282a900099f0353a517b745..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpyssmt.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYSSMT_ADDRESS() 
-      IMPLICIT NONE
-      DOUBLE PRECISION ZMIX, UMIX, VMIX, SMZ, SMW, SFMIX
-      COMMON /PYSSMT/ ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
-     &     SFMIX(16,4)
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYSSMT_ADDRESS = GETADDR(ZMIX)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpysubs.F b/Generators/Pythia_i/src/gpysubs.F
deleted file mode 100644
index 137d825e28e6d37a517aff28dec6f565180492e1..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpysubs.F
+++ /dev/null
@@ -1,13 +0,0 @@
-      FVOIDP FUNCTION PYSUBS_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER NSUB,NKIN,NFLAV
-      PARAMETER (NSUB=500,NKIN=200,NFLAV=40)
-      INTEGER MSEL,MSELPD,MSUB,KFIN
-      DOUBLE PRECISION CKIN
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(NSUB),KFIN(2,-NFLAV:NFLAV),
-     &     CKIN(NKIN)
-      FVOIDP GETADDR 
-
-      PYSUBS_ADDRESS = GETADDR(MSEL)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/gpytcsm.F b/Generators/Pythia_i/src/gpytcsm.F
deleted file mode 100644
index d8c6913842cf6733b30a8638c21468d42cf3ad47..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/gpytcsm.F
+++ /dev/null
@@ -1,10 +0,0 @@
-      FVOIDP FUNCTION PYTCSM_ADDRESS() 
-      IMPLICIT NONE
-      INTEGER ITCM
-      DOUBLE PRECISION RTCM
-      COMMON/PYTCSM/ITCM(0:99),RTCM(0:99)  
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
-      FVOIDP GETADDR
-      PYTCSM_ADDRESS = GETADDR(ITCM)
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/initpyblock.F b/Generators/Pythia_i/src/initpyblock.F
deleted file mode 100644
index 881870dda46d818bb2c6ab8e17fce7733dc864a8..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/initpyblock.F
+++ /dev/null
@@ -1,33 +0,0 @@
-      SUBROUTINE INITPYBLOCK(LULIS,FILLIS)
-      IMPLICIT NONE
- 
-      EXTERNAL PYDATA ! All that is required to force loading of BLOCK DATA
- 
-      COMMON/PYDAT4/CHAF(500,2)
-      CHARACTER CHAF*16
-      integer LULIS,IERR
-c      CHARACTER* FILLIS
-      character(len=*) FILLIS
-c       This is the listing filefile
-
-c      write(6,*) '<<<<<<<<< Hello from initpyblock >>>>>>>  ' 
-c      write(6,*) CHAF(1,1), CHAF(1,2)
-c      write(6,*) CHAF(100,1), CHAF(100,2)
-
-C          Open for write the pythia listing file File
-C          ====================================
-C    
-      IF(LULIS.GT.0)THEN
-         OPEN ( UNIT=LULIS, FORM='FORMATTED',
-     &         FILE=FILLIS,STATUS='NEW',IOSTAT=IERR)
-         IF(IERR.NE.0)   THEN
-            WRITE(6,*)
-     &           'Error ', IERR,' failing to open PYTHIA Listing file'
-            RETURN
-         ELSE
-            WRITE(6,*)
-     &       'Open PYTHIA Listing  file'
-         ENDIF
-      ENDIF
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/opdcay.F b/Generators/Pythia_i/src/opdcay.F
deleted file mode 100644
index 98cf65a9edc212c12adf00e8a7b05fcb74ea440f..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/opdcay.F
+++ /dev/null
@@ -1,21 +0,0 @@
-      INTEGER FUNCTION OPDCAY(FNAME,LUN,MODE)
-      IMPLICIT NONE
-      CHARACTER*(*) FNAME
-      CHARACTER*1 MODE
-      INTEGER LUN
-
-      IF (MODE.eq.'W') THEN
-ccc      OPEN(UNIT=LUN,NAME=FNAME,ERR=99) ! gfortran incompatible
-         OPEN(UNIT=LUN,FILE=FNAME,ERR=99)
-      ELSE
-ccc      OPEN(UNIT=LUN,NAME=FNAME,STATUS='OLD',ERR=99)! gfortran incompatible
-         OPEN(UNIT=LUN,FILE=FNAME,STATUS='OLD',ERR=99)
-      ENDIF
-      
-      OPDCAY=0
-      RETURN
-
-C     ERROR OPENING FILE
- 99   OPDCAY=1
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/openrandom.F b/Generators/Pythia_i/src/openrandom.F
deleted file mode 100644
index 060edf42056c70606947ba95470ec46cdbc0db06..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/openrandom.F
+++ /dev/null
@@ -1,39 +0,0 @@
-      INTEGER FUNCTION OPENRANDOM(OPTION,LULIS,FILLIS)
-      IMPLICIT NONE
- 
-      integer LULIS,IERR,OPTION
-      CHARACTER*60 FILLIS
-
-C          Open for write the pythia random number File
-C          ====================================
-C
-      OPENRANDOM = 0
-      IF(LULIS.GT.0 .and. OPTION .gt.0)THEN
-         IF(OPTION .eq. 1) THEN
-            OPEN ( UNIT=LULIS, FORM='UNFORMATTED',
-     &           FILE=FILLIS,STATUS='UNKNOWN',IOSTAT=IERR)
-         ELSEIF (OPTION .eq. 2) THEN
-            OPEN ( UNIT=LULIS, FORM='UNFORMATTED',
-     &           FILE=FILLIS,STATUS='OLD',IOSTAT=IERR)
-         ENDIF
-         IF(IERR.NE.0)   THEN
-            WRITE(6,*) 'Error ', IERR,
-     &      ' failing to open PYTHIA Random Number file'
-            RETURN
-         ELSE
-            WRITE(6,*) 'Open PYTHIA Random Number file'
-         ENDIF
-      ENDIF
-
-C     When in reading mode count the number of records in the file
-      IF (OPTION .eq. 2) THEN
-         DO
-           READ(LULIS,END=120,IOSTAT=IERR)
-           OPENRANDOM = OPENRANDOM + 1
-         ENDDO
- 120     REWIND(LULIS)
-      ENDIF
-      
-      RETURN
-
-      END
diff --git a/Generators/Pythia_i/src/opensusyfile.F b/Generators/Pythia_i/src/opensusyfile.F
deleted file mode 100644
index 28c5eabd094d2a7bdf59203c09d91d84e53e28fd..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/opensusyfile.F
+++ /dev/null
@@ -1,31 +0,0 @@
-      Subroutine opensusyfile(filnam,iunit)
-      character*(*)  filnam
-      integer iunit
-c-----------------------------------------------------------------------
-c  open the SUSY file
-c-----------------------------------------------------------------------
-      write(*,*) ' '
-      write (*,6660)
- 6660 format (' SUSY filename is ')
-      write (*,*) filnam
-      write (*,6664) iunit
- 6664 format ('      and unit number is ',i6)
-C
-      open(unit=iunit,file=filnam,status='old',err=101)
-      goto 102
-c-----------------------------------------------------------------------
-c  error: can't open SUSY file
-c-----------------------------------------------------------------------
- 101  continue
-      write(*,*) ' '
-      write(*,*) ' ********************************************* '
-      write(*,*) ' '
-      write(*,*) 
-     $     ' Error in opening SUSY file for READING'
-      write(*,*)
-     $     ' Program will abort.'
-      write(*,*) ' '
-      write(*,*) ' ********************************************* '
-      write(*,*) ' '
- 102  continue
-      end
diff --git a/Generators/Pythia_i/src/parout.F b/Generators/Pythia_i/src/parout.F
deleted file mode 100644
index 9bf294bbf0f21677788b518f30ad763155d5f405..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/parout.F
+++ /dev/null
@@ -1,37 +0,0 @@
-      SUBROUTINE PAROUT(IMODE)
-
-C______________________________________________________________________________
-C AUTHOR LMijovic
-C helper subroutine for redirecting part of Pythia output to a separate file
-C______________________________________________________________________________
-
-      LOGICAL ISFILE
-      INTEGER IFOUT1, IFOUT2
-
-C     if the values are changed also change the MSTU(11) setting below
-C     file for pythia parameter values after initialization 
-      IFOUT1=7
-C     file for pythia parameter values after event generation 
-      IFOUT2=8  
-    
-      IF (IMODE .EQ. 1) THEN
-         CALL PYGIVE("MSTU(11)=7")
-         INQUIRE(FILE='par_after_init.out',EXIST=ISFILE)
-         IF (ISFILE .EQV. .TRUE.) THEN
-            OPEN(IFOUT1,FILE='after_init.out',STATUS='OLD',ERR=3001)
-         ELSE
-            OPEN(IFOUT1,FILE='after_init.out',STATUS='NEW',ERR=3001)
-         ENDIF
-      ELSE IF (IMODE .EQ. 2) THEN
-         CALL PYGIVE("MSTU(11)=8")
-         OPEN(IFOUT2,FILE='after_gen.out',STATUS='NEW',ERR=3001)
-      ELSE IF (IMODE .EQ. 3) THEN
-         CALL PYGIVE("MSTU(11)=8")
-         OPEN(IFOUT2,FILE='after_gen.out',STATUS='OLD',ERR=3001)
-      ENDIF
-      
-      RETURN
-      
- 3001 WRITE (*,*) 'could not open file for writing'
-      
-      END
diff --git a/Generators/Pythia_i/src/pyr.F b/Generators/Pythia_i/src/pyr.F
deleted file mode 100644
index 382e63207c6ace0ecbc4e14d05e23c14de46c598..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/pyr.F
+++ /dev/null
@@ -1,7 +0,0 @@
-      FUNCTION PYR(IDUMMY)
-      DOUBLE PRECISION PYR, ATL_PYR
-      INTEGER IDUMMY
- 100  PYR=ATL_PYR(IDUMMY)
-      IF(PYR.LE.0D0.OR.PYR.GE.1D0) GOTO 100
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/pysghg_ChL.f b/Generators/Pythia_i/src/pysghg_ChL.f
deleted file mode 100644
index 623e67ca01c3b43ad89eadd2dc623b7918b8893a..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/pysghg_ChL.f
+++ /dev/null
@@ -1,1384 +0,0 @@
-C...PYSGHG
-C...Subprocess cross sections for Higgs processes,
-C...except Higgs pairs in PYSGSU, but including WW scattering.
-C...Auxiliary to PYSIGH.
-c
-c modified according to:
-c >> Proc. of the Workshop on Standard Model (and more) at the LHC,
-c >> CERN 2000-004, chapt. on Electroweak Physics, Haywood et al., eq. (72)
-c >> AL1 = a4, as defined in figures of hep-ph/9912224
-c >> AL2 = a5, as defined in figures of hep-ph/9912224
-c
-c
-
- 
-      SUBROUTINE PYSGHG(NCHN,SIGS)
- 
-C...Double precision and integer declarations
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-C      INTEGER PYK,PYCHGE,PYCOMP
-C...Parameter statement to help give large particle numbers.
-      PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
-     &KEXCIT=4000000,KDIMEN=5000000)
-C...Commonblocks
-      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
-      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
-      COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
-      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
-      COMMON/PYINT1/MINT(400),VINT(400)
-      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
-      COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
-      COMMON/PYINT4/MWID(500),WIDS(500,5)
-      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
-      COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
-      COMMON/PYSGCM/ISUB,ISUBSV,MMIN1,MMAX1,MMIN2,MMAX2,MMINA,MMAXA,
-     &KFAC(2,-40:40),COMFAC,FACK,FACA,SH,TH,UH,SH2,TH2,UH2,SQM3,SQM4,
-     &SHR,SQPTH,TAUP,BE34,CTH,X(2),SQMZ,SQMW,GMMZ,GMMW,
-     &AEM,AS,XW,XW1,XWC,XWV,POLL,POLR,POLLL,POLRR
-      SAVE /PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,/PYINT1/,/PYINT2/,
-     &/PYINT3/,/PYINT4/,/PYSUBS/,/PYMSSM/,/PYSGCM/
-C...Local arrays and complex variables
-      DIMENSION WDTP(0:400),WDTE(0:400,0:5)
-      COMPLEX*16 A004,A204,A114,A00U,A20U,A11U
-      COMPLEX*16 CIGTOT,CIZTOT,F0ALP,F1ALP,F2ALP,F0BET,F1BET,F2BET,FIF
- 
-C...Convert H or A process into equivalent h one
-      IHIGG=1
-      KFHIGG=25
-      IF(ISUB.EQ.401.OR.ISUB.EQ.402) THEN
-         KFHIGG=KFPR(ISUB,1)
-      END IF
-      IF((ISUB.GE.151.AND.ISUB.LE.160).OR.(ISUB.GE.171.AND.
-     &ISUB.LE.190)) THEN
-        IHIGG=2
-        IF(MOD(ISUB-1,10).GE.5) IHIGG=3
-        KFHIGG=33+IHIGG
-        IF(ISUB.EQ.151.OR.ISUB.EQ.156) ISUB=3
-        IF(ISUB.EQ.152.OR.ISUB.EQ.157) ISUB=102
-        IF(ISUB.EQ.153.OR.ISUB.EQ.158) ISUB=103
-        IF(ISUB.EQ.171.OR.ISUB.EQ.176) ISUB=24
-        IF(ISUB.EQ.172.OR.ISUB.EQ.177) ISUB=26
-        IF(ISUB.EQ.173.OR.ISUB.EQ.178) ISUB=123
-        IF(ISUB.EQ.174.OR.ISUB.EQ.179) ISUB=124
-        IF(ISUB.EQ.181.OR.ISUB.EQ.186) ISUB=121
-        IF(ISUB.EQ.182.OR.ISUB.EQ.187) ISUB=122
-        IF(ISUB.EQ.183.OR.ISUB.EQ.188) ISUB=111
-        IF(ISUB.EQ.184.OR.ISUB.EQ.189) ISUB=112
-        IF(ISUB.EQ.185.OR.ISUB.EQ.190) ISUB=113
-      ENDIF
-      SQMH=PMAS(KFHIGG,1)**2
-      GMMH=PMAS(KFHIGG,1)*PMAS(KFHIGG,2)
- 
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-      IF((MSTP(46).GE.3.AND.MSTP(46).LE.6).AND.(ISUB.EQ.71.OR.ISUB.EQ.
-     &72.OR.ISUB.EQ.73.OR.ISUB.EQ.76.OR.ISUB.EQ.77)) THEN
-C...Calculate M_R and N_R functions for Higgs-like and QCD-like models
-        IF(MSTP(46).LE.4) THEN
-          HDTLH=LOG(PMAS(25,1)/PARP(44))
-          HDTMR=(4.5D0*PARU(1)/SQRT(3D0)-74D0/9D0)/8D0+HDTLH/12D0
-          HDTNR=-(1D0/18D0)+HDTLH/6D0
-        ELSE
-          HDTNM=0.125D0*(1D0/(288D0*PARU(1)**2)+(PARP(47)/PARP(45))**2)
-          HDTLQ=LOG(PARP(45)/PARP(44))
-          HDTMR=-((4D0*PARU(1))**2*0.5D0*HDTNM)+HDTLQ/12D0
-          HDTNR=(4D0*PARU(1))**2*HDTNM+HDTLQ/6D0
-        ENDIF
- 
-C...Calculate lowest and next-to-lowest order partial wave amplitudes
-        HDTV=1D0/(16D0*PARU(1)*PARP(47)**2)
-        A00L=DBLE(HDTV*SH)
-        A20L=-(0.5D0*A00L)
-        A11L=A00L/6D0
-c >> ga
-c >> following lines removed and replaced to apply the amplitudes given in
-c >> Proc. of the Workshop on Standard Model (and more) at the LHC,
-c >> CERN 2000-004, chapt. on Electroweak Physics, Haywood et al., eq. (72)
-c >> AL1 = a4, as defined in figures of hep-ph/9912224
-c >> AL2 = a5, as defined in figures of hep-ph/9912224
-c
-c        HDTLS=LOG(SH/PARP(44)**2)
-c        A004=DBLE((HDTV*SH)**2/(4D0*PARU(1)))*
-c     &  CMPLX(DBLE((176D0*HDTMR+112D0*HDTNR)/3D0+11D0/27D0-
-c     &  (50D0/9D0)*HDTLS),DBLE(4D0*PARU(1)))
-c        A204=DBLE((HDTV*SH)**2/(4D0*PARU(1)))*
-c     &  CMPLX(DBLE(32D0*(HDTMR+2D0*HDTNR)/3D0+25D0/54D0-
-c     &  (20D0/9D0)*HDTLS),DBLE(PARU(1)))
-c        A114=DBLE((HDTV*SH)**2/(6D0*PARU(1)))*
-c     &  CMPLX(DBLE(4D0*(-2D0*HDTMR+HDTNR)-1D0/18D0),DBLE(PARU(1)/6D0))
-        AL1=PARP(199)
-        AL2=PARP(200)
-        pi=paru(1)
-        VV=PARP(47)
-        HDTLS=LOG(SH/PARP(45)**2)
-        A004=A00L*SH/(4D0*VV**2)* (
-     &  16D0*(11*AL2+7*AL1)/3D0+
-     &  CMPLX(SNGL((101D0/9D0-50D0*HDTLS/9D0)/(16D0*PI**2)),
-     &             SNGL(1./(4D0*PI)))
-     &  )
-        A114=A11L*SH/VV**2* (
-     &  4D0*(AL1-2*AL2)+
-     &  (1./(16D0*PI**2))*CMPLX(SNGL(1.D0/9.D0),SNGL(PI/6D0))
-     &  )
-        A204=-((A20L*SH)/(2D0*VV**2)* (
-     &  32D0*(AL2+2*AL1)/3D0+
-     &  CMPLX(SNGL((273D0/54D0-20D0*HDTLS/9D0)/(16D0*PI**2)),
-     &             SNGL(1./(16D0*PI)))
-     &  ))
-C ga <<   
-        write(*,*) "!"
-C...Unitarize partial wave amplitudes with Pade or K-matrix method
-        IF(MSTP(46).EQ.3.OR.MSTP(46).EQ.5) THEN
-          A00U=A00L/(1D0-A004/A00L)
-          A20U=A20L/(1D0-A204/A20L)
-          A11U=A11L/(1D0-A114/A11L)
-        ELSE
-          A00U=(A00L+DBLE(A004))/(1D0-DCMPLX(0.D0,A00L+DBLE(A004)))
-          A20U=(A20L+DBLE(A204))/(1D0-DCMPLX(0.D0,A20L+DBLE(A204)))
-          A11U=(A11L+DBLE(A114))/(1D0-DCMPLX(0.D0,A11L+DBLE(A114)))
-        ENDIF
-      ENDIF
- 
-C...Differential cross section expressions.
- 
-      IF(ISUB.LE.60) THEN
-        IF(ISUB.EQ.3) THEN
-C...f + fbar -> h0 (or H0, or A0)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          HP=AEM/(8D0*XW)*SH/SQMW*SH
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          DO 100 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 100
-            IA=IABS(I)
-            RMQ=PYMRUN(IA,SH)**2/SH
-            HI=HP*RMQ
-            IF(IA.LE.10) HI=HP*RMQ*FACA/3D0
-            IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
-              IKFI=1
-              IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
-              IF(IA.GT.10) IKFI=3
-              HI=HI*PARU(150+10*IHIGG+IKFI)**2
-              IF(IMSS(1).NE.0.AND.IA.EQ.5) THEN
-                HI=HI/(1D0+RMSS(41))**2
-                IF(IHIGG.NE.3) THEN
-                  HI=HI*(1D0+RMSS(41)*PARU(152+10*IHIGG)/
-     &            PARU(151+10*IHIGG))**2
-                ENDIF
-              ENDIF
-            ENDIF
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=HI*FACBW*HF
-  100     CONTINUE
- 
-        ELSEIF(ISUB.EQ.5) THEN
-C...Z0 + Z0 -> h0
-          CALL PYWIDT(25,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(25,1)).GT.PARP(48)*PMAS(25,2)) FACBW=0D0
-          HP=AEM/(8D0*XW)*SH/SQMW*SH
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          HI=HP/4D0
-          FACI=8D0/(PARU(1)**2*XW1)*(AEM*XWC)**2
-          DO 120 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 120
-            DO 110 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 110
-              EI=KCHG(IABS(I),1)/3D0
-              AI=SIGN(1D0,EI)
-              VI=AI-4D0*EI*XWV
-              EJ=KCHG(IABS(J),1)/3D0
-              AJ=SIGN(1D0,EJ)
-              VJ=AJ-4D0*EJ*XWV
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACI*(VI**2+AI**2)*(VJ**2+AJ**2)*HI*FACBW*HF
-  110       CONTINUE
-  120     CONTINUE
- 
-        ELSEIF(ISUB.EQ.8) THEN
-C...W+ + W- -> h0
-          CALL PYWIDT(25,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(25,1)).GT.PARP(48)*PMAS(25,2)) FACBW=0D0
-          HP=AEM/(8D0*XW)*SH/SQMW*SH
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          HI=HP/2D0
-          FACI=1D0/(4D0*PARU(1)**2)*(AEM/XW)**2
-          DO 140 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 140
-            EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
-            DO 130 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 130
-              EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
-              IF(EI*EJ.GT.0D0) GOTO 130
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACI*VINT(180+I)*VINT(180+J)*HI*FACBW*HF
-  130       CONTINUE
-  140     CONTINUE
- 
-        ELSEIF(ISUB.EQ.24) THEN
-C...f + fbar -> Z0 + h0 (or H0, or A0)
-C...Propagators: Z0, h0 as simulated in PYOFSH and as desired
-          HBW3=GMMZ/((SQM3-SQMZ)**2+GMMZ**2)
-          CALL PYWIDT(23,SQM3,WDTP,WDTE)
-          GMMZ3=SQRT(SQM3)*WDTP(0)
-          HBW3C=GMMZ3/((SQM3-SQMZ)**2+GMMZ3**2)
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          GMMH4=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMH4/((SQM4-SQMH)**2+GMMH4**2)
-          THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
-          FACHZ=COMFAC*(HBW3C/HBW3)*(HBW4C/HBW4)*8D0*(AEM*XWC)**2*
-     &    (THUH+2D0*SH*SQM3)/((SH-SQMZ)**2+GMMZ**2)
-          FACHZ=FACHZ*WIDS(23,2)*WIDS(KFHIGG,2)
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACHZ=FACHZ*
-     &    PARU(154+10*IHIGG)**2
-          DO 150 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 150
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            FCOI=1D0
-            IF(IABS(I).LE.10) FCOI=FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACHZ*FCOI*(VI**2+AI**2)
-  150     CONTINUE
- 
-        ELSEIF(ISUB.EQ.26) THEN
-C...f + fbar' -> W+/- + h0 (or H0, or A0)
-C...Propagators: W+-, h0 as simulated in PYOFSH and as desired
-          HBW3=GMMW/((SQM3-SQMW)**2+GMMW**2)
-          CALL PYWIDT(24,SQM3,WDTP,WDTE)
-          GMMW3=SQRT(SQM3)*WDTP(0)
-          HBW3C=GMMW3/((SQM3-SQMW)**2+GMMW3**2)
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          GMMH4=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMH4/((SQM4-SQMH)**2+GMMH4**2)
-          THUH=MAX(TH*UH-SQM3*SQM4,SH*CKIN(3)**2)
-          FACHW=COMFAC*0.125D0*(AEM/XW)**2*(THUH+2D0*SH*SQM3)/
-     &    ((SH-SQMW)**2+GMMW**2)*(HBW3C/HBW3)*(HBW4C/HBW4)
-          FACHW=FACHW*WIDS(KFHIGG,2)
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACHW=FACHW*
-     &    PARU(155+10*IHIGG)**2
-          DO 170 I=MMIN1,MMAX1
-            IA=IABS(I)
-            IF(I.EQ.0.OR.IA.GT.20.OR.KFAC(1,I).EQ.0) GOTO 170
-            DO 160 J=MMIN2,MMAX2
-              JA=IABS(J)
-              IF(J.EQ.0.OR.JA.GT.20.OR.KFAC(1,J).EQ.0) GOTO 160
-              IF(I*J.GT.0.OR.MOD(IA+JA,2).EQ.0) GOTO 160
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 160
-              KCHW=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              FCKM=1D0
-              IF(IA.LE.10) FCKM=VCKM((IA+1)/2,(JA+1)/2)
-              FCOI=1D0
-              IF(IA.LE.10) FCOI=FACA/3D0
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACHW*FCOI*FCKM*WIDS(24,(5-KCHW)/2)
-  160       CONTINUE
-  170     CONTINUE
- 
-        ELSEIF(ISUB.EQ.32) THEN
-C...f + g -> f + h0 (q + g -> q + h0 only)
-          FHCQ=COMFAC*FACA*AS*AEM/XW*1D0/24D0
-C...H propagator: as simulated in PYOFSH and as desired
-          SQMHC=PMAS(25,1)**2
-          GMMHC=PMAS(25,1)*PMAS(25,2)
-          HBW4=GMMHC/((SQM4-SQMHC)**2+GMMHC**2)
-          CALL PYWIDT(25,SQM4,WDTP,WDTE)
-          GMMHCC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMHCC/((SQM4-SQMHC)**2+GMMHCC**2)
-          FHCQ=FHCQ*HBW4C/HBW4
-          DO 190 I=MMINA,MMAXA
-            IA=IABS(I)
-            IF(IA.NE.5) GOTO 190
-            SQML=PYMRUN(IA,SH)**2
-            SQMQ=PMAS(IA,1)**2
-            FACHCQ=FHCQ*SQML/SQMW*
-     &      (SH/(SQMQ-UH)+2D0*SQMQ*(SQM4-UH)/(SQMQ-UH)**2+(SQMQ-UH)/SH-
-     &      2D0*SQMQ/(SQMQ-UH)+2D0*(SQM4-UH)/(SQMQ-UH)*
-     &      (SQM4-SQMQ-SH)/SH)
-            DO 180 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 180
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 180
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACHCQ*WIDS(25,2)
-  180       CONTINUE
-  190     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.80) THEN
-        IF(ISUB.EQ.71) THEN
-C...Z0 + Z0 -> Z0 + Z0
-          IF(SH.LE.4.01D0*SQMZ) GOTO 220
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=1D0-4D0*SQMZ/SH
-            TH=-(0.5D0*SH*BE2*(1D0-CTH))
-            UH=-(0.5D0*SH*BE2*(1D0+CTH))
-            IF(MAX(TH,UH).GT.-1D0) GOTO 220
-            SHANG=1D0/XW1*SQMW/SQMZ*(1D0+BE2)**2
-            ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
-            ASHIM=-(GMMH/((SH-SQMH)**2+GMMH**2)*SHANG)
-            THANG=1D0/XW1*SQMW/SQMZ*(BE2-CTH)**2
-            ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
-            ATHIM=-(GMMH/((TH-SQMH)**2+GMMH**2)*THANG)
-            UHANG=1D0/XW1*SQMW/SQMZ*(BE2+CTH)**2
-            AUHRE=(UH-SQMH)/((UH-SQMH)**2+GMMH**2)*UHANG
-            AUHIM=-(GMMH/((UH-SQMH)**2+GMMH**2)*UHANG)
-            FACZZ=COMFAC*1D0/(4096D0*PARU(1)**2*16D0*XW1**2)*
-     &      (AEM/XW)**4*(SH/SQMW)**2*(SQMZ/SQMW)*SH2
-            IF(MSTP(46).LE.0) FACZZ=FACZZ*(ASHRE**2+ASHIM**2)
-            IF(MSTP(46).EQ.1) FACZZ=FACZZ*((ASHRE+ATHRE+AUHRE)**2+
-     &      (ASHIM+ATHIM+AUHIM)**2)
-            IF(MSTP(46).EQ.2) FACZZ=0D0
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FACZZ=COMFAC*(AEM/(16D0*PARU(1)*XW*XW1))**2*(64D0/9D0)*
-     &      ABS(A00U+2D0*A20U)**2
-          ENDIF
-          FACZZ=FACZZ*WIDS(23,1)
- 
-          DO 210 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 210
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            AVI=AI**2+VI**2
-            DO 200 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 200
-              EJ=KCHG(IABS(J),1)/3D0
-              AJ=SIGN(1D0,EJ)
-              VJ=AJ-4D0*EJ*XWV
-              AVJ=AJ**2+VJ**2
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=0.5D0*FACZZ*AVI*AVJ
-  200       CONTINUE
-  210     CONTINUE
-  220     CONTINUE
- 
-        ELSEIF(ISUB.EQ.72) THEN
-C...Z0 + Z0 -> W+ + W-
-          IF(SH.LE.4.01D0*SQMZ) GOTO 250
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=SQRT((1D0-4D0*SQMW/SH)*(1D0-4D0*SQMZ/SH))
-            CTH2=CTH**2
-            TH=-(0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH-BE2*CTH))
-            UH=-(0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH+BE2*CTH))
-            IF(MAX(TH,UH).GT.-1D0) GOTO 250
-            SHANG=4D0*SQRT(SQMW/(SQMZ*XW1))*(1D0-2D0*SQMW/SH)*
-     &      (1D0-2D0*SQMZ/SH)
-            ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
-            ASHIM=-(GMMH/((SH-SQMH)**2+GMMH**2)*SHANG)
-            ATWRE=XW1/SQMZ*SH/(TH-SQMW)*((CTH-BE2)**2*(3D0/2D0+BE2/2D0*
-     &      CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
-     &      ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
-     &      (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2+
-     &      2D0*(SQMW+SQMZ)/SH*BE2*CTH))
-            ATWIM=0D0
-            AUWRE=XW1/SQMZ*SH/(UH-SQMW)*((CTH+BE2)**2*(3D0/2D0-BE2/2D0*
-     &      CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
-     &      ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
-     &      (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2-
-     &      2D0*(SQMW+SQMZ)/SH*BE2*CTH))
-            AUWIM=0D0
-            A4RE=2D0*XW1/SQMZ*(3D0-CTH2-4D0*(SQMW+SQMZ)/SH)
-            A4IM=0D0
-            FACWW=COMFAC*1D0/(4096D0*PARU(1)**2*16D0*XW1**2)*
-     &      (AEM/XW)**4*(SH/SQMW)**2*(SQMZ/SQMW)*SH2
-            IF(MSTP(46).LE.0) FACWW=FACWW*(ASHRE**2+ASHIM**2)
-            IF(MSTP(46).EQ.1) FACWW=FACWW*((ASHRE+ATWRE+AUWRE+A4RE)**2+
-     &      (ASHIM+ATWIM+AUWIM+A4IM)**2)
-            IF(MSTP(46).EQ.2) FACWW=FACWW*((ATWRE+AUWRE+A4RE)**2+
-     &      (ATWIM+AUWIM+A4IM)**2)
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FACWW=COMFAC*(AEM/(16D0*PARU(1)*XW*XW1))**2*(64D0/9D0)*
-     &      ABS(A00U-A20U)**2
-          ENDIF
-          FACWW=FACWW*WIDS(24,1)
- 
-          DO 240 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 240
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            AVI=AI**2+VI**2
-            DO 230 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 230
-              EJ=KCHG(IABS(J),1)/3D0
-              AJ=SIGN(1D0,EJ)
-              VJ=AJ-4D0*EJ*XWV
-              AVJ=AJ**2+VJ**2
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACWW*AVI*AVJ
-  230       CONTINUE
-  240     CONTINUE
-  250     CONTINUE
- 
-        ELSEIF(ISUB.EQ.73) THEN
-C...Z0 + W+/- -> Z0 + W+/-
-          IF(SH.LE.2D0*SQMZ+2D0*SQMW) GOTO 280
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=1D0-2D0*(SQMZ+SQMW)/SH+((SQMZ-SQMW)/SH)**2
-            EP1=1D0-(SQMZ-SQMW)/SH
-            EP2=1D0+(SQMZ-SQMW)/SH
-            TH=-(0.5D0*SH*BE2*(1D0-CTH))
-            UH=(SQMZ-SQMW)**2/SH-0.5D0*SH*BE2*(1D0+CTH)
-            IF(MAX(TH,UH).GT.-1D0) GOTO 280
-            THANG=(BE2-EP1*CTH)*(BE2-EP2*CTH)
-            ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
-            ATHIM=-(GMMH/((TH-SQMH)**2+GMMH**2)*THANG)
-            ASWRE=-(XW1/SQMZ*SH/(SH-SQMW)*(-(BE2*(EP1+EP2)**4*CTH)+
-     &      1D0/4D0*(BE2+EP1*EP2)**2*((EP1-EP2)**2-4D0*BE2*CTH)+
-     &      2D0*BE2*(BE2+EP1*EP2)*(EP1+EP2)**2*CTH-
-     &      1D0/16D0*SH/SQMW*(EP1**2-EP2**2)**2*(BE2+EP1*EP2)**2))
-            ASWIM=0D0
-            AUWRE=XW1/SQMZ*SH/(UH-SQMW)*(-(BE2*(EP2+EP1*CTH)*
-     &      (EP1+EP2*CTH)*(BE2+EP1*EP2))+BE2*(EP2+EP1*CTH)*
-     &      (BE2+EP1*EP2*CTH)*(2D0*EP2-EP2*CTH+EP1)-
-     &      BE2*(EP2+EP1*CTH)**2*(BE2-EP2**2*CTH)-1D0/8D0*
-     &      (BE2+EP1*EP2*CTH)**2*((EP1+EP2)**2+2D0*BE2*(1D0-CTH))+
-     &      1D0/32D0*SH/SQMW*(BE2+EP1*EP2*CTH)**2*
-     &      (EP1**2-EP2**2)**2-BE2*(EP1+EP2*CTH)*(EP2+EP1*CTH)*
-     &      (BE2+EP1*EP2)+BE2*(EP1+EP2*CTH)*(BE2+EP1*EP2*CTH)*
-     &      (2D0*EP1-EP1*CTH+EP2)-BE2*(EP1+EP2*CTH)**2*
-     &      (BE2-EP1**2*CTH)-1D0/8D0*(BE2+EP1*EP2*CTH)**2*
-     &      ((EP1+EP2)**2+2D0*BE2*(1D0-CTH))+1D0/32D0*SH/SQMW*
-     &      (BE2+EP1*EP2*CTH)**2*(EP1**2-EP2**2)**2)
-            AUWIM=0D0
-            A4RE=XW1/SQMZ*(EP1**2*EP2**2*(CTH**2-1D0)-
-     &      2D0*BE2*(EP1**2+EP2**2+EP1*EP2)*CTH-2D0*BE2*EP1*EP2)
-            A4IM=0D0
-            FACZW=COMFAC*1D0/(4096D0*PARU(1)**2*4D0*XW1)*(AEM/XW)**4*
-     &      (SH/SQMW)**2*SQRT(SQMZ/SQMW)*SH2
-            IF(MSTP(46).LE.0) FACZW=0D0
-            IF(MSTP(46).EQ.1) FACZW=FACZW*((ATHRE+ASWRE+AUWRE+A4RE)**2+
-     &      (ATHIM+ASWIM+AUWIM+A4IM)**2)
-            IF(MSTP(46).EQ.2) FACZW=FACZW*((ASWRE+AUWRE+A4RE)**2+
-     &      (ASWIM+AUWIM+A4IM)**2)
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FACZW=COMFAC*AEM**2/(64D0*PARU(1)**2*XW**2*XW1)*16D0*
-     &      ABS(A20U+3D0*A11U*DBLE(CTH))**2
-          ENDIF
-          FACZW=FACZW*WIDS(23,2)
- 
-          DO 270 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 270
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            AVI=AI**2+VI**2
-            KCHWI=ISIGN(1,KCHG(IABS(I),1)*ISIGN(1,I))
-            DO 260 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 260
-              EJ=KCHG(IABS(J),1)/3D0
-              AJ=SIGN(1D0,EJ)
-              VJ=AI-4D0*EJ*XWV
-              AVJ=AJ**2+VJ**2
-              KCHWJ=ISIGN(1,KCHG(IABS(J),1)*ISIGN(1,J))
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACZW*AVI*VINT(180+J)*WIDS(24,(5-KCHWJ)/2)
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=2
-              SIGH(NCHN)=FACZW*VINT(180+I)*WIDS(24,(5-KCHWI)/2)*AVJ
-  260       CONTINUE
-  270     CONTINUE
-  280     CONTINUE
- 
-        ELSEIF(ISUB.EQ.75) THEN
-C...W+ + W- -> gamma + gamma
- 
-        ELSEIF(ISUB.EQ.76) THEN
-C...W+ + W- -> Z0 + Z0
-          IF(SH.LE.4.01D0*SQMZ) GOTO 310
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=SQRT((1D0-4D0*SQMW/SH)*(1D0-4D0*SQMZ/SH))
-            CTH2=CTH**2
-            TH=-(0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH-BE2*CTH))
-            UH=-(0.5D0*SH*(1D0-2D0*(SQMW+SQMZ)/SH+BE2*CTH))
-            IF(MAX(TH,UH).GT.-1D0) GOTO 310
-            SHANG=4D0*SQRT(SQMW/(SQMZ*XW1))*(1D0-2D0*SQMW/SH)*
-     &      (1D0-2D0*SQMZ/SH)
-            ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
-            ASHIM=-(GMMH/((SH-SQMH)**2+GMMH**2)*SHANG)
-            ATWRE=XW1/SQMZ*SH/(TH-SQMW)*((CTH-BE2)**2*(3D0/2D0+BE2/2D0*
-     &      CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
-     &      ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
-     &      (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2+
-     &      2D0*(SQMW+SQMZ)/SH*BE2*CTH))
-            ATWIM=0D0
-            AUWRE=XW1/SQMZ*SH/(UH-SQMW)*((CTH+BE2)**2*(3D0/2D0-BE2/2D0*
-     &      CTH-(SQMW+SQMZ)/SH+(SQMW-SQMZ)**2/(SH*SQMW))+4D0*
-     &      ((SQMW+SQMZ)/SH*(1D0-3D0*CTH2)+8D0*SQMW*SQMZ/SH2*
-     &      (2D0*CTH2-1D0)+4D0*(SQMW**2+SQMZ**2)/SH2*CTH2-
-     &      2D0*(SQMW+SQMZ)/SH*BE2*CTH))
-            AUWIM=0D0
-            A4RE=2D0*XW1/SQMZ*(3D0-CTH2-4D0*(SQMW+SQMZ)/SH)
-            A4IM=0D0
-            FACZZ=COMFAC*1D0/(4096D0*PARU(1)**2)*(AEM/XW)**4*
-     &      (SH/SQMW)**2*SH2
-            IF(MSTP(46).LE.0) FACZZ=FACZZ*(ASHRE**2+ASHIM**2)
-            IF(MSTP(46).EQ.1) FACZZ=FACZZ*((ASHRE+ATWRE+AUWRE+A4RE)**2+
-     &      (ASHIM+ATWIM+AUWIM+A4IM)**2)
-            IF(MSTP(46).EQ.2) FACZZ=FACZZ*((ATWRE+AUWRE+A4RE)**2+
-     &      (ATWIM+AUWIM+A4IM)**2)
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FACZZ=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*(64D0/9D0)*
-     &      ABS(A00U-A20U)**2
-          ENDIF
-          FACZZ=FACZZ*WIDS(23,1)
- 
-          DO 300 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 300
-            EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
-            DO 290 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 290
-              EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
-              IF(EI*EJ.GT.0D0) GOTO 290
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=0.5D0*FACZZ*VINT(180+I)*VINT(180+J)
-  290       CONTINUE
-  300     CONTINUE
-  310     CONTINUE
- 
-        ELSEIF(ISUB.EQ.77) THEN
-C...W+/- + W+/- -> W+/- + W+/-
-          IF(SH.LE.4.01D0*SQMW) GOTO 340
- 
-          IF(MSTP(46).LE.2) THEN
-C...Exact scattering ME:s for on-mass-shell gauge bosons
-            BE2=1D0-4D0*SQMW/SH
-            BE4=BE2**2
-            CTH2=CTH**2
-            CTH3=CTH**3
-            TH=-(0.5D0*SH*BE2*(1D0-CTH))
-            UH=-(0.5D0*SH*BE2*(1D0+CTH))
-            IF(MAX(TH,UH).GT.-1D0) GOTO 340
-            SHANG=(1D0+BE2)**2
-            ASHRE=(SH-SQMH)/((SH-SQMH)**2+GMMH**2)*SHANG
-            ASHIM=-(GMMH/((SH-SQMH)**2+GMMH**2)*SHANG)
-            THANG=(BE2-CTH)**2
-            ATHRE=(TH-SQMH)/((TH-SQMH)**2+GMMH**2)*THANG
-            ATHIM=-(GMMH/((TH-SQMH)**2+GMMH**2)*THANG)
-            UHANG=(BE2+CTH)**2
-            AUHRE=(UH-SQMH)/((UH-SQMH)**2+GMMH**2)*UHANG
-            AUHIM=-(GMMH/((UH-SQMH)**2+GMMH**2)*UHANG)
-            SGZANG=1D0/SQMW*BE2*(3D0-BE2)**2*CTH
-            ASGRE=XW*SGZANG
-            ASGIM=0D0
-            ASZRE=XW1*SH/(SH-SQMZ)*SGZANG
-            ASZIM=0D0
-            TGZANG=1D0/SQMW*(BE2*(4D0-2D0*BE2+BE4)+BE2*(4D0-10D0*BE2+
-     &      BE4)*CTH+(2D0-11D0*BE2+10D0*BE4)*CTH2+BE2*CTH3)
-            ATGRE=0.5D0*XW*SH/TH*TGZANG
-            ATGIM=0D0
-            ATZRE=0.5D0*XW1*SH/(TH-SQMZ)*TGZANG
-            ATZIM=0D0
-            UGZANG=1D0/SQMW*(BE2*(4D0-2D0*BE2+BE4)-BE2*(4D0-10D0*BE2+
-     &      BE4)*CTH+(2D0-11D0*BE2+10D0*BE4)*CTH2-BE2*CTH3)
-            AUGRE=0.5D0*XW*SH/UH*UGZANG
-            AUGIM=0D0
-            AUZRE=0.5D0*XW1*SH/(UH-SQMZ)*UGZANG
-            AUZIM=0D0
-            A4ARE=1D0/SQMW*(1D0+2D0*BE2-6D0*BE2*CTH-CTH2)
-            A4AIM=0D0
-            A4SRE=2D0/SQMW*(1D0+2D0*BE2-CTH2)
-            A4SIM=0D0
-            FWW=COMFAC*1D0/(4096D0*PARU(1)**2)*(AEM/XW)**4*
-     &      (SH/SQMW)**2*SH2
-            IF(MSTP(46).LE.0) THEN
-              AWWARE=ASHRE
-              AWWAIM=ASHIM
-              AWWSRE=0D0
-              AWWSIM=0D0
-            ELSEIF(MSTP(46).EQ.1) THEN
-              AWWARE=ASHRE+ATHRE+ASGRE+ASZRE+ATGRE+ATZRE+A4ARE
-              AWWAIM=ASHIM+ATHIM+ASGIM+ASZIM+ATGIM+ATZIM+A4AIM
-              AWWSRE=-ATHRE-AUHRE+ATGRE+ATZRE+AUGRE+AUZRE+A4SRE
-              AWWSIM=-ATHIM-AUHIM+ATGIM+ATZIM+AUGIM+AUZIM+A4SIM
-            ELSE
-              AWWARE=ASGRE+ASZRE+ATGRE+ATZRE+A4ARE
-              AWWAIM=ASGIM+ASZIM+ATGIM+ATZIM+A4AIM
-              AWWSRE=ATGRE+ATZRE+AUGRE+AUZRE+A4SRE
-              AWWSIM=ATGIM+ATZIM+AUGIM+AUZIM+A4SIM
-            ENDIF
-            AWWA2=AWWARE**2+AWWAIM**2
-            AWWS2=AWWSRE**2+AWWSIM**2
- 
-          ELSE
-C...Strongly interacting Z_L/W_L model of Dobado, Herrero, Terron
-            FWWA=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*(64D0/9D0)*
-     &      ABS(A00U+0.5D0*A20U+4.5D0*A11U*DBLE(CTH))**2
-            FWWS=COMFAC*(AEM/(4D0*PARU(1)*XW))**2*64D0*ABS(A20U)**2
-          ENDIF
- 
-          DO 330 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 330
-            EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
-            DO 320 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 320
-              EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
-              IF(EI*EJ.LT.0D0) THEN
-C...W+W-
-                IF(MSTP(45).EQ.1) GOTO 320
-                IF(MSTP(46).LE.2) FACWW=FWW*AWWA2*WIDS(24,1)
-                IF(MSTP(46).GE.3) FACWW=FWWA*WIDS(24,1)
-              ELSE
-C...W+W+/W-W-
-                IF(MSTP(45).EQ.2) GOTO 320
-                IF(MSTP(46).LE.2) FACWW=FWW*AWWS2
-                IF(MSTP(46).GE.3) FACWW=FWWS
-                IF(EI.GT.0D0) FACWW=FACWW*WIDS(24,4)
-                IF(EI.LT.0D0) FACWW=FACWW*WIDS(24,5)
-              ENDIF
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACWW*VINT(180+I)*VINT(180+J)
-              IF(EI*EJ.GT.0D0) SIGH(NCHN)=0.5D0*SIGH(NCHN)
-  320       CONTINUE
-  330     CONTINUE
-  340     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.120) THEN
-        IF(ISUB.EQ.102) THEN
-C...g + g -> h0 (or H0, or A0)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          WDTP13=0D0
-          DO 345 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.21.AND.KFDP(IDC,2).EQ.21.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP13=PMAS(KFHIGG,2)*BRAT(IDC)
-  345     CONTINUE
-          IF(WDTP13.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> g g channel')  
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          HI=SHR*WDTP13/32D0
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 350
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=HI*FACBW*HF
-  350     CONTINUE
- 
-        ELSEIF(ISUB.EQ.103) THEN
-C...gamma + gamma -> h0 (or H0, or A0)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          WDTP14=0D0
-          DO 355 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.22.AND.KFDP(IDC,2).EQ.22.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP14=PMAS(KFHIGG,2)*BRAT(IDC)
-  355     CONTINUE
-          IF(WDTP14.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> gamma gamma channel')  
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=4D0*COMFAC/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          HI=SHR*WDTP14*2D0
-          IF(KFAC(1,22)*KFAC(2,22).EQ.0) GOTO 360
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=22
-          ISIG(NCHN,2)=22
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=HI*FACBW*HF
-  360     CONTINUE
- 
-        ELSEIF(ISUB.EQ.110) THEN
-C...f + fbar -> gamma + h0
-          THUH=MAX(TH*UH,SH*CKIN(3)**2)
-          FACHG=COMFAC*(3D0*AEM**4)/(2D0*PARU(1)**2*XW*SQMW)*SH*THUH
-          FACHG=FACHG*WIDS(KFHIGG,2)
-C...Calculate loop contributions for intermediate gamma* and Z0
-          CIGTOT=DCMPLX(0D0,0D0)
-          CIZTOT=DCMPLX(0D0,0D0)
-          JMAX=3*MSTP(1)+1
-          DO 370 J=1,JMAX
-            IF(J.LE.2*MSTP(1)) THEN
-              FNC=1D0
-              EJ=KCHG(J,1)/3D0
-              AJ=SIGN(1D0,EJ+0.1D0)
-              VJ=AJ-4D0*EJ*XWV
-              BALP=SQM4/(2D0*PMAS(J,1))**2
-              BBET=SH/(2D0*PMAS(J,1))**2
-            ELSEIF(J.LE.3*MSTP(1)) THEN
-              FNC=3D0
-              JL=2*(J-2*MSTP(1))-1
-              EJ=KCHG(10+JL,1)/3D0
-              AJ=SIGN(1D0,EJ+0.1D0)
-              VJ=AJ-4D0*EJ*XWV
-              BALP=SQM4/(2D0*PMAS(10+JL,1))**2
-              BBET=SH/(2D0*PMAS(10+JL,1))**2
-            ELSE
-              BALP=SQM4/(2D0*PMAS(24,1))**2
-              BBET=SH/(2D0*PMAS(24,1))**2
-            ENDIF
-            BABI=1D0/(BALP-BBET)
-            IF(BALP.LT.1D0) THEN
-              F0ALP=DCMPLX(DBLE(ASIN(SQRT(BALP))),0D0)
-              F1ALP=F0ALP**2
-            ELSE
-              F0ALP=DCMPLX(DBLE(LOG(SQRT(BALP)+SQRT(BALP-1D0))),
-     &        -DBLE(0.5D0*PARU(1)))
-              F1ALP=-(F0ALP**2)
-            ENDIF
-            F2ALP=DBLE(SQRT(ABS(BALP-1D0)/BALP))*F0ALP
-            IF(BBET.LT.1D0) THEN
-              F0BET=DCMPLX(DBLE(ASIN(SQRT(BBET))),0D0)
-              F1BET=F0BET**2
-            ELSE
-              F0BET=DCMPLX(DBLE(LOG(SQRT(BBET)+SQRT(BBET-1D0))),
-     &        -DBLE(0.5D0*PARU(1)))
-              F1BET=-(F0BET**2)
-            ENDIF
-            F2BET=DBLE(SQRT(ABS(BBET-1D0)/BBET))*F0BET
-            IF(J.LE.3*MSTP(1)) THEN
-              FIF=DBLE(0.5D0*BABI)+DBLE(BABI**2)*(DBLE(0.5D0*(1D0-BALP+
-     &        BBET))*(F1BET-F1ALP)+DBLE(BBET)*(F2BET-F2ALP))
-              CIGTOT=CIGTOT+DBLE(FNC*EJ**2)*FIF
-              CIZTOT=CIZTOT+DBLE(FNC*EJ*VJ)*FIF
-            ELSE
-              TXW=XW/XW1
-              CIGTOT=CIGTOT-0.5*(DBLE(BABI*(1.5D0+BALP))+DBLE(BABI**2)*
-     &        (DBLE(1.5D0-3D0*BALP+4D0*BBET)*(F1BET-F1ALP)+
-     &        DBLE(BBET*(2D0*BALP+3D0))*(F2BET-F2ALP)))
-              CIZTOT=CIZTOT-DBLE(0.5D0*BABI*XW1)*(DBLE(5D0-TXW+2D0*BALP*
-     &        (1D0-TXW))*(1D0+DBLE(2D0*BABI*BBET)*(F2BET-F2ALP))+
-     &        DBLE(BABI*(4D0*BBET*(3D0-TXW)-(2D0*BALP-1D0)*(5D0-TXW)))*
-     &        (F1BET-F1ALP))
-            ENDIF
-  370     CONTINUE
-          CIGTOT=CIGTOT/DBLE(SH)
-          CIZTOT=CIZTOT*DBLE(XWC)/DCMPLX(DBLE(SH-SQMZ),DBLE(GMMZ))
-C...Loop over initial flavours
-          DO 380 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 380
-            EI=KCHG(IABS(I),1)/3D0
-            AI=SIGN(1D0,EI)
-            VI=AI-4D0*EI*XWV
-            FCOI=1D0
-            IF(IABS(I).LE.10) FCOI=FACA/3D0
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACHG*FCOI*(ABS(DBLE(EI)*CIGTOT+DBLE(VI)*
-     &      CIZTOT)**2+AI**2*ABS(CIZTOT)**2)
-  380     CONTINUE
- 
-        ELSEIF(ISUB.EQ.111) THEN
-C...f + fbar -> g + h0 (q + qbar -> g + h0 only)
-          IF(MSTP(38).NE.0) THEN
-C...Simple case: only do gg <-> h exactly.
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          WDTP13=0D0
-          DO 385 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.21.AND.KFDP(IDC,2).EQ.21.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP13=PMAS(KFHIGG,2)*BRAT(IDC)
-  385     CONTINUE
-          IF(WDTP13.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> g g channel')  
-          FACGH=COMFAC*FACA*(2D0/9D0)*AS*(WDTP13/SQRT(SQM4))*
-     &    (TH**2+UH**2)/(SH*SQM4)
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          GMMHC=SQRT(SQM4)*WDTP(0)
-          HBW4C=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/
-     &    ((SQM4-SQMH)**2+GMMHC**2)
-          FACGH=FACGH*HBW4C/HBW4
-          ELSE
-C...Messy case: do full loop integrals
-          A5STUR=0D0
-          A5STUI=0D0
-          DO 390 I=1,2*MSTP(1)
-            SQMQ=PMAS(I,1)**2
-            EPSS=4D0*SQMQ/SH
-            EPSH=4D0*SQMQ/SQMH
-            CALL PYWAUX(1,EPSS,W1SR,W1SI)
-            CALL PYWAUX(1,EPSH,W1HR,W1HI)
-            CALL PYWAUX(2,EPSS,W2SR,W2SI)
-            CALL PYWAUX(2,EPSH,W2HR,W2HI)
-            A5STUR=A5STUR+EPSH*(1D0+SH/(TH+UH)*(W1SR-W1HR)+
-     &      (0.25D0-SQMQ/(TH+UH))*(W2SR-W2HR))
-            A5STUI=A5STUI+EPSH*(SH/(TH+UH)*(W1SI-W1HI)+
-     &      (0.25D0-SQMQ/(TH+UH))*(W2SI-W2HI))
-  390     CONTINUE
-          FACGH=COMFAC*FACA/(144D0*PARU(1)**2)*AEM/XW*AS**3*SQMH/SQMW*
-     &    SQMH/SH*(UH**2+TH**2)/(UH+TH)**2*(A5STUR**2+A5STUI**2)
-          FACGH=FACGH*WIDS(25,2)
-          ENDIF
-          DO 400 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &      KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 400
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACGH
-  400     CONTINUE
- 
-        ELSEIF(ISUB.EQ.112) THEN
-C...f + g -> f + h0 (q + g -> q + h0 only)
-          IF(MSTP(38).NE.0) THEN
-C...Simple case: only do gg <-> h exactly.
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          WDTP13=0D0
-          DO 405 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.21.AND.KFDP(IDC,2).EQ.21.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP13=PMAS(KFHIGG,2)*BRAT(IDC)
-  405     CONTINUE
-          IF(WDTP13.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> g g channel')  
-          FACQH=COMFAC*FACA*(1D0/12D0)*AS*(WDTP13/SQRT(SQM4))*
-     &    (SH**2+UH**2)/(-(TH*SQM4))
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          GMMHC=SQRT(SQM4)*WDTP(0)
-          HBW4C=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/
-     &    ((SQM4-SQMH)**2+GMMHC**2)
-          FACQH=FACQH*HBW4C/HBW4
-          ELSE
-C...Messy case: do full loop integrals
-          A5TSUR=0D0
-          A5TSUI=0D0
-          DO 410 I=1,2*MSTP(1)
-            SQMQ=PMAS(I,1)**2
-            EPST=4D0*SQMQ/TH
-            EPSH=4D0*SQMQ/SQMH
-            CALL PYWAUX(1,EPST,W1TR,W1TI)
-            CALL PYWAUX(1,EPSH,W1HR,W1HI)
-            CALL PYWAUX(2,EPST,W2TR,W2TI)
-            CALL PYWAUX(2,EPSH,W2HR,W2HI)
-            A5TSUR=A5TSUR+EPSH*(1D0+TH/(SH+UH)*(W1TR-W1HR)+
-     &      (0.25D0-SQMQ/(SH+UH))*(W2TR-W2HR))
-            A5TSUI=A5TSUI+EPSH*(TH/(SH+UH)*(W1TI-W1HI)+
-     &      (0.25D0-SQMQ/(SH+UH))*(W2TI-W2HI))
-  410     CONTINUE
-          FACQH=COMFAC*FACA/(384D0*PARU(1)**2)*AEM/XW*AS**3*SQMH/SQMW*
-     &    SQMH/(-TH)*(UH**2+SH**2)/(UH+SH)**2*(A5TSUR**2+A5TSUI**2)
-          FACQH=FACQH*WIDS(25,2)
-          ENDIF
-          DO 430 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58)) GOTO 430
-            DO 420 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 420
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 420
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACQH
-  420       CONTINUE
-  430     CONTINUE
- 
-        ELSEIF(ISUB.EQ.113) THEN
-C...g + g -> g + h0
-          IF(MSTP(38).NE.0) THEN
-C...Simple case: only do gg <-> h exactly.
-          CALL PYWIDT(KFHIGG,SQM4,WDTP,WDTE)
-          WDTP13=0D0
-          DO 435 IDC=MDCY(KFHIGG,2),MDCY(KFHIGG,2)+MDCY(KFHIGG,3)-1
-            IF(KFDP(IDC,1).EQ.21.AND.KFDP(IDC,2).EQ.21.AND.
-     &      KFDP(IDC,3).EQ.0) WDTP13=PMAS(KFHIGG,2)*BRAT(IDC)
-  435     CONTINUE
-          IF(WDTP13.EQ.0D0) CALL PYERRM(26,
-     &    '(PYSGHG:) did not find Higgs -> g g channel')  
-          FACGH=COMFAC*FACA*(3D0/16D0)*AS*(WDTP13/SQRT(SQM4))*
-     &    (SH**4+TH**4+UH**4+SQM4**4)/(SH*TH*UH*SQM4)
-C...Propagators: as simulated in PYOFSH and as desired
-          HBW4=GMMH/((SQM4-SQMH)**2+GMMH**2)
-          GMMHC=SQRT(SQM4)*WDTP(0)
-          HBW4C=SQRT(SQM4)*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))/
-     &    ((SQM4-SQMH)**2+GMMHC**2)
-          FACGH=FACGH*HBW4C/HBW4
-          ELSE
-C...Messy case: do full loop integrals
-          A2STUR=0D0
-          A2STUI=0D0
-          A2USTR=0D0
-          A2USTI=0D0
-          A2TUSR=0D0
-          A2TUSI=0D0
-          A4STUR=0D0
-          A4STUI=0D0
-          DO 440 I=1,2*MSTP(1)
-            SQMQ=PMAS(I,1)**2
-            EPSS=4D0*SQMQ/SH
-            EPST=4D0*SQMQ/TH
-            EPSU=4D0*SQMQ/UH
-            EPSH=4D0*SQMQ/SQMH
-            IF(EPSH.LT.1D-6) GOTO 440
-            CALL PYWAUX(1,EPSS,W1SR,W1SI)
-            CALL PYWAUX(1,EPST,W1TR,W1TI)
-            CALL PYWAUX(1,EPSU,W1UR,W1UI)
-            CALL PYWAUX(1,EPSH,W1HR,W1HI)
-            CALL PYWAUX(2,EPSS,W2SR,W2SI)
-            CALL PYWAUX(2,EPST,W2TR,W2TI)
-            CALL PYWAUX(2,EPSU,W2UR,W2UI)
-            CALL PYWAUX(2,EPSH,W2HR,W2HI)
-            CALL PYI3AU(EPSS,TH/UH,Y3STUR,Y3STUI)
-            CALL PYI3AU(EPSS,UH/TH,Y3SUTR,Y3SUTI)
-            CALL PYI3AU(EPST,SH/UH,Y3TSUR,Y3TSUI)
-            CALL PYI3AU(EPST,UH/SH,Y3TUSR,Y3TUSI)
-            CALL PYI3AU(EPSU,SH/TH,Y3USTR,Y3USTI)
-            CALL PYI3AU(EPSU,TH/SH,Y3UTSR,Y3UTSI)
-            CALL PYI3AU(EPSH,SQMH/SH*TH/UH,YHSTUR,YHSTUI)
-            CALL PYI3AU(EPSH,SQMH/SH*UH/TH,YHSUTR,YHSUTI)
-            CALL PYI3AU(EPSH,SQMH/TH*SH/UH,YHTSUR,YHTSUI)
-            CALL PYI3AU(EPSH,SQMH/TH*UH/SH,YHTUSR,YHTUSI)
-            CALL PYI3AU(EPSH,SQMH/UH*SH/TH,YHUSTR,YHUSTI)
-            CALL PYI3AU(EPSH,SQMH/UH*TH/SH,YHUTSR,YHUTSI)
-            W3STUR=YHSTUR-Y3STUR-Y3UTSR
-            W3STUI=YHSTUI-Y3STUI-Y3UTSI
-            W3SUTR=YHSUTR-Y3SUTR-Y3TUSR
-            W3SUTI=YHSUTI-Y3SUTI-Y3TUSI
-            W3TSUR=YHTSUR-Y3TSUR-Y3USTR
-            W3TSUI=YHTSUI-Y3TSUI-Y3USTI
-            W3TUSR=YHTUSR-Y3TUSR-Y3SUTR
-            W3TUSI=YHTUSI-Y3TUSI-Y3SUTI
-            W3USTR=YHUSTR-Y3USTR-Y3TSUR
-            W3USTI=YHUSTI-Y3USTI-Y3TSUI
-            W3UTSR=YHUTSR-Y3UTSR-Y3STUR
-            W3UTSI=YHUTSI-Y3UTSI-Y3STUI
-            B2STUR=SQMQ/SQMH**2*(SH*(UH-SH)/(SH+UH)+2D0*TH*UH*
-     &      (UH+2D0*SH)/(SH+UH)**2*(W1TR-W1HR)+(SQMQ-SH/4D0)*
-     &      (0.5D0*W2SR+0.5D0*W2HR-W2TR+W3STUR)+SH2*(2D0*SQMQ/
-     &      (SH+UH)**2-0.5D0/(SH+UH))*(W2TR-W2HR)+0.5D0*TH*UH/SH*
-     &      (W2HR-2D0*W2TR)+0.125D0*(SH-12D0*SQMQ-4D0*TH*UH/SH)*W3TSUR)
-            B2STUI=SQMQ/SQMH**2*(2D0*TH*UH*(UH+2D0*SH)/(SH+UH)**2*
-     &      (W1TI-W1HI)+(SQMQ-SH/4D0)*(0.5D0*W2SI+0.5D0*W2HI-W2TI+
-     &      W3STUI)+SH2*(2D0*SQMQ/(SH+UH)**2-0.5D0/(SH+UH))*
-     &      (W2TI-W2HI)+0.5D0*TH*UH/SH*(W2HI-2D0*W2TI)+0.125D0*
-     &      (SH-12D0*SQMQ-4D0*TH*UH/SH)*W3TSUI)
-            B2SUTR=SQMQ/SQMH**2*(SH*(TH-SH)/(SH+TH)+2D0*UH*TH*
-     &      (TH+2D0*SH)/(SH+TH)**2*(W1UR-W1HR)+(SQMQ-SH/4D0)*
-     &      (0.5D0*W2SR+0.5D0*W2HR-W2UR+W3SUTR)+SH2*(2D0*SQMQ/
-     &      (SH+TH)**2-0.5D0/(SH+TH))*(W2UR-W2HR)+0.5D0*UH*TH/SH*
-     &      (W2HR-2D0*W2UR)+0.125D0*(SH-12D0*SQMQ-4D0*UH*TH/SH)*W3USTR)
-            B2SUTI=SQMQ/SQMH**2*(2D0*UH*TH*(TH+2D0*SH)/(SH+TH)**2*
-     &      (W1UI-W1HI)+(SQMQ-SH/4D0)*(0.5D0*W2SI+0.5D0*W2HI-W2UI+
-     &      W3SUTI)+SH2*(2D0*SQMQ/(SH+TH)**2-0.5D0/(SH+TH))*
-     &      (W2UI-W2HI)+0.5D0*UH*TH/SH*(W2HI-2D0*W2UI)+0.125D0*
-     &      (SH-12D0*SQMQ-4D0*UH*TH/SH)*W3USTI)
-            B2TSUR=SQMQ/SQMH**2*(TH*(UH-TH)/(TH+UH)+2D0*SH*UH*
-     &      (UH+2D0*TH)/(TH+UH)**2*(W1SR-W1HR)+(SQMQ-TH/4D0)*
-     &      (0.5D0*W2TR+0.5D0*W2HR-W2SR+W3TSUR)+TH2*(2D0*SQMQ/
-     &      (TH+UH)**2-0.5D0/(TH+UH))*(W2SR-W2HR)+0.5D0*SH*UH/TH*
-     &      (W2HR-2D0*W2SR)+0.125D0*(TH-12D0*SQMQ-4D0*SH*UH/TH)*W3STUR)
-            B2TSUI=SQMQ/SQMH**2*(2D0*SH*UH*(UH+2D0*TH)/(TH+UH)**2*
-     &      (W1SI-W1HI)+(SQMQ-TH/4D0)*(0.5D0*W2TI+0.5D0*W2HI-W2SI+
-     &      W3TSUI)+TH2*(2D0*SQMQ/(TH+UH)**2-0.5D0/(TH+UH))*
-     &      (W2SI-W2HI)+0.5D0*SH*UH/TH*(W2HI-2D0*W2SI)+0.125D0*
-     &      (TH-12D0*SQMQ-4D0*SH*UH/TH)*W3STUI)
-            B2TUSR=SQMQ/SQMH**2*(TH*(SH-TH)/(TH+SH)+2D0*UH*SH*
-     &      (SH+2D0*TH)/(TH+SH)**2*(W1UR-W1HR)+(SQMQ-TH/4D0)*
-     &      (0.5D0*W2TR+0.5D0*W2HR-W2UR+W3TUSR)+TH2*(2D0*SQMQ/
-     &      (TH+SH)**2-0.5D0/(TH+SH))*(W2UR-W2HR)+0.5D0*UH*SH/TH*
-     &      (W2HR-2D0*W2UR)+0.125D0*(TH-12D0*SQMQ-4D0*UH*SH/TH)*W3UTSR)
-            B2TUSI=SQMQ/SQMH**2*(2D0*UH*SH*(SH+2D0*TH)/(TH+SH)**2*
-     &      (W1UI-W1HI)+(SQMQ-TH/4D0)*(0.5D0*W2TI+0.5D0*W2HI-W2UI+
-     &      W3TUSI)+TH2*(2D0*SQMQ/(TH+SH)**2-0.5D0/(TH+SH))*
-     &      (W2UI-W2HI)+0.5D0*UH*SH/TH*(W2HI-2D0*W2UI)+0.125D0*
-     &      (TH-12D0*SQMQ-4D0*UH*SH/TH)*W3UTSI)
-            B2USTR=SQMQ/SQMH**2*(UH*(TH-UH)/(UH+TH)+2D0*SH*TH*
-     &      (TH+2D0*UH)/(UH+TH)**2*(W1SR-W1HR)+(SQMQ-UH/4D0)*
-     &      (0.5D0*W2UR+0.5D0*W2HR-W2SR+W3USTR)+UH2*(2D0*SQMQ/
-     &      (UH+TH)**2-0.5D0/(UH+TH))*(W2SR-W2HR)+0.5D0*SH*TH/UH*
-     &      (W2HR-2D0*W2SR)+0.125D0*(UH-12D0*SQMQ-4D0*SH*TH/UH)*W3SUTR)
-            B2USTI=SQMQ/SQMH**2*(2D0*SH*TH*(TH+2D0*UH)/(UH+TH)**2*
-     &      (W1SI-W1HI)+(SQMQ-UH/4D0)*(0.5D0*W2UI+0.5D0*W2HI-W2SI+
-     &      W3USTI)+UH2*(2D0*SQMQ/(UH+TH)**2-0.5D0/(UH+TH))*
-     &      (W2SI-W2HI)+0.5D0*SH*TH/UH*(W2HI-2D0*W2SI)+0.125D0*
-     &      (UH-12D0*SQMQ-4D0*SH*TH/UH)*W3SUTI)
-            B2UTSR=SQMQ/SQMH**2*(UH*(SH-UH)/(UH+SH)+2D0*TH*SH*
-     &      (SH+2D0*UH)/(UH+SH)**2*(W1TR-W1HR)+(SQMQ-UH/4D0)*
-     &      (0.5D0*W2UR+0.5D0*W2HR-W2TR+W3UTSR)+UH2*(2D0*SQMQ/
-     &      (UH+SH)**2-0.5D0/(UH+SH))*(W2TR-W2HR)+0.5D0*TH*SH/UH*
-     &      (W2HR-2D0*W2TR)+0.125D0*(UH-12D0*SQMQ-4D0*TH*SH/UH)*W3TUSR)
-            B2UTSI=SQMQ/SQMH**2*(2D0*TH*SH*(SH+2D0*UH)/(UH+SH)**2*
-     &      (W1TI-W1HI)+(SQMQ-UH/4D0)*(0.5D0*W2UI+0.5D0*W2HI-W2TI+
-     &      W3UTSI)+UH2*(2D0*SQMQ/(UH+SH)**2-0.5D0/(UH+SH))*
-     &      (W2TI-W2HI)+0.5D0*TH*SH/UH*(W2HI-2D0*W2TI)+0.125D0*
-     &      (UH-12D0*SQMQ-4D0*TH*SH/UH)*W3TUSI)
-            B4STUR=0.25D0*EPSH*(-(2D0/3D0)+0.25D0*(EPSH-1D0)*
-     &      (W2SR-W2HR+W3STUR))
-            B4STUI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2SI-W2HI+W3STUI)
-            B4TUSR=0.25D0*EPSH*(-(2D0/3D0)+0.25D0*(EPSH-1D0)*
-     &      (W2TR-W2HR+W3TUSR))
-            B4TUSI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2TI-W2HI+W3TUSI)
-            B4USTR=0.25D0*EPSH*(-(2D0/3D0)+0.25D0*(EPSH-1D0)*
-     &      (W2UR-W2HR+W3USTR))
-            B4USTI=0.25D0*EPSH*0.25D0*(EPSH-1D0)*(W2UI-W2HI+W3USTI)
-            A2STUR=A2STUR+B2STUR+B2SUTR
-            A2STUI=A2STUI+B2STUI+B2SUTI
-            A2USTR=A2USTR+B2USTR+B2UTSR
-            A2USTI=A2USTI+B2USTI+B2UTSI
-            A2TUSR=A2TUSR+B2TUSR+B2TSUR
-            A2TUSI=A2TUSI+B2TUSI+B2TSUI
-            A4STUR=A4STUR+B4STUR+B4USTR+B4TUSR
-            A4STUI=A4STUI+B4STUI+B4USTI+B4TUSI
-  440     CONTINUE
-          FACGH=COMFAC*FACA*3D0/(128D0*PARU(1)**2)*AEM/XW*AS**3*
-     &    SQMH/SQMW*SQMH**3/(SH*TH*UH)*(A2STUR**2+A2STUI**2+A2USTR**2+
-     &    A2USTI**2+A2TUSR**2+A2TUSI**2+A4STUR**2+A4STUI**2)
-          FACGH=FACGH*WIDS(25,2)
-          ENDIF
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 450
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=FACGH
-  450     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.170) THEN
-        IF(ISUB.EQ.121) THEN
-C...g + g -> Q + Qbar + h0
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 460
-          IA=KFPR(ISUBSV,2)
-          PMF=PYMRUN(IA,SH)
-          FACQQH=COMFAC*(4D0*PARU(1)*AEM/XW)*(4D0*PARU(1)*AS)**2*
-     &    (0.5D0*PMF/PMAS(24,1))**2
-          WID2=1D0
-          IF(IA.EQ.6.OR.IA.EQ.7.OR.IA.EQ.8) WID2=WIDS(IA,1)
-          FACQQH=FACQQH*WID2
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
-            IKFI=1
-            IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
-            IF(IA.GT.10) IKFI=3
-            FACQQH=FACQQH*PARU(150+10*IHIGG+IKFI)**2
-            IF(IMSS(1).NE.0.AND.IA.EQ.5) THEN
-              FACQQH=FACQQH/(1D0+RMSS(41))**2
-              IF(IHIGG.NE.3) THEN
-                FACQQH=FACQQH*(1D0+RMSS(41)*PARU(152+10*IHIGG)/
-     &          PARU(151+10*IHIGG))**2
-              ENDIF
-            ENDIF
-          ENDIF
-          CALL PYQQBH(WTQQBH)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=FACQQH*WTQQBH*FACBW
-  460     CONTINUE
- 
-        ELSEIF(ISUB.EQ.122) THEN
-C...q + qbar -> Q + Qbar + h0
-          IA=KFPR(ISUBSV,2)
-          PMF=PYMRUN(IA,SH)
-          FACQQH=COMFAC*(4D0*PARU(1)*AEM/XW)*(4D0*PARU(1)*AS)**2*
-     &    (0.5D0*PMF/PMAS(24,1))**2
-          WID2=1D0
-          IF(IA.EQ.6.OR.IA.EQ.7.OR.IA.EQ.8) WID2=WIDS(IA,1)
-          FACQQH=FACQQH*WID2
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) THEN
-            IKFI=1
-            IF(IA.LE.10.AND.MOD(IA,2).EQ.0) IKFI=2
-            IF(IA.GT.10) IKFI=3
-            FACQQH=FACQQH*PARU(150+10*IHIGG+IKFI)**2
-            IF(IMSS(1).NE.0.AND.IA.EQ.5) THEN
-              FACQQH=FACQQH/(1D0+RMSS(41))**2
-              IF(IHIGG.NE.3) THEN
-                FACQQH=FACQQH*(1D0+RMSS(41)*PARU(152+10*IHIGG)/
-     &          PARU(151+10*IHIGG))**2
-              ENDIF
-            ENDIF
-          ENDIF
-          CALL PYQQBH(WTQQBH)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          DO 470 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &      KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 470
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=FACQQH*WTQQBH*FACBW
-  470     CONTINUE
- 
-        ELSEIF(ISUB.EQ.123) THEN
-C...f + f' -> f + f' + h0 (or H0, or A0) (Z0 + Z0 -> h0 as
-C...inner process)
-          FACNOR=COMFAC*(4D0*PARU(1)*AEM/(XW*XW1))**3*SQMZ/32D0
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACNOR=FACNOR*
-     &    PARU(154+10*IHIGG)**2
-          FACPRP=1D0/((VINT(215)-VINT(204)**2)*
-     &    (VINT(216)-VINT(209)**2))**2
-          FACZZ1=FACNOR*FACPRP*(0.5D0*TAUP*VINT(2))*VINT(219)
-          FACZZ2=FACNOR*FACPRP*VINT(217)*VINT(218)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          DO 490 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 490
-            IA=IABS(I)
-            DO 480 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 480
-              JA=IABS(J)
-              EI=KCHG(IA,1)*ISIGN(1,I)/3D0
-              AI=SIGN(1D0,KCHG(IA,1)+0.5D0)*ISIGN(1,I)
-              VI=AI-4D0*EI*XWV
-              EJ=KCHG(JA,1)*ISIGN(1,J)/3D0
-              AJ=SIGN(1D0,KCHG(JA,1)+0.5D0)*ISIGN(1,J)
-              VJ=AJ-4D0*EJ*XWV
-              FACLR1=(VI**2+AI**2)*(VJ**2+AJ**2)+4D0*VI*AI*VJ*AJ
-              FACLR2=(VI**2+AI**2)*(VJ**2+AJ**2)-4D0*VI*AI*VJ*AJ
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=(FACLR1*FACZZ1+FACLR2*FACZZ2)*FACBW
-  480       CONTINUE
-  490     CONTINUE
- 
-        ELSEIF(ISUB.EQ.124) THEN
-C...f + f' -> f" + f"' + h0 (or H0, or A0) (W+ + W- -> h0 as
-C...inner process)
-          FACNOR=COMFAC*(4D0*PARU(1)*AEM/XW)**3*SQMW
-          IF(MSTP(4).GE.1.OR.IHIGG.GE.2) FACNOR=FACNOR*
-     &    PARU(155+10*IHIGG)**2
-          FACPRP=1D0/((VINT(215)-VINT(204)**2)*
-     &    (VINT(216)-VINT(209)**2))**2
-          FACWW=FACNOR*FACPRP*(0.5D0*TAUP*VINT(2))*VINT(219)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          HF=SHR*(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))
-          FACBW=(1D0/PARU(1))*VINT(2)*HF/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &    FACBW=0D0
-          DO 510 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 510
-            EI=SIGN(1D0,DBLE(I))*KCHG(IABS(I),1)
-            DO 500 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 500
-              EJ=SIGN(1D0,DBLE(J))*KCHG(IABS(J),1)
-              IF(EI*EJ.GT.0D0) GOTO 500
-              FACLR=VINT(180+I)*VINT(180+J)
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACLR*FACWW*FACBW
-  500       CONTINUE
-  510     CONTINUE
- 
-        ELSEIF(ISUB.EQ.143) THEN
-C...f + fbar' -> H+/-
-          SQMHC=PMAS(37,1)**2
-          CALL PYWIDT(37,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=4D0*COMFAC/((SH-SQMHC)**2+HS**2)
-          HP=AEM/(8D0*XW)*SH/SQMW*SH
-          DO 530 I=MMIN1,MMAX1
-            IF(I.EQ.0.OR.KFAC(1,I).EQ.0) GOTO 530
-            IA=IABS(I)
-            IM=(MOD(IA,10)+1)/2
-            DO 520 J=MMIN2,MMAX2
-              IF(J.EQ.0.OR.KFAC(2,J).EQ.0) GOTO 520
-              JA=IABS(J)
-              JM=(MOD(JA,10)+1)/2
-              IF(I*J.GT.0.OR.IA.EQ.JA.OR.IM.NE.JM) GOTO 520
-              IF((IA.LE.10.AND.JA.GT.10).OR.(IA.GT.10.AND.JA.LE.10))
-     &        GOTO 520
-              IF(MOD(IA,2).EQ.0) THEN
-                IU=IA
-                IL=JA
-              ELSE
-                IU=JA
-                IL=IA
-              ENDIF
-              RML=PYMRUN(IL,SH)**2/SH
-              RMU=PYMRUN(IU,SH)**2/SH
-              HI=HP*(RML*PARU(141)**2+RMU/PARU(141)**2)
-              IF(IA.LE.10) HI=HI*FACA/3D0
-              KCHHC=(KCHG(IA,1)*ISIGN(1,I)+KCHG(JA,1)*ISIGN(1,J))/3
-              HF=SHR*(WDTE(0,1)+WDTE(0,(5-KCHHC)/2)+WDTE(0,4))
-              NCHN=NCHN+1
-              ISIG(NCHN,1)=I
-              ISIG(NCHN,2)=J
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=HI*FACBW*HF
-  520       CONTINUE
-  530     CONTINUE
- 
-        ELSEIF(ISUB.EQ.161) THEN
-C...f + g -> f' + H+/- (b + g -> t + H+/- only)
-C...(choice of only b and t to avoid kinematics problems)
-          FHCQ=COMFAC*FACA*AS*AEM/XW*1D0/24
-C...H propagator: as simulated in PYOFSH and as desired
-          SQMHC=PMAS(37,1)**2
-          GMMHC=PMAS(37,1)*PMAS(37,2)
-          HBW4=GMMHC/((SQM4-SQMHC)**2+GMMHC**2)
-          CALL PYWIDT(37,SQM4,WDTP,WDTE)
-          GMMHCC=SQRT(SQM4)*WDTP(0)
-          HBW4C=GMMHCC/((SQM4-SQMHC)**2+GMMHCC**2)
-          FHCQ=FHCQ*HBW4C/HBW4
-          Q2RM=SH
-          IF(MSTP(32).EQ.12) Q2RM=PARP(194)
-          DO 550 I=MMINA,MMAXA
-            IA=IABS(I)
-            IF(IA.NE.5) GOTO 550
-            SQML=PYMRUN(IA,Q2RM)**2
-            IUA=IA+MOD(IA,2)
-            SQMQ=PYMRUN(IUA,Q2RM)**2
-            FACHCQ=FHCQ*(SQML*PARU(141)**2+SQMQ/PARU(141)**2)/SQMW*
-     &      (SH/(SQMQ-UH)+2D0*SQMQ*(SQMHC-UH)/(SQMQ-UH)**2+(SQMQ-UH)/SH-
-     &      2D0*SQMQ/(SQMQ-UH)+2D0*(SQMHC-UH)/(SQMQ-UH)*
-     &      (SQMHC-SQMQ-SH)/SH)
-            KCHHC=ISIGN(1,KCHG(IA,1)*ISIGN(1,I))
-            DO 540 ISDE=1,2
-              IF(ISDE.EQ.1.AND.KFAC(1,I)*KFAC(2,21).EQ.0) GOTO 540
-              IF(ISDE.EQ.2.AND.KFAC(1,21)*KFAC(2,I).EQ.0) GOTO 540
-              NCHN=NCHN+1
-              ISIG(NCHN,ISDE)=I
-              ISIG(NCHN,3-ISDE)=21
-              ISIG(NCHN,3)=1
-              SIGH(NCHN)=FACHCQ*WIDS(37,(5-KCHHC)/2)
-              IF(IUA.EQ.6) SIGH(NCHN)=SIGH(NCHN)*WIDS(6,(5+KCHHC)/2)
-  540       CONTINUE
-  550     CONTINUE
-        ENDIF
- 
-      ELSEIF(ISUB.LE.402) THEN
-        IF(ISUB.EQ.401) THEN
-C...  g + g -> t + bbar + H-
-          IF(KFAC(1,21)*KFAC(2,21).EQ.0) GOTO 560
-          IA=KFPR(ISUBSV,2)
-          CALL PYSTBH(WTTBH)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=(1D0/PARU(1))*VINT(2)*HS/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &       FACBW=0D0
-          NCHN=NCHN+1
-          ISIG(NCHN,1)=21
-          ISIG(NCHN,2)=21
-          ISIG(NCHN,3)=1
-          SIGH(NCHN)=2d0*COMFAC*WTTBH*FACBW
-c     Since we don't know yet if H+ or H-, assume H+
-c     when calculating suppression due to closed channels.
-          SIGH(NCHN)=SIGH(NCHN)*WIDS(37,2)*WIDS(6,3)
-          IF(ABS(WIDS(37,2)-WIDS(37,3))
-     &       .GE.1D-6*(WIDS(37,2)+WIDS(37,3)).OR.
-     &       ABS(WIDS(6,2)-WIDS(6,3))
-     &       .GE.1D-6*(WIDS(6,2)+WIDS(6,3))) THEN
-            WRITE(*,*)'Error: Process 401 cannot handle different'
-            WRITE(*,*)'decays for H+ and H- or t and tbar.'
-            WRITE(*,*)'Execution stopped.'
-            STOP
-          END IF
- 560      CONTINUE
- 
-        ELSEIF(ISUB.EQ.402) THEN
-C...  q + qbar -> t + bbar + H-
-          IA=KFPR(ISUBSV,2)
-          CALL PYSTBH(WTTBH)
-          CALL PYWIDT(KFHIGG,SH,WDTP,WDTE)
-          HS=SHR*WDTP(0)
-          FACBW=(1D0/PARU(1))*VINT(2)*HS/((SH-SQMH)**2+HS**2)
-          IF(ABS(SHR-PMAS(KFHIGG,1)).GT.PARP(48)*PMAS(KFHIGG,2))
-     &       FACBW=0D0
-          DO 570 I=MMINA,MMAXA
-            IF(I.EQ.0.OR.IABS(I).GT.MSTP(58).OR.
-     &         KFAC(1,I)*KFAC(2,-I).EQ.0) GOTO 570
-            NCHN=NCHN+1
-            ISIG(NCHN,1)=I
-            ISIG(NCHN,2)=-I
-            ISIG(NCHN,3)=1
-            SIGH(NCHN)=2d0*COMFAC*WTTBH*FACBW
-c     Since we don't know yet if H+ or H-, assume H+
-c     when calculating suppression due to closed channels.
-            SIGH(NCHN)=SIGH(NCHN)*WIDS(37,2)*WIDS(6,3)
-            IF(ABS(WIDS(37,2)-WIDS(37,3))/(WIDS(37,2)+WIDS(37,3))
-     &         .GE.1D-6.OR.
-     &         ABS(WIDS(6,2)-WIDS(6,3))/(WIDS(6,2)+WIDS(6,3))
-     &         .GE.1D-6) THEN
-              WRITE(*,*)'Error: Process 402 cannot handle different'
-              WRITE(*,*)'decays for H+ and H- or t and tbar.'
-              WRITE(*,*)'Execution stopped.'
-              STOP
-            END IF
- 570      CONTINUE
-        ENDIF
-      ENDIF
- 
-      RETURN
-      END
-
-
diff --git a/Generators/Pythia_i/src/setPythiaTune.cxx b/Generators/Pythia_i/src/setPythiaTune.cxx
deleted file mode 100644
index 71fa81c2d6e6021fd52b0bb4156be99cad04aaca..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/setPythiaTune.cxx
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Pythia_i/Pythia.h"
-
-//LM remove these
-/*#include <cstdlib>
-#include <string>
-#include <vector>
-#include <iostream>
-#include <math.h>
-#include <sstream>*/
-
-/*
-  ________________________________________________________________________________________________________________________
-
-  L.M., Aug 09
-
-  Pythia TUNE choice 
-
-  tune is unambigously determined by jO property m_Tune_Name=TUNETYPE_TUNEINDEX
-  that is parsed (via separator '_')so that m_Tune_Type=TUNETYPE and m_Tune_Index=TUNEINDEX
-
-  m_Tune_Type options:
-  * m_Tune_Type="ATLAS" :  ATLAS tunes (implemented in atlasTune.cxx )
-  * m_Tune_Type="PYTUNE" : PYTUNE tunes (apart from MSTP(5) ATLAS defaults are turned off and necessary Pythia params for running
-                                        within Athena are set (event record etc.) are set. Handling a non-defined tune in this
-                                        case  is up to Pythia.)
-  * else: run with the default tune m_Default_Tune_Name
-
-  Apart from tune setting:
-  - common printout (for each Pythia run within Athena) is set 
-  ________________________________________________________________________________________________________________________
- */
-
-StatusCode Pythia::setPythiaTune()
-{
-  // count # of function calls for one initialization step (inf. loop protection)
-   m_atlasTune_loop_prot++;
-
-   //protect against looping; setPythiaTune calls atlasTune so in principle an infinite loop can occur (in case of core code blunder)
-   if (m_atlasTune_loop_prot>100)
-     {
-       ATH_MSG_FATAL( "Got more than 100 calls of setPythiaTune() -> code errors, exit.");
-       return StatusCode::FAILURE;       
-     }
-       
-  //  MsgStream log(messageService(), name());
-
-  //always set printout details
-  this->m_initlistlevel=12;
-  this->m_eventlistlevel=1;
-  this->m_pystatlistlevel.clear();
-  this->m_pystatlistlevel.push_back(1);
-  this->m_pystatlistlevel.push_back(3);
-  this->m_pystatlistlevel.push_back(4);
-  this->m_pystatlistlevel.push_back(5);
-  this->m_firstlistevent=1;
-  this->m_lastlistevent=5;
-
-  // in case of consistent old syntax : handle it, else pring warnings and use ATLAS defaults
-  if (m_useAtlasPythiaRecomm != m_Default_useAtlasPythiaRecomm || m_useAtlasPythiaCommon != m_Default_useAtlasPythiaCommon || m_useAtlasPythiaTune09 != m_Default_useAtlasPythiaTune09 || m_useAtlasPythiaTune08 != m_Default_useAtlasPythiaTune08 || m_useNoAtlasPythiaParam != m_Default_useNoAtlasPythiaParam)
-    {
-      //be backward compatible if the tune has not been set using the new syntax:
-      if (m_Tune_Name==m_Starting_Tune_Name)
-	{
-	  {
-	    if (m_useNoAtlasPythiaParam)
-	      {
-		// using no ATLAS defaults
-		m_Tune_Index=0;
-	      }
-	    // set m_Tune_Index acc. to the switch, overrides taken into acc.
-	    if (m_useAtlasPythiaCommon==false) m_Tune_Index=-1;
-	    if (m_useAtlasPythiaRecomm==false) m_Tune_Index=0;
-	    if (m_useAtlasPythiaTune08) m_Tune_Index=m_mc08_Tune_Index;
-	    if (m_useAtlasPythiaTune09) m_Tune_Index=m_mc09_Tune_Index;
-	  }
-	  // atlasTune is Pythia cmember, so knows about m_Tune_Index
-	  StatusCode sc=atlasTune();      
-	  if ( sc.isFailure() ) 
-	    {
-	      ATH_MSG_FATAL( "ERROR returned from atlasTune, exit." );
-	      return StatusCode::FAILURE;
-	    }
-	  else 
-	    { 
-	      //setPythiaTune done, return
-	      return StatusCode::SUCCESS;
-	    }
-	}
-      //print warnings for the mix of the old and new syntax:
-      else
-	{
-	  //mix of the old and new syntax
-	  ATH_MSG_WARNING( "Joboptions contain both new-style tune setting Pythia.Tune_Name=\"TUNETYPE_TUNEINDEX\" as well as setting of the old-style switches:" );
-	  ATH_MSG_WARNING( "useAtlasPythiaRecomm,useAtlasPythiaCommon,useAtlasPythiaTune09,useAtlasPythiaTune08 or useNoAtlasPythiaParam" );
-	  ATH_MSG_WARNING( "Please fix the jo so that only one tune-setting style is used." );
-	  ATH_MSG_WARNING( "The old switches are deprecated, the new tune-setting style is preffered." );
-	  ATH_MSG_WARNING( "For this run the tune settings are ignored and  ATLAS default tune settings will be used:");
-	  m_Tune_Type=m_Default_Tune_Type; m_Tune_Index=m_Default_Tune_Index;
-	  ATH_MSG_WARNING( m_Tune_Type <<" , "<< m_Tune_Index );	  
-	}      
-    }// end of old switches backward compatibility support
-
-  if (m_Tune_Type=="ATLAS")
-    {  
-      StatusCode sc=atlasTune();      
-      if ( sc.isFailure() ) 
-	{
-	  ATH_MSG_FATAL( "ERROR returned from atlasTune, exit." );
-	  return StatusCode::FAILURE;
-	}
-      else 
-	{ 
-	  //setPythiaTune done, return
-	  return StatusCode::SUCCESS;
-	}  
-    }
-  // call PYTUNE in the original PYTUNE(MSTP(5)) form; 
-  // as for Pythia 6.4.21 numbers 1xx - 4xx are in use
-  // error checking is as handeled by Pythia in particular too large tune nbr. returns
-  // (PYTUNE:) Tune number > max. Using defaults.
-  else if (m_Tune_Type=="PYTUNE")
-    {
-      //setPythiaTune done, return
-      this->pypars().mstp(5)=m_Tune_Index;
-      //set what is necessary for correct use of Pythia within Athena:
-      //-----------------------------------------------------------------------------
-      this->pypars().mstp(128)  =1;      // fix junk output for documentary particles 	 
-      this->pydat1().mstu(21)   =1;      // error handling switch 
-      this->pydat1().mstj(22)=2;         // (Make K_S, Lambda stable)
-      //-----------------------------------------------------------------------------
-      ATH_MSG_INFO( "setPythiaTune: using Pythia internal tune via PYTUNE(" << m_Tune_Index <<") call.");
-      ATH_MSG_INFO( "setting parameters needed for desired functioning of Pythia within Athena        ");
-      ATH_MSG_INFO( " mstp(128)  =1;      fix junk output for documentary particles ");
-      ATH_MSG_INFO( " mstu(21)   =1;      error handling switch                     ");
-      ATH_MSG_INFO( " mstj(22)   =2;      (Make K_S, Lambda stable)                 ");
-      ATH_MSG_INFO( " Please note: ");
-      ATH_MSG_INFO( " 1. in the jO overrides of the parameters set by PYTUNE # "<< m_Tune_Index <<" will have no effect " );
-      ATH_MSG_INFO( " - this correspods to (standalone) Pythia behavior "  );
-      ATH_MSG_INFO( " 2. handling of non-existing PYTUNE tune is same as for (default) Pythia standalone." );
-     //setPythiaTune done, return
-      return StatusCode::SUCCESS;
-    }
-  //-----------------------------------------------------------------------------------------
-  else
-    {
-      //undefined tune Type (setPythiaTune()) or Index (atlasTune() points here) for Type != PYTUNE 
-      //Pythia_i reaction : run with current ATLAS default tune && print WARNINGs:
-      ATH_MSG_WARNING("setPythiaTune: got invalid Tune_Name : "<< m_Tune_Name );
-      ATH_MSG_WARNING("Pythia will run with current ATLAS default tune : "<<m_Default_Tune_Name ); 
-      //string parsing for  m_Default_Tune_Name
-      std::string::size_type sep_index_def = m_Default_Tune_Name.find_first_of('_');
-      if (sep_index_def != std::string::npos)
-	{
-	  m_Tune_Type=m_Default_Tune_Name.substr(0,sep_index_def);
-	  m_Tune_Index=atoi((m_Default_Tune_Name.substr(sep_index_def+1,m_Default_Tune_Name.length()-1)).c_str());
-        }
-      else
-        {
-          // this should never happen
-	  ATH_MSG_FATAL ( "setPythiaTune : got invalid m_Default_Tune_Name, Pythia_i code needs to be updated." );
-	  return StatusCode::FAILURE;
-        }
-      //call ATLAS tune
-      StatusCode sc=atlasTune();      
-      if ( sc.isFailure() ) 
-	{
-	  ATH_MSG_FATAL ("ERROR returned from atlasTune, exit." );
-	  return StatusCode::FAILURE;
-	}
-      else 
-	{ 
-	  //setPythiaTune done, return
-	  return StatusCode::SUCCESS;
-	}        
-    }
-  //-----------------------------------------------------------------------------------------
-
-}//end of setPythiaTune definition
diff --git a/Generators/Pythia_i/src/setecm.F b/Generators/Pythia_i/src/setecm.F
deleted file mode 100644
index 8cfae5f420d65c1aec9b8d1fbfb88c19d73da53c..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/setecm.F
+++ /dev/null
@@ -1,11 +0,0 @@
-      SUBROUTINE SETECM(WINMATCHIG)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-#include "GeneratorFortranCommon/heprup.inc"
-      EBMUP(1)=0.5*WINMATCHIG
-      EBMUP(2)=0.5*WINMATCHIG
-
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/upevnt_py.F b/Generators/Pythia_i/src/upevnt_py.F
deleted file mode 100644
index ba1175d0c147febf5465e0a798f5b60d518feb6c..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/upevnt_py.F
+++ /dev/null
@@ -1,33 +0,0 @@
-      SUBROUTINE UPEVNT
-c     routine for Les Houches interface to external pythia routines
-c     adapted from base pythia code. 
-c     Ian Hinchliffe (May 2002)
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-#include "GeneratorFortranCommon/hepeup.inc"
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-
-      IF(ATLASCHOICE.EQ.COMPHEP) CALL USECOMPHEP
-      IF(ATLASCHOICE.EQ.USER) CALL USEUSER
-      IF(ATLASCHOICE.EQ.ACERMC) THEN
-         CALL USEACERMC
-         CALL ACERMC_ACSET12_PY(0)
-      ENDIF
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL USEALPGEN
-      IF(ATLASCHOICE.EQ.MADGRAPH) CALL USEMADGRAPH
-      IF(ATLASCHOICE.EQ.MADCUP) CALL USEMADCUP
-c      IF(ATLASCHOICE.EQ.LHAEXT) CALL USELHAEXT
-      IF(ATLASCHOICE.EQ.MATCHIG) CALL USEMATCHIG
-      IF(ATLASCHOICE.EQ.HVGEN) CALL USEHVGEN
-      IF(ATLASCHOICE.EQ.LHEF) CALL USELHEF
-      IF(ATLASCHOICE.EQ.EXOGRAVITON) CALL USEGRAV
-C      IF(ATLASCHOICE.EQ.PYTHIABC) CALL USEBC
-      IF(ATLASCHOICE.EQ.PROTOS) CALL USEPROTOS
-C      IF(ATLASCHOICE.EQ.HELAC) CALL USEHELAC
-C      IF(ATLASCHOICE.EQ.PYTHIASGLUON) CALL USESGLUON
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/upinit_py.F b/Generators/Pythia_i/src/upinit_py.F
deleted file mode 100644
index 6e38b55ecdfabdcea785063926cdd63b5d5c62f1..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/upinit_py.F
+++ /dev/null
@@ -1,36 +0,0 @@
-      SUBROUTINE UPINIT
-c     interface to external pythia processes using Les Houches accord
-c     Adapted for pythia 6.203
-c     Ian Hinchliffe (may 2002)
-c 
-c #include "GeneratorFortranCommon/GeneratorName.h" 
-
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-
-#include "GeneratorFortranCommon/heprup.inc"
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-
-
-      IF(ATLASCHOICE.EQ.COMPHEP) CALL INITCOMPHEP
-      IF(ATLASCHOICE.EQ.USER) CALL INITUSER
-      IF(ATLASCHOICE.EQ.ACERMC) THEN
-         CALL INITACERMC
-         CALL ACERMC_ACSET12_PY(-1)
-      ENDIF         
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL INITALPGEN
-      IF(ATLASCHOICE.EQ.MADGRAPH) CALL INITMADGRAPH
-      IF(ATLASCHOICE.EQ.MADCUP) CALL INITMADCUP
-c      IF(ATLASCHOICE.EQ.LHAEXT) CALL INITLHAEXT
-      IF(ATLASCHOICE.EQ.MATCHIG) CALL INITMATCHIG
-      IF(ATLASCHOICE.EQ.HVGEN) CALL INITHVGEN
-      IF(ATLASCHOICE.EQ.LHEF) CALL INITLHEF
-      IF(ATLASCHOICE.EQ.EXOGRAVITON) CALL INITGRAV
-C      IF(ATLASCHOICE.EQ.PYTHIABC) CALL INITBC
-      IF(ATLASCHOICE.EQ.PROTOS) CALL INITPROTOS
-C      IF(ATLASCHOICE.EQ.HELAC) CALL INITHELAC
-C      IF(ATLASCHOICE.EQ.PYTHIASGLUON) CALL INITSGLUON
-      RETURN
-      END
diff --git a/Generators/Pythia_i/src/upveto_py.F b/Generators/Pythia_i/src/upveto_py.F
deleted file mode 100644
index c3f3ca06b393ceb421d43bf093c48566d5cfd3e9..0000000000000000000000000000000000000000
--- a/Generators/Pythia_i/src/upveto_py.F
+++ /dev/null
@@ -1,16 +0,0 @@
-      SUBROUTINE UPVETO(IPVETO)
-c     interface to external pythia processes using Les Houches accord
-c 
-C...Double precision and integer declarations.
-      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
-      IMPLICIT INTEGER(I-N)
-  
-#include "GeneratorFortranCommon/lesatlas.inc"
-#include "GeneratorFortranCommon/genames.inc"
-
-      IF(ATLASCHOICE.EQ.ALPGEN) CALL VETOALPGEN(IPVETO)
-      IF(ATLASCHOICE.EQ.MADGRAPH) CALL VETOMADGRAPH(IPVETO)
-      IF(ATLASCHOICE.EQ.PROTOS) CALL VETOPROTOS(IPVETO)
-C      IF(ATLASCHOICE.EQ.HELAC) CALL VETOHELAC(IPVETO)
-      RETURN
-      END
diff --git a/Generators/Reldis_i/CMakeLists.txt b/Generators/Reldis_i/CMakeLists.txt
deleted file mode 100644
index 15b7dbd5ae76d7c53e826cb43950398abf609b45..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/CMakeLists.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-################################################################################
-# Package: Reldis_i
-################################################################################
-
-# Declare the package name:
-atlas_subdir( Reldis_i )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PUBLIC
-                          Generators/GeneratorModules
-                          PRIVATE
-                          GaudiKernel )
-
-# External dependencies:
-find_package( HepMC )
-find_package( HepPDT )
-find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
-
-# Component(s) in the package:
-atlas_add_component( Reldis_i
-                     src/*.cxx
-                     src/components/*.cxx
-                     INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${ROOT_LIBRARIES} ${HEPMC_LIBRARIES} GeneratorModulesLib GaudiKernel )
-
-# Install files from the package:
-atlas_install_headers( Reldis_i )
-atlas_install_joboptions( share/*.py )
-
diff --git a/Generators/Reldis_i/Reldis_i/HepMCInterface.h b/Generators/Reldis_i/Reldis_i/HepMCInterface.h
deleted file mode 100644
index 9d267cb8b70962d252ecabb97638d3e7704b59e5..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/Reldis_i/HepMCInterface.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef Reldis_HepMCInterface_H
-#define Reldis_HepMCInterface_H
-
-#include "HepMC/IO_BaseClass.h"
-#include "HepPDT/ParticleDataTable.hh"
-
-#include "Reldis_i/ReldisTree.h"
-
-#include <iostream>
-
-class IPartPropSvc;
-
-namespace HepMC {
-  
-  class I_Reldis: public IO_BaseClass {
-    
-  public:
-    
-    I_Reldis() { m_particleTable = 0; };
-    virtual ~I_Reldis() {};
-    
-    void fill_next_event(ReldisTree&, GenEvent*, int ievtnum);
-  
-  private: 
-    
-    // Following are not (yet?) implemented for this class.
-    virtual bool fill_next_event(      GenEvent*) { return 0; }
-    virtual void write_event    (const GenEvent*) {}
-    
-    double getParticleMass(int pdgID);
-    void   addParticles   (GenVertex*, Int_t nParticles, Int_t* pdg, Float_t* px, Float_t* py, Float_t* pz, Int_t statusCode);
-
-    HepPDT::ParticleDataTable* m_particleTable;
-    
-    // Use of copy constructor is not allowed
-    I_Reldis(const I_Reldis&): IO_BaseClass() {} 
-  };
-}
-
-#endif 
diff --git a/Generators/Reldis_i/Reldis_i/ReldisTree.h b/Generators/Reldis_i/Reldis_i/ReldisTree.h
deleted file mode 100644
index 9096363c733fc7b4c1ef6c564478d9b6ee9cce1b..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/Reldis_i/ReldisTree.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef ReldisTree_h
-#define ReldisTree_h
-
-#include <TROOT.h>
-#include <TChain.h>
-#include <TFile.h>
-#include <iostream>
-#include <iomanip>
-
-class ReldisTree {
-  
- public :
-  
-   static const int MAX_NUM_PART = 1000;
-  
-   TTree          *fChain;   //!pointer to the analyzed TTree or TChain
-   Int_t           fCurrent; //!current Tree number in a TChain
-
-   // Declaration of leaf types
-   Int_t           Nleft;                     // "left side" NEUTRON multiplicity
-   Float_t         Eleft;                     // "left side" NEUTRON energy total in GeV (ZDC energy)
-   Int_t           Ipdg_l_n   [MAX_NUM_PART];
-   Float_t         Pxl        [MAX_NUM_PART];
-   Float_t         Pyl        [MAX_NUM_PART];
-   Float_t         Pzl        [MAX_NUM_PART];
-
-   Int_t           Nright;                    // "right side" NEUTRON multiplicity
-   Float_t         Eright;                    // "right side" NEUTRON energy total in GeV (ZDC energy)
-   Int_t           Ipdg_r_n   [MAX_NUM_PART];
-   Float_t         Pxr        [MAX_NUM_PART];
-   Float_t         Pyr        [MAX_NUM_PART];
-   Float_t         Pzr        [MAX_NUM_PART];
-
-   Int_t           Nleft_p;                   // "left side" PROTON multiplicity
-   Float_t         Etaleft_p  [MAX_NUM_PART]; // "left side" PROTON pseudorapidity
-   Int_t           Ipdg_l_p   [MAX_NUM_PART];
-   Float_t         Pxl_p      [MAX_NUM_PART];
-   Float_t         Pyl_p      [MAX_NUM_PART];
-   Float_t         Pzl_p      [MAX_NUM_PART];
-
-   Int_t           Nright_p;                  // "right side" PROTON multiplicity
-   Float_t         Etaright_p [MAX_NUM_PART]; // "right side" PROTON pseudorapidity
-   Int_t           Ipdg_r_p   [MAX_NUM_PART];
-   Float_t         Pxr_p      [MAX_NUM_PART];
-   Float_t         Pyr_p      [MAX_NUM_PART];
-   Float_t         Pzr_p      [MAX_NUM_PART];
-
-   Int_t           Nleft_pp;                  // "left side" PI PLUS multiplicity
-   Float_t         Etaleft_pp [MAX_NUM_PART]; // "left side" PI PLUS pseudorapidity
-   Int_t           Ipdg_l_pp  [MAX_NUM_PART];
-   Float_t         Pxl_pp     [MAX_NUM_PART];
-   Float_t         Pyl_pp     [MAX_NUM_PART];
-   Float_t         Pzl_pp     [MAX_NUM_PART];
-
-   Int_t           Nright_pp;                 // "right side" PI PLUS multiplicity
-   Float_t         Etaright_pp[MAX_NUM_PART]; // "right side" PI PLUS pseudorapidity
-   Int_t           Ipdg_r_pp  [MAX_NUM_PART];
-   Float_t         Pxr_pp     [MAX_NUM_PART];
-   Float_t         Pyr_pp     [MAX_NUM_PART];
-   Float_t         Pzr_pp     [MAX_NUM_PART];
-
-   Int_t           Nleft_pm;                  // "left side" PI MINUS multiplicity
-   Float_t         Etaleft_pm [MAX_NUM_PART]; // "left side" PI MINUS pseudorapidity
-   Int_t           Ipdg_l_pm  [MAX_NUM_PART];
-   Float_t         Pxl_pm     [MAX_NUM_PART];
-   Float_t         Pyl_pm     [MAX_NUM_PART];
-   Float_t         Pzl_pm     [MAX_NUM_PART];
-
-   Int_t           Nright_pm;                 // "right side" PI MINUS multiplicity
-   Float_t         Etaright_pm[MAX_NUM_PART]; // "right side" PI MINUS pseudorapidity
-   Int_t           Ipdg_r_pm  [MAX_NUM_PART];
-   Float_t         Pxr_pm     [MAX_NUM_PART];
-   Float_t         Pyr_pm     [MAX_NUM_PART];
-   Float_t         Pzr_pm     [MAX_NUM_PART];
-
-   Int_t           Nleft_p0;                  // "left side" PI ZERO multiplicity
-   Float_t         Etaleft_p0 [MAX_NUM_PART]; // "left side" PI ZERO pseudorapidity
-   Int_t           Ipdg_l_p0  [MAX_NUM_PART];
-   Float_t         Pxl_p0     [MAX_NUM_PART];
-   Float_t         Pyl_p0     [MAX_NUM_PART];
-   Float_t         Pzl_p0     [MAX_NUM_PART];
-
-   Int_t           Nright_p0;                 // "right side" PI ZERO multiplicity
-   Float_t         Etaright_p0[MAX_NUM_PART]; // "right side" PI ZERO pseudorapidity
-   Int_t           Ipdg_r_p0  [MAX_NUM_PART];
-   Float_t         Pxr_p0     [MAX_NUM_PART];
-   Float_t         Pyr_p0     [MAX_NUM_PART];
-   Float_t         Pzr_p0     [MAX_NUM_PART];
-
-   Int_t           Nleft_et;                  // "left side" ETA multiplicity
-   Float_t         Etaleft_et [MAX_NUM_PART]; // "left side" ETA pseudorapidity
-   Int_t           Ipdg_l_et  [MAX_NUM_PART];
-   Float_t         Pxl_et     [MAX_NUM_PART];
-   Float_t         Pyl_et     [MAX_NUM_PART];
-   Float_t         Pzl_et     [MAX_NUM_PART];
-
-   Int_t           Nright_et;                 // "right side" ETA multiplicity
-   Float_t         Etaright_et[MAX_NUM_PART]; // "right side" ETA pseudorapidity
-   Int_t           Ipdg_r_et  [MAX_NUM_PART];
-   Float_t         Pxr_et     [MAX_NUM_PART];
-   Float_t         Pyr_et     [MAX_NUM_PART];
-   Float_t         Pzr_et     [MAX_NUM_PART];
-
-   Int_t           Nleft_om;                  // "left side" OMEGA multiplicity
-   Float_t         Etaleft_om [MAX_NUM_PART]; // "left side" OMEGA pseudorapidity
-   Int_t           Ipdg_l_om  [MAX_NUM_PART];
-   Float_t         Pxl_om     [MAX_NUM_PART];
-   Float_t         Pyl_om     [MAX_NUM_PART];
-   Float_t         Pzl_om     [MAX_NUM_PART];
-
-   Int_t           Nright_om;                 // "right side" OMEGA multiplicity
-   Float_t         Etaright_om[MAX_NUM_PART]; // "right side" OMEGA pseudorapidity
-   Int_t           Ipdg_r_om  [MAX_NUM_PART];
-   Float_t         Pxr_om     [MAX_NUM_PART];
-   Float_t         Pyr_om     [MAX_NUM_PART];
-   Float_t         Pzr_om     [MAX_NUM_PART];
-
-   // List of branches
-   TBranch        *b_Nleft;
-   TBranch        *b_Eleft;
-   TBranch        *b_Ipdg_l_n;
-   TBranch        *b_Pxl;
-   TBranch        *b_Pyl;
-   TBranch        *b_Pzl;
-
-   TBranch        *b_Nright;
-   TBranch        *b_Eright;
-   TBranch        *b_Ipdg_r_n;
-   TBranch        *b_Pxr;
-   TBranch        *b_Pyr;
-   TBranch        *b_Pzr;
-
-   TBranch        *b_Nleft_p;
-   TBranch        *b_Etaleft_p;
-   TBranch        *b_Ipdg_l_p;
-   TBranch        *b_Pxl_p;
-   TBranch        *b_Pyl_p;
-   TBranch        *b_Pzl_p;
-
-   TBranch        *b_Nright_p;
-   TBranch        *b_Etaright_p;
-   TBranch        *b_Ipdg_r_p;
-   TBranch        *b_Pxr_p;
-   TBranch        *b_Pyr_p;
-   TBranch        *b_Pzr_p;
-
-   TBranch        *b_Nleft_pp;
-   TBranch        *b_Etaleft_pp;
-   TBranch        *b_Ipdg_l_pp; 
-   TBranch        *b_Pxl_pp;
-   TBranch        *b_Pyl_pp;
-   TBranch        *b_Pzl_pp;
-
-   TBranch        *b_Nright_pp;
-   TBranch        *b_Etaright_pp;
-   TBranch        *b_Ipdg_r_pp;
-   TBranch        *b_Pxr_pp;
-   TBranch        *b_Pyr_pp;
-   TBranch        *b_Pzr_pp;
-
-   TBranch        *b_Nleft_pm;
-   TBranch        *b_Etaleft_pm;
-   TBranch        *b_Ipdg_l_pm;
-   TBranch        *b_Pxl_pm;
-   TBranch        *b_Pyl_pm;
-   TBranch        *b_Pzl_pm;
-
-   TBranch        *b_Nright_pm;
-   TBranch        *b_Etaright_pm;
-   TBranch        *b_Ipdg_r_pm;
-   TBranch        *b_Pxr_pm;
-   TBranch        *b_Pyr_pm;
-   TBranch        *b_Pzr_pm;
-
-   TBranch        *b_Nleft_p0;
-   TBranch        *b_Etaleft_p0;
-   TBranch        *b_Ipdg_l_p0;
-   TBranch        *b_Pxl_p0;
-   TBranch        *b_Pyl_p0;
-   TBranch        *b_Pzl_p0;
-
-   TBranch        *b_Nright_p0;
-   TBranch        *b_Etaright_p0;
-   TBranch        *b_Ipdg_r_p0;
-   TBranch        *b_Pxr_p0;
-   TBranch        *b_Pyr_p0;
-   TBranch        *b_Pzr_p0;
-
-   TBranch        *b_Nleft_et;
-   TBranch        *b_Etaleft_et;
-   TBranch        *b_Ipdg_l_et;
-   TBranch        *b_Pxl_et;
-   TBranch        *b_Pyl_et;
-   TBranch        *b_Pzl_et;
-
-   TBranch        *b_Nright_et;
-   TBranch        *b_Etaright_et;
-   TBranch        *b_Ipdg_r_et;
-   TBranch        *b_Pxr_et;
-   TBranch        *b_Pyr_et;
-   TBranch        *b_Pzr_et;
-
-   TBranch        *b_Nleft_om;
-   TBranch        *b_Etaleft_om;
-   TBranch        *b_Ipdg_l_om;
-   TBranch        *b_Pxl_om;
-   TBranch        *b_Pyl_om;
-   TBranch        *b_Pzl_om;
-
-   TBranch        *b_Nright_om;
-   TBranch        *b_Etaright_om;
-   TBranch        *b_Ipdg_r_om;
-   TBranch        *b_Pxr_om;
-   TBranch        *b_Pyr_om;
-   TBranch        *b_Pzr_om;
-   
-   ReldisTree();
-   virtual ~ReldisTree();
-   
-   virtual Int_t    GetEntry(Long64_t entry);
-   virtual Long64_t LoadTree(Long64_t entry);
-   virtual Bool_t   Init(TString rootFileName, TString treeName);
-};
-
-#endif
diff --git a/Generators/Reldis_i/Reldis_i/Reldis_i.h b/Generators/Reldis_i/Reldis_i/Reldis_i.h
deleted file mode 100644
index 19318812d5e339d4e354d232115a494ae8f8140d..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/Reldis_i/Reldis_i.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef GENERATOR_RELDIS_I_H
-#define GENERATOR_RELDIS_I_H
-
-#include "GeneratorModules/GenModule.h"
-#include "Reldis_i/HepMCInterface.h"
-#include "Reldis_i/ReldisTree.h"
-
-using namespace HepMC;
-
-class Reldis_i: public GenModule {
-
- public:
-  
-  Reldis_i(const std::string& name, ISvcLocator* pSvcLocator);
-  ~Reldis_i();
-  
-  virtual StatusCode genInitialize();
-  virtual StatusCode callGenerator();
-  virtual StatusCode fillEvt(GenEvent*);
-  virtual StatusCode genFinalize();
-  
- private:
-  
-  std::string m_reldisRootFileName;
-  std::string m_reldisTreeName;
-  ReldisTree  m_reldisTree;
-  I_Reldis    m_reldisToHepMC;
-
-  int m_eventCounter;  
-};
-
-#endif
diff --git a/Generators/Reldis_i/share/MC12.Reldis.py b/Generators/Reldis_i/share/MC12.Reldis.py
deleted file mode 100644
index 7886f4a7cf74832ed3cdcdd44a46c620d8e752d5..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/share/MC12.Reldis.py
+++ /dev/null
@@ -1,22 +0,0 @@
-evgenConfig.description = "Heavy ion electromagnetic dissociation (EDM) with neutrons in the final state"
-evgenConfig.keywords    = ["heavy ion", "EDM"] 
-evgenConfig.contact     = ["Antonello Sbrizzi"]
-evgenConfig.generators  = ["Reldis"]
-
-from Reldis_i.Reldis_iConf import Reldis_i
-topAlg += Reldis_i()
-topAlg.Reldis_i.ReldisRootFileName = "/afs/cern.ch/atlas/offline/external/reldis/v0.0/test/inter/root/_cwn.root"
-topAlg.Reldis_i.ReldisTreeName     = "h2032"
-
-evgenConfig.generators += ["EvtGen"]
-evgenConfig.auxfiles   += ['inclusiveP8.dec', 'inclusiveP8.pdt']
-
-from EvtGen_i.EvtGen_iConf import EvtInclusiveDecay
-topAlg += EvtInclusiveDecay()
-topAlg.EvtInclusiveDecay.OutputLevel = INFO
-topAlg.EvtInclusiveDecay.decayFile   = "inclusiveP8.dec"
-topAlg.EvtInclusiveDecay.pdtFile     = "inclusiveP8.pdt"
-
-from TruthExamples.TruthExamplesConf import TestHepMC
-topAlg += TestHepMC()
-topAlg.TestHepMC.EnergyDifference = 1e10
diff --git a/Generators/Reldis_i/share/jobOptions.reldis.py b/Generators/Reldis_i/share/jobOptions.reldis.py
deleted file mode 100644
index fd3ced3cd2c47b86fd65a623909cccefcdf72054..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/share/jobOptions.reldis.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from AthenaCommon.AppMgr import ServiceMgr as svcMgr
-svcMgr.MessageSvc.OutputLevel = DEBUG
-
-theApp.EvtMax = 10
-
-from AthenaCommon.AlgSequence import AlgSequence
-topSequence = AlgSequence()
-
-from Reldis_i.Reldis_iConf import Reldis_i
-topSequence += Reldis_i()
-topSequence.Reldis_i.ReldisRootFileName = "/afs/cern.ch/atlas/offline/external/reldis/v0.0/test/inter/root/_cwn.root"
-topSequence.Reldis_i.ReldisTreeName     = "h2032"
-
-from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
-Stream1 = AthenaPoolOutputStream("StreamEVGEN")
-Stream1.OutputFile = "evgen.reldis.pool.root"
-Stream1.ItemList += ["2101#*", "133273#*"]
-
diff --git a/Generators/Reldis_i/share/test_reldis.Generate b/Generators/Reldis_i/share/test_reldis.Generate
deleted file mode 100755
index bc2c3cd57fe0f7cc6853f2e9da616e2b4554a1a7..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/share/test_reldis.Generate
+++ /dev/null
@@ -1,2 +0,0 @@
-Generate_trf.py ecmEnergy=0 runNumber=105200 firstEvent=1 maxEvents=10 randomSeed=54298752 jobConfig=Reldis_i/MC12.Reldis.py outputEVNTFile=MC12.Reldis.evgen.pool.root inputGeneratorFile=NONE inputGenConfFile=NONE
-
diff --git a/Generators/Reldis_i/src/HepMCInterface.cxx b/Generators/Reldis_i/src/HepMCInterface.cxx
deleted file mode 100644
index b04783b7fb09a7c4962acc262b825898c2c9d995..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/src/HepMCInterface.cxx
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Reldis_i/HepMCInterface.h"
-
-#include "GaudiKernel/IPartPropSvc.h"
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/Bootstrap.h"
-
-namespace HepMC {
-
-  void I_Reldis::fill_next_event(ReldisTree& tree, GenEvent* evt, int ievtnum) {
-  
-    if (!evt) { std::cerr << "I_Reldis::fill_next_event, ERROR - passed null event." << std::endl; return; }
-  
-    evt->set_event_number(ievtnum);
-      
-    evt->weights().push_back(1.); // Set event weight to 1 (events are physically distributed)
-    
-    GenVertex* prod_vtx = new GenVertex();
-    
-    prod_vtx->set_position(FourVector()); // Create a HepMC vertex at (0, 0, 0) with all particles
-    
-    // See suggestion of Andy on how to set the statusCode:
-    // https://savannah.cern.ch/task/?func=detailitem&item_id=25015#comment29
-    addParticles(prod_vtx, tree.Nleft,     tree.Ipdg_l_n,  tree.Pxl,    tree.Pyl,    tree.Pzl,    1); // Add neutrons left 
-    addParticles(prod_vtx, tree.Nright,    tree.Ipdg_r_n,  tree.Pxr,    tree.Pyr,    tree.Pzr,    1); // Add neutrons right 
-    addParticles(prod_vtx, tree.Nleft_p,   tree.Ipdg_l_p,  tree.Pxl_p,  tree.Pyl_p,  tree.Pzl_p,  1); // Add protons  left 
-    addParticles(prod_vtx, tree.Nright_p,  tree.Ipdg_r_p,  tree.Pxr_p,  tree.Pyr_p,  tree.Pzr_p,  1); // Add protons  right 
-    addParticles(prod_vtx, tree.Nleft_pp,  tree.Ipdg_l_pp, tree.Pxl_pp, tree.Pyl_pp, tree.Pzl_pp, 2); // Add pi plus  left 
-    addParticles(prod_vtx, tree.Nright_pp, tree.Ipdg_r_pp, tree.Pxr_pp, tree.Pyr_pp, tree.Pzr_pp, 2); // Add pi plus  right 
-    addParticles(prod_vtx, tree.Nleft_pm,  tree.Ipdg_l_pm, tree.Pxl_pm, tree.Pyl_pm, tree.Pzl_pm, 2); // Add pi minus left 
-    addParticles(prod_vtx, tree.Nright_pm, tree.Ipdg_r_pm, tree.Pxr_pm, tree.Pyr_pm, tree.Pzr_pm, 2); // Add pi minus right 
-    addParticles(prod_vtx, tree.Nleft_p0,  tree.Ipdg_l_p0, tree.Pxl_p0, tree.Pyl_p0, tree.Pzl_p0, 2); // Add pi zero  left 
-    addParticles(prod_vtx, tree.Nright_p0, tree.Ipdg_r_p0, tree.Pxr_p0, tree.Pyr_p0, tree.Pzr_p0, 2); // Add pi zero  right 
-    addParticles(prod_vtx, tree.Nleft_et,  tree.Ipdg_l_et, tree.Pxl_et, tree.Pyl_et, tree.Pzl_et, 2); // Add eta      left 
-    addParticles(prod_vtx, tree.Nright_et, tree.Ipdg_r_et, tree.Pxr_et, tree.Pyr_et, tree.Pzr_et, 2); // Add eta      right 
-    addParticles(prod_vtx, tree.Nleft_om,  tree.Ipdg_l_om, tree.Pxl_om, tree.Pyl_om, tree.Pzl_om, 2); // Add omega    left 
-    addParticles(prod_vtx, tree.Nright_om, tree.Ipdg_r_om, tree.Pxr_om, tree.Pyr_om, tree.Pzr_om, 2); // Add omega    right 
-
-    evt->add_vertex(prod_vtx);
-  }
-
-  void I_Reldis::addParticles(GenVertex* prod_vtx, 
-			      Int_t nParticles, 
-			      Int_t   pdg[ReldisTree::MAX_NUM_PART], 
-			      Float_t px [ReldisTree::MAX_NUM_PART], 
-			      Float_t py [ReldisTree::MAX_NUM_PART], 
-			      Float_t pz [ReldisTree::MAX_NUM_PART],
-			      Int_t   statusCode) {
-
-    for (int i=0; i<nParticles; i++) {
-      
-      ThreeVector mom(px[i]*1000, py[i]*1000, pz[i]*1000);
-      
-      int    pid  = pdg[i];
-      double mass = getParticleMass(pid);
-
-      GenParticle* aParticle = new GenParticle(FourVector(mom.x(), mom.y(), mom.z(), sqrt(mom.r()*mom.r() + mass*mass)), 
-					       pid, statusCode, Flow(), Polarization(0, 0));
-      
-      prod_vtx->add_particle_out(aParticle);
-    }
-  }
-
-  double I_Reldis::getParticleMass(int pid) {
-    
-    if (m_particleTable == 0) {
-
-      std::cout << " Inizializing m_particleTable " << std::endl;
-
-      IPartPropSvc* partPropSvc = 0;
-      StatusCode PartPropStatus = Gaudi::svcLocator()->service("PartPropSvc", partPropSvc);
-      
-      if (!PartPropStatus.isSuccess() || 0 == partPropSvc)
-	throw GaudiException("PartPropSvc error", "I_Reldis", StatusCode::FAILURE);      
-      
-      m_particleTable = partPropSvc->PDT();
-    }
-    
-    const HepPDT::ParticleData* particle = m_particleTable->particle(HepPDT::ParticleID(abs(pid)));
-    
-    return particle->mass().value();
-  }  
-}
diff --git a/Generators/Reldis_i/src/ReldisTree.cxx b/Generators/Reldis_i/src/ReldisTree.cxx
deleted file mode 100644
index ea26ca0ec56784f786831bd6469fd4f010c15cae..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/src/ReldisTree.cxx
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Reldis_i/ReldisTree.h"
-
-ReldisTree::ReldisTree() {
-
-  fChain   = 0;
-  fCurrent = 0;
-
-  Nleft     = 0;
-  Eleft     = 0;
-  Nright    = 0;
-  Eright    = 0;
-  Nleft_p   = 0;
-  Nright_p  = 0;
-  Nleft_pp  = 0;
-  Nright_pp = 0;
-  Nleft_pm  = 0;
-  Nright_pm = 0;
-  Nleft_p0  = 0;
-  Nright_p0 = 0;
-  Nleft_et  = 0;
-  Nright_et = 0;
-  Nleft_om  = 0;
-  Nright_om = 0;
-
-  for (int i=0; i<MAX_NUM_PART; i++) {
-
-    Ipdg_l_n   [i] = 0;
-    Pxl        [i] = 0;
-    Pyl        [i] = 0;
-    Pzl        [i] = 0;
-
-    Ipdg_r_n   [i] = 0;
-    Pxr        [i] = 0;
-    Pyr        [i] = 0;
-    Pzr        [i] = 0;
-
-    Etaleft_p  [i] = 0;
-    Ipdg_l_p   [i] = 0;
-    Pxl_p      [i] = 0;
-    Pyl_p      [i] = 0;
-    Pzl_p      [i] = 0;
-
-    Etaright_p [i] = 0;
-    Ipdg_r_p   [i] = 0;
-    Pxr_p      [i] = 0;
-    Pyr_p      [i] = 0;
-    Pzr_p      [i] = 0;
-
-    Etaleft_pp [i] = 0;
-    Ipdg_l_pp  [i] = 0;
-    Pxl_pp     [i] = 0;
-    Pyl_pp     [i] = 0;
-    Pzl_pp     [i] = 0;
-
-    Etaright_pp[i] = 0;
-    Ipdg_r_pp  [i] = 0;
-    Pxr_pp     [i] = 0;
-    Pyr_pp     [i] = 0;
-    Pzr_pp     [i] = 0;
-
-    Etaleft_pm [i] = 0;
-    Ipdg_l_pm  [i] = 0;
-    Pxl_pm     [i] = 0;
-    Pyl_pm     [i] = 0;
-    Pzl_pm     [i] = 0;
-
-    Etaright_pm[i] = 0;
-    Ipdg_r_pm  [i] = 0;
-    Pxr_pm     [i] = 0;
-    Pyr_pm     [i] = 0;
-    Pzr_pm     [i] = 0;
-
-    Etaleft_p0 [i] = 0;
-    Ipdg_l_p0  [i] = 0;
-    Pxl_p0     [i] = 0;
-    Pyl_p0     [i] = 0;
-    Pzl_p0     [i] = 0;
-
-    Etaright_p0[i] = 0;
-    Ipdg_r_p0  [i] = 0;
-    Pxr_p0     [i] = 0;
-    Pyr_p0     [i] = 0;
-    Pzr_p0     [i] = 0;
-
-    Etaleft_et [i] = 0;
-    Ipdg_l_et  [i] = 0;
-    Pxl_et     [i] = 0;
-    Pyl_et     [i] = 0;
-    Pzl_et     [i] = 0;
-
-    Etaright_et[i] = 0;
-    Ipdg_r_et  [i] = 0;
-    Pxr_et     [i] = 0;
-    Pyr_et     [i] = 0;
-    Pzr_et     [i] = 0;
-
-    Etaleft_om [i] = 0;
-    Ipdg_l_om  [i] = 0;
-    Pxl_om     [i] = 0;
-    Pyl_om     [i] = 0;
-    Pzl_om     [i] = 0;
-
-    Etaright_om[i] = 0;
-    Ipdg_r_om  [i] = 0;
-    Pxr_om     [i] = 0;
-    Pyr_om     [i] = 0;
-    Pzr_om     [i] = 0;
-  }
-
-  b_Nleft    = 0;
-  b_Eleft    = 0;
-  b_Ipdg_l_n = 0;
-  b_Pxl      = 0;
-  b_Pyl      = 0;
-  b_Pzl      = 0;
-
-  b_Nright   = 0;
-  b_Eright   = 0;
-  b_Ipdg_r_n = 0;
-  b_Pxr      = 0;
-  b_Pyr      = 0;
-  b_Pzr      = 0;
-
-  b_Nleft_p   = 0;
-  b_Etaleft_p = 0;
-  b_Ipdg_l_p  = 0;
-  b_Pxl_p     = 0;
-  b_Pyl_p     = 0;
-  b_Pzl_p     = 0;
-
-  b_Nright_p   = 0;
-  b_Etaright_p = 0;
-  b_Ipdg_r_p   = 0;
-  b_Pxr_p      = 0;
-  b_Pyr_p      = 0;
-  b_Pzr_p      = 0;
-
-  b_Nleft_pp   = 0;
-  b_Etaleft_pp = 0;
-  b_Ipdg_l_pp  = 0; 
-  b_Pxl_pp     = 0;
-  b_Pyl_pp     = 0;
-  b_Pzl_pp     = 0;
-
-  b_Nright_pp   = 0;
-  b_Etaright_pp = 0;
-  b_Ipdg_r_pp   = 0;
-  b_Pxr_pp      = 0;
-  b_Pyr_pp      = 0;
-  b_Pzr_pp      = 0;
-
-  b_Nleft_pm   = 0;
-  b_Etaleft_pm = 0;
-  b_Ipdg_l_pm  = 0;
-  b_Pxl_pm     = 0;
-  b_Pyl_pm     = 0;
-  b_Pzl_pm     = 0;
-
-  b_Nright_pm   = 0;
-  b_Etaright_pm = 0;
-  b_Ipdg_r_pm   = 0;
-  b_Pxr_pm      = 0;
-  b_Pyr_pm      = 0;
-  b_Pzr_pm      = 0;
-
-  b_Nleft_p0   = 0;
-  b_Etaleft_p0 = 0;
-  b_Ipdg_l_p0  = 0;
-  b_Pxl_p0     = 0;
-  b_Pyl_p0     = 0;
-  b_Pzl_p0     = 0;
-
-  b_Nright_p0   = 0;
-  b_Etaright_p0 = 0;
-  b_Ipdg_r_p0   = 0;
-  b_Pxr_p0      = 0;
-  b_Pyr_p0      = 0;
-  b_Pzr_p0      = 0;
-
-  b_Nleft_et   = 0;
-  b_Etaleft_et = 0;
-  b_Ipdg_l_et  = 0;
-  b_Pxl_et     = 0;
-  b_Pyl_et     = 0;
-  b_Pzl_et     = 0;
-
-  b_Nright_et   = 0;
-  b_Etaright_et = 0;
-  b_Ipdg_r_et   = 0;
-  b_Pxr_et      = 0;
-  b_Pyr_et      = 0;
-  b_Pzr_et      = 0;
-
-  b_Nleft_om   = 0;
-  b_Etaleft_om = 0;
-  b_Ipdg_l_om  = 0;
-  b_Pxl_om     = 0;
-  b_Pyl_om     = 0;
-  b_Pzl_om     = 0;
-
-  b_Nright_om   = 0;
-  b_Etaright_om = 0;
-  b_Ipdg_r_om   = 0;
-  b_Pxr_om      = 0;
-  b_Pyr_om      = 0;
-  b_Pzr_om      = 0;
-}
-
-ReldisTree::~ReldisTree() {
-  
-  if (!fChain) return;
-  
-  delete fChain->GetCurrentFile();
-}
-
-Int_t ReldisTree::GetEntry(Long64_t entry) {
-
-  if (!fChain) return 0;
-  
-  return fChain->GetEntry(entry);
-}
-
-Long64_t ReldisTree::LoadTree(Long64_t entry) {
-
-  if (!fChain) return -5;
-
-  Long64_t centry = fChain->LoadTree(entry);  
-
-  if (centry < 0) return centry;
-   
-  if (!fChain->InheritsFrom(TChain::Class())) return centry;
-   
-  TChain* chain = (TChain*)fChain;
-   
-  if (chain->GetTreeNumber() != fCurrent)
-    fCurrent = chain->GetTreeNumber();
-   
-  return centry;
-}
-
-Bool_t ReldisTree::Init(TString rootFileName, TString treeName) {
-  
-  TFile* file = new TFile(rootFileName);
-  
-  if (!file) return kFALSE; 
-  
-  TTree* tree = (TTree*)gDirectory->Get(treeName);
-  
-  if (!tree) {
-    
-    std::cout << treeName << " tree not found! " << std::endl;
-    return kFALSE;
-  }
-  
-  // Set branch addresses and branch pointers  
-  fChain = tree;
-  fCurrent = -1;
-  fChain->SetMakeClass(1);
-
-  fChain->SetBranchAddress("Nleft",       &Nleft,       &b_Nleft);
-  fChain->SetBranchAddress("Eleft",       &Eleft,       &b_Eleft);
-  fChain->SetBranchAddress("Ipdg_l_n",     Ipdg_l_n,    &b_Ipdg_l_n);
-  fChain->SetBranchAddress("Pxl",          Pxl,         &b_Pxl);
-  fChain->SetBranchAddress("Pyl",          Pyl,         &b_Pyl);
-  fChain->SetBranchAddress("Pzl",          Pzl,         &b_Pzl);
-
-  fChain->SetBranchAddress("Nright",      &Nright,      &b_Nright);
-  fChain->SetBranchAddress("Eright",      &Eright,      &b_Eright);
-  fChain->SetBranchAddress("Ipdg_r_n",     Ipdg_r_n,    &b_Ipdg_r_n);
-  fChain->SetBranchAddress("Pxr",          Pxr,         &b_Pxr);
-  fChain->SetBranchAddress("Pyr",          Pyr,         &b_Pyr);
-  fChain->SetBranchAddress("Pzr",          Pzr,         &b_Pzr);
-
-  fChain->SetBranchAddress("Nleft_p",     &Nleft_p,     &b_Nleft_p);
-  fChain->SetBranchAddress("Etaleft_p",    Etaleft_p,   &b_Etaleft_p);
-  fChain->SetBranchAddress("Ipdg_l_p",     Ipdg_l_p,    &b_Ipdg_l_p);
-  fChain->SetBranchAddress("Pxl_p",        Pxl_p,       &b_Pxl_p);
-  fChain->SetBranchAddress("Pyl_p",        Pyl_p,       &b_Pyl_p);
-  fChain->SetBranchAddress("Pzl_p",        Pzl_p,       &b_Pzl_p);
-
-  fChain->SetBranchAddress("Nright_p",    &Nright_p,    &b_Nright_p);
-  fChain->SetBranchAddress("Etaright_p",   Etaright_p,  &b_Etaright_p);
-  fChain->SetBranchAddress("Ipdg_r_p",     Ipdg_r_p,    &b_Ipdg_r_p);
-  fChain->SetBranchAddress("Pxr_p",        Pxr_p,       &b_Pxr_p);
-  fChain->SetBranchAddress("Pyr_p",        Pyr_p,       &b_Pyr_p);
-  fChain->SetBranchAddress("Pzr_p",        Pzr_p,       &b_Pzr_p);
-
-  fChain->SetBranchAddress("Nleft_pp",    &Nleft_pp,    &b_Nleft_pp);
-  fChain->SetBranchAddress("Etaleft_pp",   Etaleft_pp,  &b_Etaleft_pp);
-  fChain->SetBranchAddress("Ipdg_l_pp",    Ipdg_l_pp,   &b_Ipdg_l_pp);
-  fChain->SetBranchAddress("Pxl_pp",       Pxl_pp,      &b_Pxl_pp);
-  fChain->SetBranchAddress("Pyl_pp",       Pyl_pp,      &b_Pyl_pp);
-  fChain->SetBranchAddress("Pzl_pp",       Pzl_pp,      &b_Pzl_pp);
-
-  fChain->SetBranchAddress("Nright_pp",   &Nright_pp,   &b_Nright_pp);
-  fChain->SetBranchAddress("Etaright_pp",  Etaright_pp, &b_Etaright_pp);
-  fChain->SetBranchAddress("Ipdg_r_pp",    Ipdg_r_pp,   &b_Ipdg_r_pp);
-  fChain->SetBranchAddress("Pxr_pp",       Pxr_pp,      &b_Pxr_pp);
-  fChain->SetBranchAddress("Pyr_pp",       Pyr_pp,      &b_Pyr_pp);
-  fChain->SetBranchAddress("Pzr_pp",       Pzr_pp,      &b_Pzr_pp);
-
-  fChain->SetBranchAddress("Nleft_pm",    &Nleft_pm,    &b_Nleft_pm);
-  fChain->SetBranchAddress("Etaleft_pm",   Etaleft_pm,  &b_Etaleft_pm);
-  fChain->SetBranchAddress("Ipdg_l_pm",    Ipdg_l_pm,   &b_Ipdg_l_pm);
-  fChain->SetBranchAddress("Pxl_pm",       Pxl_pm,      &b_Pxl_pm);
-  fChain->SetBranchAddress("Pyl_pm",       Pyl_pm,      &b_Pyl_pm);
-  fChain->SetBranchAddress("Pzl_pm",       Pzl_pm,      &b_Pzl_pm);
-
-  fChain->SetBranchAddress("Nright_pm",   &Nright_pm,   &b_Nright_pm);
-  fChain->SetBranchAddress("Etaright_pm",  Etaright_pm, &b_Etaright_pm);
-  fChain->SetBranchAddress("Ipdg_r_pm",    Ipdg_r_pm,   &b_Ipdg_r_pm);
-  fChain->SetBranchAddress("Pxr_pm",       Pxr_pm,      &b_Pxr_pm);
-  fChain->SetBranchAddress("Pyr_pm",       Pyr_pm,      &b_Pyr_pm);
-  fChain->SetBranchAddress("Pzr_pm",       Pzr_pm,      &b_Pzr_pm);
-
-  fChain->SetBranchAddress("Nleft_p0",    &Nleft_p0,    &b_Nleft_p0);
-  fChain->SetBranchAddress("Etaleft_p0",   Etaleft_p0,  &b_Etaleft_p0);
-  fChain->SetBranchAddress("Ipdg_l_p0",    Ipdg_l_p0,   &b_Ipdg_l_p0);
-  fChain->SetBranchAddress("Pxl_p0",       Pxl_p0,      &b_Pxl_p0);
-  fChain->SetBranchAddress("Pyl_p0",       Pyl_p0,      &b_Pyl_p0);
-  fChain->SetBranchAddress("Pzl_p0",       Pzl_p0,      &b_Pzl_p0);
-
-  fChain->SetBranchAddress("Nright_p0",   &Nright_p0,   &b_Nright_p0);
-  fChain->SetBranchAddress("Etaright_p0",  Etaright_p0, &b_Etaright_p0);
-  fChain->SetBranchAddress("Ipdg_r_p0",    Ipdg_r_p0,   &b_Ipdg_r_p0);
-  fChain->SetBranchAddress("Pxr_p0",       Pxr_p0,      &b_Pxr_p0);
-  fChain->SetBranchAddress("Pyr_p0",       Pyr_p0,      &b_Pyr_p0);
-  fChain->SetBranchAddress("Pzr_p0",       Pzr_p0,      &b_Pzr_p0);
-
-  fChain->SetBranchAddress("Nleft_et",    &Nleft_et,    &b_Nleft_et);
-  fChain->SetBranchAddress("Etaleft_et",   Etaleft_et,  &b_Etaleft_et);
-  fChain->SetBranchAddress("Ipdg_l_et",    Ipdg_l_et,   &b_Ipdg_l_et);
-  fChain->SetBranchAddress("Pxl_et",       Pxl_et,      &b_Pxl_et);
-  fChain->SetBranchAddress("Pyl_et",       Pyl_et,      &b_Pyl_et);
-  fChain->SetBranchAddress("Pzl_et",       Pzl_et,      &b_Pzl_et);
-
-  fChain->SetBranchAddress("Nright_et",   &Nright_et,   &b_Nright_et);
-  fChain->SetBranchAddress("Etaright_et",  Etaright_et, &b_Etaright_et);
-  fChain->SetBranchAddress("Ipdg_r_et",    Ipdg_r_et,   &b_Ipdg_r_et);
-  fChain->SetBranchAddress("Pxr_et",       Pxr_et,      &b_Pxr_et);
-  fChain->SetBranchAddress("Pyr_et",       Pyr_et,      &b_Pyr_et);
-  fChain->SetBranchAddress("Pzr_et",       Pzr_et,      &b_Pzr_et);
-
-  fChain->SetBranchAddress("Nleft_om",    &Nleft_om,    &b_Nleft_om);
-  fChain->SetBranchAddress("Etaleft_om",   Etaleft_om,  &b_Etaleft_om);
-  fChain->SetBranchAddress("Ipdg_l_om",    Ipdg_l_om,   &b_Ipdg_l_om);
-  fChain->SetBranchAddress("Pxl_om",       Pxl_om,      &b_Pxl_om);
-  fChain->SetBranchAddress("Pyl_om",       Pyl_om,      &b_Pyl_om);
-  fChain->SetBranchAddress("Pzl_om",       Pzl_om,      &b_Pzl_om);
-
-  fChain->SetBranchAddress("Nright_om",   &Nright_om,   &b_Nright_om);
-  fChain->SetBranchAddress("Etaright_om",  Etaright_om, &b_Etaright_om);
-  fChain->SetBranchAddress("Ipdg_r_om",    Ipdg_r_om,   &b_Ipdg_r_om);
-  fChain->SetBranchAddress("Pxr_om",       Pxr_om,      &b_Pxr_om);
-  fChain->SetBranchAddress("Pyr_om",       Pyr_om,      &b_Pyr_om);
-  fChain->SetBranchAddress("Pzr_om",       Pzr_om,      &b_Pzr_om);
-
-  return kTRUE;
-}
diff --git a/Generators/Reldis_i/src/Reldis_i.cxx b/Generators/Reldis_i/src/Reldis_i.cxx
deleted file mode 100644
index 908ef7164f41624664f459074be1f8aed1d93a39..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/src/Reldis_i.cxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "Reldis_i/Reldis_i.h"
-
-Reldis_i::Reldis_i(const std::string& name, ISvcLocator* pSvcLocator) : 
-  GenModule(name, pSvcLocator),
-  m_reldisRootFileName("_cwn.root"),
-  m_reldisTreeName("h2032")
-{
-  declareProperty("ReldisRootFileName", m_reldisRootFileName);
-  declareProperty("ReldisTreeName",     m_reldisTreeName);
-  
-  m_eventCounter = 0;
-}
-
-Reldis_i::~Reldis_i() {}
-
-StatusCode Reldis_i::genInitialize() {
-  
-  ATH_MSG_INFO("Reldis_i::genInitialize");
-  
-  m_reldisTree.Init(m_reldisRootFileName, m_reldisTreeName); 
-  
-  ATH_MSG_INFO("RELDIS events: " << m_reldisTree.fChain->GetEntriesFast());
-  
-  return StatusCode::SUCCESS;
-}
-
-StatusCode Reldis_i::callGenerator() {
-  
-  ATH_MSG_DEBUG("Reldis_i::callGenerator");  
-  
-  int retCode = m_reldisTree.LoadTree(m_eventCounter);
-  
-  if (retCode<0) { 
-    
-    ATH_MSG_INFO("Problem with TChain.LoadTree, return code: " << retCode << ", m_eventCounter: " << m_eventCounter);
-    
-    return StatusCode::FAILURE;
-  }
-  
-  m_reldisTree.GetEntry(m_eventCounter);
-  
-  return StatusCode::SUCCESS;
-}
-
-StatusCode Reldis_i::fillEvt(GenEvent* evt) { 
-  
-  ATH_MSG_DEBUG("Reldis_i::fillEvt. EventCounter: " << m_eventCounter);
-  
-  m_reldisToHepMC.fill_next_event(m_reldisTree, evt, m_eventCounter);
-  
-  m_eventCounter++;
-  
-  return StatusCode::SUCCESS;
-}
-
-StatusCode Reldis_i::genFinalize() {
-
-  ATH_MSG_INFO("Reldis_i::genFinalize");
-  
-  return StatusCode::SUCCESS;
-}
diff --git a/Generators/Reldis_i/src/components/Reldis_i_entries.cxx b/Generators/Reldis_i/src/components/Reldis_i_entries.cxx
deleted file mode 100644
index 9de051638375015bdb637b9c6989989f525fad11..0000000000000000000000000000000000000000
--- a/Generators/Reldis_i/src/components/Reldis_i_entries.cxx
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "Reldis_i/Reldis_i.h"
-
-DECLARE_COMPONENT( Reldis_i )
-
diff --git a/Generators/TrackRecordGenerator/CMakeLists.txt b/Generators/TrackRecordGenerator/CMakeLists.txt
deleted file mode 100644
index 80c29cd59b8162aa6b09cd820f886d5806625220..0000000000000000000000000000000000000000
--- a/Generators/TrackRecordGenerator/CMakeLists.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-################################################################################
-# Package: TrackRecordGenerator
-################################################################################
-
-# Declare the package name:
-atlas_subdir( TrackRecordGenerator )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PUBLIC
-                          Generators/GeneratorModules
-                          PRIVATE
-                          GaudiKernel
-                          Simulation/G4Sim/TrackRecord )
-
-# External dependencies:
-find_package( CLHEP )
-find_package( HepMC )
-
-# Component(s) in the package:
-atlas_add_library( TrackRecordGeneratorLib
-                   src/TrackRecordGenerator.cxx
-                   PUBLIC_HEADERS TrackRecordGenerator
-                   INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-                   DEFINITIONS ${CLHEP_DEFINITIONS}
-                   LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} GeneratorModulesLib
-                   PRIVATE_LINK_LIBRARIES GaudiKernel )
-
-atlas_add_component( TrackRecordGenerator
-                     src/components/*.cxx
-                     INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} GeneratorModulesLib GaudiKernel TrackRecordGeneratorLib )
-
-# Install files from the package:
-atlas_install_python_modules( python/*.py )
-
diff --git a/Generators/TrackRecordGenerator/TrackRecordGenerator/TrackRecordGenerator.h b/Generators/TrackRecordGenerator/TrackRecordGenerator/TrackRecordGenerator.h
deleted file mode 100644
index 7fd48ad08f157dc03ed99ee64914c2bb7dc28429..0000000000000000000000000000000000000000
--- a/Generators/TrackRecordGenerator/TrackRecordGenerator/TrackRecordGenerator.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-@class TrackRecordGenerator
-
-@brief Track Record Generator.  The class takes input simulation track records and uses them as generator records.
-
-@author 
-   Zach Marshall <ZLMarshall@lbl.gov>
-
-*/
-
-#ifndef TRACKRECORDGENERATOR_H
-#define TRACKRECORDGENERATOR_H
-
-#include "GeneratorModules/GenModule.h"
-
-// Members
-#include "CLHEP/Vector/LorentzVector.h"
-#include "HepMC/Polarization.h"
-
-#include <vector>
-#include <string>
-
-class TrackRecordGenerator : public GenModule {
- public:
-   TrackRecordGenerator(const std::string& name, ISvcLocator* pSvcLocator);
-   virtual ~TrackRecordGenerator();
-   virtual StatusCode callGenerator();
-   virtual StatusCode fillEvt(HepMC::GenEvent* evt);
- 
- private:
- 
-   // Event record holders
-   int m_events;
-   std::vector<int> m_pdgCode;
-   std::vector<CLHEP::HepLorentzVector> m_fourPos;
-   std::vector<CLHEP::HepLorentzVector> m_fourMom;
-   CLHEP::Hep3Vector m_center;
-   std::vector<HepMC::Polarization> m_polarization;
- 
-   // Options for track records 
-   double m_smearTR;  //!< Amount by which to smear TR position
-   double m_smearTRp; //!< Amount by which to smear TR momentum
-   std::string m_recordName;  //!< TrackRecord collection name
-   bool m_stopParticles;      //!< Stop particles before simulation
-   float m_stopped_tminus, m_stopped_tplus; //!< Bounds for random time
-   bool m_add_cL; //!< For stopped particles, add c*L to the time
-};
-
-#endif
diff --git a/Generators/TrackRecordGenerator/python/TrackRecordGeneratorConfig.py b/Generators/TrackRecordGenerator/python/TrackRecordGeneratorConfig.py
deleted file mode 100644
index b1e222ea17c28e8d31936b0c2be44d6b7c7de5d2..0000000000000000000000000000000000000000
--- a/Generators/TrackRecordGenerator/python/TrackRecordGeneratorConfig.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
-############## Input: Reading Particles from TrackRecord Input File ###############
-def getInput_TrackRecordGenerator(name="TrackRecordGenerator", **kwargs):
-    ## Configuring the Athena application for a 'track record' job
-    import G4AtlasApps.AtlasCosmicTrackRecordJob
-    kwargs.setdefault('TRCollection','CosmicRecord') # Collection name
-    kwargs.setdefault('TRSmearing', -1) #in millimeters, e.g. 10
-    kwargs.setdefault('TRPSmearing', -1) #in radians, e.g. 0.01
-    kwargs.setdefault('StopParticles', False) # Stop the particles or not
-    kwargs.setdefault('stopped_tminus', -25.) # in ns, lower bound
-    kwargs.setdefault('stopped_tplus', 25.) # in ns, upper bound
-    #kwargs.setdefault('OutputLevel', DEBUG) # for turning up output during testing
-
-    ## Adding the TrackRecordGenerator to the list of algs
-    from TrackRecordGenerator.TrackRecordGeneratorConf import TrackRecordGenerator
-    algorithm = TrackRecordGenerator(**kwargs)
-    from AthenaCommon.AlgSequence import AlgSequence
-    topSequence = AlgSequence()
-    if not hasattr(topSequence, 'TrackRecordGenerator'):
-        topSequence += algorithm
-
-    return algorithm
-
-def getTrackRecordCosmicGenerator(name="TrackRecordCosmicGenerator", **kwargs):
-    return getInput_TrackRecordGenerator(name, **kwargs)
diff --git a/Generators/TrackRecordGenerator/python/TrackRecordGeneratorConfigDb.py b/Generators/TrackRecordGenerator/python/TrackRecordGeneratorConfigDb.py
deleted file mode 100644
index a7e3cfafcdcd3f7f71aadb017c7f1e2069764072..0000000000000000000000000000000000000000
--- a/Generators/TrackRecordGenerator/python/TrackRecordGeneratorConfigDb.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
-from AthenaCommon.CfgGetter import addAlgorithm
-
-addAlgorithm("TrackRecordGenerator.TrackRecordGeneratorConfig.getInput_TrackRecordGenerator", "TrackRecordGenerator")
-addAlgorithm("TrackRecordGenerator.TrackRecordGeneratorConfig.getTrackRecordCosmicGenerator", "TrackRecordCosmicGenerator")
diff --git a/Generators/TrackRecordGenerator/src/TrackRecordGenerator.cxx b/Generators/TrackRecordGenerator/src/TrackRecordGenerator.cxx
deleted file mode 100644
index 1bff952ed34bf1538d1a58176efd9264bdb06770..0000000000000000000000000000000000000000
--- a/Generators/TrackRecordGenerator/src/TrackRecordGenerator.cxx
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// -------------------------------------------------------------
-// File: TrackRecordGenerator/TrackRecordGenerator.cxx
-//   Mostly adopted from the cosmic generator
-
-#include "TrackRecordGenerator/TrackRecordGenerator.h"
-
-#include "CLHEP/Vector/ThreeVector.h"
-#include "CLHEP/Geometry/Normal3D.h"
-#include "CLHEP/Units/PhysicalConstants.h"
-#include "CLHEP/Random/RandFlat.h"
-
-#include "TrackRecord/TrackRecordCollection.h"
-
-#include <limits>
-#include <cmath>
-#include <vector>
-#include <string>
-#include <fstream>
-
-//--------------------------------------------------------------------------
-TrackRecordGenerator::TrackRecordGenerator(const std::string& name, ISvcLocator* pSvcLocator)
-   : GenModule(name,pSvcLocator)
-   , m_events(0)
-{
-  // Input collection name
-  declareProperty("TRCollection" , m_recordName = "CosmicRecord" );
-
-  // Smearing of the initial position for tracks
-  declareProperty("TRSmearing", m_smearTR=-1, "Smear the initial position of the track by up to this amount");
-  declareProperty("TRPSmearing", m_smearTRp=-1, "Smear the momentum of the track by up to this amount");
-  declareProperty("StopParticles", m_stopParticles=false, "Stop the particles and make them decay within 25 ns");
-  declareProperty("stopped_tminus", m_stopped_tminus =-25. );
-  declareProperty("stopped_tplus", m_stopped_tplus =25. );
-  declareProperty("Add_cL", m_add_cL=true, "For stopped particles, shift the time by c times the decay rho");
-}
-
-//--------------------------------------------------------------------------
- TrackRecordGenerator::~TrackRecordGenerator()
-{}
-
-//---------------------------------------------------------------------------
-StatusCode TrackRecordGenerator::callGenerator() {
-
-  ++m_events;
-  ATH_MSG_DEBUG( "Event #" << m_events);
-
-  // clear up the vectors
-  m_fourPos.clear();
-  m_fourMom.clear();
-  m_polarization.clear();
-  m_pdgCode.clear();
-
-  //const DataHandle <TimedTrackRecordCollection> coll;
-  const DataHandle <TrackRecordCollection> coll;
-  CHECK( evtStore()->retrieve(coll,m_recordName) );
-
-  ATH_MSG_INFO("retrieved "<<coll->size()<<" TTR hits; will smear position by "<< (m_smearTR>0?m_smearTR:0.) <<" mm and momentum by "<< (m_smearTRp>0?m_smearTRp:0.) <<" radians");
-
-  for (auto iterTTR : *coll) {
-
-    const HepPDT::ParticleData* particle = particleData(abs(iterTTR.GetPDGCode()));
-    double mass = particle->mass().value();
-    double en = std::sqrt(mass*mass+iterTTR.GetMomentum().mag2());
-
-    ATH_MSG_VERBOSE("Reading back TTR:\n pos is "<<iterTTR.GetPosition()
-                  <<"\n mom is "<<iterTTR.GetMomentum()
-                  <<"\n pdg is "<<iterTTR.GetPDGCode() );
-
-    CLHEP::HepLorentzVector particle4Position( iterTTR.GetPosition(), iterTTR.GetTime());
-
-    ATH_MSG_DEBUG( "Smearing position by up to " << m_smearTR << " mm and momentum by up to " << m_smearTRp << " radians" );
-    if (m_smearTR>0){
-      ATH_MSG_DEBUG( "Track record started at " << particle4Position );
-
-      // if Z is maximal, move in X and Y; otherwise move in Z and "phi"
-      if ( particle4Position.z() == 22031 || particle4Position.z() == -22031 ){ //FIXME Hardcoded limits!
-        particle4Position.setX( particle4Position.x() + CLHEP::RandFlat::shoot(&randomEngine(), -m_smearTR, m_smearTR) );
-        particle4Position.setY( particle4Position.y() + CLHEP::RandFlat::shoot(&randomEngine(), -m_smearTR, m_smearTR) );
-      } else {
-        particle4Position.setZ( particle4Position.z() + CLHEP::RandFlat::shoot(&randomEngine(), -m_smearTR, m_smearTR) );
-        double R = sqrt( pow( particle4Position.x(),2 ) + pow(particle4Position.y(),2 ) );
-        double dPhi = atan2( m_smearTR, R );
-        dPhi = CLHEP::RandFlat::shoot( &randomEngine(), -dPhi, dPhi );
-        double theta = atan2( particle4Position.x() , particle4Position.y() );
-        particle4Position.setX( R*sin( theta + dPhi ) );
-        particle4Position.setY( R*cos( theta + dPhi ) );
-      }
-      ATH_MSG_DEBUG( "Shifted track record to " << particle4Position );
-    }
-    CLHEP::HepLorentzVector particle4Momentum( iterTTR.GetMomentum(), en );
-    if (m_smearTRp>0){
-      ATH_MSG_DEBUG( "Track record momentum was " << particle4Momentum );
-
-      // Keep p - smear an angle, and then randomly spin that change in (0,2PI)
-      double dTheta = CLHEP::RandFlat::shoot(&randomEngine(), 0, m_smearTRp);
-      double dPhi   = CLHEP::RandFlat::shoot(&randomEngine(), 0, 2*M_PI);
-
-      // Need a perpendicular vector...
-      CLHEP::HepLorentzVector perpendicularMomentum( 1 , 0 , 0 , 0);
-      if ( particle4Momentum.x() != 0 ){
-        if (particle4Momentum.y() == 0){
-          perpendicularMomentum.setX( 0 );
-          perpendicularMomentum.setY( 1 );
-        } else {
-          perpendicularMomentum.setX( particle4Momentum.y() );
-          perpendicularMomentum.setY( particle4Momentum.x() );
-        }
-      }
-
-      // Now scale it based on dTheta
-      double tempP = pow(particle4Momentum.x(),2)+pow(particle4Momentum.y(),2)+pow(particle4Momentum.z(),2);
-      if ( tempP==0 ) {
-        ATH_MSG_DEBUG("Our initial momentum had zero magnitude!!");
-        perpendicularMomentum.setX(0);
-        perpendicularMomentum.setY(0);
-      } else if ( tan(dTheta) == 0 ){
-        ATH_MSG_DEBUG("Randomly deciding to keep the vector's direction...");
-        perpendicularMomentum.setX(0);
-        perpendicularMomentum.setY(0);
-      } else {
-        double scale = ( tempP ) * sin(dTheta) / ( pow(perpendicularMomentum.x(),2)+pow(perpendicularMomentum.y(),2) );
-        perpendicularMomentum.setX( perpendicularMomentum.x() * scale );
-        perpendicularMomentum.setY( perpendicularMomentum.y() * scale );
-
-        // Rotate perpendicularMomentum by dPhi around particle4Momentum
-        perpendicularMomentum.rotate( dPhi , particle4Momentum.vect() );
-      }
-      particle4Momentum.setX( particle4Momentum.x() + perpendicularMomentum.x() );
-      particle4Momentum.setY( particle4Momentum.y() + perpendicularMomentum.y() );
-      particle4Momentum.setZ( particle4Momentum.z() + perpendicularMomentum.z() );
-
-      // Rescale (very small effect, but want to include it)
-      double scale2 = tempP==0? 1 : (pow(particle4Momentum.x(),2)+pow(particle4Momentum.y(),2)+pow(particle4Momentum.z(),2)) / tempP;
-      particle4Momentum.setX( particle4Momentum.x() * scale2 );
-      particle4Momentum.setY( particle4Momentum.y() * scale2 );
-      particle4Momentum.setZ( particle4Momentum.z() * scale2 );
-      ATH_MSG_DEBUG( "Rotated the vector by " << perpendicularMomentum );
-      ATH_MSG_DEBUG( "And resulting momentum is " << particle4Momentum );
-    }
-    if (m_stopParticles){
-      ATH_MSG_DEBUG( "Will stop the track record where it is and give it mass " << mass );
-      particle4Momentum.setX(0);
-      particle4Momentum.setY(0);
-      particle4Momentum.setZ(0);
-      particle4Momentum.setT(mass);
-
-      double settime=CLHEP::RandFlat::shoot(&randomEngine(),m_stopped_tminus, m_stopped_tplus);
-      ATH_MSG_DEBUG( "Setting particle time to something uniform between "<<m_stopped_tminus<<" and "<<m_stopped_tplus<<" ns : " << settime );
-      if (m_add_cL){
-        settime += particle4Position.rho()/CLHEP::c_light;
-      }
-      particle4Position.setT(settime*CLHEP::c_light); // ct in mm
-    }
-
-    m_fourPos.push_back( particle4Position );
-    m_fourMom.push_back( particle4Momentum );
-
-    m_pdgCode.push_back(iterTTR.GetPDGCode());
-    HepMC::Polarization thePolarization;
-    thePolarization.set_normal3d(HepGeom::Normal3D<double>(0,0,0));
-    m_polarization.push_back(thePolarization);
-
-    if (m_stopParticles){
-      ATH_MSG_DEBUG( "Only one per event!!" );
-      break;
-    }
-  } // Loop through the track record collection
-
-  return StatusCode::SUCCESS;
-}
-
-//---------------------------------------------------------------------------
-StatusCode TrackRecordGenerator::fillEvt(HepMC::GenEvent* event) {
-
-  if(m_fourMom.size()==m_fourPos.size()&&m_fourMom.size()==m_polarization.size()){
-
-    for(std::size_t v=0;v<m_fourMom.size();++v){
-      // Note: The vertex and particle are owned by the event, so the
-      // event is responsible for those pointers.
-
-      // Create the particle, and specify its polarization.
-      HepMC::GenParticle* particle = new HepMC::GenParticle( m_fourMom[v], m_pdgCode[v], 1);
-      particle->set_polarization( m_polarization[v] );
-
-      // Create the vertex, and add the particle to the vertex.
-      HepMC::GenVertex* vertex = new HepMC::GenVertex(m_fourPos[v]);
-      vertex->add_particle_out( particle );
-
-      // Add the vertex to the event.
-      event->add_vertex( vertex );
-    } // Loop over the particles
-
-    event->set_event_number(m_events); // Set the event number
-    if (event->weights().empty()){
-      event->weights().push_back(1.0);
-    }
-    return StatusCode::SUCCESS;
-  } else {
-    ATH_MSG_ERROR("Wrong different number of vertexes/momenta/polaritazions!");
-    return StatusCode::FAILURE;
-  }
-
-}
-
diff --git a/Generators/TrackRecordGenerator/src/components/TrackRecordGenerator_entries.cxx b/Generators/TrackRecordGenerator/src/components/TrackRecordGenerator_entries.cxx
deleted file mode 100644
index e6f43793a01dfb3b0419f5cf413053dba62b8171..0000000000000000000000000000000000000000
--- a/Generators/TrackRecordGenerator/src/components/TrackRecordGenerator_entries.cxx
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "TrackRecordGenerator/TrackRecordGenerator.h"
-
-DECLARE_COMPONENT( TrackRecordGenerator )
-
diff --git a/Generators/VBFNLOControl/CMakeLists.txt b/Generators/VBFNLOControl/CMakeLists.txt
deleted file mode 100644
index bd543096b5e97bfbe0704dbb2c5f405cb2e7fa48..0000000000000000000000000000000000000000
--- a/Generators/VBFNLOControl/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-################################################################################
-# Package: VBFNLOControl
-################################################################################
-
-# Declare the package name:
-atlas_subdir( VBFNLOControl )
-
-# Install files from the package:
-atlas_install_python_modules( python/*.py )
-atlas_install_joboptions( share/*.py )
-
diff --git a/Generators/VBFNLOControl/python/VbfnloUtils.py b/Generators/VBFNLOControl/python/VbfnloUtils.py
deleted file mode 100644
index 0fca036b083c9cfe07d3108a02149876a03c4377..0000000000000000000000000000000000000000
--- a/Generators/VBFNLOControl/python/VbfnloUtils.py
+++ /dev/null
@@ -1,409 +0,0 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
-#########################################################################################################################
-#
-#   Script to configure Vbfnlo subprocesses
-#
-#   Authors: Florian Kiss <florian.kiss@cern.ch>
-#            
-#            
-#
-#########################################################################################################################
-
-#! /usr/bin/env python
-import os,sys,time,subprocess,shutil
-from AthenaCommon import Logging
-log = Logging.logging.getLogger('VbfnloUtils')
-
-
-class VbfnloConfig():
-  error = 0
-
-  outputEventsName = 'VbfnloOutput._1.events'
-  VbfnloPath = os.environ['VBFNLOPATH']
-  executablePath = VbfnloPath
-  executablePath += '/bin/vbfnlo'
-
-  if VbfnloPath=='':
-    log.error('VBFNLO Setup Failed! Please set VbfnloPath correctly!')
-    error = 1
-
-  TestArea = os.environ['TestArea']
-
-  
-  nEvents = 1000
-  energy = 8000
-  muF = "125d0"
-  muR = "125d0"
-  pdf = 0
-  randomSeed = 42
-  runNumber = 777777
-
-  process = 100
-  lo_iterations = 4
-  lo_points = 21
-  hmass = "125d0"
-
-  #spin2 parameters
-  spin2 = "false"
-  f1 = "1d0"
-  f2 = "1d0"
-  f3 = "0d0"
-  f4 = "0d0"
-  f5 = "1d0"
-  lambd = "1.5d3"
-  nff = "0d0"
-  lambdaff = "4d2"
-
-  #spin0 anomalous couplings
-  anom_cpl = "false"
-  formfactor_spin0 = ".false."
-  mass_scale = "200d0"
-  ffac_param = "2"
-  parametr1 = ".true."
-  lambda5 = "480d0"
-  g5e_hww = "1d0"
-  g5e_hzz = "1d0"
-  g5e_hgg = "1d0"
-  g5e_hgz = "1d0"
-  g5o_hww = "0d0"
-  g5o_hzz = "0d0"
-  g5o_hgg = "0d0"
-  g5o_hgz = "0d0"
-  #parametr2 = ".false."
-  #parametr3 = ".false."
-  treefacw = "0d0"
-  treefacz = "0d0"
-  loopfac = "0d0"
-
-  
-  def __init__(self,runArgs=None):
-
-    self.runArgs = runArgs
-    if runArgs == None :
-      log.warning('No run arguments found! Using defaults.')
-      #print 'No run arguments found! Using defaults.'
-    else :
-      if hasattr(self.runArgs,'ecmEnergy'):
-        self.energy = self.runArgs.ecmEnergy
-        
-      if hasattr(self.runArgs,'maxEvents'):
-        if self.runArgs.maxEvents > 0 :
-          self.nEvents = self.runArgs.maxEvents
-      
-      if hasattr(self.runArgs,'randomSeed'):
-        self.randomSeed = self.runArgs.randomSeed
-        
-      if not hasattr(runArgs,'inputGeneratorFile'):
-        runArgs.inputGeneratorFile = self.outputEventsName+'.tar.gz'
-
-      if hasattr(runArgs,'runNumber'):
-        self.runNumber = runArgs.runNumber 
-
-
-  def launchOnTheFly(self):
-    self.selectProcess()
-    self.generateRunCard()
-    self.generateEvents()
-    return 0
-  
-
-  def selectProcess(self):
-    if self.runNumber == 169883:
-      self.process = 101
-      
-    elif self.runNumber == 169884:
-      self.process = 101
-      self.anom_cpl = "true"
-      self.generateAnomCouplDat()
-
-    elif self.runNumber == 169885:
-      self.process = 101
-      self.anom_cpl = "true"
-      self.g5e_hww = "0d0"
-      self.g5e_hzz = "0d0"
-      self.g5e_hgg = "0d0"
-      self.g5e_hgz = "0d0"
-      self.g5o_hww = "1d0"
-      self.g5o_hzz = "1d0"
-      self.g5o_hgg = "1d0"
-      self.g5o_hgz = "1d0"
-      self.generateAnomCouplDat()
-
-    elif self.runNumber == 169886:
-      self.process = 191
-      self.spin2 = "true"
-      self.generateSpin2Dat()
-      self.lo_points = 23
-      
-    elif self.runNumber == 777777:
-      log.info('No default settings for couplings and processes used. The user is responsible for a correct setup!')
-
-    else:
-      log.error('RunNumber is not yet connected to any VBFNLO process. Please retry with different a RunNumber.')
-      self.error = 1
-    return 0
-  
-  
-  def generateRunCard(self):
-    log.info("Writing vbfnlo.dat  to "+str(self.TestArea)+"/vbfnlo.dat")
-    #print "Writing vbfnlo.dat  to "+str(self.TestArea)+"/vbfnlo.dat" 
-    
-    with open( str(self.TestArea)+'/vbfnlo.dat','w') as f:
-    #with open( 'vbfnlo.dat','w') as f:
-      f.write( "!   General parameters of the calculation !-------------------------------------------\n")
-      f.write( "PROCESS              = "+ str(self.process) +"                  ! Identifier for process\n")
-      f.write( "LOPROCESS_PLUS_JET   = false                ! switch: LO process with 1 additional jet\n")
-      f.write( "LEPTONS              = 11 -11 13 -13 15 -15 ! final state leptons\n")
-      f.write( "LO_ITERATIONS        = "+ str(self.lo_iterations) +"         ! number of iterations for LO calculation\n")
-      f.write( "NLO_ITERATIONS       = 4         ! number of iterations for LO real-emissions calc.\n")
-      f.write( "LO_POINTS            = "+ str(self.lo_points) +"        ! number of points for LO calculation (= 2^..)\n")
-      f.write( "NLO_POINTS           = 25        ! number of points for real-emissions calc. \n")
-      f.write( 'LO_GRID              = "grid2_1" "grid2_2" "grid2_3" "grid2_4" ! names of gridfiles for LO calculation\n')		     
-      f.write( 'NLO_GRID             = "grid3_1" "grid3_2" "grid3_3" "grid3_4" ! names of gridfiles for real emissions calculation\n')   
-      f.write( 'PHTN_GRID            = "grid4_1" "grid4_2" "grid4_3" "grid4_4" ! names of gridfiles for photon emission calculation\n')  
-      f.write( 'FLOOP_GRID           = "grid5_1" "grid5_2" "grid5_3" "grid5_4" ! names of gridfiles for fermion loop calculation\n')     
-      f.write( "NLO_SWITCH           = false	 ! switch: nlo/lo calculation\n")							     
-      f.write( "EWCOR_SWITCH         = false     ! Whether electroweak corrections are included\n")					     
-      f.write( "FERMIONLOOP          = 3         ! Contribution of gluon-induced fermionic loops for diboson processes\n\n")               
-
-      f.write( "ECM	             = "+ str(self.energy) +"	 ! collider center-of-mass energy\n")
-      f.write( "BEAM1                = 1         ! type of beam 1 (1=proton, -1 = antiproton)\n")
-      f.write( "BEAM2  	             = 1         ! type of beam 2 (1=proton, -1 = antiproton)\n\n")
-      
-      f.write( "ID_MUF	             = 0         ! ID for factorization scale\n")
-      f.write( "ID_MUR	             = 0         ! ID for renormalization scale\n")
-      f.write( "MUF_USER             = "+ str(self.muF) + "     ! user defined factorization scale, if MUF is set to 0\n")
-      f.write( "MUR_USER             = "+ str(self.muR) + "     ! user defined renormalization scale, if MUR is set to 0\n")
-      f.write( "XIF	             = 1d0       ! scale factor xi for mu_F (not mu^2!!)\n")	
-      f.write( "XIR	             = 1d0	 ! scale factor xi for mu_R\n\n")
-
-      f.write( "!   Physics parameters\n")
-      f.write( "!------------------------\n") 
-      f.write( "HMASS       = "+ str(self.hmass) +"         ! Higgs mass\n")
-      f.write( "HTYPE       = 0               ! Type of Higgs produced\n")
-      f.write( "MODEL       = 1               ! model: 1 for SM, 2 for MSSM\n")
-      f.write( "HWIDTH      = -999d0          ! Higgs width (set to -999d0 for internal calculation)\n")
-      f.write( "TOPMASS     = 172.4d0         ! Top mass\n")
-      f.write( "BOTTOMMASS  = 4.855d0         ! Bottom Pole mass\n")
-      f.write( "CHARMMASS   = 1.65d0          ! Charm Pole mass\n")
-      f.write( "TAU_MASS    = 1.77684D0       ! Tau mass\n")
-      f.write( "EWSCHEME    = 3               ! Choose scheme for electroweak parameters (1,2,3,4,5,6)\n")
-      f.write( "DEL_ALFA    = 0.059047686d0   ! Delta alfa\n")
-      f.write( "ANOM_CPL    = "+ str(self.anom_cpl) +"           ! Anomalous couplings\n") 
-      f.write( "KK_MOD      = false           ! Warped Higgsless Model\n")
-      f.write( "SPIN2       = "+ str(self.spin2) + "            ! Spin-2 model\n")
-      f.write( "EW_APPROX   = 5               ! Approximation used when calculating electroweak \n\n")
-      
-      f.write( "FERMI_CONST = 1.16637d-5      ! Fermi Constant\n")
-      f.write( "INVALFA     = 137.035999679D0 ! 1/fine-structure constant\n")
-      f.write( "SIN2W       = 0.23116d0      ! Weak mixing angle\n")
-      f.write( "WMASS       = 80.398d0        ! W mass\n")
-      f.write( "ZMASS       = 91.1876d0       ! Z mass\n\n")
-
-      f.write( "!   Parameters for the LHA event output\n")
-      f.write( "!-----------------------------------------\n")
-      f.write( "LHA_SWITCH            = true      ! Les Houches interface only for LO calculation\n")
-      f.write( "LHA_FILE              = event.lhe  ! Name of Les Houches output file\n")
-      f.write( "HEPMC_SWITCH          = false      ! HepMC interface only for LO calculation\n")
-      f.write( "HEPMC_FILE            = event.hepmc ! Name of HepMC output file\n")
-      f.write( "PREMAXW_FRAC          = 0.005       ! fraction of phase space points to calculate pre-maximal weight\n")
-      f.write( "UNWEIGHTING_SWITCH    = true      ! unweighted/weighted (T/F) events event files\n")
-      f.write( "PREMAXW_FRAC          = 0.005       ! fraction of phase space points to calculate pre-maximal weight\n")
-#      f.write( "PRENEVUNW             = 1000       ! number of events to calculate pre-maximal weight\n")
-      f.write( "TAUMASS               = false      ! Include mass of the tau lepton(s) in the event file for VBF processes\n\n")
-      
-      
-      f.write( "!   PDF set parameters\n")
-      f.write( "!------------------------\n")
-      f.write( "PDF_SWITCH      = "+ str(self.pdf) +"	! which pdfs to use:\n") 
-      f.write( "!                          0 = hard-wired cteq6 (LO) and CT10 (NLO)\n")
-      f.write( "!                          1 = lhapdf (use LO_PDFNAME etc to specify)\n")
-      f.write( "!                          2 = hard-wired mrst2004qed\n")
-      f.write( "!                          3 = hard-wired MSTW2008\n")
-      f.write( "! choose pdfset and pdfmember here. Look at the LHAPDF manual for details.\n")
-      f.write( "LO_PDFNAME    = cteq6ll.LHpdf\n")
-      f.write( "NLO_PDFNAME   = CT10.LHgrid\n")
-      f.write( "LO_PDFMEMBER  = 0\n")
-      f.write( "NLO_PDFMEMBER = 0\n\n")		
-
-      f.write( "!   Parameters for histogram creation\n")
-      f.write( "!---------------------------------------\n")
-      f.write( "XSECFILE        = xsection        ! name of output-file (+ .out)\n")
-      f.write( "ROOT            = false           ! create root-file?\n")
-      f.write( "TOP             = false           ! create top-drawer file?\n")
-      f.write( "GNU             = false	          ! create gnu-plot script file?\n")
-      f.write( "DATA	        = false	          ! create data file?\n")
-      f.write( "REPLACE         = true            ! replace output files?\n")
-      f.write( "ROOTFILE = histograms      ! name of root-file ( + '.root')\n")
-      f.write( "TOPFILE  = histograms      ! name of top-drawer file ( + '.top')\n")
-      f.write( "GNUFILE  = histograms	   ! name of gnuplot file ( + '.gp')\n")
-      f.write( "DATAFILE = histograms	   ! name of data directory ( + '.dir')\n\n")
-
-    with open( str(self.TestArea)+ '/random.dat','w') as f:
-      f.write( "SEED = " + str(self.randomSeed))
-
-    #copy/generate cuts.dat
-#    log.info("For now copying cuts.dat  to "+str(self.TestArea)+"/vbfnlo.dat")
-#    shutil.copy(self.VbfnloPath+'/share/VBFNLO/cuts.dat', self.TestArea)
-
-    log.info("Writing cuts.dat  to "+str(self.TestArea)+"/cuts.dat")
-    with open( str(self.TestArea)+'/cuts.dat','w') as f:
-      f.write( " ! input file for the cut parameters						 \n")
-      f.write( " 										 \n")
-      f.write( " !   Jet cuts									 \n")
-      f.write( " !-------------									 \n")
-      f.write( " RJJ_MIN    = 0.4d0      ! min jet-jet R separation				 \n")
-      f.write( " Y_P_MAX    = 5.0d0      ! max pseudorapidity for partons 			 \n")
-      f.write( " PGENKTJET  = -1.0d0      ! exponent of generalised k_T algorithm		 \n")
-      f.write( " PT_JET_MIN = 10.0d0     ! min jet pT						 \n")
-      f.write( " Y_JET_MAX  = 5.0d0      ! max jet rapidity					 \n")
-      f.write( " 										 \n")
-      f.write( " !   Lepton cuts (only applied to charged leptons)				 \n")
-      f.write( " !--------------------------------------------------				 \n")
-      f.write( " Y_L_MAX    = 20d0      ! max lepton rapidity					 \n")
-      f.write( " PT_L_MIN   = -10.0d0     ! min lepton pT					 \n")
-      f.write( " MLL_MIN    = 15.0d0     ! min. m_l+l- for any comb. of opposite charged leptons \n")
-      f.write( " MLL_MAX    = 1d20       ! max. m_l+l- for any comb. of opposite charged leptons \n")
-      f.write( " RLL_MIN    = 0.4d0      ! min lepton-lepton R separation			 \n")
-      f.write( " RLL_MAX    = 50.0d0     ! max lepton-lepton R separation			 \n")
-      f.write( " 										 \n")
-      f.write( " !   Photon cuts								 \n")
-      f.write( " !----------------								 \n")
-      f.write( " Y_G_MAX    = 5d0      ! max pseudorapidity for photons			 \n")
-      f.write( " PT_G_MIN   = 0d0        ! min transverse momentum for photons			 \n")
-      f.write( " RGG_MIN    = 0.4d0      ! min photon-photon R separation			 \n")
-      f.write( " RGG_MAX    = 50.0d0     ! max photon-photon R separation			 \n")
-      f.write( " PHISOLCUT  = 0.4d0      ! photon isolation cut					 \n")
-      f.write( " EFISOLCUT  = 1d0        ! efficiency of photon isolation cut			 \n")
-      f.write( " 										 \n")
-      f.write( " !   Additional cuts								 \n")
-      f.write( " !---------------------------------						 \n")
-      f.write( " RJL_MIN    = 0.6d0      ! min jet-lepton R separation				 \n")
-      f.write( " RJG_MIN    = 0.4d0      ! min jet-photon R separation				 \n")
-      f.write( " RLG_MIN    = 0.6d0      ! min lepton-photon R separation			 \n")
-      f.write( " MLG_MIN    = 0.0d0      ! min. m_lg for any comb. of charged leptons and photons \n")
-      f.write( " MLG_MAX    = 1.d20      ! max. m_lg for any comb. of charged leptons and photons \n")
-      f.write( " 										 \n")
-      f.write( " !   Vector boson fusion cuts (only applied to tagging jets in VBF processes)	 \n")
-      f.write( " !----------------------------------------------------------------------------	 \n")
-      f.write( " ETAJJ_MIN  = 0d0        ! jet-jet rapidity separation				 \n")
-      f.write( " YSIGN      = false      ! jets #1 and #2 must have opposite sign rapidity	 \n")
-      f.write( " LRAPIDGAP  = false      ! leptons fall inside rapidity gap			 \n")
-      f.write( " DELY_JL    = 0.0d0      ! min y-dist of leptons from tagging jets		 \n")
-      f.write( " GRAPIDGAP  = false      ! photons fall inside rapidity gap			 \n")
-      f.write( " DELY_JG    = 0.0d0      ! min y-dist of photons from tagging jets		 \n")
-      f.write( " 										 \n")
-      f.write( " MDIJ_MIN   = 0.0d0    ! dijet min mass cut on tag jet  			 \n")
-      f.write( " MDIJ_MAX   = 1d20       ! dijet max mass cut on tag jet  			 \n")
-      f.write( " 										 \n")
-      f.write( " !   Jet Veto									 \n")
-      f.write( " !---------------------------------						 \n")
-      f.write( " JVETO      = false      ! veto jet cuts					 \n")	 
-      f.write( " DELY_JVETO = 0.0d0      ! min veto-tag y-dist					 \n") 
-      f.write( " YMAX_VETO  = 4.5d0      ! max |y| for veto jet					 \n")
-      f.write( " PTMIN_VETO = 50.0d0     ! min pT for veto jet                                   \n")  
-      
-    return 0
-    
-
-  def generateSpin2Dat(self):
-    log.info("Writing spin2coupl.dat  to "+str(self.TestArea)+"/spin2coupl.dat")
-    
-    with open( str(self.TestArea)+'/spin2coupl.dat','w') as f:
-      f.write( "!! Parameters for spin-2 model\n\n")
-      f.write( "f1 = " + str(self.f1) + "\n")
-      f.write( "f2 = " + str(self.f2) + "\n")
-      f.write( "f3 = " + str(self.f3) + "\n")
-      f.write( "f4 = " + str(self.f4) + "\n")
-      f.write( "f5 = " + str(self.f5) + "\n\n")
-      f.write( "! Triplet couplings\n\n")
-      f.write( "f6 = 0d0\n")
-      f.write( "f7 = 0d0\n\n")
-      f.write( "! energy scale of couplings (singlet and triplet) in GeV\n\n")
-      f.write( "lambda = " + str(self.lambd) + "\n\n")
-
-      f.write( "sp2mass     = " + str(self.hmass) +  "! mass of a spin-2 singlet particle\n")
-      f.write( "msp2trippm  = " + str(self.hmass) +  "! mass of a (pos. or neg.) charged spin-2 triplet particle\n")
-      f.write( "msp2tripn   = " + str(self.hmass) +  "! mass of a neutral spin-2 triplet particle\n\n")
-
-      f.write( "! branching ratio parameters for the widths (0.2 <= brrat(tripn/pm) <= 1.0)\n")
-      f.write( "!(Spin-2 particles could decay into particles which are not considered here)\n\n")
-
-      f.write( "brrat        =    1.0d0     ! branching ratio for sp2width (singlet width)\n")
-      f.write( "brrattrippm  =    1.0d0     ! branching ratio for sp2trippmwidth (charged triplet width)\n")
-      f.write( "brrattripn   =    1.0d0     ! branching ratio for sp2tripnwidth (neutral triplet width)\n\n")
-
-      f.write( "! parameters of the formfactor\n\n")
-
-      f.write( "nff      = " + str(self.nff) +  "    ! exponent of the formfactor\n")
-      f.write( "lambdaff = " + str(self.lambdaff) +  "    ! energy scale of the formfactor (in GeV)\n")
-    return 0
-
-
-  def generateAnomCouplDat(self):
-    log.info("Writing anom_HVV.dat  to "+str(self.TestArea)+"/vbfnlo.dat")
-
-    with open( str(self.TestArea)+'anom_HVV.dat','w') as f:
-      f.write( '------------------------------set anomalous HVV couplings\n')
-      f.write( '------------------------------set form factor\n')
-      f.write( 'FORMFACTOR = ' + str(self.formfactor_spin0) + '   ! form factor on(=.true.) or off(=.false.)\n')
-      f.write( 'MASS_SCALE = ' + str(self.mass_scale) + '   ! mass scale for new physics\n')
-      f.write( 'FFAC       = ' + str(self.ffac_param) + '         ! ffac=1: m^2/(q1^2-m^2)*m^2/(q2^2-m^2), ffac=2: C0(m,q1^2,q2^2,mH^2)\n')
-      f.write( '------------------------------Parametrisation: Phys. Lett. B591, 297\n')
-      f.write( 'PARAMETR1  = .true.    ! switch for this parametrisation; on(=.true.) or off(=.false.)\n')
-      f.write( 'LAMBDA5    = ' + str(self.lambda5) + '   !lambda5\n')
-      f.write( 'G5E_HWW    = ' + str(self.g5e_hww) + '  ! g5e_hww, CP-even\n')
-      f.write( 'G5E_HZZ    = ' + str(self.g5e_hzz) + '  ! g5e_hzz\n') 
-      f.write( 'G5E_HGG    = ' + str(self.g5e_hgg) + '  ! g5e_hgg\n')
-      f.write( 'G5E_HGZ    = ' + str(self.g5e_hgz) + '  ! g5e_hgz\n')
-      f.write( 'G5O_HWW    = ' + str(self.g5o_hww) + '  ! g5o_hww, CP-odd\n')
-      f.write( 'G5O_HZZ    = ' + str(self.g5o_hzz) + '  ! g5o_hzz\n') 
-      f.write( 'G5O_HGG    = ' + str(self.g5o_hgg) + '  ! g5o_hgg\n')
-      f.write( 'G5O_HGZ    = ' + str(self.g5o_hgz) + '  ! g5o_hgz\n')
-      f.write( ' ------------------------------Parametrisation of the L3-Collaboration					  \n')
-      f.write( ' PARAMETR2  = .false.   ! switch for this parametrisation; on(=.true.) or off=(.false.)			  \n')
-      f.write( ' D_EVEN     = 0.0d0     ! d,     CP-even								  \n')
-      f.write( ' DB_EVEN    = 0.0d0     ! d_B										  \n')
-      f.write( ' DG1Z_EVEN  = -0.060D0  ! Delta_g1_Z									  \n')
-      f.write( ' DKGAM_EVEN = 0.077D0   ! Delta_kappa_gamma								  \n')
-      f.write( ' D_ODD      = 0.0d0     ! d,    CP-odd									  \n')
-      f.write( ' DB_ODD     = 0.0d0     ! d_B										  \n')
-      f.write( ' KGAM_ODD   = 0.0d0     ! kappa_gamma									  \n')
-      f.write( ' HVV1       = 4         ! choice for anomalous couplings used: hzg = 0, hgg = 1, hzz = 2, hww = 3, all = 4\n')
-      f.write( ' -----------------------------Parametrisation: Phys. Lett. B318, 155					  \n')
-      f.write( ' -----------------------------(f_BW=0) in (GeV^-2)							  \n')
-      f.write( ' PARAMETR3  = .false.   ! switch for this parametrisation; on(=.true.) or off(=.false.)			  \n')
-      f.write( ' FWW_EVEN   = 0.0d0     ! f_WW/Lambda^2, CP-even							  \n')
-      f.write( ' FBB_EVEN   = 0.0d0     ! f_BB/Lambda^2									  \n')
-      f.write( ' FW_EVEN    = -1.44d-5  ! f_W/Lambda^2									  \n')
-      f.write( ' FB_EVEN    = 3.82D-5   ! f_B/Lambda^2									  \n')
-      f.write( ' FWW_ODD    = 0.0d0     ! f_WW/Lambda^2, CP-odd								  \n')
-      f.write( ' FBB_ODD    = 0.0d0     ! f_BB/Lambda^2									  \n')
-      f.write( ' FB_ODD     = 0.0d0     ! f_B/Lambda^2									  \n')
-      f.write( ' HVV2       = 4         ! choice for anomalous couplings used: hzg = 0, hgg = 1, hzz = 2, hww = 3, all = 4\n')
-      f.write( ' -----------------------------for all Parametrisations 							  \n')
-      f.write( ' TREEFACW   = ' + str(self.treefacw) + '      ! factor for SM hWW tensor (sin(alpha-beta) in MSSM)        \n')
-      f.write( ' TREEFACZ   = ' + str(self.treefacz) + '      ! factor for SM hZZ tensor (sin(alpha-beta) in MSSM)	  \n')
-      f.write( ' LOOPFAC    = ' + str(self.loopfac) + '      ! factor multiplying hZgamma and hgammagamma sm loops        \n')
-    return 0
-
-
-  def generateEvents(self):
-    if self.error == 1:
-      log.error('An error occured! No event generation!')
-      return 0  
-      
-    #print 'Generating events'
-    log.info('Start Generating VBFNLO LHEF events at '+str(time.asctime()))
-    log.info('Running ' + str(self.executablePath))
-
-    generate = subprocess.Popen( [self.executablePath,''])
-    generate.wait()
-    os.rename('event.lhe',self.outputEventsName)
-    
-    rezip = subprocess.Popen(['tar','cvzf',str(self.outputEventsName) + '.tar.gz',self.outputEventsName])
-    rezip.wait()
-    
-    log.info('Finished at '+str(time.asctime()))
-    return 0
diff --git a/Generators/VBFNLOControl/python/__init__.py b/Generators/VBFNLOControl/python/__init__.py
deleted file mode 100644
index 74583d364ec2ca794156596c7254d9b234a940c6..0000000000000000000000000000000000000000
--- a/Generators/VBFNLOControl/python/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-
diff --git a/Generators/VBFNLOControl/share/MC12.Hgg_test.py b/Generators/VBFNLOControl/share/MC12.Hgg_test.py
deleted file mode 100644
index 0252a03fae486181e1ea081c5ab84c69b86c736b..0000000000000000000000000000000000000000
--- a/Generators/VBFNLOControl/share/MC12.Hgg_test.py
+++ /dev/null
@@ -1,28 +0,0 @@
-#Test job options to see how things work.                                                                                                        
-include("VBFNLOControl/MC12_VBFNLO.py")
-
-VbfnloConfig.lo_points = 21
-VbfnloConfig.launchOnTheFly()
-
-#--------------------------------------------------------------                                                                                  
-# General MC12 configuration                                                                                                                     
-#--------------------------------------------------------------                                                                                  
-#to be changed
-
-from AthenaCommon.AlgSequence import AlgSequence
-topAlg = AlgSequence("TopAlg")
-
-evgenConfig.description = "VBFNLO VBF X->gamma gamma with UEEE3,CTEQ6L1 SpinCP 0p SM"
-evgenConfig.keywords = ["vbf", "higgs", "gamma", "SpinCP"]
-
-include("MC12JobOptions/Herwigpp_UEEE3_CTEQ6L1_LHEF_Common.py")
-evgenConfig.generators += ["Lhef"]
-
-cmds = """
-create ThePEG::ParticleData graviton
-setup graviton 39 G 125.0 0.0 0.0 0.0 3 0 1 0
-
-decaymode graviton->gamma,gamma; 1.0 1 /Herwig/Decays/Mambo
-"""
-
-topAlg.Herwigpp.Commands += cmds.splitlines()
diff --git a/Generators/VBFNLOControl/share/MC12_VBFNLO.py b/Generators/VBFNLOControl/share/MC12_VBFNLO.py
deleted file mode 100644
index d519ac97c3ac4fa58a44aad3b6cad7bee4d974db..0000000000000000000000000000000000000000
--- a/Generators/VBFNLOControl/share/MC12_VBFNLO.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from VBFNLOControl.VbfnloUtils import VbfnloConfig
-
-# Use the Vbfnlo_SMHiggs configuration                                                                                                             
-if 'runArgs' in dir() :
-  VbfnloConfig = VbfnloConfig(runArgs)
-else :
-  VbfnloConfig = VbfnloConfig()
diff --git a/Projects/AthGeneration/package_filters.txt b/Projects/AthGeneration/package_filters.txt
index 576ff199df6036ed393051f4912fb912fe1b8de3..b340bb9a2c063d07c11ebdcf893dd4559fe43a93 100644
--- a/Projects/AthGeneration/package_filters.txt
+++ b/Projects/AthGeneration/package_filters.txt
@@ -138,30 +138,7 @@
 + Event/xAOD/xAODTruthCnv
 + External/AtlasDataArea
 + External/Pythia8
-- Generators/AcerMC_i
-- Generators/AlpGen_i
 + Generators/Charybdis_i
-- Generators/CompHep_i
-- Generators/EmbeddedTrackGenerator
-- Generators/ExoGraviton_i
-- Generators/GravADD_i
-- Generators/Herwig_i
-- Generators/Horace_i
-- Generators/HvGen_i
-- Generators/MadCUP_i
-- Generators/MadGraph_i 
-- Generators/Matchig_i
-- Generators/McAtNlo_i
-- Generators/Protos_i
-- Generators/Pyquench_i
-- Generators/Pythia_i
-- Generators/PythiaB
-- Generators/PythiaChL_i
-- Generators/PythiaExo_i
-- Generators/PythiaRhad_i
-- Generators/Reldis_i
-- Generators/VBFNLOControl
-- Generators/TrackRecordGenerator
 + Generators/.*
 + InnerDetector/InDetExample/InDetRecExample
 #+ InnerDetector/InDetRecTools/InDetTrackSelectionTool
diff --git a/Projects/Athena/package_filters.txt b/Projects/Athena/package_filters.txt
index 515f66b6c0ba927a183c7dd9f5af6508a7619f5d..2bc7cb2e226fbd909075b13159b0ad39e7712c36 100644
--- a/Projects/Athena/package_filters.txt
+++ b/Projects/Athena/package_filters.txt
@@ -24,29 +24,7 @@
 - graphics/VP1/VP1Systems/VP1TriggerDecisionSystems
 + graphics/VP1/.*
 
-# Some generators that are no longer needed in the release
-- Generators/AcerMC_i
-- Generators/AlpGen_i
-- Generators/CompHep_i
-- Generators/EmbeddedTrackGenerator
-- Generators/ExoGraviton_i
-- Generators/GravADD_i
-- Generators/Herwig_i
-- Generators/Horace_i
-- Generators/HvGen_i
-- Generators/MadCUP_i 
-- Generators/MadGraph_i 
-- Generators/Matchig_i
-- Generators/McAtNlo_i
-- Generators/Protos_i
-- Generators/Pyquench_i 
-- Generators/Pythia_i
-- Generators/PythiaB
-- Generators/PythiaChL_i
-- Generators/PythiaExo_i
-- Generators/PythiaRhad_i
-- Generators/Reldis_i
-- Generators/VBFNLOControl
+
 
 # Some analysis packages that are not part of Athena
 - Control/AthLinksSA