SISCone
2.0.5
Main Page
Classes
Files
File List
File Members
siscone
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
46
class
Cvicinity_inclusion
{
47
public
:
49
Cvicinity_inclusion
() :
cone
(false),
cocirc
(false) {}
50
51
bool
cone
;
52
bool
cocirc
;
53
};
54
55
63
class
Cvicinity_elm
{
64
public
:
66
Cmomentum
*
v
;
67
69
Cvicinity_inclusion
*
is_inside
;
70
71
// centre variables
72
double
eta
;
73
double
phi
;
74
double
angle
;
75
bool
side
;
76
double
cocircular_range
;
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
120
Cmomentum
*
parent
;
121
double
VR
;
122
double
VR2
;
123
double
R
;
124
double
R2
;
125
double
inv_R_EPS_COCIRC
;
126
double
inv_R_2EPS_COCIRC
;
127
128
// particle list information
129
int
n_part
;
130
std::vector<Cmomentum>
plist
;
131
std::vector<Cvicinity_inclusion>
pincluded
;
132
Cvicinity_elm
*
ve_list
;
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 Wed May 30 2012 06:46:25 for SISCone by
Doxygen
1.8.1