|
SISCone
2.0.5
|
00001 // -*- C++ -*- 00003 // File: siscone.h // 00004 // Description: header file for the main SISCone class // 00005 // This file is part of the SISCone project. // 00006 // For more details, see http://projects.hepforge.org/siscone // 00007 // // 00008 // Copyright (c) 2006 Gavin Salam and Gregory Soyez // 00009 // // 00010 // This program is free software; you can redistribute it and/or modify // 00011 // it under the terms of the GNU General Public License as published by // 00012 // the Free Software Foundation; either version 2 of the License, or // 00013 // (at your option) any later version. // 00014 // // 00015 // This program is distributed in the hope that it will be useful, // 00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of // 00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // 00018 // GNU General Public License for more details. // 00019 // // 00020 // You should have received a copy of the GNU General Public License // 00021 // along with this program; if not, write to the Free Software // 00022 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 00023 // // 00024 // $Revision:: 325 $// 00025 // $Date:: 2011-11-25 12:41:17 +0100 (Fri, 25 Nov 2011) $// 00027 00028 #ifndef __SISCONE_H__ 00029 #define __SISCONE_H__ 00030 00031 #include "protocones.h" 00032 #include "split_merge.h" 00033 00034 namespace siscone{ 00035 00048 class Csiscone : public Cstable_cones, public Csplit_merge{ 00049 public: 00051 Csiscone(); 00052 00054 ~Csiscone(); 00055 00076 int compute_jets(std::vector<Cmomentum> &_particles, double _radius, double _f, 00077 int _n_pass_max=0, double _ptmin=0.0, 00078 Esplit_merge_scale _split_merge_scale=SM_pttilde); 00079 00092 int recompute_jets(double _f, double _ptmin = 0.0, 00093 Esplit_merge_scale _split_merge_scale=SM_pttilde); 00094 00096 std::vector<std::vector<Cmomentum> > protocones_list; 00097 00098 // random number initialisation 00099 static bool init_done; 00100 00101 #ifdef DEBUG_STABLE_CONES 00102 int nb_hash_cones_total, nb_hash_occupied_total; 00103 #endif 00104 00116 static void set_banner_stream(std::ostream * ostr) {_banner_ostr = ostr;} 00117 00122 static std::ostream * banner_stream() {return _banner_ostr;} 00123 00124 private: 00125 bool rerun_allowed; 00126 static std::ostream * _banner_ostr; 00127 }; 00128 00129 00130 // finally, a bunch of functions to access to 00131 // basic information (package name, version) 00132 //--------------------------------------------- 00133 00141 std::string siscone_package_name(); 00142 00148 std::string siscone_version(); 00149 00150 } 00151 #endif