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