FCCAnalyses
Loading...
Searching...
No Matches
ValenciaPlugin.h
Go to the documentation of this file.
1// $Id: ValenciaPlugin.hh 771 2015-02-21 16:40:07Z vos $
2//
3// Copyright (c) 2014, Marcel Vos and Ignacio Garcia
4//
5//----------------------------------------------------------------------
6// This file is part of FastJet contrib.
7//
8// It is free software; you can redistribute it and/or modify it under
9// the terms of the GNU General Public License as published by the
10// Free Software Foundation; either version 2 of the License, or (at
11// your option) any later version.
12//
13// It is distributed in the hope that it will be useful, but WITHOUT
14// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16// License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this code. If not, see <http://www.gnu.org/licenses/>.
20//----------------------------------------------------------------------
21
22#ifndef FastJet_ValenciaPlugin_h
23#define FastJet_ValenciaPlugin_h
24
25#include <fastjet/internal/base.hh>
26#include "fastjet/JetDefinition.hh"
27#include "fastjet/ClusterSequence.hh"
28FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
29
30 namespace contrib {
31 //----------------------------------------------------------------------
32 //
40 class ValenciaPlugin : public JetDefinition::Plugin {
41 public:
49 ValenciaPlugin(double R, double beta, double gamma) : _R(R), _beta(beta), _gamma(gamma) {}
50
54 ValenciaPlugin(double R, double beta) : _R(R), _beta(beta), _gamma(beta) {}
55
57 ValenciaPlugin(const ValenciaPlugin &plugin) { *this = plugin; }
58
59 // the things that are required by base class
60 virtual std::string description() const;
61 virtual void run_clustering(ClusterSequence &) const;
62
66 virtual double R() const { return _R; }
67
68 // the Valencia algorithm has a second parameter beta that governs
69 // the exponent of the energy in the inter-particle and beam distance
70 // criteria, and thus determines the clustering order
71 virtual double beta() const { return _beta; }
72
73 // the Valencia algorithm has a third parameter gamma that governs
74 // the exponent of the sin(theta) in the beam distance
75 // and thus the shrinking of the jet size in the forward region
76 virtual double gamma() const { return _gamma; }
77
80 virtual bool exclusive_sequence_meaningful() const { return true; }
81
82 private:
83 double _R;
84 double _beta;
85 double _gamma;
86 };
87
88} // namespace contrib
89
90FASTJET_END_NAMESPACE
91
92#endif // __FASTJET_CONTRIB_VALENCIAJETALGORITHM_HH__
ValenciaPlugin is a plugin for fastjet (v2.4 upwards)
Definition ValenciaPlugin.h:40
double _beta
Definition ValenciaPlugin.h:84
ValenciaPlugin(double R, double beta)
Constructor for the Valencia Plugin class.
Definition ValenciaPlugin.h:54
virtual void run_clustering(ClusterSequence &) const
Definition ValenciaPlugin.cc:103
virtual bool exclusive_sequence_meaningful() const
avoid the warning whenever the user requests "exclusive" jets from the cluster sequence
Definition ValenciaPlugin.h:80
ValenciaPlugin(double R, double beta, double gamma)
Constructor for the Valencia Plugin class.
Definition ValenciaPlugin.h:49
virtual double R() const
the plugin mechanism's standard way of accessing the jet radius.
Definition ValenciaPlugin.h:66
ValenciaPlugin(const ValenciaPlugin &plugin)
copy constructor
Definition ValenciaPlugin.h:57
virtual double beta() const
Definition ValenciaPlugin.h:71
double _gamma
Definition ValenciaPlugin.h:85
virtual std::string description() const
Definition ValenciaPlugin.cc:97
virtual double gamma() const
Definition ValenciaPlugin.h:76
double _R
Definition ValenciaPlugin.h:83
Definition ValenciaPlugin.cc:31