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