Fork me on GitHub

source: git/external/fastjet/contribs/RecursiveTools/SoftDrop.cc@ 7b0e00c

Last change on this file since 7b0e00c was 1f1f858, checked in by Michele Selvaggi <michele.selvaggi@…>, 10 years ago

added RecursiveTools package from fastjet contribs

  • Property mode set to 100644
File size: 2.7 KB
RevLine 
[1f1f858]1// $Id: SoftDrop.cc 686 2014-06-14 03:25:09Z jthaler $
2//
3// Copyright (c) 2014-, Gregory Soyez, Jesse. Thaler
4// based on arXiv:1402.2657 by Andrew J. Larkoski, Simone Marzani,
5// Gregory Soyez, Jesse Thaler
6//
7//----------------------------------------------------------------------
8// This file is part of FastJet contrib.
9//
10// It is free software; you can redistribute it and/or modify it under
11// the terms of the GNU General Public License as published by the
12// Free Software Foundation; either version 2 of the License, or (at
13// your option) any later version.
14//
15// It is distributed in the hope that it will be useful, but WITHOUT
16// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
18// License for more details.
19//
20// You should have received a copy of the GNU General Public License
21// along with this code. If not, see <http://www.gnu.org/licenses/>.
22//----------------------------------------------------------------------
23
24#include "SoftDrop.hh"
25#include <cmath>
26#include <sstream>
27
28using namespace std;
29
30FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
31
32namespace contrib{
33
34//----------------------------------------------------------------------
35// TODO:
36//
37// - implement reclustering (at the moment we assume it's C/A as for mMDT
38//
39// - what is returned if no substructure is found? [and for negativeve
40// pt, m2 or other situations where mMDT currentlty returns an empty
41// PseudoJet]
42//
43// GS.: mMDT seeks substructure so it makes sense for it to return
44// an empry PseudoJet when no substructure is found (+ it is the
45// original behaviour). For SoftDrop, in grooming mode (beta>0), if
46// would make sense to return a jet with a single particle. In
47// tagging mode (beta<0), the situation is less clear. At the level
48// of the implementation, having a virtual function could work
49// (with a bit of care to cover the -ve pt or m2 cases)
50//
51// - Do we include Andrew and Simone in the "contrib-author" list
52// since they are on the paper? Do we include Gavin in the author's
53// list since he started this contrib?
54//
55//----------------------------------------------------------------------
56
57//----------------------------------------------------------------------
58double SoftDrop::symmetry_cut_fn(const PseudoJet & p1,
59 const PseudoJet & p2) const{
60 return _symmetry_cut * pow(p1.squared_distance(p2)/_R0sqr, 0.5*_beta);
61}
62
63//----------------------------------------------------------------------
64string SoftDrop::symmetry_cut_description() const {
65 ostringstream ostr;
66 ostr << _symmetry_cut << " (theta/" << sqrt(_R0sqr) << ")^" << _beta << " [SoftDrop]";
67 return ostr.str();
68}
69
70} // namespace contrib
71
72FASTJET_END_NAMESPACE
Note: See TracBrowser for help on using the repository browser.