Index: external/fastjet/plugins/SISCone/AUTHORS
===================================================================
--- external/fastjet/plugins/SISCone/AUTHORS	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/AUTHORS	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -6,8 +6,11 @@
 	     France
 
-	 (2) Rudolf Peierls Centre for Theoretical Physics, Parks Road, Oxford OX1 3PU, UK;
-             PH-TH, CERN, CH-1211 Geneva 23, Switzerland;
+	 (2) PH-TH, CERN, CH-1211 Geneva 23, Switzerland;
+             Physics Department, Princeton University, Princeton NJ 08544, USA;
              LPTHE, UPMC (Univ. Paris 6), 75252 Paris cedex 05, France.
 
+phone  : +33 69 08 40 11
+         +41 22 767 2462
+
 email  : soyez@fastjet.fr
-         gavin.salam@physics.ox.ac.uk
+         salam@lpthe.jussieu.fr
Index: external/fastjet/plugins/SISCone/SISConePlugin.cc
===================================================================
--- external/fastjet/plugins/SISCone/SISConePlugin.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/SISConePlugin.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,63 +22,11 @@
 }
 
-//======================================================================
-// wrap-up around siscone's user-defined scales
-namespace siscone_plugin_internal{
-  /// @ingroup internal
-  /// \class SISConeUserScale
-  /// class that makes the transition between the internal SISCone
-  /// user-defined scale choice (using SISCone's Cjet) and
-  /// user-defined scale choices in the plugn above (using FastJet's
-  /// PseudoJets)
-  class SISConeUserScale  : public siscone::Csplit_merge::Cuser_scale_base{
-  public:
-    /// ctor takes the "fastjet-style" user-defined scale as well as a
-    /// reference to the current cluster sequence (to access the
-    /// particles if needed)
-    SISConeUserScale(const SISConePlugin::UserScaleBase *user_scale,
-		     const ClusterSequence &cs)
-      : _user_scale(user_scale), _cs(cs){}
-
-    /// returns the scale associated to a given jet
-    virtual double operator()(const siscone::Cjet &jet) const{
-      return _user_scale->result(_build_PJ_from_Cjet(jet));
-    }
-
-    /// returns true id the scasle associated to jet a is larger than
-    /// the scale associated to jet b
-    virtual bool is_larger(const siscone::Cjet &a, const siscone::Cjet &b) const{
-      return _user_scale->is_larger(_build_PJ_from_Cjet(a), _build_PJ_from_Cjet(b));
-    }
-
-  private:
-    /// constructs a PseudoJet from a siscone::Cjet
-    ///
-    /// Note that it is tempting to overload the PseudoJet ctor. This
-    /// would not work because down the line we need to access the
-    /// original PseudoJet through the ClusterSequence and therefore
-    /// the PseudoJet structure needs to be aware of the
-    /// ClusterSequence.
-    PseudoJet _build_PJ_from_Cjet(const siscone::Cjet &jet) const{
-      PseudoJet j(jet.v.px, jet.v.py, jet.v.pz, jet.v.E);
-      j.set_structure_shared_ptr(SharedPtr<PseudoJetStructureBase>(
-                                   new SISConePlugin::UserScaleBaseStructureType<siscone::Cjet>(jet,_cs)));      
-      return j;
-    }
-
-    const SISConePlugin::UserScaleBase *_user_scale;
-    const ClusterSequence & _cs;
-  };
-}
-
-// end of the internal material
-//======================================================================
-
 
 /////////////////////////////////////////////
 // static members declaration              //
 /////////////////////////////////////////////
-SharedPtr<SISConePlugin>           SISConePlugin::stored_plugin;
-SharedPtr<std::vector<PseudoJet> > SISConePlugin::stored_particles;
-SharedPtr<Csiscone>                SISConePlugin::stored_siscone;
+std::auto_ptr<SISConePlugin>           SISConePlugin::stored_plugin;
+std::auto_ptr<std::vector<PseudoJet> > SISConePlugin::stored_particles;
+std::auto_ptr<Csiscone>                SISConePlugin::stored_siscone;
 
 
@@ -97,21 +45,10 @@
   desc << "SISCone jet algorithm with " ;
   desc << "cone_radius = "       << cone_radius        () << ", ";
-  if (_progressive_removal)
-    desc << "progressive-removal mode, ";
-  else  
-    desc << "overlap_threshold = " << overlap_threshold  () << ", ";
+  desc << "overlap_threshold = " << overlap_threshold  () << ", ";
   desc << "n_pass_max = "        << n_pass_max         () << ", ";
   desc << "protojet_ptmin = "    << protojet_ptmin()      << ", ";
-  if (_progressive_removal && _user_scale) {
-    desc << "using a user-defined scale for ordering of stable cones";
-    string user_scale_desc = _user_scale->description();
-    if (user_scale_desc != "") desc << " (" << user_scale_desc << ")";
-  } else {
-    desc <<  sm_scale_string;
-  }
-  if (!_progressive_removal){
-    desc << ", caching turned "      << (caching() ? on : off);
-    desc << ", SM stop scale = "     << _split_merge_stopping_scale;
-  }
+  desc <<  sm_scale_string                                << ", ";
+  desc << "caching turned "      << (caching() ? on : off);
+  desc << ", SM stop scale = "     << _split_merge_stopping_scale;
 
   // add a note to the description if we use the pt-weighted splitting
@@ -148,5 +85,5 @@
   bool new_siscone = true; // by default we'll be running it
 
