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