2007-06-24  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/defines.h: SISCone 1.2.0
	

2007-06-15  Gregory Soyez  <g.soyez@ulg.ac.be>


	* src/geom_2d.h/cpp: use a 32x32 eta-phi-plane tiling. The range
	  is then defined by two binary fields. This allows easy overlap
	  test and merging. For protojets splitting, the new ranges are
	  built by adding particles one-by-one.

	* src/split_merge.cpp (siscone): 
	  - align code with the modifications in geom_2d.h/cpp
	  - the output of save_contents has slightly been improved

	* src/area.h/cpp: add methods to compute only the active or passive
	  area

	* examples/main.cpp: add pass-by-pass statistics in the verbose
	  output

	* examples/options.cpp: fix bug when passing an unknown long
	  option to getopt_long


2007-06-02  Gregory Soyez  <g.soyez@ulg.ac.be>

	* examples/sample.cpp: add a few lines to show how one can browse
	  the output jets of compute_jets.

	* examples/times.cpp: only save runtime using the siscone class
	  instead of a separate determination.
	
2007-05-09  Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  soft_pt2_cutoff -> stable_cone_soft_pt2_cutoff
	  fixed infinite loop for non-zero stable_cone_soft_pt2_cutoff

2007-05-09  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/split_merge.cpp|h:
	  When building the list of particles to be passed to stable-cone
	  search, allow to remove particles below a pt2 threshold
	  soft_pt2_cutoff.

2007-04-27  Gavin SALAM  <salam@lpthe.jussieu.fr>

	* src/geom_2d.cpp: 
	  corrected bugs in range_union -- now passes test that 1000
	  events are identical to what we had previously.

2007-04-26  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/split_merge.cpp (siscone): add range support to the
	  split--merge. When computing overlap, we first check that the
	  two ranges overlap. In splitting, ranges are set to the parent
	  ranges. In merging, range is set as the union of the parent
	  ranges.

	* src/split_merge.h: add a range variable to the Cjet class

	* src/geom_2d.cpp/h (siscone): add the Ceta_phi_range to handle
	  covering ranges in the ete-phi plane. This goes with a function
	  to test overlap and another to compute union.

	* src/momentum.h: Move geometry tools into geom_2d.h (new file)
	

2007-04-24  Gavin SALAM  <salam@lpthe.jussieu.fr> + Matteo

	* src/defines.h (VERSION): 
	  updated version number to 1.1.2-devel 

	* src/split_merge.cpp (include): 
	  moved test on SM_var2_hardest_cut_off to beginning of loop, to
	  ensure that we don't get a first jet that's below the cutoff.
	
2007-04-20  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/split_merge.h: remove the "protected" attribute for
	  'SM_var2_hardest_cut_off' for easier inclusion in fastjet. Note
	  however that the 'protected' declaration in the previous version
	  was used to prevent from dangerous usage of the variable. This
	  is still applicable now!

