FastJet 3.0.6
NEWS
00001 Release Notes for fastjet
00002 -------------------------
00003 
00004 ================================================================
00005 Summary of changes from v3.0.5 -> v3.0.6: 2013-10-29
00006 ================================================================
00007 This is a minor maintenance release. Main changes:
00008 * fixed compilation issues for two plugins under OS X 10.9 (Mavericks)
00009 * fixed incorrect warnings in JHTopTagger, MassDropTagger and an example
00010 * GridJetPlugin now has extra enquiry functions
00011 
00012 ================================================================
00013 Summary of changes from v3.0.4 -> v3.0.5: 2013-09-16
00014 ================================================================
00015 This is a minor maintenance release. Main changes:
00016 * modified include guards, to solve coexistence issue for fjcore
00017 * resolved (bogus) compiler warning about uninitialised variables
00018 * added an example event file that was missing from the distribution
00019 
00020 ================================================================
00021 Summary of changes from v3.0.3 -> v3.0.4: 2013-06-05
00022 ================================================================
00023 
00024 This is a minor maintenance release. Changes include:
00025 * dummy init of PseudoJet rapidity to avoid warnings with some configs.
00026 * minor code structure adjustments to allow for release of fjcore
00027 * inclusion of SISCone 2.0.6
00028 
00029 ================================================================
00030 Summary of changes from v3.0.2 -> v3.0.3: 26/06/12
00031 ================================================================
00032 
00033 This is a bug-fix release, fixing 
00034 
00035 * compilation issues with g++-4.7 and clang
00036 * issue of missing documentation figures in the tarball
00037 * issue with the --enable-extra-warnings flag in configure
00038 
00039 ================================================================
00040 Summary of changes from v3.0.1 -> v3.0.2: 17/01/12
00041 ================================================================
00042 
00043 This is a bug-fix release, including
00044 
00045 * small fixes to the build system and fastjet-config
00046 * further licence clarifications
00047 * user can force early printing of banner with ClusterSequence::print_banner()
00048 * included SISCone 2.0.5 (with small modifications to the build system)
00049 
00050 ================================================================
00051 Summary of changes from v3.0.0 -> v3.0.1: 25/11/11
00052 ================================================================
00053 
00054 Version 3.0.1 includes further reorganisation of the manual (version to 
00055 appear on arXiv), and a number of small additional changes, including :
00056 
00057 * PseudoJet now also has a pt() member function for transverse momentum
00058 * minor speed improvements (very low N + strategy choice for N ~ 20-50)
00059 * elimination of many compilation warnings found with -Wextra -Wshadow
00060 * clarification of licenses for many of the plugins + new plugin banners
00061 * fixed a memory leak in the ATLASConePlugin
00062 
00063 ================================================================
00064 Summary of changes from v2.4.4 -> v3.0.0:  09/10/11
00065 ================================================================
00066 
00067 Changes relative to the 2.4.x series include:
00068 
00069 Addition of FastJet tools:
00070 
00071   * Filtering, trimming, pruning and a few boosted object taggers as
00072     part of a new native "Transformers" framework for post-clustering
00073     manipulation of jets
00074 
00075   * New background estimation and subtraction interface, with
00076     JetMedianBackgroundEstimator, GridMedianBackgroundEstimator and Subtractor. 
00077   
00078 New functionality:
00079   
00080   * Enhancement of the PseudoJet class so that jets are now aware of their
00081     internal structure (e.g. one can use jet.constituents()).
00082   * It is possible to associate arbitrary user information with a PseudoJet.
00083   * Selectors, which allow easy communication of cuts across different functions 
00084   
00085 Other changes:
00086 
00087   * Improved doxygen and examples
00088   * aids for easier memory management
00089   * elimination of the R<pi/2 restriction on native jet algorithms
00090   * control of Error and warning output, including public LimitedWarning class
00091   * new plugins (GridJet and two D0RunICone plugins)
00092   * enhanced fortran wrappers 
00093 
00094 Interface modifications (May break backwards compatibility):
00095 
00096   * by default a JetDefinition is initialised to undefined_jet_algorithm 
00097     instead of kt_algorithm with a radius of 1.
00098   * JetDefinition::DefaultRecombiner sets the user index of the result
00099     of the recombination to -1 (the default for a PseudoJet;
00100     previously was being set to 0)
00101   * ghosts are placed more sensibly in 3.0 than in the 2.X series;
00102     call ghost_area_spec.set_fj2_placement(true) to reinstate old behaviour
00103   * CS::exclusive_subjets used to silently return fewer subjets than
00104     requested if there were too few particles in a jet; to be
00105     consistent with exclusive_jets(...) it now throws an exception;
00106     use exclusive_jets_up_to(...) and exclusive_subjets_up_to(...) to
00107     avoid the exception.
00108   * ATLASCone and TrackJet plugins use stable_sort instead of sort for
00109     more stable behaviour across architectures and compiler versions;
00110     this can change clustering results in events with degeneracies.
00111   * some legacy headers have been removed (include/FjPseudoJet.hh and
00112     include/FjClusterSequence.hh), and some classes are deprecated:
00113     ClusterSequenceWithArea (use ClusterSequenceArea instead),
00114     ActiveAreaSpec (use GhostedAreaSpec instead), and RangeDefinition
00115     and CircularRange (use Selector instead); see appendix G in manual
00116     for further small removals. 
00117 
00118 Configure modifications
00119 
00120   * the plugins are by default built in a single 'libfastjetplugin'
00121     library. This is transparent if you use the fastjet-config
00122     script. The previous behaviour (each plugin in its own library)
00123     can be recovered by passing the --disable-monolithic option to
00124     configure.
00125   * an additional library, libfastjettools, contains tools like
00126     boosted object taggers, filters, etc. It is included by default
00127     with "fastjet-config --libs" 
00128 
00129    
00130 New features relative to 3.0beta1:
00131 
00132   * addition of Pruner class
00133   * control of Error and warning output, including public LimitedWarning class
00134   * addition of SelectorIsZero
00135   * ClusterSequence::childless_pseudojets() 
00136     
00137 Bug fixes and other changes relative to 3.0beta1:
00138    
00139   * JetMedianBackgroundEstimator::set_particles(...) no longer resets other parameters
00140   * fixed issue with persistency of internal recombiner in Filter
00141   * removed deprecated ClusterSequence constructor with R (rather than
00142     jet def) and also CS::set_jet_algorithm(...), CS::set_jet_def(...) 
00143 
00144 
00145 ================================================================
00146 Summary of changes from v3.0beta1 -> v3.0.0:  09 October 2011
00147 ================================================================
00148 New features:
00149 - addition of Pruner class
00150 - control of Error and warning output, including public LimitedWarning class
00151 - addition of SelectorIsZero
00152 - ClusterSequence::childless_pseudojets()
00153 
00154 Bug fixes and other changes
00155 - JetMedianBackgroundEstimator::set_particles(...) no longer resets other parameters
00156 - fixed issue with persistency of internal recombiner in Filter
00157 - removed deprecated ClusterSequence constructor with R (rather than jet def)
00158   and also CS::set_jet_algorithm(...), CS::set_jet_def(...)
00159 
00160 ================================================================
00161 Summary of changes from v3.0alpha3 -> v3.0beta1:  10 August 2011
00162 ================================================================
00163 New features
00164 - Reorganised background estimation to have a JetMedianBackgroundEstimator
00165   and a GridMedianBackgroundEstimator (derived from BackgroundEstimatorBase)
00166   [v3.0alpha3 programs should replace BackgroundEstimator 
00167    -> JetMedianBackgroundEstimator, and use a new order of constructor arguments]
00168 - Added the GridJetPlugin
00169 - added a TopTaggerBase and a Johns Hopkins top tagger (JHTopTagger)
00170 - to JetDefinition added delete_plugin_when_unused(), 
00171   delete_recombiner_when_unused()
00172 - improved Filter (for area and recombiner support, also works with a subtractor)
00173 - added a --config flag to fastjet-config
00174 
00175 Bug fixes and other changes
00176 - some speed gains in the default recombiner
00177 - TrackJet and ATLASCone now use stable_sort (can change results;
00178   makes results stable across machine architectures & compilers, cf BUGS)
00179 - fixed bugs in Voronoi areas (as in v.2.4.4) 
00180 - fixed bugs in handling of empty areas in background estimator (as in 2.4.4)
00181 - renamed SelectorMXXX -> SelectorMassXXX
00182 - renamed NSubjettinessTagger -> RestFrameNSubjettinessTagger
00183 - exclusive_[sub]jets(njets) now consistenty throws an error if it
00184   can't deliver njets; exclusive_[sub]jets_upto(njets) gives up to njets
00185 - deprecated ClusterSequenceWithArea and ActiveAreaSpec
00186   (ClusterSequenceWithArea no longer available from
00187   ClusterSequenceArea.hh header)
00188 - deprecated RangeDefinition & CircularRange; use Selector instead
00189 - reorganisation of substantial parts of the manual
00190 
00191 
00192 ================================================================
00193 Summary of changes from v3.0alpha2 -> v3.0alpha3:  03 June 2011
00194 ================================================================
00195 
00196 New features
00197 - Added a series of "Transformer"s in tools/:
00198    * Subtractor: subtract the jet using a BackgroundEstimator
00199    * Boost/Unboost: boosts/unboosts a jet
00200    * MassDropTagger: look for a mass drop in the jet substructure
00201    * NSubjettinessTagger: 2-pronged tagger based on rest-frame 2-subjettiness
00202    * CASubJetTagger: 2-pronged tagger based on maximal distance in jet history
00203    * Filter updated from alpha2 (bug fixes & new constructors)
00204   NB: examples 11 (boosted Higgs) and 12 (Filter) illustrate usage.
00205 
00206 - CS::delete_self_when_unused() allows it to handle its own memory management
00207 - GhostedAreaSpec can take a Selector to help specify ghost placement
00208 - added a FunctionOfPseudoJet<T> base class to help standardise tool interfaces
00209 - ClusterSequence::transfer_from_sequence now allows for a
00210   FunctionOfPseudoJet<PseudoJet> argument to transform (e.g. boost)
00211   the jets from an old sequence as they are transferred to the new one
00212 - fortran interface now has basic area functionality
00213 
00214 Changes to features introduced in alpha2 and alpha1:
00215 - Numerous changes to BackgroundEstimator 
00216     * it allows manual encoding of rapidity dependence;
00217     * it can calculate density of quantities other than pt;
00218     * it has additional constructors, plus methods to reset its ClusterSequence, etc.
00219     * its sigma() now properly handles finite numbers of jets (+ other bug fixes).
00220 - jet.pieces() for a jet from a clustering now returns the two parents
00221 - various changes to behaviour of a jet's structural calls; see new table in doc
00222 - PseudoJet::extra_properties<...>() -> PseudoJet::structure_of<...>() (cf example 12)
00223 - join(...) can now include a recombiner argument; it also now supports areas
00224 - Selector::count(jets) to know how many pass a cut (also new: Selector::sift)
00225 
00226 Other changes 
00227 - by default a PseudoJet is constructed with zero momentum
00228 - by default a JetDefinition has an undefined_jet_algorithm
00229 - efficiency improvements in PtYPhiM and ghost generation
00230 - all uses of RangeDefinition now replaced by Selector. Old interfaces
00231   retained, but deprecated.
00232 - added an example (09) to illustrate how to add user-info to a PseudoJet
00233 - doxygen output now configured with an internal search engine
00234 
00235 Bug fixes
00236 - the default recombiner used to set the user_index to the non-default
00237   value of 0. Now it sets it to the default (-1).
00238 - fixed crashes of VoronoiAreas for particles on a grid (also in 2.4.3)
00239 
00240 
00241 ================================================================
00242 Summary of changes from v3.0alpha1 -> v3.0alpha2:  10 March 2011
00243 ================================================================
00244 
00245 New features:
00246 - two jets, a and b can now be joined:  PseudoJet c = join(a,b),
00247   intended to facilitate packaging the result of substructure tools;
00248   individual pieces can be recovered with c.pieces();
00249 - New PseudoJetStructureBase class, to help implement such features
00250 - New fastjet/tools/Filter.hh provides a unified interface to filtering and trimming
00251 - New very preliminary fastjet/tools/BackgroundEstimator.hh to provide
00252   a more flexible interface to estimation of backgrounds (removal of
00253   hardest jets, etc.).
00254 - a few extra Selectors
00255 
00256 Changes to features introduced in alpha1:
00257 - Selector is now in fastjet/Selector.hh (no longer fastjet/tools/...)
00258 - Selector::relocate(...) and is_relocatable() renamed to
00259   Selector::set_reference(...) and takes_reference()
00260 - PseudoJet::ExtraInfo has been renamed PseudoJet::UserInfoBase and
00261   corresponding access functions are now called set_user_info(...), etc.
00262 
00263 Other changes and fixes
00264 - some legacy headers removed
00265 - bug fixes in NlnNCam strategies for R>pi
00266 
00267 ===========================================================
00268 Summary of changes from v2.4.X -> v3.0alpha1:  27 January 2011
00269 ===========================================================
00270 
00271 This is an alpha release, previewing some of the new features that are
00272 expected to be available in FastJet version 3. Interfaces of new
00273 features may yet evolve.
00274 
00275 New features:
00276 - Several extensions to PseudoJet:
00277   * it now knows what ClusterSequence it belongs to
00278   * info about internals of jets can be accessed e.g. as jet.constituents()
00279   * it now has a virtual destructor + other support for classes derived from PseudoJet
00280   * new facilities for associating user info with a jet (see PseudoJet::ExtraInfo)
00281   * some of these features make use of a new SharedPtr class 
00282     (intended mainly for advanced users)  
00283     similar to C++0x std::shared_ptr
00284   * calculation of phi and rapidity (cached) only on request
00285 - R can now be taken larger than pi/2 for natively coded jet algorithms
00286 - Addition of "Selector" tools through #include "fastjet/tools/Selector.hh"
00287 - New plugin for D0RunICone (code contributed by Lars Sonnenschein)
00288 - Improvements to fortran wrapper (access to SISCone, jet constituents, etc.)
00289 
00290 Bug fixes:
00291 - fixed issue with inconsistent returned sign in PseudoJet::delta_phi_to(...)
00292 
00293 Other notable changes:
00294 - Revamping of examples
00295 - by default all plugins are now packaged into libfastjetplugins.
00296   Note that "external" libraries like libsiscone are still separate.
00297 - Significant improvements to doxygen documentation
00298 
00299 ===========================================================
00300 Summary of changes from v2.4.1 -> v2.4.2:  26 February 2010
00301 ===========================================================
00302 - exclusive_ymerge_max(...) was not working; now fixed
00303 - the D0RunIIConePlugin gave segfaults for some parameters; now fixed
00304 - the D0RunIIConePlugin gave different results on 32/64 bit machines;
00305   optimisation flags now changed just for D0 code so that 32 bit gives same
00306   results as 64 bit. 
00307 - changes to configure.ac to better handle fortran compiler checks
00308 - removed some orphan/redundant code that was generating compilation warnings
00309 - added an "--enable-monolithic" option to ./configure which causes
00310   all plugins to be placed in a single library (except SISCone)
00311 - added a "--list-plugins" option to fastjet-config
00312 
00313 =======================================================
00314 Summary of changes from v2.4.0 -> v2.4.1:  29 May 2009
00315 =======================================================
00316 
00317 Fixes to the build system
00318 -------------------------
00319 - Included SISCone 2.0.1 (shared libs now enabled by default in
00320   SISCone too, and other small fixes)
00321 - Fixed platform-dependent failures during make check
00322 - Fixed gcc 4.4 compatibility issues (missing headers)
00323 - Fixed a problem on Mac OS X with the arguments provided by
00324   "fastjet-config --libs" (--rpath versus -rpath).
00325 - fastjet-config has new optional arguments (--rpath=no, --runpath)
00326   related to finding shared libraries at runtime on linux. 
00327   Run fastjet-config without any arguments for more info.
00328   To instead use static libraries, either configure with the
00329   --disable-shared option, or use fastjet-config with the --shared=no option.
00330 - fastjet-config can now take --cxxflags and --libs in a single invocation
00331 - With --cxxflags, fastjet-config now returns the minimal required set of arguments 
00332 - Various other small mods (better fortran support, standardisation, ...)
00333   [thanks to Andy Buckley and David Grellscheid for suggestions]
00334 
00335 Also
00336 ----
00337 - Added a fortran wrapper for pp sequential recombination algorithms
00338 - Fixed issue in median rho estimation when some jets have zero area
00339 - Expanded descriptions that are returned by ATLAS/TrackJet/CMS plugins
00340 - Warnings are no longer given when using exclusive jets with
00341   Cam/Aachen and certain e+e- algorithms (the warnings were misleading)
00342 - Small fixes to the manual
00343 
00344 =======================================================
00345 Summary of changes from v2.3.X -> v2.4.0: 17 April 2009
00346 =======================================================
00347 
00348 
00349 New pp algorithms
00350 -----------------
00351 
00352 - added implementation of generalised kt algorithm (genkt_algorithm) for pp
00353 - added D0RunIICone plugin [--enable-d0runiicone at configure time]
00354 - added ATLASCone Plugin [--enable-atlascone at configure time]
00355 - added CMSIterativeConePlugin [--enable-cmsiterativecone at configure time]
00356 - added TrackJet Plugin (used by CDF in UE studies)
00357   [--enable-trackjet at configure time]
00358 
00359 Introduction of e+e- algorithms
00360 -------------------------------
00361 
00362 - added an implementation of the e+e- kt algorithm (ee_kt_algorithm),
00363 - added EECambridgePlugin for the (original) e+e- Cambridge algorithm
00364 - added JADEPlugin for the JADE algorithm (see the ChangeLog or header
00365   file for details)
00366 - added SISConeSphericalPlugin [enabled by default] for SISCone in
00367   e+e- and other spherical environments.
00368 - native implementation of generalised kt algorithm for e+e- (ee_genkt_algorithm)
00369   [also provides access to e+e- form of anti-kt alg, conical jets on a sphere]
00370 - added JadePlugin for the e+e- Jade algorithm
00371 
00372 Meta-algorithms
00373 ----------------
00374 
00375 - added NestedDefs plugin for daisy-chaining multiple jet definitions
00376   [still under testing; API may change in the future]
00377 
00378 New functionality
00379 -----------------
00380 - added subjet functions for viewing jet at particular dcut, etc.
00381 - added access to exclusive jets based on ycut as well as dcut (for e+e-)
00382 - added support for asymmetric rapidity ranges in GhostedAreaSpec
00383 - added support for a CircularRange (derived from RangeDefinition) for
00384   use in background estimation
00385 - added class NNH to help users implement algorithms with
00386   user-chosen distance measure (see JadePlugin for an example)
00387 
00388 Interface modifications
00389 -----------------------
00390 - removed default value of 0.5 for overlap_threshold in
00391   CDFMidPointPlugin, CDFJetCluPlugin and SISConePlugin constructors
00392 
00393   *** may break backwards compatibility ***
00394 
00395 - a JetDefinition(jet_alg) constructor, without an R value, is no
00396   longer legal, except when jet_alg is ee_kt_algorithm (it has no R).
00397 
00398   *** may break backwards compatibility ***
00399 
00400 - in SISCone, new way of accessing the information about pass at which
00401   a jet was found (old method retained for 2.4, but now deprecated)
00402 
00403 
00404 Configure modifications
00405 -----------------------
00406 - added --enable-allplugins and --enable-allcxxplugins options, to
00407   avoid having to specify a long list of individual plugins
00408 - shared libraries are now enabled by default
00409 
00410 Bugs fixed
00411 ----------
00412 - fixed missing support for periodicity in azimuth in RangeDefinition
00413   class
00414 
00415 Other modifications
00416 -----------------------
00417 - added support for CGAL 3.4 (for non-standard locations, specify
00418   --with-cgaldir at configure time)
00419 - removed restriction that fastjet throws exception on empty events
00420 - added an example that illustrates the use of subjet techniques for
00421   a boosted Higgs->b+bbar search
00422 
00423 Still to come
00424 -------------
00425 - add CMSIterativeCone Plugin
00426 
00427 
00428 
00429 =======================================================================
00430 Summary of changes from v2.3.3 -> v2.3.4 (bug fix release): 15 Aug 2008
00431 ==========================================================
00432 
00433 - fixed infinite-loop bug in JetClu plugin on certain rare events
00434 
00435 - fixed compatibility issues of certain example programs with g++-4.3
00436 
00437 - incorporated SISCone 1.3.3 with similar g++-4.3 fixes
00438 
00439 =======================================================================
00440 Summary of changes from v2.3.2 -> v2.3.3 (bug fix release): 28 Apr 2008
00441 ==========================================================
00442 
00443 - fixed missing installation of .../config_auto.h
00444 
00445 - fixed missing typename in .../SearchTree.hh
00446 
00447 =======================================================================
00448 Summary of changes from v2.3.1 -> v2.3.2 (bug fix release): 03 Apr 2008
00449 ==========================================================
00450 
00451 - fixes to propagation of CXXFLAGS through the build chain
00452 
00453 - small change in Voronoi area code to fix crashes on regular
00454   (calorimeter) layouts of momenta
00455 
00456 - small change in active areas code to fix crashes on algorithms that
00457   do not cluster all particles
00458 
00459 - eliminated "using namespace std" that had accidentally been left in
00460   certain area header files
00461 
00462 - incorporation of SISCone 1.3.2 with fixes for inappropriate public
00463   symbols and to build framework
00464 
00465 
00466 ======================================================================
00467 Summary of changes from v2.3.0 -> v2.3.1 (bug fix release)
00468 ==========================================================
00469 
00470 - Fixed compilation issues under windows VC7.1 (reported by
00471   I. Belyaev); also included SISCone 1.3.1 with similar fixes.
00472 
00473 - Fixed speed issue under optimized compilation of CDF MidPoint plugin
00474   for 32 bit architectures that had arisen subsequent to the switch to
00475   autotools with its common optimization settings.
00476 
00477 - Fixed "make check" failure with the --disable-siscone option.
00478 
00479 - Fixed crash in exclusive_dmerge(njets) for njets=0 (reported by P. Lenzi)
00480 
00481 
00482 ======================================================================
00483 Summary of changes from v2.1.0 (previous stable release) to v2.3.0
00484 ===================================
00485 
00486 - added the anti-kt algorithm (LPTHE-07-03), which is a sequential
00487   recombination algorithm that gives conical jets.
00488 
00489 - Added Passive and Voronoi areas, and new common class for accessing
00490   all types of areas, ClusterSequenceArea.
00491 
00492 - switched to autotools for compilation and installation:
00493      ./configure --prefix=... 
00494      make
00495      make check      [optional]
00496      make install
00497 
00498   NB: users should no longer include fastjet-2.x.y/Makefile
00499   when building their own programs, and instead should use
00500     g++ -c file.cc `fastjet-config --cxxflags`
00501     g++ file.o `fastjet-config --libs --plugins` 
00502 
00503 - plugin include files are now to be accessed with fastjet/ in 
00504   front of them, i.e.
00505     #include "fastjet/SISConePlugin.hh"
00506   A simple #include "SISConePlugin.hh" is now obsolete but will
00507   continue to work through 2.x
00508 
00509 - Added RangeDefinition class to provide more flexibility in UE/pileup
00510   estimation.
00511 
00512 - New facilities for navigating the cluster sequence (has_parents,
00513   has_child and has_partner members of ClusterSequence)
00514 
00515 - other bug fixes and small enhancements (including SISCone-1.3.0,
00516   improvements to plugin facilities).
00517 
00518 See individual beta-releases below for more information, as well as
00519 the ChangeLog.
00520 
00521 
00522 ======================================================================
00523 Changes from v2.2beta0 to v2.3-beta0
00524 ===================================
00525 
00526 - switched to autotools for compilation and installation;
00527 
00528 - old build procedure still available for now, with files called
00529   makefile.static  (make -f makefile.static); 
00530 
00531   test-script.sh has been renamed test-static.sh and builds and 
00532   tests using the old procedure.
00533 
00534 - plugins include files are now to be accessed with fastjet/ in 
00535   front of them, i.e.
00536   #include "fastjet/SISConePlugin.hh"
00537 
00538   For backwards compatibility, the old access method will continue
00539   to work throughout v2.x, i.e.
00540   #include "SISConePlugin.hh"
00541 
00542 - added PseudoJet::reset(...) functions to reset the contents of a
00543   PseudoJet.
00544 
00545 - added fastjet_version_string()
00546 
00547 - added a function PtYPhiM(...) that returns a PseudoJet with the
00548   given py, rapidity , phi and mass.  Defined in PseudoJet.hh
00549 
00550 - added a directory fortran_wrapper/ to illustrate how to access
00551   fastjet from fortran
00552 
00553 - some small bug fixes in the CDF midpoint code
00554 
00555 
00556 ======================================================================
00557 Changes from v2.1.0 to v2.2beta0
00558 ===============================
00559 
00560 - added the anti-kt algorithm (LPTHE-07-03)
00561 
00562 - Provided  a new common class for accessing all different types of  
00563   areas: ClusterSequenceArea.
00564 
00565 - added functionality for Passive areas and Voronoi areas. 
00566   Areas are now defined much in the same way as jets, via an 
00567   AreaDefinition, which is passed as an argument
00568   to ClusterSequenceArea. NB: the Voronoi area uses Fortune's
00569   sweepline code for calculating the Voronoi diagram and so does not
00570   require CGAL to be installed (it still is needed for NlnN kt
00571   clustering). 
00572 
00573 - Added class RangeDefinition which allows detailed definitions
00574   of the rapidity-azimuth ranges over which to study jet areas
00575   and possibly perform noise subtraction
00576 
00577 - added facilities for navigating the cluster sequence (has_parents,
00578   has_child and has_partner members of ClusterSequence)
00579 
00580 - changed plugin base class, so that it now includes R() virtual
00581   member, and modified the various plugins to account for this.
00582 
00583 - modified the plugin interface to provide facilities to help with
00584   passive areas.
00585 
00586 - included SISCone-1.2.0 rather than 1.1.1.
00587 
00588 - adapted SISCone plugin to the 1.2.0 release of SISCone -- main
00589   changes are facilities and improvements related areas: some speed
00590   improvements on the split-merge (relevant for active areas) and a
00591   fairly efficient way of running passive areas.
00592 
00593 - added ClusterSequence::print_jets_for_root(...) and a corresponding root
00594   script (example/root/jet-plots.C), so as to provide a crude
00595   visualisation tool.
00596 
00597 
00598 ======================================================================
00599 Summary of main changes from v2.0.0 to v2.1.0
00600 =============================================
00601 
00602 - added plugin structure for external jet finders.
00603 
00604 - included plugins for SISCone, CDFMidPoint, CDFJetClu, PxCone (with
00605   extensions for MidPoint and bug fixes for PxCone relative to public
00606   codes).
00607 
00608 - introduced option of control over recombination scheme, with a
00609   RecombinationScheme enum, which applies also to area_4vector.
00610 
00611 - added description() member function to JetDefinition class, so 
00612   that you can get a (string) summary of what you're running!
00613 
00614 - changed the default number of repeats in ActiveAreaSpec to 1 (which
00615   is sufficient for most purposes).
00616 
00617 For further details, see the changes listed in detail below.
00618 
00619 ======================================================================
00620 Changes from v2.1.0b4 to v2.1.0
00621 ===============================
00622 
00623 - corrected bug in test-script.sh
00624 
00625 - removed PxCone from default tests and from 
00626   plugins/usage_examples/many_algs_example.cc (to avoid fortran
00627   compilation issues).
00628 
00629 ======================================================================
00630 Changes from v2.1.0b3 to v2.1.0b4
00631 =================================
00632 
00633 FastJet modifications
00634 ---------------------
00635 
00636 - default number of repeats for the active area specification has been
00637   changed from 5 to 1 (the latter goes fast, but note that it provides
00638   a zero error estimate for the area).
00639 
00640 Plugin modifications
00641 --------------------
00642 
00643 - adapted plugin to accomodate new scale for use in the SISCone
00644   split-merge (pttilde), with a corresponding change of interface.
00645 
00646   Changed default number of passes for SISCone to 0.
00647   
00648 - Added the pttilde scale choice to the CDF plugin.
00649 
00650 
00651 
00652 ======================================================================
00653 Changes from v2.1.0b2 to v2.1.0b3
00654 =================================
00655 
00656 FastJet enhancements
00657 --------------------
00658 
00659 - methods for estimating the underlying now have the option of using
00660   area_4vector rather than the plain area
00661 
00662 FastJet bug fixes
00663 -----------------
00664 
00665 - area_4vector is now calculated with the same recombination scheme as
00666   the jets themselves
00667 
00668 - massless recombination schemes now work correctly on particles with
00669   zero momentum
00670 
00671 - PseudoJet::phi_std() returned wrong result for phi < pi -- thanks to
00672   Oscar Stal for pointing this out.
00673 
00674 Plugin modifications
00675 --------------------
00676 
00677 - the plugin mechanism now allows a plugin to add "extra" information
00678   to the ClusterSequence, essentially by providing an auto_ptr to a
00679   class derived from (the new) ClusterSequence::Extras; an example of
00680   this has been implemented with siscone (SISConeExtras) which allows
00681   a user to access the initial (stable) protocones.
00682 
00683 - included new siscone version (1.1) which uses transverse mass (mt) rather
00684   than pt in the split-merge procedure, to address an IR problem in
00685   events where the hadronic part conserves momentum -- this can have
00686   an effect on some physical distributions; the siscone update also
00687   addresses issues with collinear safety and co-circular points.
00688 
00689 - included bug fixes to pxcone regarding 2pi periodicity when
00690   recombining momenta
00691 
00692 - modified the version of the CDF midpoint cone code so as to allow it
00693   to use mt and Et as the parameters in the split--merge step.
00694 
00695 ======================================================================
00696 Changes from v2.1.0b1 to v2.1.0b2
00697 =================================
00698 
00699 Bug fixes
00700 ---------
00701 
00702 - included new siscone version which solves the memory-leak problem
00703 
00704 Other changes
00705 -------------
00706 
00707 - added sample output from the test-script as test-script-output-orig.txt
00708 
00709 ======================================================================
00710 Changes from v2.1.0b0 to v2.1.0b1
00711 =========================
00712 
00713 New features:
00714 -------------
00715 
00716 - added the SISCone plugin and the beta version of the siscone code
00717   (authored by Soyez & Salam)
00718 
00719 Bug fixes
00720 ---------
00721 
00722 - removed extraneous semicolons after functions that were causing
00723   problems on some compilers.
00724 
00725 Other additions
00726 ---------------
00727 
00728 - Added COPYING file with GPL license
00729 
00730 ======================================================================
00731 Changes from v2.0 to v2.1 (beta0)
00732 =========================
00733 
00734 New features:
00735 -------------
00736 
00737 - introduced option of control over recombination scheme, with a
00738   RecombinationScheme enum (a variable of this type should be provided
00739   to the JetDefinition constructor) and also the possibility of an
00740   externally defined recombination scheme.
00741 
00742 - introduced a "plugin" facility for alternative jet finders, via an
00743   abstract base class
00744  
00745     class JetDefinition::Plugin
00746 
00747   Plugins are to be provided as classes derived from this,
00748   implementing the relevant virtual functions (see manual and examples
00749   for further info).
00750 
00751 - introduced "description" member function for the JetDefinition
00752   class, which returns a (std::string) textual description of the
00753   algorithm defined.
00754 
00755 - provided plugins for CDF JetClu, CDF Midpoint, PxCone code; the
00756   plugins, the code they interface to and example programs are to be
00757   found in the new plugins/ directory.
00758 
00759 - added ClusterSequence::unclustered_particles() a vector containing
00760   the unclustered particles (relevant for some plugin algorithms).
00761 
00762 Minor additions
00763 ---------------
00764 
00765 - introduced PseudoJet::squared_distance (does same as "plain_distance")
00766 
00767 
00768 
00769 Notational changes:
00770 -------------------
00771 
00772 - in the documentation, replaced eta -> y, to make it clear that it's
00773   rapidity and not pseudorapidity that is being used throughout. Some
00774   internal code continues to use variables called "eta" -- but these
00775   are actually proper rapidity.
00776 
00777 
00778 ======================================================================
00779 Changes from v1.0 to v2.0
00780 =========================
00781 
00782 New features:
00783 -------------
00784 
00785 - the longitudinally invariant inclusive Cambridge/Aachen jet finder
00786   has been added.
00787 
00788   Note that the exclusive jets extraction for the Cambridge jet-finder
00789   does not provide the definition as given in the original Cambridge
00790   paper. See the documentation for further details
00791 
00792 - classes have been introduced for running jet clustering and
00793   simultaneously collecting information about the area of each jet. 
00794   The base class specifying the functionality is
00795    
00796     class ClusterSequenceWithArea;
00797 
00798   itself derived from ClusterSequence.
00799 
00800   Two derived classes that provide the actual areas functionality are:
00801 
00802     class ClusterSequenceActiveArea;
00803     class ClusterSequenceActiveAreaExplicitGhosts;
00804 
00805   To construct them, one also needs to specify how one wishes the area
00806   to be calculated, via a class
00807 
00808     class ActiveAreaSpec;
00809 
00810 
00811 New optimizations:
00812 ------------------
00813 - new clustering strategies have been added:
00814   
00815   
00816     N2MinHeapTiled : like N2Tiled, except that the non-geometric
00817                      part has been replaced with a N ln N algorithm
00818                      (overall the strategy still scales as N^2, but with a
00819                      smaller coefficient)
00820 
00821     NlnNCam, NlnNCam2pi2R, NlnNCam4pi:
00822 
00823                      NlnN strategies specific to the Cambridge/Aachen
00824                      jet-finder -- the fastest of them is NlnNCam.
00825                      Depending on the size of the event and of the CPU
00826                      cache it may be up to 2.5 times faster than the
00827                      CGAL-based NlnN strategy. Experiment on your own
00828                      hardware and events to establish whether the
00829                      speed gain is significant.
00830 
00831                      These strategies are based on the work on dynamic
00832                      Closest Pair problems by Timothy Chan.
00833 
00834     Best           : (was present before) now attempts to select best 
00835                      among N2Plain, N2Tiled, N2MinHeapTiled, NlnN. 
00836 
00837                      As the best option for a given N may depend on R
00838                      and the event structure, you are advised to
00839                      experiment with individual strategies if the
00840                      last few tens of percent in speed are critical.
00841                      
00842 
00843 
00844 Updates to user interface
00845 -------------------------
00846 
00847 While the v1 interface to fastjet has been maintained for backwards
00848 compatibility, for new developments in v2 and related forthcoming
00849 work, a new interface is provided as follows:
00850 
00851 - User accessible classes and enums have had the "Fj" prefix removed
00852   and are instead now in namespace fastjet; the corresponding include
00853   files are in the include/fastjet directory. So, for example instead
00854   of
00855 
00856     #include "FjClusterSequence.hh"
00857     //...
00858     FjClusterSequence clust_seq(...)
00859 
00860   one now uses the following
00861 
00862     #include "fastjet/ClusterSequence.hh"
00863     //...
00864     fastjet::ClusterSequence clust_seq(...)
00865 
00866   If typing "fastjet::" the whole time seems too long-winded, you can
00867   abbreviate "fastjet" as "fj" with
00868 
00869     namespace fj = fastjet;
00870 
00871   or eliminate the need for it altogether with
00872 
00873     using namespace fastjet;
00874   
00875 - a new class, fastjet::JetDefinition, has been introduced for holding
00876   the details of the jet finder (which one, value of R, etc...) that
00877   is to be used in a given clustering.
00878 
00879     #include "fastjet/JetDefinition.hh"
00880     #include "fastjet/ClusterSequence.hh"
00881     //...
00882 
00883     double R = 0.7;
00884 
00885     // define jet algorithm
00886     fastjet::JetDefinition jet_def(fastjet::kt_algorithm, R);
00887 
00888     // get the cluster sequence for a vector of 4-momenta and the 
00889     // given jet definition
00890     fastjet::ClusterSequence clust_seq(momenta, jet_def);
00891 
00892 - some errors that previously were assertions now throw an
00893   fastjet::Error -- exception. A fully uniform handling of exceptions
00894   is currently some way away however and users for whom this is an
00895   important issue should contact the authors.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends