28 #ifndef __SPLIT_MERGE_H__
29 #define __SPLIT_MERGE_H__
81 bool jets_pt_less(
const Cjet &j1,
const Cjet &j2);
91 enum Esplit_merge_scale {
102 std::string split_merge_scale_name(Esplit_merge_scale sms);
122 std::vector<double> *
pt;
164 typedef std::multiset<siscone::Cjet,Csplit_merge_ptcomparison>::iterator cjet_iterator;
167 typedef std::vector<siscone::Cjet>::iterator jet_iterator;
196 int init(std::vector<Cmomentum> &_particles, std::vector<Cmomentum> *protocones,
double R2,
double ptmin=0.0);
222 use_pt_weighted_splitting = _use_pt_weighted_splitting;
257 int add_protocones(std::vector<Cmomentum> *protocones,
double R2,
double ptmin=0.0);
268 int perform(
double overlap_tshold,
double ptmin=0.0);
285 std::vector<double>
pt;
336 bool get_overlap(
const Cjet &j1,
const Cjet &j2,
double *v);
350 bool split(cjet_iterator &it_j1, cjet_iterator &it_j2);
360 bool merge(cjet_iterator &it_j1, cjet_iterator &it_j2);
368 bool insert(
Cjet &jet);
376 double get_sm_var2(
Cmomentum &v,
double &pt_tilde);
380 std::auto_ptr<std::multiset<Cjet,Csplit_merge_ptcomparison> > candidates;
390 bool use_pt_weighted_splitting;
392 #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES
394 std::set<Creference> cand_refs;