FastJet 3.4.1
EECambridgePlugin.hh
1#ifndef __EECAMBRIDGEPLUGIN_HH__
2#define __EECAMBRIDGEPLUGIN_HH__
3
4//FJSTARTHEADER
5// $Id$
6//
7// Copyright (c) 2005-2023, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
8//
9//----------------------------------------------------------------------
10// This file is part of FastJet.
11//
12// FastJet is free software; you can redistribute it and/or modify
13// it under the terms of the GNU General Public License as published by
14// the Free Software Foundation; either version 2 of the License, or
15// (at your option) any later version.
16//
17// The algorithms that underlie FastJet have required considerable
18// development. They are described in the original FastJet paper,
19// hep-ph/0512210 and in the manual, arXiv:1111.6097. If you use
20// FastJet as part of work towards a scientific publication, please
21// quote the version you use and include a citation to the manual and
22// optionally also to hep-ph/0512210.
23//
24// FastJet is distributed in the hope that it will be useful,
25// but WITHOUT ANY WARRANTY; without even the implied warranty of
26// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27// GNU General Public License for more details.
28//
29// You should have received a copy of the GNU General Public License
30// along with FastJet. If not, see <http://www.gnu.org/licenses/>.
31//----------------------------------------------------------------------
32//FJENDHEADER
33
34
35#include "fastjet/JetDefinition.hh"
36
37FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
38
39// forward declaration to reduce includes
40class ClusterSequence;
41
42//----------------------------------------------------------------------
43//
44/// @ingroup plugins
45/// \class EECambridgePlugin
46/// Implementation of the e+e- Cambridge algorithm (plugin for fastjet v2.4 upwards)
47///
48/// EECambridgePlugin is a plugin for fastjet (v2.4 upwards)
49/// It implements the Cambridge algorithm, as defined in
50///
51/// Better jet clustering algorithms
52/// Yuri Dokshitzer, Garth Leder, Stefano Moretti, Bryan Webber
53/// JHEP 9708 (1997) 001
54/// http://www-spires.slac.stanford.edu/spires/find/hep/www?rawcmd=FIND+j+JHEPA%2C9708%2C001
55///
56/// On construction one must supply a ycut value.
57///
58/// To get the jets at the end call ClusterSequence::inclusive_jets();
60public:
61 /// Main constructor for the EECambridge Plugin class.
62 /// It takes the dimensionless parameter ycut (the Q value for normalisation
63 /// of the kt-distances is taken from the sum of all particle energies).
64 EECambridgePlugin (double ycut_in) : _ycut(ycut_in) {}
65
66 /// copy constructor
68 *this = plugin;
69 }
70
71 // the things that are required by base class
72 virtual std::string description () const;
73 virtual void run_clustering(ClusterSequence &) const;
74
75 double ycut() const {return _ycut;}
76
77 /// the plugin mechanism's standard way of accessing the jet radius.
78 /// This must be set to return something sensible, even if R
79 /// does not make sense for this algorithm!
80 virtual double R() const {return 1.0;}
81
82 /// avoid the warning whenever the user requests "exclusive" jets
83 /// from the cluster sequence
84 virtual bool exclusive_sequence_meaningful() const {return true;}
85
86 /// returns true because this plugin is intended for spherical
87 /// geometries (i.e. it's an e+e- algorithm).
88 virtual bool is_spherical() const {return true;}
89
90private:
91 double _ycut;
92};
93
94FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh
95
96#endif // __EECAMBRIDGEPLUGIN_HH__
97
deals with clustering
Implementation of the e+e- Cambridge algorithm (plugin for fastjet v2.4 upwards)
virtual double R() const
the plugin mechanism's standard way of accessing the jet radius.
EECambridgePlugin(const EECambridgePlugin &plugin)
copy constructor
EECambridgePlugin(double ycut_in)
Main constructor for the EECambridge Plugin class.
virtual bool is_spherical() const
returns true because this plugin is intended for spherical geometries (i.e.
virtual bool exclusive_sequence_meaningful() const
avoid the warning whenever the user requests "exclusive" jets from the cluster sequence
a class that allows a user to introduce their own "plugin" jet finder