siscone is hosted by Hepforge, IPPP Durham

The SISCone Jet Algorithm

Version 3.0.6



SISCone 3.0.6

final class: gather everything to compute the jet contents. More...

#include <siscone.h>

Inheritance diagram for siscone_spherical::CSphsiscone:
Collaboration diagram for siscone_spherical::CSphsiscone:

Public Member Functions

 CSphsiscone ()
 default ctor More...
 
 ~CSphsiscone ()
 default dtor More...
 
int compute_jets (std::vector< CSphmomentum > &_particles, double _radius, double _f, int _n_pass_max=0, double _Emin=0.0, Esplit_merge_scale _split_merge_scale=SM_Etilde)
 compute the jets from a given particle set. More...
 
int compute_jets_progressive_removal (std::vector< CSphmomentum > &_particles, double _radius, int _n_pass_max=0, double _Emin=0.0, Esplit_merge_scale _ordering_scale=SM_Etilde)
 compute the jets from a given particle set. More...
 
int recompute_jets (double _f, double _Emin=0.0, Esplit_merge_scale _split_merge_scale=SM_Etilde)
 recompute the jets with a different overlap parameter. More...
 
- Public Member Functions inherited from siscone_spherical::CSphstable_cones
 CSphstable_cones ()
 default ctor More...
 
 CSphstable_cones (std::vector< CSphmomentum > &_particle_list)
 ctor with initialisation (sse init for details)
 
 ~CSphstable_cones ()
 default dtor More...
 
void init (std::vector< CSphmomentum > &_particle_list)
 initialisation More...
 
int get_stable_cones (double _radius)
 compute stable cones. More...
 
- Public Member Functions inherited from siscone_spherical::CSphvicinity
 CSphvicinity ()
 default constructor More...
 
 CSphvicinity (std::vector< CSphmomentum > &_particle_list)
 constructor with initialisation (see set_particle_list)
 
 ~CSphvicinity ()
 default destructor More...
 
void set_particle_list (std::vector< CSphmomentum > &_particle_list)
 set the particle_list More...
 
void build (CSphmomentum *_parent, double _VR)
 build the vicinity list from the list of points. More...
 
- Public Member Functions inherited from siscone_spherical::CSphsplit_merge
 CSphsplit_merge ()
 default ctor More...
 
 ~CSphsplit_merge ()
 default dtor More...
 
int init (std::vector< CSphmomentum > &_particles, std::vector< CSphmomentum > *protocones, double R2, double Emin=0.0)
 initialisation function More...
 
int init_particles (std::vector< CSphmomentum > &_particles)
 initialisation function for particle list More...
 
int init_pleft ()
 build initial list of left particles More...
 
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. More...
 
int partial_clear ()
 partial clearance More...
 
int full_clear ()
 full clearance More...
 
void set_user_scale (const Cuser_scale_base *user_scale_in)
 associate a user-defined scale to order the stable cones More...
 
const Cuser_scale_baseuser_scale () const
 return the user-defined scale (NULL if none) More...
 
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 More...
 
int add_protocones (std::vector< CSphmomentum > *protocones, double R2, double Emin=0.0)
 add a list of protocones More...
 
int add_hardest_protocone_to_jets (std::vector< CSphmomentum > *protocones, double R2, double Emin=0.0)
 remove the hardest protocone and declare it a a jet More...
 
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. More...
 
int save_contents (FILE *flux)
 save final jets More...
 
int show ()
 show jets/candidates status More...
 

Static Public Member Functions

static void set_banner_stream (std::ostream *ostr)
 A call to this function modifies the stream used to print banners (by default cout). More...
 
static std::ostream * banner_stream ()
 returns a pointer to the stream to be used to print banners (cout by default) More...
 

Public Attributes

std::vector< std::vector< CSphmomentum > > protocones_list
 list of protocones found pass-by-pass More...
 
- Public Attributes inherited from siscone_spherical::CSphstable_cones
std::vector< CSphmomentumprotocones
 list of stable cones More...
 
sph_hash_coneshc
 list of candidates More...
 
int nb_tot
 total number of tested cones More...
 
- Public Attributes inherited from siscone_spherical::CSphvicinity
CSphmomentumparent
 parent vector More...
 
double VR
 radius of the vicinity More...
 
double VR2
 squared radius of the vicinity More...
 
double cosVR
 cosine of the radius of the vicinity More...
 
double R
 normal radius More...
 
double R2
 squared normal radius More...
 
double tan2R
 squared tangent of the normal radius More...
 
