Changeset 10e33bc in git for external/fastjet/internal/LazyTiling9Alt.hh
- Timestamp:
- Jun 26, 2015, 9:03:11 PM (9 years ago)
- Branches:
- ImprovedOutputFile, Timing, dual_readout, llp, master
- Children:
- 1bc87da
- Parents:
- 8497ac6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
external/fastjet/internal/LazyTiling9Alt.hh
r8497ac6 r10e33bc 3 3 4 4 //FJSTARTHEADER 5 // $Id: LazyTiling9Alt.hh 3 477 2014-07-29 14:34:39Z salam$5 // $Id: LazyTiling9Alt.hh 3808 2015-02-20 11:24:53Z soyez $ 6 6 // 7 7 // Copyright (c) 2005-2014, Matteo Cacciari, Gavin P. Salam and Gregory Soyez … … 37 37 38 38 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh 39 40 /// Rounding errors in the Lazy strategies may cause the following 41 /// problem: when browsing tiles in the vicinity of the particles 42 /// being clustered in order to decide which of these tiles may 43 /// contain particles that need to be updated (because theit NN is one 44 /// of the particles that are currently clustered), we discard tiles 45 /// that are deemed "too far from the cell" by the "max_NN_dist" 46 /// criterion. Because of rounding error, this condition can sometimes 47 /// miss cases where an update is needed. 48 /// 49 /// An example of this happens if a particle '1' is, say, at the lower 50 /// edge of the rapidity of a given tile, with a particle '2' in the 51 /// tile directly on its left at the same rapidity. Assume also that 52 /// max_NN_dist in 2's tile corresponds to the distance between 2 and 53 /// teh tile of 1. If 2 is 1's NN then in case 2 gets clustered, 1's 54 /// NN needs to be updated. However, rounding errors in the 55 /// calculation of the distance between 1 and 2 may result is 56 /// something slightly larger than the max_NN_dist in 2's tile. 57 /// 58 /// This situation corresponds to the bug reported by Jochen Olt on 59 /// February 12 2015 [see issue-tracker/2015-02-infinite-loop], 60 /// causing an infinite loop. 61 /// 62 /// To prevent this, the simplest solution is, when looking at tiles 63 /// to browse for updateds, to add a margin of security close to the 64 /// edges of the cell, i.e. instead of updating only tiles for which 65 /// distance<=max_NN_dist, we will update tiles for which 66 /// distance<=max_NN_dist+tile_edge_security_margin. 67 /// 68 /// Note that this does not need to be done when computing nearest 69 /// neighbours [rounding errors are tolerated there] but it is 70 /// critical when tracking points that have to be updated. 71 const double tile_edge_security_margin=1.0e-7; 39 72 40 73 /// structure analogous to BriefJet, but with the extra information
Note:
See TracChangeset
for help on using the changeset viewer.