1 #ifndef __SISCONEPLUGIN_HH__
2 #define __SISCONEPLUGIN_HH__
4 #include "SISConeBasePlugin.hh"
13 FASTJET_BEGIN_NAMESPACE
98 double overlap_threshold_in,
99 int n_pass_max_in = 0,
100 double protojet_ptmin_in = 0.0,
101 bool caching_in =
false,
103 double split_merge_stopping_scale_in = 0.0){
104 _cone_radius = cone_radius_in;
105 _overlap_threshold = overlap_threshold_in;
106 _n_pass_max = n_pass_max_in;
107 _protojet_ptmin = protojet_ptmin_in;
108 _caching = caching_in;
109 _split_merge_scale = split_merge_scale_in;
110 _split_merge_stopping_scale = split_merge_stopping_scale_in;
111 _ghost_sep_scale = 0.0;
112 _use_pt_weighted_splitting =
false;
118 double overlap_threshold_in,
120 double protojet_ptmin_in,
122 bool split_merge_on_transverse_mass_in){
123 _cone_radius = cone_radius_in;
124 _overlap_threshold = overlap_threshold_in;
125 _n_pass_max = n_pass_max_in;
126 _protojet_ptmin = protojet_ptmin_in;
127 _caching = caching_in;
128 _split_merge_stopping_scale = 0.0;
129 _split_merge_scale = split_merge_on_transverse_mass_in ? SM_mt : SM_pttilde;
130 _ghost_sep_scale = 0.0;
136 double overlap_threshold_in,
139 _cone_radius = cone_radius_in;
140 _overlap_threshold = overlap_threshold_in;
141 _n_pass_max = n_pass_max_in;
142 _protojet_ptmin = 0.0;
143 _caching = caching_in;
144 _split_merge_scale = SM_mt;
145 _split_merge_stopping_scale = 0.0;
146 _ghost_sep_scale = 0.0;
147 _use_pt_weighted_splitting =
false;
169 void set_split_merge_on_transverse_mass(
bool val) {
170 _split_merge_scale = val ? SM_mt : SM_pt;}
175 void set_split_merge_use_pt_weighted_splitting(
bool val) {
176 _use_pt_weighted_splitting = val;}
179 virtual std::string description ()
const;
180 virtual void run_clustering(ClusterSequence &)
const ;
183 virtual void reset_stored_plugin()
const;
186 double _protojet_ptmin;
187 SplitMergeScale _split_merge_scale;
189 bool _use_pt_weighted_splitting;
193 static std::auto_ptr<SISConePlugin > stored_plugin;
194 static std::auto_ptr<std::vector<PseudoJet> > stored_particles;
195 static std::auto_ptr<siscone::Csiscone > stored_siscone;
269 FASTJET_END_NAMESPACE
271 #endif // __SISCONEPLUGIN_HH__
bool split_merge_on_transverse_mass() const
indicates whether the split-merge orders on transverse mass or not.
SplitMergeScale
enum for the different split-merge scale choices; Note that order must be the same as in siscone ...
double protojet_ptmin() const
minimum pt for a protojet to be considered in the split-merge step of the algorithm ...
void set_split_merge_scale(SplitMergeScale sms)
sets scale used in split-merge
SISConePlugin(double cone_radius_in, double overlap_threshold_in, int n_pass_max_in=0, double protojet_ptmin_in=0.0, bool caching_in=false, SplitMergeScale split_merge_scale_in=SM_pttilde, double split_merge_stopping_scale_in=0.0)
Main constructor for the SISCone Plugin class.
transverse momentum (E-scheme), IR unsafe
SISConePlugin(double cone_radius_in, double overlap_threshold_in, int n_pass_max_in, double protojet_ptmin_in, bool caching_in, bool split_merge_on_transverse_mass_in)
Backwards compatible constructor for the SISCone Plugin class.
bool split_merge_use_pt_weighted_splitting() const
indicates whether the split-merge orders on transverse mass or not.
SISConePlugin(double cone_radius_in, double overlap_threshold_in, int n_pass_max_in, bool caching_in)
backwards compatible constructor for the SISCone Plugin class (avoid using this in future)...
SplitMergeScale split_merge_scale() const
indicates scale used in split-merge
double protojet_or_ghost_ptmin() const
return the scale to be passed to SISCone as the protojet_ptmin – if we have a ghost separation scale...
Implementation of the SISCone algorithm (plugin for fastjet v2.1 upwards)