FastJet 3.0.3
|
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.