FastJet  3.2.1
NEWS
1 Release Notes for FastJet
2 -------------------------
3 
4 ================================================================
5 Summary of changes from v3.2.0 -> v3.2.1: 2016-08-04
6 ================================================================
7 This is a bug-fix release. Main changes:
8 
9 * added a missing assignment operator for ClusterSequence
10  (reported by Roberto Franceschini)
11 * eliminated a warning about unused variables when assertions are
12  disabled (reported by Andy Buckley)
13 * included SISCone-3.0.3 which now installs config.h to improve
14  build stability
15 
16 ================================================================
17 Summary of changes from v3.1.3 -> v3.2.0: 2016-03-17
18 ================================================================
19 
20 * exposed the N2Plain and N2Tiled strategies for 3rd-party clustering
21  algorithms under the form of two new classes (NNFJN2Plain and
22  NNFJN2Tiled), similar to NNH
23 * included version 3.0.2 SISCone with minor bug fixes
24 * made template implementation of PseudoJet::obj_sorted_by_values() public
25 * added a --guess-prefix option to fastjet-config (guesses prefix
26  from location of fastjet-config instead of prefix from configure)
27 * added a --disable-auto-ptr option to configure (for clean C++11 compilation)
28 * added internal helpers for C++11 and C++14 features: compile-time
29  deprecation and the override keyword
30 * small tweaks to the build system
31 * fjcore now ships with an illustrative fortran wrapper and example
32 
33 ================================================================
34 Summary of changes from v3.1.2 -> v3.1.3: 2015-07-04
35 ================================================================
36 This is a maintenance relase with the following changes:
37 * disabled JetDefinition::operator(...) when CINT is detected, for
38  ROOT v5 compatibility.
39 * worked around an issue with recent versions of CGAL and the clang
40  compiler
41 
42 ================================================================
43 Summary of changes from v3.1.1 -> v3.1.2: 2015-03-12
44 ================================================================
45 This is a bug-fix release. Main changes:
46 
47 * fixed rounding error issue in the "lazy" clustering strategies that,
48  in rare cases, caused infinite loops or crashes (reported by Jochen Ott).
49 * added check on clustering's internal consistency; failure will throw
50  a new "InternalError" exception (derived from Error).
51 * fixed bug in extraction of fjcore code that resulted in fjcore
52  failing for high multiplicities (~1000) (reported by Sergei Chekanov).
53  Only affects fjcore, not the full fastjet library.
54 
55 ================================================================
56 Summary of changes from v3.1.0 -> v3.1.1: 2015-01-06
57 ================================================================
58 This is a bug-fix release. Main changes:
59 
60 * fix to area support for Filter with Cambridge/Aachen jets and subjets
61 * GridMedianBackgroundEstimator has new constructor and RectangularGrid as public base
62 * added virtual destructor to TilingBase class
63 
64 ================================================================
65 Summary of changes from v3.0.6 -> v3.1.0: 2014-09-30
66 ================================================================
67 * Significant speed improvements (x1.5-10) for large N (few thousand-10^5)
68 * FASTJET_VERSION_NUMBER preprocessor symbol, for easy in-code version testing
69 * New JetDefinition::operator(): jets = jet_def(particles);
70 * Native particle-mass support in PU estimation (rho_m())
71 * Subtraction can use rho_m (set_use_rho_m()) and force m>0 (set_safe_mass())
72 * Addition of Winner-Takes-All recomb. schemes (WTA_pt_scheme, WTA_modp_scheme)
73 * SISCone updated to v3.0.0 (addition of SISCone with progressive removal)
74 * New Recluster class, serving as base for Filter
75 * New RectangularGrid class, base for GridMedianEstimator & GridJetPlugin
76 * Fixed long-standing issue with coincident points in NlnN strategies
77 * Other small additions and changes include:
78  * Selector::sum(particles) to get 4-vector sum of particles that pass selector
79  * pruned_jet.structure_of<Pruner>() has Rcut() and zcut() functions
80  * easy copying of Recombiner info: jet_def1.set_recombiner(jet_def2)
81 * Various bug-fixes, build-system tweaks (e.g. default -O2 instead of -O3)
82 
83 ================================================================
84 Summary of changes from v3.1.0-beta.1 -> v3.1.0: 2014-09-30
85 ================================================================
86 * Addition of Winner-Takes-All recomb. schemes (WTA_pt_scheme, WTA_modp_scheme)
87 * SISCone updated to v3.0.0 (addition of SISCone with progressive removal)
88 * minor changes including doxygen doc fixes and elimination of gcc warnings
89 
90 ================================================================
91 Summary of changes from v3.0.6 -> v3.1.0-beta.1: 2014-08-15
92 ================================================================
93 * Significant speed improvements (x1.5-10) for large N (few thousand-10^5)
94 * FASTJET_VERSION_NUMBER preprocessor symbol, for easy in-code version testing
95 * New JetDefinition::operator(): jets = jet_def(particles);
96 * Native particle-mass support in PU estimation (rho_m())
97 * Subtraction can use rho_m (set_use_rho_m()) and force m>0 (set_safe_mass())
98 * New Recluster class, serving as base for Filter
99 * New RectangularGrid class, base for GridMedianEstimator & GridJetPlugin
100 * Fixed long-standing issue with coincident points in NlnN strategies
101 * Other small additions and changes include:
102  * Selector::sum(particles) to get 4-vector sum of particles that pass selector
103  * pruned_jet.structure_of<Pruner>() has Rcut() and zcut() functions
104  * easy copying of Recombiner info: jet_def1.set_recombiner(jet_def2)
105 * Various bug-fixes, build-system tweaks (e.g. default -O2 instead of -O3)
106 
107 ================================================================
108 Summary of changes from v3.0.5 -> v3.0.6: 2013-10-29
109 ================================================================
110 This is a minor maintenance release. Main changes:
111 * fixed compilation issues for two plugins under OS X 10.9 (Mavericks)
112 * fixed incorrect warnings in JHTopTagger, MassDropTagger and an example
113 * GridJetPlugin now has extra enquiry functions
114 
115 ================================================================
116 Summary of changes from v3.0.4 -> v3.0.5: 2013-09-16
117 ================================================================
118 This is a minor maintenance release. Main changes:
119 * modified include guards, to solve coexistence issue for fjcore
120 * resolved (bogus) compiler warning about uninitialised variables
121 * added an example event file that was missing from the distribution
122 
123 ================================================================
124 Summary of changes from v3.0.3 -> v3.0.4: 2013-06-05
125 ================================================================
126 
127 This is a minor maintenance release. Changes include:
128 * dummy init of PseudoJet rapidity to avoid warnings with some configs.
129 * minor code structure adjustments to allow for release of fjcore
130 * inclusion of SISCone 2.0.6
131 
132 ================================================================
133 Summary of changes from v3.0.2 -> v3.0.3: 26/06/12
134 ================================================================
135 
136 This is a bug-fix release, fixing
137 
138 * compilation issues with g++-4.7 and clang
139 * issue of missing documentation figures in the tarball
140 * issue with the --enable-extra-warnings flag in configure
141 
142 ================================================================
143 Summary of changes from v3.0.1 -> v3.0.2: 17/01/12
144 ================================================================
145 
146 This is a bug-fix release, including
147 
148 * small fixes to the build system and fastjet-config
149 * further licence clarifications
150 * user can force early printing of banner with ClusterSequence::print_banner()
151 * included SISCone 2.0.5 (with small modifications to the build system)
152 
153 ================================================================
154 Summary of changes from v3.0.0 -> v3.0.1: 25/11/11
155 ================================================================
156 
157 Version 3.0.1 includes further reorganisation of the manual (version to
158 appear on arXiv), and a number of small additional changes, including :
159 
160 * PseudoJet now also has a pt() member function for transverse momentum
161 * minor speed improvements (very low N + strategy choice for N ~ 20-50)
162 * elimination of many compilation warnings found with -Wextra -Wshadow
163 * clarification of licenses for many of the plugins + new plugin banners
164 * fixed a memory leak in the ATLASConePlugin
165 
166 ================================================================
167 Summary of changes from v2.4.4 -> v3.0.0: 09/10/11
168 ================================================================
169 
170 Changes relative to the 2.4.x series include:
171 
172 Addition of FastJet tools:
173 
174  * Filtering, trimming, pruning and a few boosted object taggers as
175  part of a new native "Transformers" framework for post-clustering
176  manipulation of jets
177 
178  * New background estimation and subtraction interface, with
179  JetMedianBackgroundEstimator, GridMedianBackgroundEstimator and Subtractor.
180 
181 New functionality:
182 
183  * Enhancement of the PseudoJet class so that jets are now aware of their
184  internal structure (e.g. one can use jet.constituents()).
185  * It is possible to associate arbitrary user information with a PseudoJet.
186  * Selectors, which allow easy communication of cuts across different functions
187 
188 Other changes:
189 
190  * Improved doxygen and examples
191  * aids for easier memory management
192  * elimination of the R<pi/2 restriction on native jet algorithms
193  * control of Error and warning output, including public LimitedWarning class
194  * new plugins (GridJet and two D0RunICone plugins)
195  * enhanced fortran wrappers
196 
197 Interface modifications (May break backwards compatibility):
198 
199  * by default a JetDefinition is initialised to undefined_jet_algorithm
200  instead of kt_algorithm with a radius of 1.
201  * JetDefinition::DefaultRecombiner sets the user index of the result
202  of the recombination to -1 (the default for a PseudoJet;
203  previously was being set to 0)
204  * ghosts are placed more sensibly in 3.0 than in the 2.X series;
205  call ghost_area_spec.set_fj2_placement(true) to reinstate old behaviour
206  * CS::exclusive_subjets used to silently return fewer subjets than
207  requested if there were too few particles in a jet; to be
208  consistent with exclusive_jets(...) it now throws an exception;
209  use exclusive_jets_up_to(...) and exclusive_subjets_up_to(...) to
210  avoid the exception.
211  * ATLASCone and TrackJet plugins use stable_sort instead of sort for
212  more stable behaviour across architectures and compiler versions;
213  this can change clustering results in events with degeneracies.
214  * some legacy headers have been removed (include/FjPseudoJet.hh and
215  include/FjClusterSequence.hh), and some classes are deprecated:
216  ClusterSequenceWithArea (use ClusterSequenceArea instead),
217  ActiveAreaSpec (use GhostedAreaSpec instead), and RangeDefinition
218  and CircularRange (use Selector instead); see appendix G in manual
219  for further small removals.
220 
221 Configure modifications
222 
223  * the plugins are by default built in a single 'libfastjetplugin'
224  library. This is transparent if you use the fastjet-config
225  script. The previous behaviour (each plugin in its own library)
226  can be recovered by passing the --disable-monolithic option to
227  configure.
228  * an additional library, libfastjettools, contains tools like
229  boosted object taggers, filters, etc. It is included by default
230  with "fastjet-config --libs"
231 
232 
233 New features relative to 3.0beta1:
234 
235  * addition of Pruner class
236  * control of Error and warning output, including public LimitedWarning class
237  * addition of SelectorIsZero
238  * ClusterSequence::childless_pseudojets()
239 
240 Bug fixes and other changes relative to 3.0beta1:
241 
242  * JetMedianBackgroundEstimator::set_particles(...) no longer resets other parameters
243  * fixed issue with persistency of internal recombiner in Filter
244  * removed deprecated ClusterSequence constructor with R (rather than
245  jet def) and also CS::set_jet_algorithm(...), CS::set_jet_def(...)
246 
247 
248 ================================================================
249 Summary of changes from v3.0beta1 -> v3.0.0: 09 October 2011
250 ================================================================
251 New features:
252 - addition of Pruner class
253 - control of Error and warning output, including public LimitedWarning class
254 - addition of SelectorIsZero
255 - ClusterSequence::childless_pseudojets()
256 
257 Bug fixes and other changes
258 - JetMedianBackgroundEstimator::set_particles(...) no longer resets other parameters
259 - fixed issue with persistency of internal recombiner in Filter
260 - removed deprecated ClusterSequence constructor with R (rather than jet def)
261  and also CS::set_jet_algorithm(...), CS::set_jet_def(...)
262 
263 ================================================================
264 Summary of changes from v3.0alpha3 -> v3.0beta1: 10 August 2011
265 ================================================================
266 New features
267 - Reorganised background estimation to have a JetMedianBackgroundEstimator
268  and a GridMedianBackgroundEstimator (derived from BackgroundEstimatorBase)
269  [v3.0alpha3 programs should replace BackgroundEstimator
270  -> JetMedianBackgroundEstimator, and use a new order of constructor arguments]
271 - Added the GridJetPlugin
272 - added a TopTaggerBase and a Johns Hopkins top tagger (JHTopTagger)
273 - to JetDefinition added delete_plugin_when_unused(),
274  delete_recombiner_when_unused()
275 - improved Filter (for area and recombiner support, also works with a subtractor)
276 - added a --config flag to fastjet-config
277 
278 Bug fixes and other changes
279 - some speed gains in the default recombiner
280 - TrackJet and ATLASCone now use stable_sort (can change results;
281  makes results stable across machine architectures & compilers, cf BUGS)
282 - fixed bugs in Voronoi areas (as in v.2.4.4)
283 - fixed bugs in handling of empty areas in background estimator (as in 2.4.4)
284 - renamed SelectorMXXX -> SelectorMassXXX
285 - renamed NSubjettinessTagger -> RestFrameNSubjettinessTagger
286 - exclusive_[sub]jets(njets) now consistenty throws an error if it
287  can't deliver njets; exclusive_[sub]jets_upto(njets) gives up to njets
288 - deprecated ClusterSequenceWithArea and ActiveAreaSpec
289  (ClusterSequenceWithArea no longer available from
290  ClusterSequenceArea.hh header)
291 - deprecated RangeDefinition & CircularRange; use Selector instead
292 - reorganisation of substantial parts of the manual
293 
294 
295 ================================================================
296 Summary of changes from v3.0alpha2 -> v3.0alpha3: 03 June 2011
297 ================================================================
298 
299 New features
300 - Added a series of "Transformer"s in tools/:
301  * Subtractor: subtract the jet using a BackgroundEstimator
302  * Boost/Unboost: boosts/unboosts a jet
303  * MassDropTagger: look for a mass drop in the jet substructure
304  * NSubjettinessTagger: 2-pronged tagger based on rest-frame 2-subjettiness
305  * CASubJetTagger: 2-pronged tagger based on maximal distance in jet history
306  * Filter updated from alpha2 (bug fixes & new constructors)
307  NB: examples 11 (boosted Higgs) and 12 (Filter) illustrate usage.
308 
309 - CS::delete_self_when_unused() allows it to handle its own memory management
310 - GhostedAreaSpec can take a Selector to help specify ghost placement
311 - added a FunctionOfPseudoJet<T> base class to help standardise tool interfaces
312 - ClusterSequence::transfer_from_sequence now allows for a
313  FunctionOfPseudoJet<PseudoJet> argument to transform (e.g. boost)
314  the jets from an old sequence as they are transferred to the new one
315 - fortran interface now has basic area functionality
316 
317 Changes to features introduced in alpha2 and alpha1:
318 - Numerous changes to BackgroundEstimator
319  * it allows manual encoding of rapidity dependence;
320  * it can calculate density of quantities other than pt;
321  * it has additional constructors, plus methods to reset its ClusterSequence, etc.
322  * its sigma() now properly handles finite numbers of jets (+ other bug fixes).
323 - jet.pieces() for a jet from a clustering now returns the two parents
324 - various changes to behaviour of a jet's structural calls; see new table in doc
325 - PseudoJet::extra_properties<...>() -> PseudoJet::structure_of<...>() (cf example 12)
326 - join(...) can now include a recombiner argument; it also now supports areas
327 - Selector::count(jets) to know how many pass a cut (also new: Selector::sift)
328 
329 Other changes
330 - by default a PseudoJet is constructed with zero momentum
331 - by default a JetDefinition has an undefined_jet_algorithm
332 - efficiency improvements in PtYPhiM and ghost generation
333 - all uses of RangeDefinition now replaced by Selector. Old interfaces
334  retained, but deprecated.
335 - added an example (09) to illustrate how to add user-info to a PseudoJet
336 - doxygen output now configured with an internal search engine
337 
338 Bug fixes
339 - the default recombiner used to set the user_index to the non-default
340  value of 0. Now it sets it to the default (-1).
341 - fixed crashes of VoronoiAreas for particles on a grid (also in 2.4.3)
342 
343 
344 ================================================================
345 Summary of changes from v3.0alpha1 -> v3.0alpha2: 10 March 2011
346 ================================================================
347 
348 New features:
349 - two jets, a and b can now be joined: PseudoJet c = join(a,b),
350  intended to facilitate packaging the result of substructure tools;
351  individual pieces can be recovered with c.pieces();
352 - New PseudoJetStructureBase class, to help implement such features
353 - New fastjet/tools/Filter.hh provides a unified interface to filtering and trimming
354 - New very preliminary fastjet/tools/BackgroundEstimator.hh to provide
355  a more flexible interface to estimation of backgrounds (removal of
356  hardest jets, etc.).
357 - a few extra Selectors
358 
359 Changes to features introduced in alpha1:
360 - Selector is now in fastjet/Selector.hh (no longer fastjet/tools/...)
361 - Selector::relocate(...) and is_relocatable() renamed to
362  Selector::set_reference(...) and takes_reference()
363 - PseudoJet::ExtraInfo has been renamed PseudoJet::UserInfoBase and
364  corresponding access functions are now called set_user_info(...), etc.
365 
366 Other changes and fixes
367 - some legacy headers removed
368 - bug fixes in NlnNCam strategies for R>pi
369 
370 ===========================================================
371 Summary of changes from v2.4.X -> v3.0alpha1: 27 January 2011
372 ===========================================================
373 
374 This is an alpha release, previewing some of the new features that are
375 expected to be available in FastJet version 3. Interfaces of new
376 features may yet evolve.
377 
378 New features:
379 - Several extensions to PseudoJet:
380  * it now knows what ClusterSequence it belongs to
381  * info about internals of jets can be accessed e.g. as jet.constituents()
382  * it now has a virtual destructor + other support for classes derived from PseudoJet
383  * new facilities for associating user info with a jet (see PseudoJet::ExtraInfo)
384  * some of these features make use of a new SharedPtr class
385  (intended mainly for advanced users)
386  similar to C++0x std::shared_ptr
387  * calculation of phi and rapidity (cached) only on request
388 - R can now be taken larger than pi/2 for natively coded jet algorithms
389 - Addition of "Selector" tools through #include "fastjet/tools/Selector.hh"
390 - New plugin for D0RunICone (code contributed by Lars Sonnenschein)
391 - Improvements to fortran wrapper (access to SISCone, jet constituents, etc.)
392 
393 Bug fixes:
394 - fixed issue with inconsistent returned sign in PseudoJet::delta_phi_to(...)
395 
396 Other notable changes:
397 - Revamping of examples
398 - by default all plugins are now packaged into libfastjetplugins.
399  Note that "external" libraries like libsiscone are still separate.
400 - Significant improvements to doxygen documentation
401 
402 ===========================================================
403 Summary of changes from v2.4.1 -> v2.4.2: 26 February 2010
404 ===========================================================
405 - exclusive_ymerge_max(...) was not working; now fixed
406 - the D0RunIIConePlugin gave segfaults for some parameters; now fixed
407 - the D0RunIIConePlugin gave different results on 32/64 bit machines;
408  optimisation flags now changed just for D0 code so that 32 bit gives same
409  results as 64 bit.
410 - changes to configure.ac to better handle fortran compiler checks
411 - removed some orphan/redundant code that was generating compilation warnings
412 - added an "--enable-monolithic" option to ./configure which causes
413  all plugins to be placed in a single library (except SISCone)
414 - added a "--list-plugins" option to fastjet-config
415 
416 =======================================================
417 Summary of changes from v2.4.0 -> v2.4.1: 29 May 2009
418 =======================================================
419 
420 Fixes to the build system
421 -------------------------
422 - Included SISCone 2.0.1 (shared libs now enabled by default in
423  SISCone too, and other small fixes)
424 - Fixed platform-dependent failures during make check
425 - Fixed gcc 4.4 compatibility issues (missing headers)
426 - Fixed a problem on Mac OS X with the arguments provided by
427  "fastjet-config --libs" (--rpath versus -rpath).
428 - fastjet-config has new optional arguments (--rpath=no, --runpath)
429  related to finding shared libraries at runtime on linux.
430  Run fastjet-config without any arguments for more info.
431  To instead use static libraries, either configure with the
432  --disable-shared option, or use fastjet-config with the --shared=no option.
433 - fastjet-config can now take --cxxflags and --libs in a single invocation
434 - With --cxxflags, fastjet-config now returns the minimal required set of arguments
435 - Various other small mods (better fortran support, standardisation, ...)
436  [thanks to Andy Buckley and David Grellscheid for suggestions]
437 
438 Also
439 ----
440 - Added a fortran wrapper for pp sequential recombination algorithms
441 - Fixed issue in median rho estimation when some jets have zero area
442 - Expanded descriptions that are returned by ATLAS/TrackJet/CMS plugins
443 - Warnings are no longer given when using exclusive jets with
444  Cam/Aachen and certain e+e- algorithms (the warnings were misleading)
445 - Small fixes to the manual
446 
447 =======================================================
448 Summary of changes from v2.3.X -> v2.4.0: 17 April 2009
449 =======================================================
450 
451 
452 New pp algorithms
453 -----------------
454 
455 - added implementation of generalised kt algorithm (genkt_algorithm) for pp
456 - added D0RunIICone plugin [--enable-d0runiicone at configure time]
457 - added ATLASCone Plugin [--enable-atlascone at configure time]
458 - added CMSIterativeConePlugin [--enable-cmsiterativecone at configure time]
459 - added TrackJet Plugin (used by CDF in UE studies)
460  [--enable-trackjet at configure time]
461 
462 Introduction of e+e- algorithms
463 -------------------------------
464 
465 - added an implementation of the e+e- kt algorithm (ee_kt_algorithm),
466 - added EECambridgePlugin for the (original) e+e- Cambridge algorithm
467 - added JADEPlugin for the JADE algorithm (see the ChangeLog or header
468  file for details)
469 - added SISConeSphericalPlugin [enabled by default] for SISCone in
470  e+e- and other spherical environments.
471 - native implementation of generalised kt algorithm for e+e- (ee_genkt_algorithm)
472  [also provides access to e+e- form of anti-kt alg, conical jets on a sphere]
473 - added JadePlugin for the e+e- Jade algorithm
474 
475 Meta-algorithms
476 ----------------
477 
478 - added NestedDefs plugin for daisy-chaining multiple jet definitions
479  [still under testing; API may change in the future]
480 
481 New functionality
482 -----------------
483 - added subjet functions for viewing jet at particular dcut, etc.
484 - added access to exclusive jets based on ycut as well as dcut (for e+e-)
485 - added support for asymmetric rapidity ranges in GhostedAreaSpec
486 - added support for a CircularRange (derived from RangeDefinition) for
487  use in background estimation
488 - added class NNH to help users implement algorithms with
489  user-chosen distance measure (see JadePlugin for an example)
490 
491 Interface modifications
492 -----------------------
493 - removed default value of 0.5 for overlap_threshold in
494  CDFMidPointPlugin, CDFJetCluPlugin and SISConePlugin constructors
495 
496  *** may break backwards compatibility ***
497 
498 - a JetDefinition(jet_alg) constructor, without an R value, is no
499  longer legal, except when jet_alg is ee_kt_algorithm (it has no R).
500 
501  *** may break backwards compatibility ***
502 
503 - in SISCone, new way of accessing the information about pass at which
504  a jet was found (old method retained for 2.4, but now deprecated)
505 
506 
507 Configure modifications
508 -----------------------
509 - added --enable-allplugins and --enable-allcxxplugins options, to
510  avoid having to specify a long list of individual plugins
511 - shared libraries are now enabled by default
512 
513 Bugs fixed
514 ----------
515 - fixed missing support for periodicity in azimuth in RangeDefinition
516  class
517 
518 Other modifications
519 -----------------------
520 - added support for CGAL 3.4 (for non-standard locations, specify
521  --with-cgaldir at configure time)
522 - removed restriction that fastjet throws exception on empty events
523 - added an example that illustrates the use of subjet techniques for
524  a boosted Higgs->b+bbar search
525 
526 Still to come
527 -------------
528 - add CMSIterativeCone Plugin
529 
530 
531 
532 =======================================================================
533 Summary of changes from v2.3.3 -> v2.3.4 (bug fix release): 15 Aug 2008
534 ==========================================================
535 
536 - fixed infinite-loop bug in JetClu plugin on certain rare events
537 
538 - fixed compatibility issues of certain example programs with g++-4.3
539 
540 - incorporated SISCone 1.3.3 with similar g++-4.3 fixes
541 
542 =======================================================================
543 Summary of changes from v2.3.2 -> v2.3.3 (bug fix release): 28 Apr 2008
544 ==========================================================
545 
546 - fixed missing installation of .../config_auto.h
547 
548 - fixed missing typename in .../SearchTree.hh
549 
550 =======================================================================
551 Summary of changes from v2.3.1 -> v2.3.2 (bug fix release): 03 Apr 2008
552 ==========================================================
553 
554 - fixes to propagation of CXXFLAGS through the build chain
555 
556 - small change in Voronoi area code to fix crashes on regular
557  (calorimeter) layouts of momenta
558 
559 - small change in active areas code to fix crashes on algorithms that
560  do not cluster all particles
561 
562 - eliminated "using namespace std" that had accidentally been left in
563  certain area header files
564 
565 - incorporation of SISCone 1.3.2 with fixes for inappropriate public
566  symbols and to build framework
567 
568 
569 ======================================================================
570 Summary of changes from v2.3.0 -> v2.3.1 (bug fix release)
571 ==========================================================
572 
573 - Fixed compilation issues under windows VC7.1 (reported by
574  I. Belyaev); also included SISCone 1.3.1 with similar fixes.
575 
576 - Fixed speed issue under optimized compilation of CDF MidPoint plugin
577  for 32 bit architectures that had arisen subsequent to the switch to
578  autotools with its common optimization settings.
579 
580 - Fixed "make check" failure with the --disable-siscone option.
581 
582 - Fixed crash in exclusive_dmerge(njets) for njets=0 (reported by P. Lenzi)
583 
584 
585 ======================================================================
586 Summary of changes from v2.1.0 (previous stable release) to v2.3.0
587 ===================================
588 
589 - added the anti-kt algorithm (LPTHE-07-03), which is a sequential
590  recombination algorithm that gives conical jets.
591 
592 - Added Passive and Voronoi areas, and new common class for accessing
593  all types of areas, ClusterSequenceArea.
594 
595 - switched to autotools for compilation and installation:
596  ./configure --prefix=...
597  make
598  make check [optional]
599  make install
600 
601  NB: users should no longer include fastjet-2.x.y/Makefile
602  when building their own programs, and instead should use
603  g++ -c file.cc `fastjet-config --cxxflags`
604  g++ file.o `fastjet-config --libs --plugins`
605 
606 - plugin include files are now to be accessed with fastjet/ in
607  front of them, i.e.
608  #include "fastjet/SISConePlugin.hh"
609  A simple #include "SISConePlugin.hh" is now obsolete but will
610  continue to work through 2.x
611 
612 - Added RangeDefinition class to provide more flexibility in UE/pileup
613  estimation.
614 
615 - New facilities for navigating the cluster sequence (has_parents,
616  has_child and has_partner members of ClusterSequence)
617 
618 - other bug fixes and small enhancements (including SISCone-1.3.0,
619  improvements to plugin facilities).
620 
621 See individual beta-releases below for more information, as well as
622 the ChangeLog.
623 
624 
625 ======================================================================
626 Changes from v2.2beta0 to v2.3-beta0
627 ===================================
628 
629 - switched to autotools for compilation and installation;
630 
631 - old build procedure still available for now, with files called
632  makefile.static (make -f makefile.static);
633 
634  test-script.sh has been renamed test-static.sh and builds and
635  tests using the old procedure.
636 
637 - plugins include files are now to be accessed with fastjet/ in
638  front of them, i.e.
639  #include "fastjet/SISConePlugin.hh"
640 
641  For backwards compatibility, the old access method will continue
642  to work throughout v2.x, i.e.
643  #include "SISConePlugin.hh"
644 
645 - added PseudoJet::reset(...) functions to reset the contents of a
646  PseudoJet.
647 
648 - added fastjet_version_string()
649 
650 - added a function PtYPhiM(...) that returns a PseudoJet with the
651  given py, rapidity , phi and mass. Defined in PseudoJet.hh
652 
653 - added a directory fortran_wrapper/ to illustrate how to access
654  fastjet from fortran
655 
656 - some small bug fixes in the CDF midpoint code
657 
658 
659 ======================================================================
660 Changes from v2.1.0 to v2.2beta0
661 ===============================
662 
663 - added the anti-kt algorithm (LPTHE-07-03)
664 
665 - Provided a new common class for accessing all different types of
666  areas: ClusterSequenceArea.
667 
668 - added functionality for Passive areas and Voronoi areas.
669  Areas are now defined much in the same way as jets, via an
670  AreaDefinition, which is passed as an argument
671  to ClusterSequenceArea. NB: the Voronoi area uses Fortune's
672  sweepline code for calculating the Voronoi diagram and so does not
673  require CGAL to be installed (it still is needed for NlnN kt
674  clustering).
675 
676 - Added class RangeDefinition which allows detailed definitions
677  of the rapidity-azimuth ranges over which to study jet areas
678  and possibly perform noise subtraction
679 
680 - added facilities for navigating the cluster sequence (has_parents,
681  has_child and has_partner members of ClusterSequence)
682 
683 - changed plugin base class, so that it now includes R() virtual
684  member, and modified the various plugins to account for this.
685 
686 - modified the plugin interface to provide facilities to help with
687  passive areas.
688 
689 - included SISCone-1.2.0 rather than 1.1.1.
690 
691 - adapted SISCone plugin to the 1.2.0 release of SISCone -- main
692  changes are facilities and improvements related areas: some speed
693  improvements on the split-merge (relevant for active areas) and a
694  fairly efficient way of running passive areas.
695 
696 - added ClusterSequence::print_jets_for_root(...) and a corresponding root
697  script (example/root/jet-plots.C), so as to provide a crude
698  visualisation tool.
699 
700 
701 ======================================================================
702 Summary of main changes from v2.0.0 to v2.1.0
703 =============================================
704 
705 - added plugin structure for external jet finders.
706 
707 - included plugins for SISCone, CDFMidPoint, CDFJetClu, PxCone (with
708  extensions for MidPoint and bug fixes for PxCone relative to public
709  codes).
710 
711 - introduced option of control over recombination scheme, with a
712  RecombinationScheme enum, which applies also to area_4vector.
713 
714 - added description() member function to JetDefinition class, so
715  that you can get a (string) summary of what you're running!
716 
717 - changed the default number of repeats in ActiveAreaSpec to 1 (which
718  is sufficient for most purposes).
719 
720 For further details, see the changes listed in detail below.
721 
722 ======================================================================
723 Changes from v2.1.0b4 to v2.1.0
724 ===============================
725 
726 - corrected bug in test-script.sh
727 
728 - removed PxCone from default tests and from
729  plugins/usage_examples/many_algs_example.cc (to avoid fortran
730  compilation issues).
731 
732 ======================================================================
733 Changes from v2.1.0b3 to v2.1.0b4
734 =================================
735 
736 FastJet modifications
737 ---------------------
738 
739 - default number of repeats for the active area specification has been
740  changed from 5 to 1 (the latter goes fast, but note that it provides
741  a zero error estimate for the area).
742 
743 Plugin modifications
744 --------------------
745 
746 - adapted plugin to accomodate new scale for use in the SISCone
747  split-merge (pttilde), with a corresponding change of interface.
748 
749  Changed default number of passes for SISCone to 0.
750 
751 - Added the pttilde scale choice to the CDF plugin.
752 
753 
754 
755 ======================================================================
756 Changes from v2.1.0b2 to v2.1.0b3
757 =================================
758 
759 FastJet enhancements
760 --------------------
761 
762 - methods for estimating the underlying now have the option of using
763  area_4vector rather than the plain area
764 
765 FastJet bug fixes
766 -----------------
767 
768 - area_4vector is now calculated with the same recombination scheme as
769  the jets themselves
770 
771 - massless recombination schemes now work correctly on particles with
772  zero momentum
773 
774 - PseudoJet::phi_std() returned wrong result for phi < pi -- thanks to
775  Oscar Stal for pointing this out.
776 
777 Plugin modifications
778 --------------------
779 
780 - the plugin mechanism now allows a plugin to add "extra" information
781  to the ClusterSequence, essentially by providing an auto_ptr to a
782  class derived from (the new) ClusterSequence::Extras; an example of
783  this has been implemented with siscone (SISConeExtras) which allows
784  a user to access the initial (stable) protocones.
785 
786 - included new siscone version (1.1) which uses transverse mass (mt) rather
787  than pt in the split-merge procedure, to address an IR problem in
788  events where the hadronic part conserves momentum -- this can have
789  an effect on some physical distributions; the siscone update also
790  addresses issues with collinear safety and co-circular points.
791 
792 - included bug fixes to pxcone regarding 2pi periodicity when
793  recombining momenta
794 
795 - modified the version of the CDF midpoint cone code so as to allow it
796  to use mt and Et as the parameters in the split--merge step.
797 
798 ======================================================================
799 Changes from v2.1.0b1 to v2.1.0b2
800 =================================
801 
802 Bug fixes
803 ---------
804 
805 - included new siscone version which solves the memory-leak problem
806 
807 Other changes
808 -------------
809 
810 - added sample output from the test-script as test-script-output-orig.txt
811 
812 ======================================================================
813 Changes from v2.1.0b0 to v2.1.0b1
814 =========================
815 
816 New features:
817 -------------
818 
819 - added the SISCone plugin and the beta version of the siscone code
820  (authored by Soyez & Salam)
821 
822 Bug fixes
823 ---------
824 
825 - removed extraneous semicolons after functions that were causing
826  problems on some compilers.
827 
828 Other additions
829 ---------------
830 
831 - Added COPYING file with GPL license
832 
833 ======================================================================
834 Changes from v2.0 to v2.1 (beta0)
835 =========================
836 
837 New features:
838 -------------
839 
840 - introduced option of control over recombination scheme, with a
841  RecombinationScheme enum (a variable of this type should be provided
842  to the JetDefinition constructor) and also the possibility of an
843  externally defined recombination scheme.
844 
845 - introduced a "plugin" facility for alternative jet finders, via an
846  abstract base class
847 
848  class JetDefinition::Plugin
849 
850  Plugins are to be provided as classes derived from this,
851  implementing the relevant virtual functions (see manual and examples
852  for further info).
853 
854 - introduced "description" member function for the JetDefinition
855  class, which returns a (std::string) textual description of the
856  algorithm defined.
857 
858 - provided plugins for CDF JetClu, CDF Midpoint, PxCone code; the
859  plugins, the code they interface to and example programs are to be
860  found in the new plugins/ directory.
861 
862 - added ClusterSequence::unclustered_particles() a vector containing
863  the unclustered particles (relevant for some plugin algorithms).
864 
865 Minor additions
866 ---------------
867 
868 - introduced PseudoJet::squared_distance (does same as "plain_distance")
869 
870 
871 
872 Notational changes:
873 -------------------
874 
875 - in the documentation, replaced eta -> y, to make it clear that it's
876  rapidity and not pseudorapidity that is being used throughout. Some
877  internal code continues to use variables called "eta" -- but these
878  are actually proper rapidity.
879 
880 
881 ======================================================================
882 Changes from v1.0 to v2.0
883 =========================
884 
885 New features:
886 -------------
887 
888 - the longitudinally invariant inclusive Cambridge/Aachen jet finder
889  has been added.
890 
891  Note that the exclusive jets extraction for the Cambridge jet-finder
892  does not provide the definition as given in the original Cambridge
893  paper. See the documentation for further details
894 
895 - classes have been introduced for running jet clustering and
896  simultaneously collecting information about the area of each jet.
897  The base class specifying the functionality is
898 
899  class ClusterSequenceWithArea;
900 
901  itself derived from ClusterSequence.
902 
903  Two derived classes that provide the actual areas functionality are:
904 
905  class ClusterSequenceActiveArea;
906  class ClusterSequenceActiveAreaExplicitGhosts;
907 
908  To construct them, one also needs to specify how one wishes the area
909  to be calculated, via a class
910 
911  class ActiveAreaSpec;
912 
913 
914 New optimizations:
915 ------------------
916 - new clustering strategies have been added:
917 
918 
919  N2MinHeapTiled : like N2Tiled, except that the non-geometric
920  part has been replaced with a N ln N algorithm
921  (overall the strategy still scales as N^2, but with a
922  smaller coefficient)
923 
924  NlnNCam, NlnNCam2pi2R, NlnNCam4pi:
925 
926  NlnN strategies specific to the Cambridge/Aachen
927  jet-finder -- the fastest of them is NlnNCam.
928  Depending on the size of the event and of the CPU
929  cache it may be up to 2.5 times faster than the
930  CGAL-based NlnN strategy. Experiment on your own
931  hardware and events to establish whether the
932  speed gain is significant.
933 
934  These strategies are based on the work on dynamic
935  Closest Pair problems by Timothy Chan.
936 
937  Best : (was present before) now attempts to select best
938  among N2Plain, N2Tiled, N2MinHeapTiled, NlnN.
939 
940  As the best option for a given N may depend on R
941  and the event structure, you are advised to
942  experiment with individual strategies if the
943  last few tens of percent in speed are critical.
944 
945 
946 
947 Updates to user interface
948 -------------------------
949 
950 While the v1 interface to fastjet has been maintained for backwards
951 compatibility, for new developments in v2 and related forthcoming
952 work, a new interface is provided as follows:
953 
954 - User accessible classes and enums have had the "Fj" prefix removed
955  and are instead now in namespace fastjet; the corresponding include
956  files are in the include/fastjet directory. So, for example instead
957  of
958 
959  #include "FjClusterSequence.hh"
960  //...
961  FjClusterSequence clust_seq(...)
962 
963  one now uses the following
964 
965  #include "fastjet/ClusterSequence.hh"
966  //...
967  fastjet::ClusterSequence clust_seq(...)
968 
969  If typing "fastjet::" the whole time seems too long-winded, you can
970  abbreviate "fastjet" as "fj" with
971 
972  namespace fj = fastjet;
973 
974  or eliminate the need for it altogether with
975 
976  using namespace fastjet;
977 
978 - a new class, fastjet::JetDefinition, has been introduced for holding
979  the details of the jet finder (which one, value of R, etc...) that
980  is to be used in a given clustering.
981 
982  #include "fastjet/JetDefinition.hh"
983  #include "fastjet/ClusterSequence.hh"
984  //...
985 
986  double R = 0.7;
987 
988  // define jet algorithm
989  fastjet::JetDefinition jet_def(fastjet::kt_algorithm, R);
990 
991  // get the cluster sequence for a vector of 4-momenta and the
992  // given jet definition
993  fastjet::ClusterSequence clust_seq(momenta, jet_def);
994 
995 - some errors that previously were assertions now throw an
996  fastjet::Error -- exception. A fully uniform handling of exceptions
997  is currently some way away however and users for whom this is an
998  important issue should contact the authors.