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