2007-04-18  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/area.cpp: Add a parameter '_hard_only' which allow to
	  compute only the hard jets area (without the purely ghosted
	  ones.

	* src/split_merge.h/cpp: Add a cut-off on the SM_var of the
	  hardest protojet. This is useful for computation of the area of
	  the hard jets without computing the purel ghosted ones. Note
	  that this cut-off is colinear-unsafe so has to be used with
	  great care.
	
2007-04-13  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/area.cpp: add Carea, the class to compute jet area

2007-03-16  Gregory Soyez  <g.soyez@ulg.ac.be>

	* SISCone 1.1.1 (tags/siscone-1.1.1)

2007-03-15  Gregory Soyez  <g.soyez@ulg.ac.be>

	* doc/html/usage.html: update the html doc for the recent
	  modifications of the split-merge algorithm.

	* src/split_merge.cpp: improve the recomputation method when two
	  jets are very close in the ordering when SM var is set to SM_Et

2007-03-15  Gavin SALAM  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  modified fix to multiple-pass bug, in hope of being minimally
	  sensitive to rounding errors
	
2007-03-15  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/siscone.h: set the default number of passes to 0

	* examples/main.cpp: adding two command line parameters to the 
	  siscone application:
	  - npass controls the number of passes (0 by default)
	  - sm    controls the choice for the split--merge variable

2007-03-14  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/momentum.h: add Et (inline) member function

	* src/siscone.h: remove backward-compatibility computation members to
	  make things more clear.

	* src/split_merge.cpp: 
	  - fix multiple-pass bug
	  - add Et SM variable management

2007-03-14  Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  put an assert for zero-size jets (common sign of a bug...);
	  ensured that "recomputed" protocones (with full momentum) also
	  have their eta-phi recalculated.

2007-03-12  Gavin SALAM  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  added some more debugging output.
	
2007-03-10  Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  fixed some typos and a bug in the EPSILON_SPLITMERGE case for
	  pt-tilde.

2007-03-09  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/siscone.h: The default value for the SM variable is set to
	  pttilde

	* src/split_merge.h/cpp: Update the split--merge procedure so that
	  it takes into account the choice for the split--merge
	  variable. Among the four choices, (pt_tilde, mt, pt and Et),
	  pt_tilde is the default (mt and pt can lead to IR unsafety). Et
	  is not yet implemented. We strongly advise to keep default value.
	
2007-03-09  Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/siscone.h|cpp: 
	* src/split_merge.h|cpp: 
	  introduced an enum, Esplit_merge_scale (naming convention in
	  analogy with the leading "C" for classes), which contains values
	  SM_pt, SM_Et, SM_mt, SM_pttilde, and put in routines that take
	  the enum (as well as leaving in old ones)
	
2007-03-06  Gavin SALAM  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  added transverse mass to info printed out about protojets with
	  the debug mode on (helpful in investigating limiting IR cases)

2007-03-02  Gregory Soyez  <g.soyez@ulg.ac.be>

	* SISCone 1.1.0 (tags/siscone-1.1.0)

2007-03-02  Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  transformed a quiet error on illegal f values into a throw.

	* src/siscone.cpp: 
	  throw an error on illegal R values.

2007-03-01  Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp|h:
	  added a new member variable, most_ambiguous_split, which records
	  the degree of ambiguity of the most ambiguous decision about
	  attributing a particle to one or other jet during a split step.
	  Useful for testing purposes.
	
2007-03-01  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/split_merge.cpp: set the full momentum
	  information on stable cones when we add them 
	  to the protojet list

	* src/siscone.h,cpp: add comments concerning the 
	  split_merge_on_transverse_mass parameter

	* src/defines.h (VERSION): set to 1.1.0beta

	* src/split_merge.cpp (siscone): 
	  - set ptmin as a real pt cut-off (independent on the 
	    choice of variable for the SM)
	  - code cleaned (involves other files e.g. defines.h 
	    momentum.h/cpp, siscone.h/cpp)

	* set the website to the HEPForge one in headers

	* replaced 'content' by 'contents' everywhere
	  WARNING: it implies Cjet::contents and 
	                      Csplit_merge::save_contents

	* src/quadtree.cpp (siscone): replace 'childs' with 'children'

	
2007-02-21  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/protocones.cpp (siscone): 
	  - remove all functions that are no longer necessary and replace
	    them by their new version. This includes the computatin of the
	    cone content, its re-computation, the check for co-circularity
	    and the test for stable cones in the co-circular situations.
	  - add a few comments of potentially tricky points.
	  - remove "cout" statements.
	  - remove 'largest_cocircular_range' which is no longer used

	* src/vicinity.h: 
	  - "largest_cocircular_range" removed.  
	  - quadtree related stuff removed. As a consequence,
	    'build_from_list' is renamed 'build'. The usage of the
	    quadtree can now only be used in
	    'Cstable_cone::proceed_with_stability' hence, the USE_QUADTREE
	    define has been renamed USE_QUADTREE_FOR_STABILITY_TEST.
	  - Comments aligned to make the code clearer.

	* src/momentum.h: Add mass() and mass2() member functions to
	  Cmomentum().
	  Put inline functions in the header rather than in the source 
	  file.

	* add C++ mark ("// -*- C++ -*-") in the headers where it was 
	  missing

2007-02-20  Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  enhanced check on infinite rapidities to include also
	  meaningless rapidities.

	* src/split_merge.cpp|h: 
	* src/siscone.cpp: 
	  sorted out an issue on multi-pass runs caused by earlier fix for
	  transverse mass ordering.
	
2007-02-20 [am-pm] Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/split_merge.cpp: 
	  fixed a bug that appeared once split_merge_on_transverse_mass
	  got moved into the Csplit_merge_ptcomparison class

	* src/protocones.cpp|h: 
	  introduced compute_cone_contents_nodist(), which calculates the
	  initial cone contents by circulating around all in/out
	  operations and collecting the net result --- this avoids any
	  distance calculations and so removes a potential source of
	  rounding error. (Any remaining rounding error is dealt with by
	  cocircularity tests).

	* src/defines.h
	  added more info about the meaning of the different EPSILON
	  scales.
	
2007-02-19 [evening] Gavin Salam  <salam@lpthe.jussieu.fr>
	
	* src/defines.h: 
	  introduced const bool split_merge_on_transverse_mass, which
	  determines whether the split merge occurs on transverse mass
	  instead of pt -- the latter turns out to be IR unsafe in
	  mom-conserving events for moderately large values of R (R>1)
	
	* src/split_merge.cpp: 
	  implemented the split-merge ordering on transverse masses,
	  including the limit of there being small differences.
	
	* src/momentum.h: 
	  introduced perpmass2() which returns the transverse mass,
	  pt^2+m^2

	
2007-02-19 [pm] Gavin Salam  <salam@lpthe.jussieu.fr>

	NB: seg-faults are being seen sporadically when fastjet writes its
	description & need to be understood (but very rare and valgrind
	gives nothing on small numbers of events...)

	* src/defines.h: 
	  added optional #define EPSILON_SPLITMERGE, which if defined,
	  sets a threshold for pt differences below which the ordering is
	  determined from the explicit particle content...

	* src/split_merge.cpp|h: 
	  trying to introduce more "exact" pt comparison in split merge to
	  deal with multiple scales -- this involves a new
	  Csplit_merge_ptcomparison class which allows the set to carry
	  out comparisons while making use of knowledge about the particle
	  momenta inside the split_merge class.

	* src/circulator.h: 
	  added != and == comparison operators.

	* src/protocones.h|cpp: 
	  added Cstable_cones::test_cone_cocircular_p3() for carrying out
	  a p^3 check of stability -- NB seems a bit slower for small p,
	  but obviously much better for large p... Tests of 2*10^5
	  particles show no errors, longer tests to be done later...

2007-02-19 [am, early pm] Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/vicinity.h|cpp: 
	  introduced the Cvicinity_inclusion class to allow one to carry
	  out checks both on the inclusion in the cone and in its
	  "cocircular" border. Made corresponding changes elsewhere.
	
	* src/protocones.h|cpp: 
	  wrote new_cocircular_check() and ran a certain number of tests
	  on it; currently it is this one that is being called from
	  update_cone(), but it still uses the original 2^p routine for
	  actually checking the cone status.

	* src/[elsewhere]
	  added a lot of (now commented) debugging statements to help fix
	  bugs in the new_cocircular_check().
	
2007-02-18 [pm - later] Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/circulator.h:  *** ADDED ***
	  class for a circulator, used below.

	* src/protocones.(h|cpp): 
	  wrote prepare_cocircular_lists(), and checked that it's working
	  sensibly on some simple test events; also added code for
	  esetablishing the largest cocircular range among the children of
	  the current parent (should be used later to establish a more
	  reliable in/out status).

	  NB: the call to this function has added another 1-2% slowdown,
	  and we're now about 3-4% slower than before starting this
	  morning. But this should be the last of the changes that adds
	  significant extra time use?

	* src/vicinity.(h|cpp): 
	  support code for the protocones modification
	
2007-02-18 [pm]  Gavin Salam  <salam@lpthe.jussieu.fr>

	* src/defines.h: 
	  changed default EPSILON values to reflect what will be needed
	  with the new approach.
	
	* src/vicinity.cpp: 
	  carried out the calculation of cocircular_range inside the
	  append_to_vicinity member function; the extra
	  calculations/storage etc lead to a 2-3% slow-down for the
	  standard fastjet (354 particle) test event with R=1.

	* src/momentum.h: 
	  added a small 2-vector class, needed as a shorthand in
	  vicinity.cpp, plus various small utility routines.

	* src/vicinity.h: 
	  introduced cocircular_range and cocircular (list) as members of
	  Cvicinity_elm

	* src/momentum.h: 
	  introduced phi_in_range, dphi and abs_dphi inline functions.
	
2007-02-18 [am] Gavin Salam  <salam@lpthe.jussieu.fr> 

	* src/vicinity.cpp (include): 
	  switched to twopi from defines.h instead of the pi2 class member

	* src/siscone_error.(cpp|h):  *** ADDED ***
	  this is a simple class for throwing errors.

	* src/protocones.cpp: 
	  caused test_cone cocircular to throw errors when it receives
	  more than 32 points

	  carried out replacement client -> candidate

	* src/defines.h: 
	  introduced definition of twopi, which is used in many place (only
	  some usage instances have been replaced for now).


2007-02-16  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/defines.h: consider the limit on cocircularity and
	  collinearity as different ones. This introduces the
	  EPSILON_COCIRCULAR definition.

	* src/protocones.cpp (siscone): 
	  1. the list of cocircular situations already encountered is
	     maintained with a pair of references (the cone contents and
	     its border) instead of its coordinates.
	  2. we have improved the recomputation of the cone contents by
	     dynamically tracking he particles inside of the cone. This
	     adds a list of included particles in Cvicinity as well as a
	     pointer to elements of that list in vicinity elements.

2007-02-15  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/protocones.cpp: Code has been restructured to clearly
	  separate the cocircular case
	
	* dealt woth cocircularity and 2\pi periodicity and added 
	  an inline fction

2007-02-14  Gregory Soyez  <g.soyez@ulg.ac.be>

	* src/reference.cpp (siscone): ensures that the reference is not
	  zero

	* src/protocones.cpp (siscone): Fix a bug with the interference
	  between the recomputation of jets and the update of cocircular
	  points
	
	* src/protocones.cpp (siscone): add tests for recomputation of the
	  cone content for the case of cocircular points
	
	* src/protocones.cpp (siscone): when testing the threshold for
	  recomputation of te cone content, we add a test putting
	  automatically the cone to 0 when it is empty.

2007-02-13  Gregory Soyez  <g.soyez@ulg.ac.be>

	* We add a test of cocircularity: when more the p>2 particles are
	  found on the same circle, we branch to a different test of cone
	  stability. This new part of the algorithm tests all possible
	  inclusions/exclusions of the particles along the circle in a
	  2^p-type algorithm. Note that findling large values of p is
	  highly improbable !

2007-02-12  Gregory Soyez  <g.soyez@ulg.ac.be>

	* when traversing the centre list (in stable cones search), we
	  start with the centre which is the most separated from its
	  neighbours. This allows to minimize the possibility that we
	  miscomputed the computation of the initial cone content due to
	  possible rounding errors when two centres are too close.

2007-02-12  Gregory Soyez  <g.soyez@ulg.ac.be>

	* in collinear merging, take care of the periodicity in phi

	* put the threshold for collinear merging in defines.h
	  (EPSILON_COLLINEAR)
	
2007-02-12  Gregory Soyez  <g.soyez@ulg.ac.be>

	* undo the previous modification and use another approach to deal
	  with collinear particles: we keep the p_remain list as it was
	  before (see revision 84). Instead, after computing p_remain, we
	  compute p_uncol which is obtained from p_remain by merging
	  collinear particles. In the siscone main loop, we then use
	  p_uncol instead of p_remain for the search for stable
	  cones. Note that with this modification, the 'parent_index'
	  field of Cmomentum is back to its original definition as a
	  'int'.

2007-02-12  Gregory Soyez <g.soyez@ulg.ac.be>

	* remove initialisation of parent_index in momentum.cpp and
	  vicinity.cpp This is allowed because of the Npass loop in
	  siscone. Indeed, parent_index is only used internally in
	  split_merge and init at the very beginning of the loop by a call
	  to init_pleft 

	* replaced "int parent_index" by "vector<int> parent_index" and
	  align the code in split_merge.cpp

	* add a few lines off code in split_merge.cpp to account for
	  collinear particles.

	* Note concerning the previous update: the change has been
	  validated and is no longer considered as temporary

2007-02-12  Gregory Soyez <g.soyez@ulg.ac.be>

	* Changed the test for recomputation of cone content in Cstable_cones
	  see defines.h for details
	  (this change may be temporary)

2007-02-10  Gregory Soyez <g.soyez@ulg.ac.be>

	* fixed doxygen documentation issues:
	   - undocumented or renamed parameters
	   - include various links into a custom html footer
	
2007-01-25  Gregory Soyez <g.soyez@ulg.ac.be>

	* fixed memory leak for Cvicinity::ve_list 
	  in Cvicinity::set_particle_list()
	
2007-01-23  Gavin SALAM  <salam@lpthe.jussieu.fr>

	* added _ptmin argument to Csiscone::recompute_jets(...)

2007-01-22  Gregory Soyez <g.soyez@ulg.ac.be>

	* add ptmin threshold on protojets during split-merge
	* modify example program to allow for the --ptmin option

2007-01-20  Gregory Soyez <g.soyez@ulg.ac.be>

	* fix typo mistake in split_merge.cpp

2007-01-18  Gregory Soyez <g.soyez@ulg.ac.be>

	* insert a header on top of each source files to give brief information
	  about its content, the SISCone project and copyright
	
2007-01-03  Gregory Soyez <g.soyez@ulg.ac.be>

	* remove the usage of the quadtree in stable cones detection.
	  Usage of the quadtree in vicinity list creation and final stability
	  tests can be switched on buy defining USE_QUADTREE in defines.h.
	  This step was not fully achieved in the last update.

2006-12-28  Gregory Soyez <g.soyez@ulg.ac.be>
	
	* remove the usage of the quadtree in stable cones detection.
	  Usage of the quadtree in vicinity list creation and final stability
	  tests can be switched on by defining USE_QUADTREE in defines.h

2006-12-28  Gavin Salam  <salam@lpthe.jussieu.fr>

        * commented out various "template std::vector<...>" lines to solve
	  compilation problem on Macs.
	
	* modified the make depend targets so that they do not include 
	  "standard" include files (which differ from one system to
	  another). 

	* fixed log(_Np) bug pointed out by Matteo; fixed program name in
	  defines.h 

2006-12-28  Gregory Soyez <g.soyez@ulg.ac.be>

	* replace variables with name being "underscore" followed by
	  a single letter by longer names since they lead to compilation
	  problems under Mac. In practice, we renamed _N with _Np in hash.cpp/h
	  and _R by _radius in protocones.cpp/h and siscone.cpp/h
	
2006-12-27  Gregory Soyez <g.soyez@ulg.ac.be>

        * arranged for "make dist" to create a file with the same version
	  name in the directory and the tar file; made the tar-file
	  read-only (to avoid involuntarily overwrite); removed svn file
	  from the examples/events subdirectory.
	
2006-12-26  Gregory Soyez <g.soyez@ulg.ac.be>

	* updated the 'dist' target in the Makefile: include mem_check
	  with the correct path and build archive so that it unpacks into
	  a siscone-1.0-beta directory

	* fix typos in INSTALL

2006-12-26  Gavin Salam  <salam@lpthe.jussieu.fr>

        * Changed banner so that first char is # (to allow the rest of the
	  line to be considered a comment by things like gnuplot).	
	
	* moved scones -> siscone (and sorted out various "ignores")
	
	* Reordered changelog so that later stuff appears first (I think
	  this is standard? Makes it easier to see what's been happening
	  recently...)

	* Tidying up: moved jets.gri and mem_check into the examples
	  directory; added -f to "rm" command in make clean to avoid
	  errors; modified siscones->siscone in a couple of places in
	  doc.

	* Brought the README and INSTALL files up to date

	* set some svn:ignore property so as to ignore .dat files (to
	  reduce "noise" with svn status).

	* added #!/bin/bash to head of examples/mem_check
	
2006-12-22  Gregory Soyez <g.soyez@ulg.ac.be>

	* rename scones namespace into siscone

	* put ranlux stuff into the namespace (we don't want to
	  pollute the gobal namespace

	* add doc/devel as directory for developer's documentation
	  (using Doxygen)

	* scones.h/cpp is renamed siscone.h/cpp

	* creation of an 'examples' directory for various programs
	  only the library libsiscone.a is left in the src dir
	  Malefiles are modified accordingly


2006-12-21  Gavin Salam  <salam@lpthe.jussieu.fr>

	* added the MERGE_IDENTICAL_PROTOCONES_DEFAULT_TRUE define to
	  allow one to make MERGE_IDENTICAL_PROTOCONES to be set true by
	  default if need be. (This makes it a bit easier to make a quick
	  modification to run a test).

	* changed some of the related comments

        * replaced occurrences of "extensive" with "multipass"
	
	* Added the ChangeLog file!

	
2006-12-21 START OF CHANGELOG
	
