SISCone  2.0.5
Public Member Functions | Public Attributes | List of all members
siscone_spherical::CSphsplit_merge Class Reference

Class used to split and merge jets. More...

#include <split_merge.h>

Inheritance diagram for siscone_spherical::CSphsplit_merge:
Inheritance graph
[legend]
Collaboration diagram for siscone_spherical::CSphsplit_merge:
Collaboration graph
[legend]

Public Member Functions

 CSphsplit_merge ()
 default ctor
 ~CSphsplit_merge ()
 default dtor
int init (std::vector< CSphmomentum > &_particles, std::vector< CSphmomentum > *protocones, double R2, double Emin=0.0)
 initialisation function
int init_particles (std::vector< CSphmomentum > &_particles)
 initialisation function for particle list
int init_pleft ()
 build initial list of left particles
int set_E_weighted_splitting (bool _use_E_weighted_splitting)
 use an energy-dependent boundary for splitting When called with true, the criterium for splitting two protojets will be to compare D1^2/kt1^2 vs.
int partial_clear ()
 partial clearance
int full_clear ()
 full clearance
int merge_collinear_and_remove_soft ()
 build the list 'p_uncol_hard' from p_remain by clustering collinear particles note that thins in only used for stable-cone detection so the parent_index field is unnecessary
int add_protocones (std::vector< CSphmomentum > *protocones, double R2, double Emin=0.0)
 add a list of protocones
int perform (double overlap_tshold, double Emin=0.0)
 really do the splitting and merging At the end, the vector jets is filled with the jets found.
int save_contents (FILE *flux)
 save final jets
int show ()
 show jets/candidates status

Public Attributes

int n
 number of particles
std::vector< CSphmomentumparticles
 list of particles
std::vector< double > particles_norm2
 norm^2 of the particle (3-vect part)
int n_left
 numer of particles that does not belong to any jet
std::vector< CSphmomentump_remain
 list of particles remaining to deal with
std::vector< CSphmomentump_uncol_hard
 list of particles remaining with collinear clustering
int n_pass
 index of the run
double most_ambiguous_split
 minimal difference in squared distance between a particle and two overlapping protojets when doing a split (useful when testing approx.
std::vector< CSphjetjets
 list of jets
int * indices
 maximal size array for indices works
int idx_size
 number of elements in indices1
bool merge_identical_protocones
 The following flag indicates that identical protocones are to be merged automatically each time around the split-merge loop and before anything else happens.
CSphsplit_merge_ptcomparison ptcomparison
 member used for detailed comparisons of pt's
double SM_var2_hardest_cut_off
 stop split–merge when the SM_var of the hardest protojet is below this cut-off.
double stable_cone_soft_E2_cutoff
 Energy cutoff for the particles to put in p_uncol_hard this is meant to allow removing soft particles in the stable-cone search.

Detailed Description

Class used to split and merge jets.

Definition at line 170 of file split_merge.h.

Member Function Documentation

int siscone_spherical::CSphsplit_merge::add_protocones ( std::vector< CSphmomentum > *  protocones,
double  R2,
double  Emin = 0.0 
)

add a list of protocones

Parameters
protoconeslist of protocones (initial jet candidates)
R2cone radius (squared)
Eminminimal emergy allowed for jets
Returns
0 on success, 1 on error

Definition at line 459 of file split_merge.cpp.

References siscone_spherical::CSph3vector::_phi, siscone_spherical::CSph3vector::_theta, siscone_spherical::CSph3vector::build_thetaphi(), siscone_spherical::CSphjet::contents, siscone_spherical::CSphmomentum::index, siscone_spherical::CSphjet::n, siscone_spherical::CSphmomentum::parent_index, siscone_spherical::CSphjet::range, and siscone_spherical::CSphjet::v.

int siscone_spherical::CSphsplit_merge::init ( std::vector< CSphmomentum > &  _particles,
std::vector< CSphmomentum > *  protocones,
double  R2,
double  Emin = 0.0 
)

initialisation function

Parameters
_particleslist of particles
protoconeslist of protocones (initial jet candidates)
R2cone radius (squared)
Eminminimal energy allowed for jets
Returns
0 on success, 1 on error

Definition at line 268 of file split_merge.cpp.

int siscone_spherical::CSphsplit_merge::init_particles ( std::vector< CSphmomentum > &  _particles)

initialisation function for particle list

Parameters
_particleslist of particles
Returns
0 on success, 1 on error

Definition at line 277 of file split_merge.cpp.

int siscone_spherical::CSphsplit_merge::merge_collinear_and_remove_soft ( )

build the list 'p_uncol_hard' from p_remain by clustering collinear particles note that thins in only used for stable-cone detection so the parent_index field is unnecessary

Note that soft particles are not removed here This is just a remnant from the trunk version

Definition at line 400 of file split_merge.cpp.

References EPSILON_COLLINEAR, and twopi.

int siscone_spherical::CSphsplit_merge::perform ( double  overlap_tshold,
double  Emin = 0.0 
)

really do the splitting and merging At the end, the vector jets is filled with the jets found.

the 'contents' field of each jets contains the indices of the particles included in that jet.

Parameters
overlap_tsholdthreshold for splitting/merging transition
Eminminimal energy allowed for jets
Returns
the number of jets is returned

Definition at line 569 of file split_merge.cpp.

int siscone_spherical::CSphsplit_merge::save_contents ( FILE *  flux)
int siscone_spherical::CSphsplit_merge::set_E_weighted_splitting ( bool  _use_E_weighted_splitting)
inline

use an energy-dependent boundary for splitting When called with true, the criterium for splitting two protojets will be to compare D1^2/kt1^2 vs.

D2^2/kt2^2, the (anti-)kt-weighted distance instead of the plain distance D1^2 vs. D2^2. This can be set in order to produce more circular hard jets, with the same underlying philosophy as for the anti-kt algorithm. We thus expect a behaviour closer to the IterativeCone one. By default, we use the standard D1^2 vs. D2^2 comparison and this function is not called.

Definition at line 216 of file split_merge.h.

Member Data Documentation

bool siscone_spherical::CSphsplit_merge::merge_identical_protocones

The following flag indicates that identical protocones are to be merged automatically each time around the split-merge loop and before anything else happens.

This flag is only effective if ALLOW_MERGE_IDENTICAL_PROTOCONES is set in 'defines.h' Note that this lead to infrared-unsafety so it is disabled by default

Definition at line 308 of file split_merge.h.

double siscone_spherical::CSphsplit_merge::most_ambiguous_split

minimal difference in squared distance between a particle and two overlapping protojets when doing a split (useful when testing approx.

collinear safety)

Definition at line 291 of file split_merge.h.

double siscone_spherical::CSphsplit_merge::SM_var2_hardest_cut_off

stop split–merge when the SM_var of the hardest protojet is below this cut-off.

This is not collinear-safe so you should not use this variable unless you really know what you are doing Note that the cut-off is set on the variable squared.

Definition at line 318 of file split_merge.h.

double siscone_spherical::CSphsplit_merge::stable_cone_soft_E2_cutoff

Energy cutoff for the particles to put in p_uncol_hard this is meant to allow removing soft particles in the stable-cone search.

Definition at line 323 of file split_merge.h.


The documentation for this class was generated from the following files:
The SISCone project has been developed by Gavin Salam and Gregory Soyez
Documentation generated on Wed Mar 19 2014 21:30:25 for SISCone by  Doxygen 1.8.1.2