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