1 #ifndef __VoronoiAlgorithm_h__
2 #define __VoronoiAlgorithm_h__
6 #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
7 #include <CGAL/Delaunay_triangulation_2.h>
8 #include <CGAL/Voronoi_diagram_2.h>
9 #include <CGAL/Delaunay_triangulation_adaptation_traits_2.h>
10 #include <CGAL/Delaunay_triangulation_adaptation_policies_2.h>
11 #include <CGAL/Polygon_2.h>
13 #include <boost/multi_array.hpp>
22 typedef CGAL::Delaunay_triangulation_2<
23 CGAL::Exact_predicates_inexact_constructions_kernel>
33 std::set<std::vector<particle_t>::iterator>
incident;
35 unsigned int i,
double a = NAN,
51 typedef CGAL::Voronoi_diagram_2<
53 CGAL::Delaunay_triangulation_adaptation_traits_2<
56 Delaunay_triangulation_caching_degeneracy_removal_policy_2<
58 typedef CGAL::Polygon_2<
59 CGAL::Exact_predicates_inexact_constructions_kernel>
104 const std::pair<double, double> equalization_threshold =
105 std::pair<double, double>(5.0, 35.0),
118 const double perp,
const double pseudorapidity,
119 const double azimuth,
120 const unsigned int reduced_particle_flow_id);
std::vector< bool > _active
std::vector< std::vector< size_t > > _recombine_index
math::PtEtaPhiELorentzVector momentum
std::vector< double > perp_fourier(void)
void subtract_momentum(void)
unsigned int reduced_particle_flow_id
CGAL::Voronoi_diagram_2< delaunay_triangulation_t, CGAL::Delaunay_triangulation_adaptation_traits_2< delaunay_triangulation_t >, CGAL::Delaunay_triangulation_caching_degeneracy_removal_policy_2< delaunay_triangulation_t > > voronoi_diagram_t
double _positive_bound_scale
void remove_nonpositive(void)
std::vector< double > _edge_pseudorapidity
void initialize_geometry(void)
std::vector< double > _recombine_tie
particle_t(math::PtEtaPhiELorentzVector p, unsigned int i, double a=NAN, double ps=NAN)
delaunay_triangulation_t::Point point_2d_t
std::vector< double > _cms_ecal_edge_pseudorapidity
std::vector< double > particle_area(void)
void lp_populate(void *lp_problem)
void subtract_if_necessary(void)
void push_back_particle(const double perp, const double pseudorapidity, const double azimuth, const unsigned int reduced_particle_flow_id)
std::vector< particle_t > event_t
std::vector< std::pair< size_t, size_t > > _recombine
static const size_t nreduced_particle_flow_id
std::vector< std::set< size_t > > particle_incident(void)
void recombine_link(void)
static const size_t nfourier
std::vector< size_t > _nblock_subtract
std::vector< double > _feature
double momentum_perp_subtracted_unequalized
double _radial_distance_square_max
boost::multi_array< double, 4 > * _perp_fourier
PtEtaPhiELorentzVectorD PtEtaPhiELorentzVector
Lorentz vector with cartesian internal representation.
std::vector< std::vector< size_t > > _recombine_unsigned
void feature_extract(void)
VoronoiAlgorithm(const UECalibration *ue, const double dr_max, const std::pair< double, double > equalization_threshold=std::pair< double, double >(5.0, 35.0), const bool remove_nonpositive=true)
T perp() const
Magnitude of transverse component.
void voronoi_area_incident(void)
std::pair< double, double > _equalization_threshold
size_t nedge_pseudorapidity(void) const
std::vector< double > _cms_hcal_edge_pseudorapidity
CGAL::Polygon_2< CGAL::Exact_predicates_inexact_constructions_kernel > polygon_t
std::vector< double > subtracted_unequalized_perp(void)
std::set< std::vector< particle_t >::iterator > incident
std::vector< double > subtracted_equalized_perp(void)
CGAL::Delaunay_triangulation_2< CGAL::Exact_predicates_inexact_constructions_kernel > delaunay_triangulation_t
double momentum_perp_subtracted