HepJet
HepJet will be a general jet-finding package implementing a range of jet algorithms, starting with the Kt algorithm as implemented in KtJet and FastJet, as well as ConeJet.
Algorithms
We will want to implement:
- Kt algorithm including fast implementations where possible. FastJet provides N2 performance or N ln N when linked with CGAL. The N2 algorithms can probably be generalized to other distance schemes, but N ln N can only be used for the delta-R scheme.
- Cone algorithm(s): Will Plano has already implemented the pxcone algorithm in C++ and is integrating it with KtJet. We should probably support a range of sensible variants of the cone algorithm.
- Cambridge, Aachen etc.
There may need to be at least three different approaches implemented for the sequential combination algorithms:
- for the most general case where an arbitrary distance scheme is used, one of the methods in Eppstein's papers (see below) can be used to give better than N3 performance
- for factorisable distance measures (of a form something like min(E2i,E2j) R2) we can rewrite the problem as one where one has to keep track of geometrical nearest neighbours, allowing us to use the nearest neighbour heuristic on the geometrical distance, giving N2 performance
- for special cases the Voronoi method can be used to give N ln N
For cone-type algorithms we need to see how fast Will's code is and whether we need to use some kind of tiling to improve performance at the midpoint stage. Some choices will need to be made about which cone algorithms to include. Various possibilities are
- all variants of the cone algorithm that have been widely used, so that HepJet can for example be used in JetWeb for tuning to all existing data
- just the infrared safe variants of the cone algorithm, since only these allow one to make sensible comparisons to theory
- all variants, but in such a way that the infrared safe ones are easily accessible, while the unsafe ones require the user to make some extra effort to access them
- Note: PXCONE's treatment of overlapping jets may not be quite the same as that advocated in hep-ex/0005012; we should be aware of this and possibly implement both.
Useful physics references:
- New and Old Jet Clustering Algorithms for Electron-Positron Events
- Run II Jet Physics (hep-ex/0005012)
- Jet clustering in particle physics (draft by Gavin and Matteo)
Useful computer science references:
- Fast Hierarchical Clustering and Other Applications of Dynamic Closest Pairs. See also source code at David Eppstein's web site. Useful for general distance measures.
Interface
There are a few differences between the interfaces used in KtJet and FastJet. Before we get into real code development on HepJet we need to think more about this.
A good interface would be simple to use but allow us to use efficient implementations where available. For example the distance scheme interface in KtJet is hard to generalise to algorithms faster than the naive N3 one. We would also like to be able to access information on e.g. jet areas, and implement schemes that depend on e.g. the flavour of constituents.
Starting Points
- TracGuide Built-in Documentation
- The Trac project Trac Open Source Project
- Trac FAQ Frequently Asked Questions
- TracSupport Trac Support
For a complete list of local wiki pages, see TitleIndex.
Trac is brought to you by Edgewall Software, providing professional Linux and software development services to clients worldwide. Visit http://www.edgewall.com/ for more information.