1 #ifndef __SISCONEBASEPLUGIN_HH__
2 #define __SISCONEBASEPLUGIN_HH__
4 #include "fastjet/JetDefinition.hh"
5 #include "fastjet/ClusterSequence.hh"
13 FASTJET_BEGIN_NAMESPACE
40 class SISConeBasePlugin :
public JetDefinition::Plugin {
44 _use_jet_def_recombiner =
false;
48 SISConeBasePlugin (
const SISConeBasePlugin & plugin) {
53 double cone_radius ()
const {
return _cone_radius ;}
57 double overlap_threshold ()
const {
return _overlap_threshold ;}
61 int n_pass_max ()
const {
return _n_pass_max ;}
69 void set_split_merge_stopping_scale(
double scale) {
70 _split_merge_stopping_scale = scale;}
74 double split_merge_stopping_scale() {
return _split_merge_stopping_scale;}
77 void set_use_jet_def_recombiner(
bool choice) {_use_jet_def_recombiner = choice;}
80 bool use_jet_def_recombiner()
const {
return _use_jet_def_recombiner;}
83 bool caching()
const {
return _caching ;}
86 virtual double R()
const {
return cone_radius();}
92 virtual bool supports_ghosted_passive_areas()
const {
99 virtual void set_ghost_separation_scale(
double scale)
const {
100 _ghost_sep_scale = scale;
103 virtual double ghost_separation_scale()
const {
104 return _ghost_sep_scale;
111 virtual std::string description ()
const =0;
114 virtual void run_clustering(ClusterSequence &)
const = 0;
117 double _cone_radius, _overlap_threshold;
120 double _split_merge_stopping_scale;
121 bool _use_jet_def_recombiner;
123 mutable double _ghost_sep_scale;
127 virtual void reset_stored_plugin()
const =0;
154 const std::vector<PseudoJet> &
stable_cones()
const {
return _protocones;}
157 const std::vector<PseudoJet> &
protocones()
const {
return _protocones;}
166 std::ostringstream ostr;
167 ostr <<
"This SISCone clustering found " << protocones().size()
168 <<
" stable protocones";
178 std::vector<PseudoJet> _protocones;
179 std::vector<int> _pass;
180 double _most_ambiguous_split;
181 const SISConeBasePlugin * _jet_def_plugin;
185 inline SISConeBaseExtras::~SISConeBaseExtras(){}
188 FASTJET_END_NAMESPACE
190 #endif // __SISCONEBASEPLUGIN_HH__