====================================================================== THIS CONTRIB IS DEPRECATED. PLEASE USE THE SoftDrop CLASS IN RecursiveTools INSTEAD ====================================================================== Contrib implementing the SoftDrop declustering introduced by Andrew Larkoski, Simone Marzani, Gregory Soyez, and Jesse Thaler in arXiv:YYMM.NNNN. The method proceeds as follows: 0. recluster the jet with the Cambridge/Aachen algorithm 1. undo the last step of the clustering step j -> j1 + j2. 2. if the two following conditions are satisfied (i) there is a soft frop, i.e. \f${\rm min}(p_{tj1},p_{tj2})/(p_{tj1},p_{tj2}) > z_{/rm cut} (\Delta R_{j1,j2}/R_0)^\beta\f$, (ii) there is a mass drop, i.e. \f$m_{j1}/m_{j} < \mu\f$ keep j as the result of the tagger (with j1 and j2 its 2 subjets) In the above conditions, zcut, beta and mu are parameters of the tagger and R0 is the radius parameter of the original jet. 3. otherwise, redefine j to be equal to the largest-mt of j1 and j2 and return to step 1. ---------------------------------------------------------------------- Options ---------------------------------------------------------------------- The constructor has the following arguments: - The first argument is the angular exponent beta - The second argument is the soft-drop cut (zcut) [0.1 by default] - The third argument is the minimal mass drop that is required (mu) [1 by default] Note that the arguments are in an opposite order as the MassDropTagger. This allows to keep mu=1 as a default. ---------------------------------------------------------------------- Input conditions ---------------------------------------------------------------------- - the original jet must have constituents - the current version requires the jet to have an associated ClusterSequence. Note that for future versions we intend to also support more generic jets [e.g. CompositeJets]. [Note for developpers: in practice, this means being a bit more careful with the reculstering + allowing the user to specify R0 explicitly] ---------------------------------------------------------------------- Output/structure ---------------------------------------------------------------------- - the 2 subjets are kept as pieces if some substructure is found, otherwise a single 0-momentum piece is returned - the 'mu' and 'z/(\Delta R_{j1,j2}/R_0)^\beta' values corresponding to the unclustering step that passed the tagger's cuts ---------------------------------------------------------------------- Open question(s) [for developpers]: ---------------------------------------------------------------------- - Q: R0 can be undefined in some cases [e.g. if the input jet is a composite jet]? A: In a future version, support more generic inputs. For these cases, add a 2nd ctor where one specifies R0. - Q: do we have a set_subtractor for interaction with PU subtraction? A: Yes [to be implemented!]