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