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