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