FastJet
3.5.2
Toggle main menu visibility
Loading...
Searching...
No Matches
plugins
D0RunIICone
fastjet
D0RunIIConePlugin.hh
1
#ifndef __D0RUNIICONEPLUGIN_HH__
2
#define __D0RUNIICONEPLUGIN_HH__
3
4
//FJSTARTHEADER
5
// $Id$
6
//
7
// Copyright (c) 2005-2026, 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
#include "fastjet/JetDefinition.hh"
35
#include "fastjet/internal/thread_safety_helpers.hh"
// helpers to write transparent code w&wo C++11 features
36
37
// questionable whether this should be in fastjet namespace or not...
38
39
FASTJET_BEGIN_NAMESPACE
// defined in fastjet/internal/base.hh
40
41
//----------------------------------------------------------------------
42
//
43
/// @ingroup plugins
44
/// \class D0RunIIConePlugin
45
/// Implementation of the D0 Run II Cone (plugin for fastjet v2.1 upwards)
46
///
47
/// D0RunIIConePlugin is a plugin for fastjet (v2.1 upwards) that
48
/// provides an interface to the D0 version of Run-II iterative cone
49
/// algorithm with midpoint seeds (also known as the Iterative Legacy
50
/// Cone Algorithm, ILCA).
51
///
52
/// The D0 code has been taken from Lars Sonnenschein's web-space
53
/// http://www-d0.fnal.gov/~sonne/D0RunIIcone.tgz
54
///
55
/// The version of the D0 Run II code distributed
56
/// here has been modified by the FastJet authors, so as to provide
57
/// access to the contents of the jets (as is necessary for the
58
/// plugin). This does not modify the results of the clustering.
59
//
60
//----------------------------------------------------------------------
61
class
D0RunIIConePlugin
:
public
JetDefinition::Plugin
{
62
public
:
63
64
//
65
/// A D0RunIIConePlugin constructor which sets the "free" parameters of the
66
/// algorithm:
67
///
68
/// - the cone_radius has the usual meaning
69
///
70
/// - the min_jet_Et causes cones to be discarded at if at any
71
/// iteration they have pt < Et_min_ratio * min_jet_Et. Two
72
/// values have been used by D0 for min_jet_Et: 8 GeV in earlier
73
/// Run II publicatinos, 6 GeV in later publications
74
///
75
/// - split_ratio is equivalent to the overlap threshold during the split/merge step.
76
/// Default: 0.5.
77
///
78
/// The remaining parameters of the algorithm are not to be modified if the algorithm
79
/// is to correspond to the one actually used by D0.
80
//
81
D0RunIIConePlugin
(
double
cone_radius_in,
82
double
min_jet_Et_in ,
83
double
split_ratio_in = _DEFAULT_split_ratio) :
84
_cone_radius (cone_radius_in ),
85
_min_jet_Et (min_jet_Et_in ),
86
_split_ratio (split_ratio_in ),
87
_far_ratio (_DEFAULT_far_ratio ),
88
_Et_min_ratio (_DEFAULT_Et_min_ratio ),
89
_kill_duplicate (_DEFAULT_kill_duplicate ),
90
_duplicate_dR (_DEFAULT_duplicate_dR ),
91
_duplicate_dPT (_DEFAULT_duplicate_dPT ),
92
_search_factor (_DEFAULT_search_factor ),
93
_pT_min_leading_protojet(_DEFAULT_pT_min_leading_protojet),
94
_pT_min_second_protojet (_DEFAULT_pT_min_second_protojet ),
95
_merge_max (_DEFAULT_merge_max ),
96
_pT_min_nomerge (_DEFAULT_pT_min_nomerge )
97
{
98
// nothing to be done here!
99
}
100
101
// some functions to return info about parameters
102
inline
double
cone_radius ()
const
{
return
_cone_radius ;}
//= 0.5;
103
inline
double
min_jet_Et ()
const
{
return
_min_jet_Et ;}
//= 8.0;
104
inline
double
split_ratio ()
const
{
return
_split_ratio ;}
//= 0.5;
105
inline
double
far_ratio ()
const
{
return
_far_ratio ;}
// =0.5;
106
inline
double
Et_min_ratio ()
const
{
return
_Et_min_ratio ;}
// =0.5;
107
inline
bool
kill_duplicate ()
const
{
return
_kill_duplicate ;}
// =true;
108
inline
double
duplicate_dR ()
const
{
return
_duplicate_dR ;}
// =0.005;
109
inline
double
duplicate_dPT ()
const
{
return
_duplicate_dPT ;}
// =0.01;
110
inline
double
search_factor ()
const
{
return
_search_factor ;}
// =1.0;
111
inline
double
pT_min_leading_protojet()
const
{
return
_pT_min_leading_protojet;}
// =0.;
112
inline
double
pT_min_second_protojet ()
const
{
return
_pT_min_second_protojet ;}
// =0.;
113
inline
int
merge_max ()
const
{
return
_merge_max ;}
// =10000;
114
inline
double
pT_min_nomerge ()
const
{
return
_pT_min_nomerge ;}
// =0.;
115
116
117
/// access the split_ratio() also by the name overlap_threshold()
118
inline
double
overlap_threshold
()
const
{
return
split_ratio();}
119
120
// the things that are required by base class
121
virtual
std::string description ()
const
;
122
virtual
void
run_clustering(
ClusterSequence
&)
const
;
123
/// the plugin mechanism's standard way of accessing the jet radius
124
virtual
double
R
()
const
{
return
cone_radius();}
125
126
127
private
:
128
129
double
_cone_radius ;
//= 0.5;
130
double
_min_jet_Et ;
//= 8.0;
131
double
_split_ratio ;
//= 0.5; // overlap threshold
132
133
//the parameters below have been found to be set to the values given below
134
//in the original implementation, shouldn't be altered
135
double
_far_ratio ;
// =0.5;
136
double
_Et_min_ratio ;
// =0.5;
137
bool
_kill_duplicate ;
// =true;
138
double
_duplicate_dR ;
// =0.005;
139
double
_duplicate_dPT ;
// =0.01;
140
double
_search_factor ;
// =1.0;
141
double
_pT_min_leading_protojet;
// =0.;
142
double
_pT_min_second_protojet ;
// =0.;
143
int
_merge_max ;
// =10000;
144
double
_pT_min_nomerge ;
// =0.;
145
146
// here are the variables for the default parameters of the D0 Run II Cone algorithm.
147
// They are set in the .cc file
148
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_split_ratio ;
// = 0.5 ; // overlap threshold
149
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_far_ratio ;
// = 0.5 ;
150
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_Et_min_ratio ;
// = 0.5 ;
151
FASTJET_PLUGINS_WINDLL
const
static
bool
_DEFAULT_kill_duplicate ;
// = true ;
152
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_duplicate_dR ;
// = 0.005;
153
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_duplicate_dPT ;
// = 0.01 ;
154
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_search_factor ;
// = 1.0 ;
155
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_pT_min_leading_protojet ;
// = 0. ;
156
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_pT_min_second_protojet ;
// = 0. ;
157
FASTJET_PLUGINS_WINDLL
const
static
int
_DEFAULT_merge_max ;
// = 10000;
158
FASTJET_PLUGINS_WINDLL
const
static
double
_DEFAULT_pT_min_nomerge ;
// = 0. ;
159
160
FASTJET_PLUGINS_WINDLL
static
thread_safety_helpers::FirstTimeTrue
_first_time;
161
162
/// print a banner for reference to the 3rd-party code
163
void
_print_banner(std::ostream *ostr)
const
;
164
};
165
166
FASTJET_END_NAMESPACE
// defined in fastjet/internal/base.hh
167
168
#endif
// __D0RUNIICONEPLUGIN_HH__
fastjet::ClusterSequence
deals with clustering
Definition
ClusterSequence.hh:63
fastjet::D0RunIIConePlugin::overlap_threshold
double overlap_threshold() const
access the split_ratio() also by the name overlap_threshold()
Definition
D0RunIIConePlugin.hh:118
fastjet::D0RunIIConePlugin::D0RunIIConePlugin
D0RunIIConePlugin(double cone_radius_in, double min_jet_Et_in, double split_ratio_in=_DEFAULT_split_ratio)
A D0RunIIConePlugin constructor which sets the "free" parameters of the algorithm:
Definition
D0RunIIConePlugin.hh:81
fastjet::D0RunIIConePlugin::R
virtual double R() const
the plugin mechanism's standard way of accessing the jet radius
Definition
D0RunIIConePlugin.hh:124
fastjet::JetDefinition::Plugin
a class that allows a user to introduce their own "plugin" jet finder
Definition
JetDefinition.hh:567
fastjet::thread_safety_helpers::FirstTimeTrue
provides an object wich will return "true" the first time () is called and false afterwards
Definition
thread_safety_helpers.hh:231
Generated on
for FastJet by
1.18.0