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> 21 typedef CGAL::Delaunay_triangulation_2<
22 CGAL::Exact_predicates_inexact_constructions_kernel>
32 std::set<std::vector<particle_t>::iterator>
incident;
34 unsigned int i,
double a = NAN,
36 : momentum(p), reduced_particle_flow_id(i), area(
a),
37 momentum_perp_subtracted(ps),
38 momentum_perp_subtracted_unequalized(ps),
45 return point_2d_t(momentum.Eta(), momentum.Phi());
50 typedef CGAL::Voronoi_diagram_2<
52 CGAL::Delaunay_triangulation_adaptation_traits_2<
53 delaunay_triangulation_t>,
55 Delaunay_triangulation_caching_degeneracy_removal_policy_2<
57 typedef CGAL::Polygon_2<
58 CGAL::Exact_predicates_inexact_constructions_kernel>
103 const std::pair<double, double> equalization_threshold =
104 std::pair<double, double>(5.0, 35.0),
117 const double perp,
const double pseudorapidity,
118 const double azimuth,
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