FastJet  3.0.6
CMSIterativeConePlugin.hh
1 //STARTHEADER
2 // $Id: CMSIterativeConePlugin.hh 1508 2009-04-10 22:46:49Z soyez $
3 //
4 // Copyright (c) 2007-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
5 //
6 //----------------------------------------------------------------------
7 // This file is part of FastJet.
8 //
9 // FastJet is free software; you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation; either version 2 of the License, or
12 // (at your option) any later version.
13 //
14 // The algorithms that underlie FastJet have required considerable
15 // development and are described in hep-ph/0512210. If you use
16 // FastJet as part of work towards a scientific publication, please
17 // include a citation to the FastJet paper.
18 //
19 // FastJet is distributed in the hope that it will be useful,
20 // but WITHOUT ANY WARRANTY; without even the implied warranty of
21 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 // GNU General Public License for more details.
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with FastJet. If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------
27 //ENDHEADER
28 
29 #ifndef __CMSITERATIVECONEPLUGIN_HH__
30 #define __CMSITERATIVECONEPLUGIN_HH__
31 
32 #include "fastjet/JetDefinition.hh"
33 
34 // questionable whether this should be in fastjet namespace or not...
35 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
36 
37 // forward declaration to reduce includes
38 class PseudoJet;
39 
40 //----------------------------------------------------------------------
41 //
42 
43 /// @ingroup plugins
44 /// \class CMSIterativeConePlugin
45 /// Implementation of the CMS Iterative Cone (plugin for fastjet v2.4 upwards)
47 public:
48  /// Main constructor for the CMSIterativeCone Plugin class.
49  ///
50  /// The arguments are
51  /// ConeRadius the radius of the cone
52  /// SeedThreshold a threshold for the seeds to iterate from
53  ///
54  /// NOTE: to be more coherent with all other fastjet plugins,
55  /// we've put the radius before the seed threshold.
56  /// CMS does the opposite.
57  /// In this way, we also put a default value of 0 for the
58  /// seed threshold.
59  CMSIterativeConePlugin (double ConeRadius, double SeedThreshold=1.0) :
60  theConeRadius(ConeRadius), theSeedThreshold(SeedThreshold){}
61 
62  /// copy constructor
64  *this = plugin;
65  }
66 
67  // the things that are required by base class
68  virtual std::string description () const;
69  virtual void run_clustering(ClusterSequence &) const;
70 
71  /// the plugin mechanism's standard way of accessing the jet radius
72  /// here we return the R of the last alg in the list
73  virtual double R() const {return theConeRadius;}
74 
75  /// get the seed threshold
76  virtual double seed_threshold() const {return theSeedThreshold;}
77 
78 private:
79  double theConeRadius; ///< cone radius
80  double theSeedThreshold; ///< seed threshold
81 
82  static bool _first_time;
83 
84  /// print a banner for reference to the 3rd-party code
85  void _print_banner(std::ostream *ostr) const;
86 };
87 
88 FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh
89 
90 #endif // __CMSITERATIVECONEPLUGIN_HH__
91 
fastjet::JetDefinition::Plugin
Definition: JetDefinition.hh:431
fastjet::ClusterSequence
Definition: ClusterSequence.hh:59
fastjet::CMSIterativeConePlugin::CMSIterativeConePlugin
CMSIterativeConePlugin(double ConeRadius, double SeedThreshold=1.0)
Main constructor for the CMSIterativeCone Plugin class.
Definition: CMSIterativeConePlugin.hh:59
fastjet::CMSIterativeConePlugin::CMSIterativeConePlugin
CMSIterativeConePlugin(const CMSIterativeConePlugin &plugin)
copy constructor
Definition: CMSIterativeConePlugin.hh:63
fastjet::CMSIterativeConePlugin::R
virtual double R() const
the plugin mechanism's standard way of accessing the jet radius here we return the R of the last alg ...
Definition: CMSIterativeConePlugin.hh:73
fastjet::CMSIterativeConePlugin::seed_threshold
virtual double seed_threshold() const
get the seed threshold
Definition: CMSIterativeConePlugin.hh:76
fastjet::CMSIterativeConePlugin
Definition: CMSIterativeConePlugin.hh:46