FastJet  3.1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
EECambridgePlugin.hh
1 #ifndef __EECAMBRIDGEPLUGIN_HH__
2 #define __EECAMBRIDGEPLUGIN_HH__
3 
4 //FJSTARTHEADER
5 // $Id: EECambridgePlugin.hh 3433 2014-07-23 08:17:03Z salam $
6 //
7 // Copyright (c) 2005-2014, 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 
37 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
38 
39 // forward declaration to reduce includes
40 class 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();
60 public:
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 
90 private:
91  double _ycut;
92 };
93 
94 FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh
95 
96 #endif // __EECAMBRIDGEPLUGIN_HH__
97 
deals with clustering
virtual bool exclusive_sequence_meaningful() const
avoid the warning whenever the user requests "exclusive" jets from the cluster sequence ...
EECambridgePlugin(double ycut_in)
Main constructor for the EECambridge Plugin class.
Implementation of the e+e- Cambridge algorithm (plugin for fastjet v2.4 upwards)
EECambridgePlugin(const EECambridgePlugin &plugin)
copy constructor
virtual double R() const
the plugin mechanism's standard way of accessing the jet radius.
a class that allows a user to introduce their own "plugin" jet finder
virtual bool is_spherical() const
returns true because this plugin is intended for spherical geometries (i.e.