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