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