-  if (caching() && !_progressive_removal) {
+  if (caching()) {
 
     // Establish if we have a cached run with the same R, npass and
@@ -201,19 +138,7 @@
     // run the jet finding
     //cout << "plg sms: " << split_merge_scale() << endl;
-    if (_progressive_removal){
-      // handle the optional user-defined scale choice
-      SharedPtr<siscone_plugin_internal::SISConeUserScale> internal_scale;
-      if (_user_scale){
-	internal_scale.reset(new siscone_plugin_internal::SISConeUserScale(_user_scale, clust_seq));
-	siscone->set_user_scale(internal_scale.get());
-      }
-      siscone->compute_jets_progressive_removal(siscone_momenta, cone_radius(),
-						n_pass_max(), protojet_or_ghost_ptmin(), 
-						Esplit_merge_scale(split_merge_scale()));
-    } else {
-      siscone->compute_jets(siscone_momenta, cone_radius(), overlap_threshold(),
-			    n_pass_max(), protojet_or_ghost_ptmin(), 
-			    Esplit_merge_scale(split_merge_scale()));
-    }
+    siscone->compute_jets(siscone_momenta, cone_radius(), overlap_threshold(),
+			  n_pass_max(), protojet_or_ghost_ptmin(), 
+			  Esplit_merge_scale(split_merge_scale()));
   } else {
     // rerun the jet finding
@@ -230,8 +155,4 @@
   SISConeExtras * extras = new SISConeExtras(n);
 
-  // the ordering in which the inclusive jets are transfered here is
-  // deliberate and ensures that when a user asks for
-  // inclusive_jets(), they are provided in the order in which SISCone
-  // created them.
   for (int ijet = njet-1; ijet >= 0; ijet--) {
     const Cjet & jet = siscone->jets[ijet]; // shorthand
@@ -286,10 +207,5 @@
 
   // give the extras object to the cluster sequence.
-  // 
-  // As of v3.1 of FastJet, extras are automatically owned (as
-  // SharedPtr) by the ClusterSequence and auto_ptr is deprecated. So
-  // we can use a simple pointer here
-  //clust_seq.plugin_associate_extras(std::auto_ptr<ClusterSequence::Extras>(extras));
-  clust_seq.plugin_associate_extras(extras);
+  clust_seq.plugin_associate_extras(std::auto_ptr<ClusterSequence::Extras>(extras));
 }
 
@@ -299,53 +215,3 @@
 }
 
-// //======================================================================
-// // material to handle user-defined scales
-// 
-// //--------------------------------------------------
-// // SISCone structure type
-// 
-// // the textual descripotion
-// std::string SISConePlugin::UserScaleBase::StructureType::description() const{
-//   return "PseudoJet wrapping a siscone::Cjet stable cone"; 
-// }
-// 
-// // retrieve the constituents
-// //
-// // if you simply need to iterate over the constituents, it will be
-// // faster to access them via constituent(i)
-// vector<PseudoJet> SISConePlugin::UserScaleBase::StructureType::constituents(const PseudoJet &) const{ 
-//   vector<PseudoJet> constits;
-//   constits.reserve(_jet.n);
-//   for (unsigned int i=0; i<(unsigned int)_jet.n;i++)
-//     constits.push_back(constituent(i));
-//   return constits;
-// }
-// 
-// // returns the number of constituents
-// unsigned int SISConePlugin::UserScaleBase::StructureType::size() const{
-//   return _jet.n;
-// }
-// 
-// // returns the index (in the original particle list) of the ith
-// // constituent
-// int SISConePlugin::UserScaleBase::StructureType::constituent_index(unsigned int i) const{ 
-//   return _jet.contents[i];
-// }
-// 
-// // returns the ith constituent (as a PseusoJet)
-// const PseudoJet & SISConePlugin::UserScaleBase::StructureType::constituent(unsigned int i) const{
-//   return _cs.jets()[_jet.contents[i]];
-// }
-// 
-// // returns the scalar pt of this stable cone
-// double SISConePlugin::UserScaleBase::StructureType::pt_tilde() const{
-//   return _jet.pt_tilde;
-// }
-// 
-// // returns the sm_var2 (signed ordering variable squared) for this stable cone
-// double SISConePlugin::UserScaleBase::StructureType::ordering_var2() const{
-//   return _jet.sm_var2;
-// }
-
-
 FASTJET_END_NAMESPACE      // defined in fastjet/internal/base.hh
Index: external/fastjet/plugins/SISCone/area.cc
===================================================================
--- external/fastjet/plugins/SISCone/area.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/area.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 149                                                          $//
-// $Date:: 2007-03-15 00:13:58 +0100 (Thu, 15 Mar 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/area.h
===================================================================
--- external/fastjet/plugins/SISCone/area.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/area.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 149                                                          $//
-// $Date:: 2007-03-15 00:13:58 +0100 (Thu, 15 Mar 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/circulator.h
===================================================================
--- external/fastjet/plugins/SISCone/circulator.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/circulator.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 103                                                          $//
-// $Date:: 2007-02-18 17:07:34 +0100 (Sun, 18 Feb 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/config.h
===================================================================
--- external/fastjet/plugins/SISCone/config.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/config.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -1,117 +1,66 @@
-#ifndef _SISCONE_CONFIG_H
-#define _SISCONE_CONFIG_H 1
- 
-/* siscone/config.h. Generated automatically at end of configure. */
-/* siscone/config_raw.h.  Generated from config.h.in by configure.  */
+/* siscone/config.h.  Generated from config.h.in by configure.  */
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
-#ifndef SISCONE_HAVE_DLFCN_H 
-#define SISCONE_HAVE_DLFCN_H  1 
-#endif
+#define HAVE_DLFCN_H 1
 
 /* Define to 1 if you have the <inttypes.h> header file. */
-#ifndef SISCONE_HAVE_INTTYPES_H 
-#define SISCONE_HAVE_INTTYPES_H  1 
-#endif
+#define HAVE_INTTYPES_H 1
 
 /* Define to 1 if you have the `m' library (-lm). */
-#ifndef SISCONE_HAVE_LIBM 
-#define SISCONE_HAVE_LIBM  1 
-#endif
+#define HAVE_LIBM 1
 
 /* Define to 1 if you have the <memory.h> header file. */
-#ifndef SISCONE_HAVE_MEMORY_H 
-#define SISCONE_HAVE_MEMORY_H  1 
-#endif
+#define HAVE_MEMORY_H 1
 
 /* Define to 1 if you have the <stdint.h> header file. */
-#ifndef SISCONE_HAVE_STDINT_H 
-#define SISCONE_HAVE_STDINT_H  1 
-#endif
+#define HAVE_STDINT_H 1
 
 /* Define to 1 if you have the <stdlib.h> header file. */
-#ifndef SISCONE_HAVE_STDLIB_H 
-#define SISCONE_HAVE_STDLIB_H  1 
-#endif
+#define HAVE_STDLIB_H 1
 
 /* Define to 1 if you have the <strings.h> header file. */
-#ifndef SISCONE_HAVE_STRINGS_H 
-#define SISCONE_HAVE_STRINGS_H  1 
-#endif
+#define HAVE_STRINGS_H 1
 
 /* Define to 1 if you have the <string.h> header file. */
-#ifndef SISCONE_HAVE_STRING_H 
-#define SISCONE_HAVE_STRING_H  1 
-#endif
+#define HAVE_STRING_H 1
 
 /* Define to 1 if you have the <sys/stat.h> header file. */
-#ifndef SISCONE_HAVE_SYS_STAT_H 
-#define SISCONE_HAVE_SYS_STAT_H  1 
-#endif
+#define HAVE_SYS_STAT_H 1
 
 /* Define to 1 if you have the <sys/types.h> header file. */
-#ifndef SISCONE_HAVE_SYS_TYPES_H 
-#define SISCONE_HAVE_SYS_TYPES_H  1 
-#endif
+#define HAVE_SYS_TYPES_H 1
 
 /* Define to 1 if you have the <unistd.h> header file. */
-#ifndef SISCONE_HAVE_UNISTD_H 
-#define SISCONE_HAVE_UNISTD_H  1 
-#endif
+#define HAVE_UNISTD_H 1
 
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
-#ifndef SISCONE_LT_OBJDIR 
-#define SISCONE_LT_OBJDIR  ".libs/" 
-#endif
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
 
 /* Name of package */
-#ifndef SISCONE_PACKAGE 
-#define SISCONE_PACKAGE  "siscone" 
-#endif
+#define PACKAGE "siscone"
 
 /* Define to the address where bug reports for this package should be sent. */
-#ifndef SISCONE_PACKAGE_BUGREPORT 
-#define SISCONE_PACKAGE_BUGREPORT  "" 
-#endif
+#define PACKAGE_BUGREPORT ""
 
 /* Define to the full name of this package. */
-#ifndef SISCONE_PACKAGE_NAME 
-#define SISCONE_PACKAGE_NAME  "SISCone" 
-#endif
+#define PACKAGE_NAME "SISCone"
 
 /* Define to the full name and version of this package. */
-#ifndef SISCONE_PACKAGE_STRING 
-#define SISCONE_PACKAGE_STRING  "SISCone 3.0.5" 
-#endif
+#define PACKAGE_STRING "SISCone 2.0.5"
 
 /* Define to the one symbol short name of this package. */
-#ifndef SISCONE_PACKAGE_TARNAME 
-#define SISCONE_PACKAGE_TARNAME  "siscone" 
-#endif
+#define PACKAGE_TARNAME "siscone"
 
 /* Define to the home page for this package. */
-#ifndef SISCONE_PACKAGE_URL 
-#define SISCONE_PACKAGE_URL  "" 
-#endif
+#define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#ifndef SISCONE_PACKAGE_VERSION 
-#define SISCONE_PACKAGE_VERSION  "3.0.5" 
-#endif
+#define PACKAGE_VERSION "2.0.5"
 
 /* Define to 1 if you have the ANSI C header files. */
-#ifndef SISCONE_STDC_HEADERS 
-#define SISCONE_STDC_HEADERS  1 
-#endif
-
-/* use unique_ptr instead of auto_ptr */
-/* #undef USES_UNIQUE_PTR_AS_AUTO_PTR */
+#define STDC_HEADERS 1
 
 /* Version number of package */
-#ifndef SISCONE_VERSION 
-#define SISCONE_VERSION  "3.0.5" 
-#endif
- 
-/* once: _SISCONE_CONFIG_H */
-#endif
+#define VERSION "2.0.5"
Index: external/fastjet/plugins/SISCone/config_raw.h
===================================================================
--- external/fastjet/plugins/SISCone/config_raw.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/* siscone/config_raw.h.  Generated from config.h.in by configure.  */
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `m' library (-lm). */
-#define HAVE_LIBM 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
-#define LT_OBJDIR ".libs/"
-
-/* Name of package */
-#define PACKAGE "siscone"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT ""
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "SISCone"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "SISCone 3.0.5"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "siscone"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "3.0.5"
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* use unique_ptr instead of auto_ptr */
-/* #undef USES_UNIQUE_PTR_AS_AUTO_PTR */
-
-/* Version number of package */
-#define VERSION "3.0.5"
Index: external/fastjet/plugins/SISCone/defines.h
===================================================================
--- external/fastjet/plugins/SISCone/defines.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/defines.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 401                                                          $//
-// $Date:: 2016-05-19 16:44:37 +0200 (Thu, 19 May 2016)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -35,7 +35,7 @@
 // defined in siscone.h
 // Otherwise, config.h
-// It is also defined as "SISCONE_PACKAGE_NAME" in config.h but this method 
+// It is also defined as "PACKAGE_NAME" in config.h but this method 
 // might lead to conflicts
-//#define PROGRAM   SISCONE_PACKAGE_NAME 
+//#define PROGRAM   PACKAGE_NAME 
 
 // program version
@@ -43,5 +43,5 @@
 //   siscone::siscone_version
 // defined in siscone.h
-// It is also defined as "SISCONE_VERSION" in config.h but this method 
+// It is also defined as "VERSION" in config.h but this method 
 // might lead to conflicts
 
Index: external/fastjet/plugins/SISCone/fastjet/SISConeBasePlugin.hh
===================================================================
--- external/fastjet/plugins/SISCone/fastjet/SISConeBasePlugin.hh	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/fastjet/SISConeBasePlugin.hh	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -43,5 +43,4 @@
   SISConeBasePlugin (){
     _use_jet_def_recombiner = false;
-    set_progressive_removal(false);
   }
 
@@ -50,25 +49,4 @@
     *this = plugin;
   }
-
-  /// set whether to use SISCone with progressive removal instead of
-  /// the default split_merge step.
-  ///
-  /// If progressive removal is enabled, the following SISCone
-  /// variables are not used:
-  ///
-  /// - overlap_threshold
-  /// - caching
-  /// - split_merge_stopping_scale
-  ///
-  /// The split_merge_scale choice is reinterpreted as the ordering
-  /// variable for progressive removal. It is also possible for the
-  /// user to supply his/her own function for the scale that orders
-  /// progressive removal, with set_user_scale(...)
-  void set_progressive_removal(bool progressive_removal_in=true){
-    _progressive_removal = progressive_removal_in;
-  }
-
-  /// returns true if progressive_removal is enabled
-  bool progressive_removal() const{ return _progressive_removal;}
 
   /// the cone radius
@@ -127,64 +105,4 @@
   }
 
-  // user-defined scale for progressive removal
-  //------------------------------------------------------------
-
-  /// \class UserScaleBase
-  /// base class for user-defined ordering of stable cones (used for
-  /// prorgessive removal)
-  ///
-  /// derived classes have to implement the () operator that returns
-  /// the scale associated with a given jet.
-  /// 
-  /// It is also highly recommended to implement the is_larger()
-  /// method whenever possible, in order to avoid rounding issues
-  /// known to lead to possible infrared unsafeties.
-  ///
-  /// The jets that are passed to this class will carry the structure
-  /// of type SISConePlugin::StructureType which allows to retreive
-  /// easily the following information:
-  ///
-  ///   vector<PseudoJet> constituents = jet.constituents();
-  ///   unsigned int n_constituents = jet.structure_of<SISConePlugin::UserScaleBase>().size();
-  ///   int index = jet.structure_of<SISConePlugin::UserScaleBase>().constituent_index(index i);
-  ///   const PseudoJet & p = jet.structure_of<SISConePlugin::UserScaleBase>().constituent(index i);
-  ///   double scalar_pt = jet.structure_of<SISConePlugin::UserScaleBase>().pt_tilde();
-  ///
-  /// see SISConePlugin::StructureType below for further details
-  class UserScaleBase : public FunctionOfPseudoJet<double>{
-  public:
-    /// empty virtual dtor
-    virtual ~UserScaleBase(){}
-
-    /// returns the scale associated with a given jet
-    ///
-    /// "progressive removal" iteratively removes the stable cone with
-    /// the largest scale
-    virtual double result(const PseudoJet & jet) const = 0;
-
-    /// returns true when the scale associated with jet a is larger than
-    /// the scale associated with jet b
-    ///
-    /// By default this does a simple direct comparison but it can be
-    /// overloaded for higher precision [recommended if possible]
-    virtual bool is_larger(const PseudoJet & a, const PseudoJet & b) const;
-
-    class StructureType; // defined below
-  };
-
-  // template class derived from UserScaleBase::StryctureType that
-  // works for both SISCone jet classes
-  // implemented below 
-  template<class Tjet> 
-  class UserScaleBaseStructureType;
-
-  /// set a user-defined scale for stable-cone ordering in
-  /// progressive removal
-  void set_user_scale(const UserScaleBase *user_scale_in){ _user_scale = user_scale_in;}
-
-  /// returns the user-defined scale in use (0 if none)
-  const UserScaleBase * user_scale() const{ return _user_scale;}
-
-
   // the things that one MUST overload required by base class
   //---------------------------------------------------------
@@ -202,5 +120,4 @@
   double _split_merge_stopping_scale;
   bool   _use_jet_def_recombiner;
-  bool   _progressive_removal;
 
   mutable double _ghost_sep_scale;
@@ -209,6 +126,4 @@
   /// call the re-clustering itself 
   virtual void reset_stored_plugin() const =0;
-
-  const UserScaleBase * _user_scale;
 
 };
@@ -270,110 +185,4 @@
 inline SISConeBaseExtras::~SISConeBaseExtras(){}
 
-//----------------------------------------------------------------------
-// implementation of the structure type associated with the UserScaleBase class
-
-/// \class SISConeBasePlugin::UserScaleBase::StructureType
-/// the structure that allows to store the information contained
-/// into a siscone::Cjet (built internally in SISCone from a stable
-/// cone) into a PseudoJet
-class SISConeBasePlugin::UserScaleBase::StructureType : public PseudoJetStructureBase {
-public:
-  /// base ctor (constructed from a ClusterSequence tin order to have
-  /// access to the initial particles
-  StructureType(const ClusterSequence &cs)
-    : _cs(cs){}
-
-  /// empty virtual dtor 
-  virtual ~StructureType(){}
-  
-  //--------------------------------------------------
-  // members inherited from the base class
-  /// the textual descripotion
-  virtual std::string description() const{
-    return "PseudoJet wrapping a siscone jet from a stable cone"; 
-  }
-
-  /// this structure has constituents
-  virtual bool has_constituents() const {return true;}
-
-  /// retrieve the constituents 
-  ///
-  /// if you simply need to iterate over the constituents, it will be
-  /// faster to access them via constituent(i)
-  virtual std::vector<PseudoJet> constituents(const PseudoJet & /*reference*/) const{ 
-    std::vector<PseudoJet> constits;
-    constits.reserve(size());
-    for (unsigned int i=0; i<size();i++)
-      constits.push_back(constituent(i));
-    return constits;
-  }
-  
-  //--------------------------------------------------
-  // additional information relevant for this structure
-
-  /// returns the number of constituents
-  virtual unsigned int size() const = 0;
-
-  /// returns the index (in the original particle list) of the ith
-  /// constituent
-  virtual int constituent_index(unsigned int i) const = 0;
-
-  /// returns the ith constituent (as a PseusoJet)
-  const PseudoJet & constituent(unsigned int i) const{
-    return _cs.jets()[constituent_index(i)];
-  }
-
-  // /// returns the scalar pt of this stable cone
-  // virtual double pt_tilde() const = 0;
-
-  /// returns the sm_var2 (signed ordering variable squared) for this stable cone
-  virtual double ordering_var2() const = 0;
-
-protected:
-  const ClusterSequence &_cs; ///< a reference to the CS (for access to the particles)
-};
-
-
-///@ingroup internal
-/// template class derived from UserScaleBase::StryctureType that
-/// works for both SISCone jet classes
-/// implemented below 
-template<class Tjet>
-class SISConeBasePlugin::UserScaleBaseStructureType : public UserScaleBase::StructureType{
-public:
-  UserScaleBaseStructureType(const Tjet &jet, const ClusterSequence &cs)
-    : UserScaleBase::StructureType(cs), _jet(jet){}
-
-  /// empty virtual dtor 
-  virtual ~UserScaleBaseStructureType(){}
-
-  //--------------------------------------------------
-  // additional information relevant for this structure
-
-  /// returns the number of constituents
-  virtual unsigned int size() const{
-    return _jet.n;
-  }
-
-  /// returns the index (in the original particle list) of the ith
-  /// constituent
-  virtual int constituent_index(unsigned int i) const{
-    return _jet.contents[i];
-  }
-
-  // /// returns the scalar pt of this stable cone
-  // virtual double pt_tilde() const{
-  //   return _jet.pt_tilde;
-  // }
-
-  /// returns the sm_var2 (signed ordering variable squared) for this stable cone
-  virtual double ordering_var2() const{
-    return _jet.sm_var2;
-  }
-
-protected:
-  const Tjet &_jet; ///< a reference to the internal jet in SISCone
-};
-
 
 FASTJET_END_NAMESPACE        // defined in fastjet/internal/base.hh
Index: external/fastjet/plugins/SISCone/fastjet/SISConePlugin.hh
===================================================================
--- external/fastjet/plugins/SISCone/fastjet/SISConePlugin.hh	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/fastjet/SISConePlugin.hh	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -7,5 +7,4 @@
 namespace siscone{
   class Csiscone;
-  class Cjet;
 }
 
@@ -75,12 +74,11 @@
   /// enum for the different split-merge scale choices;
   /// Note that order _must_ be the same as in siscone
-  enum SplitMergeScale {
-    SM_pt,     ///< transverse momentum (E-scheme), IR unsafe
-    SM_Et,     ///< transverse energy (E-scheme), not long. boost invariant
-               ///< original run-II choice [may not be implemented]
-    SM_mt,     ///< transverse mass (E-scheme), IR safe except
-               ///< in decays of two identical narrow heavy particles
-    SM_pttilde ///< pt-scheme pt = \sum_{i in jet} |p_{ti}|, should
-               ///< be IR safe in all cases
+  enum SplitMergeScale {SM_pt,     ///< transverse momentum (E-scheme), IR unsafe
+                        SM_Et,     ///< transverse energy (E-scheme), not long. boost invariant
+                                   ///< original run-II choice [may not be implemented]
+                        SM_mt,     ///< transverse mass (E-scheme), IR safe except
+                                   ///< in decays of two identical narrow heavy particles
+                        SM_pttilde ///< pt-scheme pt = \sum_{i in jet} |p_{ti}|, should
+                                   ///< be IR safe in all cases
   };
 
@@ -110,6 +108,5 @@
     _split_merge_stopping_scale = split_merge_stopping_scale_in;
     _ghost_sep_scale       = 0.0;
-    _use_pt_weighted_splitting = false;
-    _user_scale = 0;}
+    _use_pt_weighted_splitting = false;}
 
 
@@ -128,6 +125,5 @@
     _split_merge_stopping_scale = 0.0;
     _split_merge_scale     = split_merge_on_transverse_mass_in ? SM_mt : SM_pttilde;
-    _ghost_sep_scale       = 0.0;
-    _user_scale = 0;}
+    _ghost_sep_scale       = 0.0;}
   
   /// backwards compatible constructor for the SISCone Plugin class
@@ -145,6 +141,5 @@
     _split_merge_stopping_scale = 0.0;
     _ghost_sep_scale       = 0.0;
-    _use_pt_weighted_splitting = false;
-    _user_scale = 0;}
+    _use_pt_weighted_splitting = false;}
 
   /// minimum pt for a protojet to be considered in the split-merge step
@@ -191,56 +186,9 @@
   // part needed for the cache 
   // variables for caching the results and the input
-  static SharedPtr<SISConePlugin          > stored_plugin;
-  static SharedPtr<std::vector<PseudoJet> > stored_particles;
-  static SharedPtr<siscone::Csiscone      > stored_siscone;
+  static std::auto_ptr<SISConePlugin          > stored_plugin;
+  static std::auto_ptr<std::vector<PseudoJet> > stored_particles;
+  static std::auto_ptr<siscone::Csiscone      > stored_siscone;
 };
 
-
-/////\class SISConePlugin::UserScaleBase::StructureType
-///// the structure that allows to store the information contained
-///// into a siscone::Cjet (built internally in SISCone from a stable
-///// cone) into a PseudoJet
-//class SISConePlugin::UserScaleBase::StructureType : public PseudoJetStructureBase {
-//public:
-//  StructureType(const siscone::Cjet & jet, const ClusterSequence &cs)
-//    : _jet(jet), _cs(cs){}
-//
-//  //--------------------------------------------------
-//  // members inherited from the base class
-//  /// the textual descripotion
-//  virtual std::string description() const;
-//
-//  /// this structure has constituents
-//  virtual bool has_constituents() const {return true;}
-//
-//  /// retrieve the constituents 
-//  ///
-//  /// if you simply need to iterate over the constituents, it will be
-//  /// faster to access them via constituent(i)
-//  virtual std::vector<PseudoJet> constituents(const PseudoJet & /*reference*/) const;
-//
-//  //--------------------------------------------------
-//  // additional information relevant for this structure
-//
-//  /// returns the number of constituents
-//  unsigned int size() const;
-//
-//  /// returns the index (in the original particle list) of the ith
-//  /// constituent
-//  int constituent_index(unsigned int i) const;
-//
-//  /// returns the ith constituent (as a PseusoJet)
-//  const PseudoJet & constituent(unsigned int i) const;
-//
-//  /// returns the scalar pt of this stable cone
-//  double pt_tilde() const;
-//
-//  /// returns the sm_var2 (signed ordering variable squared) for this stable cone
-//  double ordering_var2() const;
-//
-//protected:
-//  const siscone::Cjet &_jet;  ///< a dreference to the internal jet in SISCone
-//  const ClusterSequence &_cs; ///< a reference to the CS (for access to the particles)
-//};
 
 //======================================================================
Index: external/fastjet/plugins/SISCone/fastjet/SISConeSphericalPlugin.hh
===================================================================
--- external/fastjet/plugins/SISCone/fastjet/SISConeSphericalPlugin.hh	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/fastjet/SISConeSphericalPlugin.hh	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -152,8 +152,4 @@
   virtual void run_clustering(ClusterSequence &) const ;
 
-  /// returns true because this plugin is intended for spherical
-  /// geometries (i.e. it's an e+e- algorithm).
-  virtual bool is_spherical() const {return true;}
-
 protected:
   virtual void reset_stored_plugin() const;
@@ -166,7 +162,7 @@
   // part needed for the cache 
   // variables for caching the results and the input
-  static SharedPtr<SISConeSphericalPlugin        > stored_plugin;
-  static SharedPtr<std::vector<PseudoJet>        > stored_particles;
-  static SharedPtr<siscone_spherical::CSphsiscone> stored_siscone;
+  static std::auto_ptr<SISConeSphericalPlugin        > stored_plugin;
+  static std::auto_ptr<std::vector<PseudoJet>        > stored_particles;
+  static std::auto_ptr<siscone_spherical::CSphsiscone> stored_siscone;
 };
 
Index: external/fastjet/plugins/SISCone/geom_2d.cc
===================================================================
--- external/fastjet/plugins/SISCone/geom_2d.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/geom_2d.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 171                                                          $//
-// $Date:: 2007-06-19 16:26:05 +0200 (Tue, 19 Jun 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/geom_2d.h
===================================================================
--- external/fastjet/plugins/SISCone/geom_2d.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/geom_2d.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 422                                                          $//
-// $Date:: 2020-04-22 11:51:09 +0200 (Wed, 22 Apr 2020)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -153,10 +153,10 @@
   /// return the cell index corrsponding to an eta value
   inline unsigned int get_eta_cell(double eta){
-    return (unsigned int) (1u << ((int) (32*((eta-eta_min)/(eta_max-eta_min)))));
+    return (unsigned int) (1 << ((int) (32*((eta-eta_min)/(eta_max-eta_min)))));
   }
 
   /// return the cell index corrsponding to a phi value
   inline unsigned int get_phi_cell(double phi){
-    return (unsigned int) (1u << ((int) (32*phi/twopi+16)%32));
+    return (unsigned int) (1 << ((int) (32*phi/twopi+16)%32));
   }
 };
Index: external/fastjet/plugins/SISCone/hash.cc
===================================================================
--- external/fastjet/plugins/SISCone/hash.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/hash.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 225                                                          $//
-// $Date:: 2008-05-20 16:59:47 +0200 (Tue, 20 May 2008)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/hash.h
===================================================================
--- external/fastjet/plugins/SISCone/hash.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/hash.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 224                                                          $//
-// $Date:: 2008-05-16 19:58:30 +0200 (Fri, 16 May 2008)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/momentum.cc
===================================================================
--- external/fastjet/plugins/SISCone/momentum.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/momentum.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 123                                                          $//
-// $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/momentum.h
===================================================================
--- external/fastjet/plugins/SISCone/momentum.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/momentum.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 163                                                          $//
-// $Date:: 2007-04-26 22:31:02 +0200 (Thu, 26 Apr 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/protocones.cc
===================================================================
--- external/fastjet/plugins/SISCone/protocones.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/protocones.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 322                                                          $//
-// $Date:: 2011-11-15 10:12:36 +0100 (Tue, 15 Nov 2011)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/protocones.h
===================================================================
--- external/fastjet/plugins/SISCone/protocones.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/protocones.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 224                                                          $//
-// $Date:: 2008-05-16 19:58:30 +0200 (Fri, 16 May 2008)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/quadtree.cc
===================================================================
--- external/fastjet/plugins/SISCone/quadtree.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/quadtree.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 320                                                          $//
-// $Date:: 2011-11-15 09:54:50 +0100 (Tue, 15 Nov 2011)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/quadtree.h
===================================================================
--- external/fastjet/plugins/SISCone/quadtree.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/quadtree.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 123                                                          $//
-// $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/reference.cc
===================================================================
--- external/fastjet/plugins/SISCone/reference.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/reference.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 311                                                          $//
-// $Date:: 2011-10-05 23:27:09 +0200 (Wed, 05 Oct 2011)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/reference.h
===================================================================
--- external/fastjet/plugins/SISCone/reference.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/reference.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 123                                                          $//
-// $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/siscone.cc
===================================================================
--- external/fastjet/plugins/SISCone/siscone.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/siscone.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,9 +21,16 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 403                                                          $//
-// $Date:: 2016-05-19 16:52:05 +0200 (Thu, 19 May 2016)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
+//#ifdef HAVE_CONFIG_H
 #include "config.h"
+//#else
+//#define PACKAGE_NAME "SISCone"
+//#define VERSION "1.4.0-devel"
+//#warning "No config.h file available, using preset values"
+//#endif
+
 #include "ranlux.h"
 #include "momentum.h"
@@ -80,5 +87,31 @@
 			   int _n_pass_max, double _ptmin,
 			   Esplit_merge_scale _split_merge_scale){
-  _initialise_if_needed();
+  // initialise random number generator
+  if (!init_done){
+    // initialise random number generator
+    ranlux_init();
+
+    // do not do this again
+    init_done=true;
+
+    // print the banner
+    if (_banner_ostr != 0){
+      (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl;
+      (*_banner_ostr) << "#                    SISCone   version " << setw(28) << left << siscone_version() << "o" << endl;
+      (*_banner_ostr) << "#              http://projects.hepforge.org/siscone                o" << endl;
+      (*_banner_ostr) << "#                                                                  o" << endl;
+      (*_banner_ostr) << "# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm   o" << endl;
+      (*_banner_ostr) << "# SISCone was written by Gavin Salam and Gregory Soyez             o" << endl;
+      (*_banner_ostr) << "# It is released under the terms of the GNU General Public License o" << endl;
+      (*_banner_ostr) << "#                                                                  o" << endl;
+      (*_banner_ostr) << "# A description of the algorithm is available in the publication   o" << endl;
+      (*_banner_ostr) << "# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)].                   o" << endl;
+      (*_banner_ostr) << "# Please cite it if you use SISCone.                               o" << endl;
+      (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl;
+      (*_banner_ostr) << endl;
+
+      _banner_ostr->flush();
+    }
+  }
 
   // run some general safety tests (NB: f will be checked in split-merge)
@@ -141,66 +174,4 @@
 }
 
-
-/*
- * compute the jets from a given particle set doing multiple passes
- * such pass N looks for jets among all particles not put into jets
- * during previous passes.
- *  - _particles   list of particles
- *  - _radius      cone radius
- *  - _n_pass_max  maximum number of runs
- *  - _ptmin       minimum pT of the protojets
- *  - _ordering_scale    the ordering scale to decide which stable
- *                       cone is removed
- * return the number of jets found.
- **********************************************************************/
-int Csiscone::compute_jets_progressive_removal(vector<Cmomentum> &_particles, double _radius, 
-					       int _n_pass_max, double _ptmin,
-					       Esplit_merge_scale _ordering_scale){
-  _initialise_if_needed();
-
-  // run some general safety tests (NB: f will be checked in split-merge)
-  if (_radius <= 0.0 || _radius >= 0.5*M_PI) {
-    ostringstream message;
-    message << "Illegal value for cone radius, R = " << _radius 
-            << " (legal values are 0<R<pi/2)";
-    throw Csiscone_error(message.str());
-  }
-
-  ptcomparison.split_merge_scale = _ordering_scale;
-  partial_clear(); // make sure some things are initialised properly
-
-  // init the split_merge algorithm with the initial list of particles
-  // this initialises particle list p_left of remaining particles to deal with
-  //
-  // this stores the "processed" particles in p_uncol_hard
-  init_particles(_particles);
-  jets.clear();
-
-  bool unclustered_left;
-  rerun_allowed = false;
-  protocones_list.clear();
-
-  do{
-    //cout << n_left << " particle left" << endl; 
-
-    // initialise stable_cone finder
-    // here we use the list of remaining particles
-    // AFTER COLLINEAR CLUSTERING !!!!!!
-    Cstable_cones::init(p_uncol_hard);
-
-    // get stable cones (stored in 'protocones')
-    unclustered_left = get_stable_cones(_radius);
-
-    // add the hardest stable cone to the list of jets
-    if (add_hardest_protocone_to_jets(&protocones, R2, _ptmin)) break;
-  
-    _n_pass_max--;
-  } while ((unclustered_left) && (n_left>0) && (_n_pass_max!=0));
-
-  // split & merge
-  return jets.size();
-}
-
-
 /*
  * recompute the jets with a different overlap parameter.
@@ -234,37 +205,4 @@
 }  
 
-// ensure things are initialised
-void Csiscone::_initialise_if_needed(){
-  // initialise random number generator
-  if (init_done) return;
-
-  // initialise random number generator
-  ranlux_init();
-
-  // do not do this again
-  init_done=true;
-
-  // print the banner
-  if (_banner_ostr != 0){
-    ios::fmtflags flags_to_restore(_banner_ostr->flags());
-
-    (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl;
-    (*_banner_ostr) << "#                    SISCone   version " << setw(28) << left << siscone_version() << "o" << endl;
-    (*_banner_ostr) << "#              http://projects.hepforge.org/siscone                o" << endl;
-    (*_banner_ostr) << "#                                                                  o" << endl;
-    (*_banner_ostr) << "# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm   o" << endl;
-    (*_banner_ostr) << "# SISCone was written by Gavin Salam and Gregory Soyez             o" << endl;
-    (*_banner_ostr) << "# It is released under the terms of the GNU General Public License o" << endl;
-    (*_banner_ostr) << "#                                                                  o" << endl;
-    (*_banner_ostr) << "# A description of the algorithm is available in the publication   o" << endl;
-    (*_banner_ostr) << "# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)].                   o" << endl;
-    (*_banner_ostr) << "# Please cite it if you use SISCone.                               o" << endl;
-    (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl;
-    (*_banner_ostr) << endl;
-
-    _banner_ostr->flush();
-    _banner_ostr->flags(flags_to_restore);
-  }
-}
 
 // finally, a bunch of functions to access to 
@@ -275,10 +213,10 @@
  * return SISCone package name.
  * This is nothing but "SISCone", it is a replacement to the
- * SISCONE_PACKAGE_NAME string defined in config.h and which is not
- * guaranteed to be public.
+ * PACKAGE_NAME string defined in config.h and which is not
+ * public by default.
  * return the SISCone name as a string
  */
 string siscone_package_name(){
-  return SISCONE_PACKAGE_NAME;
+  return PACKAGE_NAME;
 }
 
@@ -289,6 +227,6 @@
  */
 string siscone_version(){
-  return SISCONE_VERSION;
-}
-
-}
+  return VERSION;
+}
+
+}
Index: external/fastjet/plugins/SISCone/siscone.h
===================================================================
--- external/fastjet/plugins/SISCone/siscone.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/siscone.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 401                                                          $//
-// $Date:: 2016-05-19 16:44:37 +0200 (Thu, 19 May 2016)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -79,25 +79,4 @@
 
   /**
-   * compute the jets from a given particle set.
-   * We are doing multiple passes such pass n_pass looks for jets among 
-   * all particles not put into jets during previous passes.
-   * By default the number of passes is infinite (0). 
-   * \param _particles   list of particles
-   * \param _radius      cone radius
-   * \param _n_pass_max  maximum number of passes (0=full search)
-   * \param _ptmin       minimum pT of the protojets
-   * \param _ordering_scale    the ordering scale to decide which stable
-   *                           cone is removed
-   *
-   * Note that the Csplit_merge::SM_var2_hardest_cut_off cut is not
-   * used in the progressive removal variant.
-   * 
-   * \return the number of jets found.
-   */
-  int compute_jets_progressive_removal(std::vector<Cmomentum> &_particles, double _radius, 
-				       int _n_pass_max=0, double _ptmin=0.0,
-				       Esplit_merge_scale _ordering_scale=SM_pttilde);
-
-  /**
    * recompute the jets with a different overlap parameter.
    * we use the same particles and R as in the preceeding call.
@@ -114,5 +93,5 @@
 		     Esplit_merge_scale _split_merge_scale=SM_pttilde);
 
-  /// list of protocones found pass-by-pass (not filled by compute_jets_progressive_removal)
+  /// list of protocones found pass-by-pass
   std::vector<std::vector<Cmomentum> > protocones_list;
 
@@ -146,8 +125,4 @@
   bool rerun_allowed;         ///< is recompute_jets allowed ?
   static std::ostream * _banner_ostr; ///< stream to use for banners
-
-  /// ensure things are initialised
-  void _initialise_if_needed();
-
 };
 
@@ -160,6 +135,6 @@
  * return SISCone package name.
  * This is nothing but "SISCone", it is a replacement to the
- * SISCONE_PACKAGE_NAME string defined in config.h and which is not
- * guaranteed to be public.
+ * PACKAGE_NAME string defined in config.h and which is not
+ * public by default.
  * \return the SISCone name as a string
  */
Index: external/fastjet/plugins/SISCone/siscone_error.cc
===================================================================
--- external/fastjet/plugins/SISCone/siscone_error.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/siscone_error.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 123                                                          $//
-// $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/siscone_error.h
===================================================================
--- external/fastjet/plugins/SISCone/siscone_error.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/siscone_error.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 327                                                          $//
-// $Date:: 2011-11-25 15:19:39 +0100 (Fri, 25 Nov 2011)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
Index: external/fastjet/plugins/SISCone/split_merge.cc
===================================================================
--- external/fastjet/plugins/SISCone/split_merge.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/split_merge.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 390                                                          $//
-// $Date:: 2016-03-03 11:06:52 +0100 (Thu, 03 Mar 2016)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -28,4 +28,5 @@
 #include "siscone_error.h"
 #include "momentum.h"
+#include <math.h>
 #include <limits>   // for max
 #include <iostream>
@@ -33,5 +34,4 @@
 #include <sstream>
 #include <cassert>
-#include <cmath>
 
 namespace siscone{
@@ -54,6 +54,4 @@
   pt_tilde = 0.0;
   sm_var2 = 0.0;
-  pass = CJET_INEXISTENT_PASS; // initialised to a value that should
-                               // notappear in the end (after clustering)
 }
 
@@ -231,5 +229,4 @@
 #endif
 #endif
-  _user_scale = NULL;
   indices = NULL;
 
@@ -240,5 +237,5 @@
 
   // no hardest cut (col-unsafe)
-  SM_var2_hardest_cut_off = -numeric_limits<double>::max();
+  SM_var2_hardest_cut_off = -1.0;
 
   // no pt cutoff for the particles to put in p_uncol_hard
@@ -558,150 +555,4 @@
 }
 
-
-/*
- * remove the hardest protocone and declare it a a jet 
- *  - protocones  list of protocones (initial jet candidates)
- *  - R2          cone radius (squared)
- *  - ptmin       minimal pT allowed for jets
- * return 0 on success, 1 on error
- *
- * The list of remaining particles (and the uncollinear-hard ones)
- * is updated.
- */
-int Csplit_merge::add_hardest_protocone_to_jets(std::vector<Cmomentum> *protocones, double R2, double ptmin){
-
-  int i;
-  Cmomentum *c;
-  Cmomentum *v;
-  double eta, phi;
-  double dx, dy;
-  double R;
-  Cjet jet, jet_candidate;
-  bool found_jet = false;
-
-  if (protocones->size()==0)
-    return 1;
-
-  pt_min2 = ptmin*ptmin;
-  R = sqrt(R2);
-
-  // browse protocones
-  // for each of them, build the list of particles in them
-  for (vector<Cmomentum>::iterator p_it = protocones->begin();p_it != protocones->end();p_it++){
-    // initialise variables
-    c = &(*p_it);
-
-    // note: cones have been tested => their (eta,phi) coordinates are computed
-    eta = c->eta;
-    phi = c->phi;
-
-    // NOTE: this is common to this method and add_protocones, so it
-    // could be moved into a 'build_jet_from_protocone' method
-    //
-    // browse particles to create cone contents
-    jet_candidate.v = Cmomentum();
-    jet_candidate.pt_tilde=0;
-    jet_candidate.contents.clear();
-    for (i=0;i<n_left;i++){
-      v = &(p_remain[i]);
-      // for security, avoid including particles with infinite rapidity)
-      // NO NEEDED ANYMORE SINCE REMOVED FROM p_remain FROM THE BEGINNING
-      //if (fabs(v->pz)!=v->E){
-      dx = eta - v->eta;
-      dy = fabs(phi - v->phi);
-      if (dy>M_PI) 
-	dy -= twopi;
-      if (dx*dx+dy*dy<R2){
-	jet_candidate.contents.push_back(v->parent_index);
-	jet_candidate.v+= *v;
-	jet_candidate.pt_tilde+= pt[v->parent_index];
-	v->index=0;
-      }
-    }
-    jet_candidate.n=jet_candidate.contents.size();
-
-    // set the momentum in protocones 
-    // (it was only known through eta and phi up to now)
-    *c = jet_candidate.v;
-    c->eta = eta; // restore exact original coords
-    c->phi = phi; // to avoid rounding error inconsistencies
-
-    // set the jet range
-    jet_candidate.range=Ceta_phi_range(eta,phi,R);
-
-    // check that the protojet has large enough pt
-    if (jet_candidate.v.perp2()<pt_min2)
-      continue;
-
-    // assign the split-merge (or progressive-removal) squared scale variable
-    if (_user_scale) {
-      // sm_var2 is the signed square of the user scale returned
-      // for the jet candidate
-      jet_candidate.sm_var2 = (*_user_scale)(jet_candidate);
-      jet_candidate.sm_var2 *= abs(jet_candidate.sm_var2);
-    } else {
-      jet_candidate.sm_var2 = get_sm_var2(jet_candidate.v, jet_candidate.pt_tilde);
-    }
-
-    // now check if it is possibly the hardest
-    if ((! found_jet) ||
-	(_user_scale ? _user_scale->is_larger(jet_candidate, jet)
-	             : ptcomparison(jet_candidate, jet))){
-      jet = jet_candidate;
-      found_jet = true;
-    }
-  }
-
-  // make sure at least one of the jets has passed the selection
-  if (!found_jet) return 1;  
-  
-  // add the jet to the list of jets
-  jets.push_back(jet);
-  jets[jets.size()-1].v.build_etaphi();
-
-#ifdef DEBUG_SPLIT_MERGE
-  cout << "PR-Jet " << jets.size() << " [size " << jet.contents.size() << "]:";
-#endif
-    
-  // update the list of what particles are left
-  int p_remain_index = 0;
-  int contents_index = 0;
-  //sort(next_jet.contents.begin(),next_jet.contents.end());
-  for (int index=0;index<n_left;index++){
-    if ((contents_index<(int) jet.contents.size()) &&
-	(p_remain[index].parent_index == jet.contents[contents_index])){
-      // this particle belongs to the newly found jet
-      // set pass in initial list
-      particles[p_remain[index].parent_index].index = n_pass;
-#ifdef DEBUG_SPLIT_MERGE
-      cout << " " << jet.contents[contents_index];
-#endif
-      contents_index++;
-    } else {
-      // this particle still has to be clustered
-      p_remain[p_remain_index] = p_remain[index];
-      p_remain[p_remain_index].parent_index = p_remain[index].parent_index;
-      p_remain[p_remain_index].index=1;
-      p_remain_index++;
-    }
-  }
-  p_remain.resize(n_left-jet.contents.size());
-  n_left = p_remain.size();
-  jets[jets.size()-1].pass = particles[jet.contents[0]].index;
-
-  // increase the pass index
-  n_pass++;
-
-#ifdef DEBUG_SPLIT_MERGE
-  cout << endl;
-#endif
-
-  // male sure the list of uncol_hard particles (used for the next
-  // stable cone finding) is updated [could probably be more
-  // efficient]
-  merge_collinear_and_remove_soft();
-  
-  return 0;
-}
 
 /*
@@ -1181,6 +1032,6 @@
   }
 
-  //return 0.0;
-}
-
-}
+  return 0.0;
+}
+
+}
Index: external/fastjet/plugins/SISCone/split_merge.h
===================================================================
--- external/fastjet/plugins/SISCone/split_merge.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/split_merge.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 405                                                          $//
-// $Date:: 2016-05-23 20:15:02 +0200 (Mon, 23 May 2016)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -29,5 +29,4 @@
 #define __SPLIT_MERGE_H__
 
-#include "config.h"
 #include "defines.h"
 #include "geom_2d.h"
@@ -40,6 +39,4 @@
 
 namespace siscone{
-
-const int CJET_INEXISTENT_PASS = -2;
 
 /**
@@ -78,6 +75,4 @@
   /// pass at which the jet has been found
   /// It starts at 0 (first pass), -1 means infinite rapidity
-  /// (it will be initialised to "CJET_INEXISTENT_PASS" which should
-  /// never appear after clustering)
   int pass;
 };
@@ -146,5 +141,5 @@
   /// the split-merge process i.e. the variable we use for 
   ///  1. ordering jet candidates;
-  ///  2. computing the overlap fraction of two candidates.
+  ///  2. computing te overlap fraction of two candidates.
   /// The default value uses pttile (p-scheme pt). Other alternatives are
   /// pt, mt=sqrt(pt^2+m^2)=sqrt(E^2-pz^2) or Et. 
@@ -156,5 +151,5 @@
   ///   the default value i.e.  to use pt only for the purpose of
   ///   investigating the IR issue
-  /// - using Et is safe but does not respect boost invariance
+  /// - using Et is safe but do not respect boost invariance
   /// - using mt solves the IR unsafety issues with the pt variable
   ///   for QCD jets but the IR unsafety remains for nack-to-back 
@@ -239,50 +234,4 @@
   int full_clear();
 
-  ///////////////////////////////////////
-  // user-defined stable-cone ordering //
-  ///////////////////////////////////////
-
-  /// \class Cuser_scale_base
-  /// base class for user-defined ordering of stable cones
-  ///
-  /// derived classes have to implement the () operator that returns
-  /// the scale associated with a given jet.
-  class Cuser_scale_base{
-  public:
-    /// empty virtual dtor
-    virtual ~Cuser_scale_base(){}
-
-    /// the scale associated with a given jet
-    ///
-    /// "progressive removal" iteratively removes the stable cone with
-    /// the largest scale
-    virtual double operator()(const Cjet & jet) const = 0;
-
-    /// returns true when the scale associated with jet a is larger than
-    /// the scale associated with jet b
-    ///
-    /// By default this does a simple direct comparison but it can be
-    /// overloaded for higher precision [recommended if possible]
-    ///
-    /// This function assumes that a.sm_var2 and b.sm_var2 have been
-    /// correctly initialised with the signed squared output of
-    /// operator(), as is by default the case when is_larger is called
-    /// from within siscone.
-    virtual bool is_larger(const Cjet & a, const Cjet & b) const{
-      return (a.sm_var2 > b.sm_var2);
-    }
-  };
-
-  /// associate a user-defined scale to order the stable cones
-  ///
-  /// Note that this is only used in "progressive-removal mode",
-  /// e.g. in add_hardest_protocone_to_jets().
-  void set_user_scale(const Cuser_scale_base * user_scale_in){
-    _user_scale = user_scale_in;
-  }
-
-  /// return the user-defined scale (NULL if none)
-  const Cuser_scale_base * user_scale() const { return _user_scale; }
-
 
   /////////////////////////////////
@@ -307,16 +256,4 @@
    */
   int add_protocones(std::vector<Cmomentum> *protocones, double R2, double ptmin=0.0);
-
-  /**
-   * remove the hardest protocone and declare it a jet 
-   * \param protocones  list of protocones (initial jet candidates)
-   * \param R2          cone radius (squared)
-   * \param ptmin       minimal pT allowed for jets
-   * \return 0 on success, 1 on error
-   *
-   * The list of remaining particles (and the uncollinear-hard ones)
-   * is updated.
-   */
-  int add_hardest_protocone_to_jets(std::vector<Cmomentum> *protocones, double R2, double ptmin=0.0);
 
   /**
@@ -377,9 +314,8 @@
   Csplit_merge_ptcomparison ptcomparison;
 
-  /// stop split--merge or progressive-removal when the squared SM_var
-  /// of the hardest protojet is below this cut-off. Note that this is
-  /// a signed square (ie SM_var*|SM_var|) to be able to handle
-  /// negative values.
-  ///
+  /// stop split--merge when the SM_var of the hardest protojet 
+  /// is below this cut-off. 
+  /// This is not collinear-safe so you should not use this
+  /// variable unless you really know what you are doing
   /// Note that the cut-off is set on the variable squared.
   double SM_var2_hardest_cut_off;
@@ -388,8 +324,4 @@
   /// this is meant to allow removing soft particles in the
   /// stable-cone search.
-  ///
-  /// This is not collinear-safe so you should not use this
-  /// variable unless you really know what you are doing
-  /// Note that the cut-off is set on the variable squared.
   double stable_cone_soft_pt2_cutoff;
 
@@ -446,10 +378,6 @@
   // jet information
   /// list of jet candidates
-#if __cplusplus < 201103L
   std::auto_ptr<std::multiset<Cjet,Csplit_merge_ptcomparison> > candidates;
-#else
-  std::unique_ptr<std::multiset<Cjet,Csplit_merge_ptcomparison> > candidates;
-#endif
-  
+
   /// minimal pt2
   double pt_min2;
@@ -461,8 +389,4 @@
    */
   bool use_pt_weighted_splitting;
-
-  /// use a user-defined scale to order the stable cones and jet
-  /// candidates
-  const Cuser_scale_base *_user_scale;
 
 #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES
Index: external/fastjet/plugins/SISCone/vicinity.cc
===================================================================
--- external/fastjet/plugins/SISCone/vicinity.cc	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/vicinity.cc	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -21,6 +21,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 388                                                          $//
-// $Date:: 2016-03-03 10:42:25 +0100 (Thu, 03 Mar 2016)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -80,5 +80,4 @@
   VR2 = VR = 0.0;
 
-  ve_list = NULL;
   set_particle_list(_particle_list);
 }
Index: external/fastjet/plugins/SISCone/vicinity.h
===================================================================
--- external/fastjet/plugins/SISCone/vicinity.h	(revision 4564cba9fa0180ca6c293da8cea545291a6d0116)
+++ external/fastjet/plugins/SISCone/vicinity.h	(revision d7d2da362406b9e37fdf238970417c94779b54b0)
@@ -22,6 +22,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
 //                                                                           //
-// $Revision:: 123                                                          $//
-// $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007)                     $//
+// $Revision::                                                              $//
+// $Date::                                                                  $//
 ///////////////////////////////////////////////////////////////////////////////
 
