2024-12-11  Gavin Salam  <gavin.salam@physics.ox.ac.uk>

	* FJCONTRIB.cfg (version):
	* NEWS:
	updated version to 2.0.4 and put in today's date as release date

	* AUTHORS:
	moved Kevin Zhou and Frederic Dreyer to former developers

2024-12-10 Tue  <gavin.salam@physics.ox.ac.uk>

	* FJCONTRIB.cfg:
	* NEWS:
	Preparing a 2.0.4-rc1 release

2024-12-09 Mon  <gavin.salam@physics.ox.ac.uk> (with help from Matteo Cacciari)

	* Makefile:
	* *.cc/*.hh:
	moved hh files into include/fastjet/contrib and adapted the
	Makefile accordingly. This is to make it easier to use the contrib
	as a dependency in other contribs.

	* VERSION: -> FJCONTRIB.cfg
	updated to new form of version & other configuration info file

2024-10-04 Fri  <gavin.salam@physics.ox.ac.uk>

	* VERSION:
	* NEWS:
	prepared for release of version 2.0.3

	* RecursiveSoftDrop.hh:
	added missing #include "fastjet/config.h"; without it the wrong
	Recluster.hh was being used (contrib rather than fastjet/tools)
	which was inconsistent with derivation from SoftDrop. This was
	the cause of a bug reported at https://bugs.gentoo.org/863278 
	and followed up by Eli Schwartz. 

	* Recluster.hh:
	* example_recluster.cc:
	added comments labelling this contrib/s Recluster.hh as deprecated
	(but did not explicitly add C++ deprecation warnings yet). Use
	fastjet::Recluster from "fastjet/tools/Recluster.hh" instead
	(available since fj 3.1.0).

2024-02-22  Jesse Thaler  <jthaler@jthaler.net>

	* Makefile
	Removing extraneous "-lm"

	* NEWS:
	* VERSION:
	Changed version to 2.0.2 in preparation for release.

	* example_recursive_softdrop.cc
	* example_recursive_softdrop.ref
	Added "fixed" and "setprecision" to output

2021-08-21 Sat  <gavin.salam@physics.ox.ac.uk>

	* NEWS:
	* VERSION:
	Changed version to 2.0.1 in preparation for release.

2021-08-16 Mon  <gavin.salam@physics.ox.ac.uk>

	* RecursiveSymmetryCutBase.cc:
	added fix for issue signalled by Pierre-Antoine Delsart 
	(rare divide by zero in calculation of mu2; now mu2 gets set to -1
	when the parent mass is <= 0)

2018-11-02  Jesse Thaler  <jthaler@jthaler.net>

	* AUTHORS:  updated journal for RecursiveSoftDrop

2018-10-30  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.cc:
	fixed a few typos in comments

	* RecursiveSoftDrop.hh:
	used the native FJ Recluster tool when available (did create
	conflicts in some cases)

2018-06-18  Jesse Thaler  <jthaler@jthaler.net>

	* README
	Fixed incorrect order of zcut and beta in the README for SoftDrop example.

2018-05-29  Jesse Thaler  <jthaler@jthaler.net>

	* VERSION
	* NEWS
	Changed to 2.0.0-beta2, noted in news

2018-04-21  Jesse Thaler  <jthaler@jthaler.net>

	* AUTHORS: updated arxiv number for RecursiveSoftDrop

2018-04-21  Gavin Salam  <gavin.salam@cern.ch>

	* README: updated arxiv number for RecursiveSoftDrop & Bottom-up
	Soft Drop.

2018-04-04  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.cc (contrib):
	fixed syntax of calls to structure_of<...>
	(thanks to Attila Krasznahorkay)

2018-01-24  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.cc:
	for the (dafault) dynamical R0 implementation, the dynamical R0 is
	evolved independently in each branch.

2017-10-10  Jesse Thaler  <jthaler@jthaler.net>
	* AUTHORS
	Added mention of BUSD

	* README
	Some tweaks to the wording

2017-10-11  Gregory Soyez  <soyez@fastjet.fr>

	* IteratedSoftDrop.hh:
	IteratedSoftDropInfo::size() and multiplicity() now return an
	unsigned int instead of a double

2017-10-10  Jesse Thaler  <jthaler@jthaler.net>
	* AUTHORS
	Updated journal reference for ISD

	* example_isd.{cc,ref}:
	Included soft drop multiplicity in example

	* README
	Added warning at top that documentation has not been updated

	* VERSION
	Changed to 2.0.0-beta1

2017-10-10  Gregory Soyez  <soyez@fastjet.fr>

	* example_isd.ref:
	updated to reflect the bugfix below

	* IteratedSoftDrop.cc:
	fixed issue in description (was taking sqrt of -ve number when
	there were no angular cut)

	* NEWS:
	drafted for RecursiveTools-2.0.0-beta1

	* TODO:
	updated list in view of a beta release

	* example_isd.cc:
	pointed to the right header for IteratedSoftDrop

	* RecursiveSoftDrop.{hh,cc}:
	* IteratedSoftDrop.{hh,cc}:
	moved IteratedSoftDrop to its own file (replacing the old
	implementation)

	* example_advanced_usage.ref:
	updated reference file following the fix below.

2017-09-28  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSymmetryCutBase.cc:
	when no substructure is found, keep the _symmetry, _delta_R and
	_mu structure variables at -1.  This for example allows one to
	trigger on substructure by checking if delta_R>=0.

	Note: we could set it to 0 (as it was before) and trigger using
	_delta_R>0 but there might be some genuine substructure exactly
	collinear.

2017-09-19  Gregory Soyez  <soyez@fastjet.fr>

	* example_isd.ref:
	updated to the latest version of the example

2017-09-18  Gregory Soyez  <soyez@fastjet.fr>

	* Makefile:
	updating make check to use all the examples (failing on ISD as
	expected, see below)

	* example_bottomup_softdrop.cc:
	fixed typo

	* example_bottomup_softdrop.ref:
	* example_recursive_softdrop.ref:
	added reference output for this example

	* RecursiveSoftDrop.{hh,cc}:
	* RecursiveSymmetryCutBase.{cc,hh}:
	moved the "all_prongs" method from the base structure t oa
	standalone function in RecursiveSoftDrop.hh

	In practice, this is irrelevant for mMDT and SD (since pieces()
	gets the job done, and the substructure class does not have (as
	is) reliable info to get the full structure)

	* RecursiveSymmetryCutBase.cc:
	revamped a series of requests for substructure info to better
	handle possible recursion into deeper jet substructure.

	* RecursiveSoftDrop.{hh,cc}:
	updated "description" to reuse the info from the base class

	* example_isd.cc:
	updated to use the newer implementation of ISD. Checked that it
	gives the same results as the former implementation.

	Note: make check still needs fixing because the example now
	      computes a different set of angularities

	* RecursiveSoftDrop.hh:
	added a few helpers to IteratedSoftDropInfo ([] operator and size,
	meaning it can be used as a vector<pair<double,double> >)

	* RecursiveSymmetryCutBase.cc:
	. fixed bugs in the calculation of the geometric distances for ee
	  coordinates
	. fixed bug in the computation of the (zg,thetag) pairs [it was
	  returning the groomed ones instead of the ones passing the
	  condition]

	* example_recursive_softdrop.cc:
	set the R0 parameter to the original jet radius

2017-09-13  Gregory Soyez  <soyez@fastjet.fr>

	* example_recursive_softdrop.cc:
	tied up a few comments and the code output

	* RecursiveSymmetryCutBase.{hh,cc}:
	removed the unneeded _is_composite

	* RecursiveSoftDrop.cc:
	fixed issue with "verbose" dropped info on branches with no
	further substructure

2017-09-11  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.{hh,cc}:
	have IteratedSoftDDrop returning by default an object of type
	IteratedSoftDropInfo; added several helpers

2017-09-08  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.{hh,cc}:
	updated IteratedSoftDrop to give it the flexibility of
	RecursiveSoftDrop

	* RecursiveSymmetryCutBase.hh:
	fixed typo in comment

	* example_mmdt_ee.cc:     *** ADDED ***
	added an example to illustrat usage in ee collisions

	* example_isd.cc:
	* BottomUpSoftDrop.cc:
	* IteratedSoftDrop.cc:
	* RecursiveSoftDrop.cc:
	Fixed compilation issues with FJ 3.0 (mostly the usage of features
	introduced only in FJ3.1)

	* RecursiveSymmetryCutBase.{hh,cc}:
	used the internal Recluster class for FJ<3.1.0 and the FJ antive
	one for FJ>=3.1.0

	* BottomUpSoftDrop.{hh,cc}:
	moved the implementation of global_grooming to the source file and
	fixed a few trivial compilation errors

2017-09-08  Frédéric Dreyer  <frederic.dreyer@gmail.com>

	* BottomUpSoftDrop.hh:
	added the global_grooming method to process full event

2017-09-07  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.cc:
	cleaned (mostly by removing older commented-out code)

	* RecursiveSoftDrop.{hh,cc}:
	* RecursiveSymmetryCutBase.{hh,cc}:
	* SoftDrop.cc:

	added support for ee coordinates.  For that, the symmetry measure
	has to be set to either theta_E (which uses the 3-vector angle
	theta) or to cos_theta_E which uses sqrt(2*[1-cos(theta)])

	Accordingly, the recursion_choice can be set to larger_E to
	recurse into the branch with the largest energy. The larger_m
	mode, recorsing into the larger-mass branch is also possible but
	not advised (for the same reason as the pp version).

	* RecursiveSymmetryCutBase.{hh,cc}:
	switched to the Recluster class provided with FastJet. ASlso
	included the recluster description to RecursiveSymmetryCutBase
	when it is user-defined.

2017-09-06  Gregory Soyez  <soyez@fastjet.fr>

	* BottomUpSoftDrop.{hh,cc}:
	. renamed SoftDropStructure  -> BottomUpSoftDropStructure
	          SoftDropRecombiner -> BottomUpSoftDropRecombiner
	          SoftDropPlugin     -> BottomUpSoftDropPlugin
	. moved 'description' to source file (instead of header)
	. kept the "area" information when available (jets will just
	appear as having a 0 area)
	. added most class description (main class still missing)

	* RecursiveSoftDrop.cc:
	. put internal classes to handle CS history in an internal namespace
	. replaced the "switch" in the mail loop by a series of if (allows
	  us a few simplificatins/cleaning)
	. more uniform treatment of issues in the presence of an angular cut
	  (as part of the above reorganisation)

	* example_advanced_usage.ref:
	updated reference output file following the bugfix (missing
	"grooming mode" initialisation in one of the SoftDrop ctors) on
	2017-08-01

	* RecursiveSymmetryCutBase.cc:
	removed redundent code

2017-08-10  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.cc:
	fixed trivial typo in variable name

>>>>>>> .r1071
2017-08-04  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.cc:
	do not impose an angular cut in IterativeSD if it is -ve.

2017-08-01  Gregory Soyez  <soyez@fastjet.fr>

	* example_recursive_softdrop.cc:
	added a series of optional flags

	* RecursiveSoftDrop.cc:
	fixed a few issues with the fixed depth version

	* RecursiveSymmetryCutBase.hh:
	a jet is now considered as havig substructure if deltaR>0
	(coherent with released version)

	* SoftDrop.hh:
	bugfix: set the "grooming mode" by default in all ctors
	EDIT: caused issue with make check, fixed on 2017-09-069 (see
	      above)

	* RecursiveSoftDrop.{hh,cc}:
	added support for the "same depth" variant

	* RecursiveSymmetryCutBase.cc:
	also associate a RecursiveSymmetryCutBase::StructureType structure
	to the result jet in case it is just a single particle (in
	grooming mode)

2017-07-31  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSymmetryCutBase.{hh,cc}:
	added the option to pass an extra parameter to the symmetry cut
	function

	* RecursiveSymmetryCutBase.{hh,cc}:
	* ModifiedMassDropTagger.hh
	* SoftDrop.hh:
	minor adaptions due to the above change + added a few methods to
	query the class information (symmetry cut, beta, ...)

	* RecursiveSoftDrop.{hh,cc}:
	Added support for
	- a dynamical R0
	- recursing only in the hardest branch
	- imposing a min deltaR cut

	Added a tentative IterativeSoftDrop class

2017-07-28  Gregory Soyez  <soyez@fastjet.fr>

	* RecursiveSoftDrop.cc:
	adapted to the latest changes in RecursiveSymmetryCutBase

	* RecursiveSymmetryCutBase.{hh,cc}:
	reorganised the output of the recursion step (recurse_one_step)
	using an enum to make iot more readable (and to fix issues where
	the dropped prong is actually 0, e.g. after subtraction)

2017-07-26  Gregory Soyez  <soyez@fastjet.fr>

	* example_recursive_softdrop.cc:   *** ADDED ***
	added a draft example for the use of RecursiveSoftDrop

	* RecursiveSoftDrop.{hh,cc}:       *** ADDED ***
	added a first pass at an implementation of RecursiveSoftDrop.

	This is based on Frederic's initial version but keeps the
	branching structure of the jet. Some of the features, like
	dynamical R0, direct access to the substructure or the same depth
	variant, are still unsupported.

	* SoftDrop.hh:
	declared _beta, _symmetry_cut and _R0sqr as protected (was
	private) so they ca n be used by RecursiveSoftDrop

	* RecursiveSymmetryCutBase.{hh,cc}:
	extracted from result() the part that performs one step of the
	resursion (implemented as recurse_one_step()). This is repeatedly
	called by result(). It has specific conventions to indicate
	whether or not some substructure has been found or if one ran into
	some issue.

2017-04-25  Kevin Zhou  <knzhou@mit.edu>

	* IteratedSoftDrop.hh
	  . Added Doxygen documentation

	* RecursiveSymmetryCutBase.hh
	  . Added references to ISD

2017-04-25  Jesse Thaler  <jthaler@jthaler.net>
	* AUTHORS, COPYING:
	  . Added ISD arXiv number

	* example_isd.{cc,ref}
	  . Added ISD arXiv number
	  . Changing z_cut to be optimal value (with Lambda = 1 GeV)
	  . Tweaked formatting

	* IteratedSoftDrop.{hh,cc}
	  . Added ISD arXiv number
	  . Assert added if recluster does not return one jet.

	* README
	  . Added ISD arXiv number and tweaked wording


2017-04-20  Kevin Zhou  <knzhou@mit.edu>

	* example_isd.{cc,ref}      ** ADDED **
	* IteratedSoftDrop.{cc,hh}  ** ADDED **

	* Makefile
	  . Added IteratedSoftDrop (ISD) as appropriate

	* AUTHORS
	  . Added myself to author list
          . Added placeholder for ISD paper

	* COPYING
	  . Added placeholder for ISD paper

	* README
	  . Added description of ISD

	* TODO
	  . Added tasks to integrate ISD with other classes, e.g. SD, 
	    Recluster, and the future RecursiveSoftDrop (RSD)

	* NEWS
	  . Added dummy for release of 1.1.0

	* VERSION:
	  . Switched version number to 1.1.0-dev

	* example_advanced_usage.cc:
	  . Added $Id$ tag, didn't change anything else

2014-07-30  Gregory Soyez  <soyez@fastjet.fr>

	* Recluster.hh: fixed the name of the #define for the header

2014-07-09  Gregory Soyez  <soyez@fastjet.fr> + Jesse

	* NEWS:
	release of RecursiveTools v1.0.0

	* VERSION:
	switched version number to 1.0.0

2014-07-08  Gavin Salam  <gavin.salam@cern.ch>

	* README (RecursionChoice): 
	added ref to .hh for constness specs of virtual functions (to
	reduce risk of failed overloading due to wrong constness).

2014-07-08  Gregory Soyez  <soyez@fastjet.fr> + Jesse

	* README:
	partially rewrote the description of set_subtractor

2014-07-07  Gregory Soyez  <soyez@fastjet.fr> + Jesse

	* example_advanced_usage.cc:
	* example_softdrop.cc:
	a few small fixed in the header of the files

	* VERSION:
	switched over to 1.0.0-alpha2-devel

	* README:
	Reordered a few things and added a few details.

	* Makefile (check):
	Be quiter during "make check"

	* Recluster.cc (contrib):
	Documented the "single" ctor argument

	* RecursiveSymmetryCutBase.cc (contrib):
	If the user sets himself the reclustering, disable the "non-CA"
	warning (we assume that he knows what he is doing). Mentioned in
	the comments that non-CA reclustering has to be used at the user's
	risk. Also throw when th input jet has no constituents or when
	there is no cluster sequence after reclustering.

	* Recluster.cc (contrib):
	replaced a remaining mention to "filtering" by reclustering

2014-07-04  Jesse Thaler  <jthaler@jthaler.net>
	* VERSION
	  . Ready for alpha release

2014-06-17  Jesse Thaler  <jthaler@jthaler.net>
	* example_advanced_usage.{cc,ref}  ** ADDED **
	* Makefile
	  . New example file to test a bunch of soft drop options
	  . Put in makefile as well
	  . Fixed nasty memory bug with pointers to Recluster

	* RecursiveSymmetryCutBase.cc
	* example_softdrop.ref 
	  . description() now says Groomer vs. Tagger

	* RecursiveSymmetryCutBase.{cc,hh}
	  . Added optional verbose logging information about
	    kinematics of dropped branches
	
	* example_softdrop.cc
	* example_advanced_usage.cc
	  . Fixed 


2014-06-16  Gregory Soyez  <soyez@fastjet.fr>

	* Makefile:
	also install the RecursiveSymmetryuCutBase.hh header

2014-06-13  Jesse Thaler  <jthaler@jthaler.net>
	* AUTHORS
	  . Added myself to author list
          . Put complete bibliographic details on papers

	* COPYING
	  . Added boilerplate MC/GPLv2 statement 

        * example.cc:  ** REMOVED **  renamed to...
        * example_mmdt.cc   ** ADDED **
        * Makefile
          . Made name change for consistency
	  . Made corresponding changes in Makefile

	* example_mmdt_sub.cc:
	* example_mmdt.cc:
	* example_recluster.cc:
	  . light editing of comments

	* example_softdrop.cc:
	  . light editing of comments
          . added assert for sdjet != 0, since SoftDrop is a groomer

	* ModifiedMassDropTagger.hh
	* Recluster.{cc,hh}
	* RecursiveSymmetryCutBase.{cc,hh}
	* SoftDrop.hh
	  . Updated some comments

	* README
	  . Updated to include basic usage description and some 
	    technical details

	* TODO:
	  . Added some discussion points.
          
2014-06-13  Gregory Soyez  <soyez@fastjet.fr>

	* example_softdrop.{cc,ref}:
	added an example for SoftDrop

	* SoftDrop.{hh,cc}:
	* ModifiedMassDropTagger.{hh,cc}:
	* RecursiveSymmetryCutBase.{hh,cc}:        *** ADDED ***
	  . added a base class for both the mMDT and SoftDrop
	  . made mMDT and SoftDrop inherit from RecursiveSymmetryCutBase
	  . moved the reclustering to the base class. By default, both
	    mMDT and SoftDrop now recluster the jet with C/A
	  . added set_grooming_mode and set_tagging_mode methods to the
	    base class

	* Merging the development branch 1.0-beta1-softdrop-addition back
	into the trunk (will correspond to revision 682)

	* VERSION:
	switched back to 1.0.0-devel

	* SoftDrop.{hh,cc}:
	added support for re-clustering through set_reclustering(bool,
	Recluster*). By default, reclustering is done with
	Cambridge/Aachen.

	* example_recluster.{cc,ref}:              *** ADDED ***
	added an example of reclustering

	* Recluster.{hh,cc}:
	added a 'single' ctor argument [true by default]. When true, the
	hardest jet after reclustering is returned, otherwise, the result
	is a composite jet with all the subjets as its pieces.

2014-05-15  Gregory Soyez  <soyez@fastjet.fr>

	* VERSION:
	set version number to 1.0-alpha-PUWS14.1 in preparation for a
	fastjet-contrib release for the pileup-workshop at CERN on May
	2014.

2014-04-25  Gregory Soyez  <soyez@fastjet.fr>

	* ModifiedMassDropTagger.hh:
	* ModifiedMassDropTagger.cc:
	  Added comments at various places

	* AUTHORS:
	* README:
	Updated info about what is now included in this contrib

	* SoftDrop.hh:                *** ADDED ***
	* SoftDrop.cc:	              *** ADDED ***
	* Recluster.hh:	              *** ADDED ***
	* Recluster.cc;               *** ADDED ***
	Added tools for reclustering and softDrop

2014-04-25  Gregory Soyez  <soyez@fastjet.fr>

	branch started at revision 611 to start including SoftDrop in the
	Recursivetols contrib

2014-04-24  Gregory Soyez  <soyez@fastjet.fr>

	* ModifiedMassDropTagger.hh:
	added a mention of the fact that when result is called in the
	presence of a subtractor, then the output is a subtracted
	PseudoJet.

	* ModifiedMassDropTagger.hh:
	declared _symmetry_cut as protected (rather than provate) so it
	can be accessed if symmetry_cut_description() is overloaded.

	* example.cc:
	trivial typo fixed in a comment

2014-02-04  Gavin Salam  <gavin.salam@cern.ch>

	* VERSION: 
	upped it to 1.0-beta1

	* example_mmdt_sub.cc (main): 
	added an #if to make sure FJ3.1 features are only used if FJ3.1
	is available. (Currently FJ3.1 is only available to FJ developers).

2014-01-26  Gavin Salam  <gavin.salam@cern.ch>

	* VERSION:
	renamed to 1.0-beta0

	* ModifiedMassDropTagger.hh:
	* README:
	added info on author names

	* example_mmdt_sub.ref: *** ADDED ***
	added reference output for the pileup test.

2014-01-25  Gavin Salam  <gavin.salam@cern.ch>

	* example_mmdt_sub.cc:
	* Makefile:
	added an extra example illustrating functionality with pileup
	subtraction.

2014-01-24  Gavin Salam  <gavin.salam@cern.ch>

	* ModifiedMassDropTagger.cc:

	Reorganised code so that (sub)jet.m2()>0 check is only used when
	absolutely necessary: so if using a scalar_z symmetry measure,
	whenever scalar_z < zcut, then there is no point checking the mu
	condition. This means that there's no issue if the (sub)jet mass
	is negative, and one simply recurses down into the jet. (Whereas
	before it would bail out, reducing the tagging efficiency).

	Also removed the verbose code.

2014-01-23  Gavin Salam  <gavin.salam@cern.ch>

	* ModifiedMassDropTagger.cc|hh:
	* example.cc
	replaced "asymmetry" with "symmetry" in a number of places;
	implemented the structural information and added it to the example;
	added a new simplified constructor;
	improved doxygen documentation;
	started renaming -> RecursiveTools

	* README
	some tidying

	* VERSION
	1.0-b0

2014-01-22  Gavin Salam <gavin.salam@cern.ch>

	* ModifiedMassDropTagger.cc (contrib):
	-ve mass now bails out also when using the "y" asymmetry measure.
	Also, default my is now infinite.

2014-01-20  Gavin Salam <gavin.salam@cern.ch> + Gregory


	* ModifiedMassDropTagger.cc|hh:
	introduced a virtual asymmetry_cut_fn (essentially a
	dummy function returning a constant), to allow for derived classes
	to do fancier things.

	added warning about non-C/A clustering.
	explicitly labelled some (inherited) virtual functions as
	virtual. 

2014-01-20  Gavin Salam  <gavin.salam@cern.ch>

	* example.ref:
	* example.cc (main):
	got a first working example and make check setup.

	* ModifiedMassDropTagger.cc|hh:
	improved doxygen comments;
	added option whereby input jet is assumed already subtracted

2014-01-19  Gavin Salam  <gavin.salam@cern.ch>

	* ModifiedMassDropTagger.cc|hh:
	* many other files

        Initial creation, with basic code for MMDT

