SISCone  3.0.5
siscone.h
1 // -*- C++ -*-
3 // File: siscone.h //
4 // Description: header file for the main SISCone class //
5 // This file is part of the SISCone project. //
6 // WARNING: this is not the main SISCone trunk but //
7 // an adaptation to spherical coordinates //
8 // For more details, see http://projects.hepforge.org/siscone //
9 // //
10 // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez //
11 // //
12 // This program is free software; you can redistribute it and/or modify //
13 // it under the terms of the GNU General Public License as published by //
14 // the Free Software Foundation; either version 2 of the License, or //
15 // (at your option) any later version. //
16 // //
17 // This program is distributed in the hope that it will be useful, //
18 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
20 // GNU General Public License for more details. //
21 // //
22 // You should have received a copy of the GNU General Public License //
23 // along with this program; if not, write to the Free Software //
24 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
25 // //
26 // $Revision:: 401 $//
27 // $Date:: 2016-05-19 16:44:37 +0200 (Thu, 19 May 2016) $//
29 
30 #ifndef __SPH_SISCONE_H__
31 #define __SPH_SISCONE_H__
32 
33 #include "protocones.h"
34 #include "split_merge.h"
35 
36 namespace siscone_spherical{
37 
51  public:
53  CSphsiscone();
54 
56  ~CSphsiscone();
57 
76  int compute_jets(std::vector<CSphmomentum> &_particles, double _radius, double _f,
77  int _n_pass_max=0, double _Emin=0.0,
78  Esplit_merge_scale _split_merge_scale=SM_Etilde);
79 
94  int compute_jets_progressive_removal(std::vector<CSphmomentum> &_particles, double _radius,
95  int _n_pass_max=0, double _Emin=0.0,
96  Esplit_merge_scale _ordering_scale=SM_Etilde);
97 
110  int recompute_jets(double _f, double _Emin = 0.0,
111  Esplit_merge_scale _split_merge_scale=SM_Etilde);
112 
114  std::vector<std::vector<CSphmomentum> > protocones_list;
115 
116  // random number initialisation
117  static bool init_done;
118 
119 #ifdef DEBUG_STABLE_CONES
120  int nb_hash_cones_total, nb_hash_occupied_total;
121 #endif
122 
134  static void set_banner_stream(std::ostream * ostr) {_banner_ostr = ostr;}
135 
140  static std::ostream * banner_stream() {return _banner_ostr;}
141 
142  private:
143  bool rerun_allowed;
144  static std::ostream * _banner_ostr;
145 
147  void _initialise_if_needed();
148 
149 };
150 
151 
152 // finally, a bunch of functions to access to
153 // basic information (package name, version)
154 //---------------------------------------------
155 
163 std::string siscone_package_name();
164 
170 std::string siscone_version();
171 
172 }
173 #endif
final class: gather everything to compute the jet contents.
Definition: siscone.h:50
static std::ostream * banner_stream()
returns a pointer to the stream to be used to print banners (cout by default)
Definition: siscone.h:140
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.
Definition: siscone.cpp:156
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.
Definition: siscone.cpp:81
std::vector< std::vector< CSphmomentum > > protocones_list
list of protocones found pass-by-pass
Definition: siscone.h:114
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.
Definition: siscone.cpp:215
static void set_banner_stream(std::ostream *ostr)
A call to this function modifies the stream used to print banners (by default cout).
Definition: siscone.h:134
static bool init_done
check random generator initialisation
Definition: siscone.h:117
Class used to split and merge jets.
Definition: split_merge.h:175
Computes the list of stable comes from a particle list.
Definition: protocones.h:89