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