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