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