double D2_R
 euclidian distance (squared) corresp. to the arc R More...
 
double inv_R_EPS_COCIRC
 R / EPSILON_COCIRCULAR. More...
 
double inv_R_2EPS_COCIRC
 R / (2*EPSILON_COCIRCULAR) More...
 
int n_part
 number of particles More...
 
std::vector< CSphmomentumplist
 the list of particles More...
 
std::vector< siscone::Cvicinity_inclusionpincluded
 the inclusion state of particles More...
 
CSphvicinity_elmve_list
 list of vicinity elements built from particle list (size=2*n) More...
 
std::vector< CSphvicinity_elm * > vicinity
 list of points in parent's vicinity More...
 
unsigned int vicinity_size
 number of elements in vicinity More...
 
- Public Attributes inherited from siscone_spherical::CSphsplit_merge
int n
 number of particles More...
 
std::vector< CSphmomentumparticles
 list of particles More...
 
std::vector< double > particles_norm2
 norm^2 of the particle (3-vect part) More...
 
int n_left
 numer of particles that does not belong to any jet More...
 
std::vector< CSphmomentump_remain
 list of particles remaining to deal with More...
 
std::vector< CSphmomentump_uncol_hard
 list of particles remaining with collinear clustering More...
 
int n_pass
 index of the run More...
 
