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