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