double most_ambiguous_split
 minimal difference in squared distance between a particle and two overlapping protojets when doing a split (useful when testing approx. More...
 
std::vector< CSphjetjets
 list of jets More...
 
int * indices
 maximal size array for indices works More...
 
int idx_size
 number of elements in indices1 More...
 
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. More...
 
CSphsplit_merge_ptcomparison ptcomparison
 member used for detailed comparisons of pt's More...
 
double SM_var2_hardest_cut_off
 stop split–merge or progressive-removal when the squared SM_var of the hardest protojet is below this cut-off. More...
 
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. More...
 

Static Public Attributes

static bool init_done =false
 check random generator initialisation More...
 

Additional Inherited Members

- Protected Member Functions inherited from siscone_spherical::CSphvicinity
void append_to_vicinity (CSphmomentum *v)
 append a particle to the 'vicinity' list after having tested it and computed the angular-ordering quantities More...
 
- Protected Attributes inherited from siscone_spherical::CSphstable_cones
double R
 cone radius More...
 
double R2
 cone radius SQUARED More...
 
double tan2R
 squared tangent of the cone radius More...
 
- Protected Attributes inherited from siscone_spherical::CSphvicinity
CSph3vector parent_centre
 parent centre More...
 
CSph3vector angular_dir1
 main direction to measure angles More...
 
CSph3vector angular_dir2
 second direction to measure angles (sign) More...
 

Detailed Description

final class: gather everything to compute the jet contents.

This is the class user should use. It computes the jet contents of a list of particles given a cone radius and a threshold for splitting/merging.

After the call to 'perform', 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.

Definition at line 50 of file siscone.h.

Constructor & Destructor Documentation

◆ CSphsiscone()

siscone_spherical::CSphsiscone::CSphsiscone ( )

default ctor

Definition at line 53 of file siscone.cpp.

◆ ~CSphsiscone()

siscone_spherical::CSphsiscone::~CSphsiscone ( )

default dtor

Definition at line 59 of file siscone.cpp.

Member Function Documentation

◆ banner_stream()

static std::ostream * siscone_spherical::CSphsiscone::banner_stream ( )
inlinestatic

returns a pointer to the stream to be used to print banners (cout by default)

Definition at line 140 of file siscone.h.

◆ compute_jets()

int siscone_spherical::CSphsiscone::compute_jets ( std::vector< CSphmomentum > &  _particles,
double  _radius,
double  _f,
int  _n_pass_max = 0,
double  _Emin = 0.0,
Esplit_merge_scale  _split_merge_scale = SM_Etilde 
)

compute the jets from a given particle set.

We are doing multiple passes such pass n_pass looks for jets among all particles not put into jets during previous passes. By default the number of passes is infinite (0).

Parameters
_particleslist of particles
_radiuscone radius
_fshared energy threshold for splitting&merging
_n_pass_maxmaximum number of passes (0=full search)
_Eminminimum energy of the protojets
_split_merge_scalethe scale choice for the split-merge procedure NOTE: SM_Etilde
is always IR safe SM_E is IR unsafe for events with mom. conservation
Returns
the number of jets found.

Definition at line 81 of file siscone.cpp.

References siscone_spherical::CSphsplit_merge::add_protocones(), siscone_spherical::CSphstable_cones::get_stable_cones(), siscone_spherical::CSphstable_cones::init(), siscone_spherical::CSphsplit_merge::init_particles(), siscone_spherical::CSphsplit_merge::n_left, siscone_spherical::CSphsplit_merge::p_uncol_hard, siscone_spherical::CSphsplit_merge::partial_clear(), siscone_spherical::CSphsplit_merge::perform(), siscone_spherical::CSphstable_cones::protocones, protocones_list, siscone_spherical::CSphsplit_merge::ptcomparison, siscone_spherical::CSphstable_cones::R2, and siscone_spherical::CSphsplit_merge_ptcomparison::split_merge_scale.

◆ compute_jets_progressive_removal()

int siscone_spherical::CSphsiscone::compute_jets_progressive_removal ( std::vector< CSphmomentum > &  _particles,
double  _radius,
int  _n_pass_max = 0,
double  _Emin = 0.0,
Esplit_merge_scale  _ordering_scale = SM_Etilde 
)

compute the jets from a given particle set.

We are doing multiple passes such pass n_pass looks for jets among all particles not put into jets during previous passes. By default the number of passes is infinite (0).

Parameters
_particleslist of particles
_radiuscone radius
_n_pass_maxmaximum number of passes (0=full search)
_Eminminimum energy of the protojets
_ordering_scalethe ordering scale to decide which stable cone is removed
Returns
the number of jets found.

Definition at line 156 of file siscone.cpp.

References siscone_spherical::CSphsplit_merge::add_hardest_protocone_to_jets(), siscone_spherical::CSphstable_cones::get_stable_cones(), siscone_spherical::CSphstable_cones::init(), siscone_spherical::CSphsplit_merge::init_particles(), siscone_spherical::CSphsplit_merge::jets, siscone_spherical::CSphsplit_merge::n_left, siscone_spherical::CSphsplit_merge::p_uncol_hard, siscone_spherical::CSphsplit_merge::partial_clear(), siscone_spherical::CSphstable_cones::protocones, protocones_list, siscone_spherical::CSphsplit_merge::ptcomparison, siscone_spherical::CSphstable_cones::R2, and siscone_spherical::CSphsplit_merge_ptcomparison::split_merge_scale.

◆ recompute_jets()

int siscone_spherical::CSphsiscone::recompute_jets ( double  _f,
double  _Emin = 0.0,
Esplit_merge_scale  _split_merge_scale = SM_Etilde 
)

recompute the jets with a different overlap parameter.

we use the same particles and R as in the preceeding call.

Parameters
_fshared energy threshold for splitting&merging
_Eminminimum energy of the protojets
_split_merge_scalethe scale choice for the split-merge procedure split–merge variable NOTE: using pt leads to IR unsafety for some events with momentum conservation. So we strongly advise not to change the default value.
Returns
the number of jets found, -1 if recomputation not allowed.

Definition at line 215 of file siscone.cpp.

References siscone_spherical::CSphsplit_merge::add_protocones(), siscone_spherical::CSphsplit_merge::init_pleft(), siscone_spherical::CSphsplit_merge::partial_clear(), siscone_spherical::CSphsplit_merge::perform(), protocones_list, siscone_spherical::CSphsplit_merge::ptcomparison, siscone_spherical::CSphstable_cones::R2, and siscone_spherical::CSphsplit_merge_ptcomparison::split_merge_scale.

◆ set_banner_stream()

static void siscone_spherical::CSphsiscone::set_banner_stream ( std::ostream *  ostr)
inlinestatic

A call to this function modifies the stream used to print banners (by default cout).

Please note that if you distribute 3rd party code that links with SISCone, that 3rd party code must not use this call turn off the printing of thw banner by default. This requirement reflects the spirit of clause 2c of the GNU Public License (v2), under which SISCone is distributed.

Definition at line 134 of file siscone.h.

Member Data Documentation

◆ init_done

bool siscone_spherical::CSphsiscone::init_done =false
static

check random generator initialisation

Definition at line 117 of file siscone.h.

◆ protocones_list

std::vector<std::vector<CSphmomentum> > siscone_spherical::CSphsiscone::protocones_list

list of protocones found pass-by-pass

Definition at line 114 of file siscone.h.

Referenced by compute_jets(), compute_jets_progressive_removal(), and recompute_jets().


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 Tue Jun 20 2023 18:08:37 for SISCone by  Doxygen 1.9.4