SISCone  2.0.6
vicinity.h
1 // -*- C++ -*-
3 // File: vicinity.h //
4 // Description: header file for particle vicinity (Cvicinity class) //
5 // This file is part of the SISCone project. //
6 // For more details, see http://projects.hepforge.org/siscone //
7 // //
8 // Copyright (c) 2006 Gavin Salam and Gregory Soyez //
9 // //
10 // This program is free software; you can redistribute it and/or modify //
11 // it under the terms of the GNU General Public License as published by //
12 // the Free Software Foundation; either version 2 of the License, or //
13 // (at your option) any later version. //
14 // //
15 // This program is distributed in the hope that it will be useful, //
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
18 // GNU General Public License for more details. //
19 // //
20 // You should have received a copy of the GNU General Public License //
21 // along with this program; if not, write to the Free Software //
22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
23 // //
24 // $Revision:: 123 $//
25 // $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007) $//
27 
28 #ifndef __VICINITY_H__
29 #define __VICINITY_H__
30 
31 #include <vector>
32 #include <list>
33 #include "momentum.h"
34 #include "defines.h"
35 #include "quadtree.h"
36 
37 namespace siscone{
38 
39 
40 
47 public:
49  Cvicinity_inclusion() : cone(false), cocirc(false) {}
50 
51  bool cone;
52  bool cocirc;
53 };
54 
55 
64  public:
67 
70 
71  // centre variables
72  double eta;
73  double phi;
74  double angle;
75  bool side;
77 
78 
81  std::list<Cvicinity_elm * > cocircular;
82 };
83 
85 bool ve_less(Cvicinity_elm *ve1, Cvicinity_elm *ve2);
86 
87 
95 class Cvicinity{
96  public:
98  Cvicinity();
99 
101  Cvicinity(std::vector<Cmomentum> &_particle_list);
102 
104  ~Cvicinity();
105 
110  void set_particle_list(std::vector<Cmomentum> &_particle_list);
111 
117  void build(Cmomentum *_parent, double _VR);
118 
119  // cone kinematical information
121  double VR;
122  double VR2;
123  double R;
124  double R2;
127 
128  // particle list information
129  int n_part;
130  std::vector<Cmomentum> plist;
131  std::vector<Cvicinity_inclusion> pincluded;
133 #ifdef USE_QUADTREE_FOR_STABILITY_TEST
134  Cquadtree *quadtree;
135 #endif
136 
137  // vicinity information
138  std::vector<Cvicinity_elm*> vicinity;
139  unsigned int vicinity_size;
140 
141  protected:
147  void append_to_vicinity(Cmomentum *v);
148 
149  // internal variables
150  double pcx;
151  double pcy;
152 };
153 
154 }
155 
156 #endif
The SISCone project has been developed by Gavin Salam and Gregory Soyez
Documentation generated on Mon May 6 2013 11:30:35 for SISCone by  Doxygen 1.8.3.1