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