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