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