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