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