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