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