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