CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Static Public Attributes | Protected Attributes | Private Types | Private Member Functions
VoronoiAlgorithm Class Reference

#include <VoronoiAlgorithm.h>

Classes

class  particle_t
 

Public Member Functions

void clear (void)
 
size_t nedge_pseudorapidity (void) const
 
std::vector< double > particle_area (void)
 
std::vector< std::set< size_t > > particle_incident (void)
 
std::vector< double > perp_fourier (void)
 
void push_back_particle (const double perp, const double pseudorapidity, const double azimuth, const unsigned int reduced_particle_flow_id)
 
std::vector< double > subtracted_equalized_perp (void)
 
std::vector< double > subtracted_unequalized_perp (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)
 
 ~VoronoiAlgorithm (void)
 

Static Public Attributes

static const size_t nfourier = 5
 
static const size_t nreduced_particle_flow_id = 3
 

Protected Attributes

std::vector< bool > _active
 
std::vector< double > _cms_ecal_edge_pseudorapidity
 
std::vector< double > _cms_hcal_edge_pseudorapidity
 
std::vector< double > _edge_pseudorapidity
 
std::pair< double, double > _equalization_threshold
 
event_t _event
 
std::vector< double > _feature
 
void * _lp_environment
 
void * _lp_problem
 
std::vector< size_t > _nblock_subtract
 
size_t _ncost
 
boost::multi_array< double, 4 > * _perp_fourier
 
double _positive_bound_scale
 
double _radial_distance_square_max
 
std::vector< std::pair< size_t,
size_t > > 
_recombine
 
std::vector< std::vector
< size_t > > 
_recombine_index
 
std::vector< double > _recombine_tie
 
std::vector< std::vector
< size_t > > 
_recombine_unsigned
 
bool _remove_nonpositive
 
bool _subtracted
 
const UECalibrationue
 

Private Types

typedef
CGAL::Delaunay_triangulation_2
< CGAL::Exact_predicates_inexact_constructions_kernel > 
delaunay_triangulation_t
 
typedef std::vector< particle_tevent_t
 
typedef
delaunay_triangulation_t::Point 
point_2d_t
 
typedef CGAL::Polygon_2
< CGAL::Exact_predicates_inexact_constructions_kernel > 
polygon_t
 
typedef
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
 

Private Member Functions

void allocate (void)
 
void deallocate (void)
 
void equalize (void)
 
void event_fourier (void)
 
void feature_extract (void)
 
void initialize_geometry (void)
 
void lp_populate (void *lp_problem)
 
void recombine_link (void)
 
void remove_nonpositive (void)
 
void subtract_if_necessary (void)
 
void subtract_momentum (void)
 
void voronoi_area_incident (void)
 

Detailed Description

Definition at line 18 of file VoronoiAlgorithm.h.

Member Typedef Documentation

typedef CGAL::Delaunay_triangulation_2< CGAL::Exact_predicates_inexact_constructions_kernel> VoronoiAlgorithm::delaunay_triangulation_t
private

Definition at line 23 of file VoronoiAlgorithm.h.

typedef std::vector<particle_t> VoronoiAlgorithm::event_t
private

Definition at line 48 of file VoronoiAlgorithm.h.

Definition at line 24 of file VoronoiAlgorithm.h.

typedef CGAL::Polygon_2< CGAL::Exact_predicates_inexact_constructions_kernel> VoronoiAlgorithm::polygon_t
private

Definition at line 59 of file VoronoiAlgorithm.h.

typedef 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> > VoronoiAlgorithm::voronoi_diagram_t
private

Definition at line 56 of file VoronoiAlgorithm.h.

Constructor & Destructor Documentation

VoronoiAlgorithm::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 
)

Definition at line 1842 of file VoronoiAlgorithm.cc.

VoronoiAlgorithm::~VoronoiAlgorithm ( void  )

Definition at line 1867 of file VoronoiAlgorithm.cc.

Member Function Documentation

void VoronoiAlgorithm::allocate ( void  )
private

Definition at line 942 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::clear ( void  )

Clears the list of unsubtracted particles

Definition at line 1894 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::deallocate ( void  )
private

Definition at line 948 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::equalize ( void  )
private

Definition at line 1783 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::event_fourier ( void  )
private

Definition at line 952 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::feature_extract ( void  )
private

Definition at line 988 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::initialize_geometry ( void  )
private

Definition at line 908 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::lp_populate ( void *  lp_problem)
private

Definition at line 1414 of file VoronoiAlgorithm.cc.

size_t VoronoiAlgorithm::nedge_pseudorapidity ( void  ) const

Definition at line 1992 of file VoronoiAlgorithm.cc.

std::vector< double > VoronoiAlgorithm::particle_area ( void  )

Returns the area in the Voronoi diagram diagram occupied by a given particle

Returns
vector of area

Definition at line 1938 of file VoronoiAlgorithm.cc.

std::vector< std::set< size_t > > VoronoiAlgorithm::particle_incident ( void  )

Returns the incident particles in the Delaunay diagram (particles that has a given particle as the nearest neighbor)

Returns
vector of sets of incident particles indices, using the original indexing

Definition at line 1960 of file VoronoiAlgorithm.cc.

std::vector< double > VoronoiAlgorithm::perp_fourier ( void  )

Definition at line 1983 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::push_back_particle ( const double  perp,
const double  pseudorapidity,
const double  azimuth,
const unsigned int  reduced_particle_flow_id 
)

Add a new unsubtracted particle to the current event

Parameters
[in]perptransverse momentum
[in]pseudorapiditypseudorapidity
[in]azimuthazimuth
[in]reduced_particle_flow_idreduced particle flow ID, between 0 and 2 (inclusive)

Definition at line 1881 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::recombine_link ( void  )
private

Definition at line 1286 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::remove_nonpositive ( void  )
private

Definition at line 1818 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::subtract_if_necessary ( void  )
private

Definition at line 1827 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::subtract_momentum ( void  )
private

Definition at line 1136 of file VoronoiAlgorithm.cc.

std::vector< double > VoronoiAlgorithm::subtracted_equalized_perp ( void  )

Returns the transverse momenta of the subtracted particles

Returns
vector of transverse momenta

Definition at line 1904 of file VoronoiAlgorithm.cc.

std::vector< double > VoronoiAlgorithm::subtracted_unequalized_perp ( void  )

Definition at line 1918 of file VoronoiAlgorithm.cc.

void VoronoiAlgorithm::voronoi_area_incident ( void  )
private

Definition at line 1045 of file VoronoiAlgorithm.cc.

Member Data Documentation

std::vector<bool> VoronoiAlgorithm::_active
protected

Definition at line 75 of file VoronoiAlgorithm.h.

std::vector<double> VoronoiAlgorithm::_cms_ecal_edge_pseudorapidity
protected

Definition at line 66 of file VoronoiAlgorithm.h.

std::vector<double> VoronoiAlgorithm::_cms_hcal_edge_pseudorapidity
protected

Definition at line 65 of file VoronoiAlgorithm.h.

std::vector<double> VoronoiAlgorithm::_edge_pseudorapidity
protected

Definition at line 64 of file VoronoiAlgorithm.h.

std::pair<double, double> VoronoiAlgorithm::_equalization_threshold
protected

Definition at line 68 of file VoronoiAlgorithm.h.

event_t VoronoiAlgorithm::_event
protected

Definition at line 72 of file VoronoiAlgorithm.h.

std::vector<double> VoronoiAlgorithm::_feature
protected

Definition at line 74 of file VoronoiAlgorithm.h.

void* VoronoiAlgorithm::_lp_environment
protected

Definition at line 82 of file VoronoiAlgorithm.h.

void* VoronoiAlgorithm::_lp_problem
protected

Definition at line 83 of file VoronoiAlgorithm.h.

std::vector<size_t> VoronoiAlgorithm::_nblock_subtract
protected

Definition at line 81 of file VoronoiAlgorithm.h.

size_t VoronoiAlgorithm::_ncost
protected

Definition at line 80 of file VoronoiAlgorithm.h.

boost::multi_array<double, 4>* VoronoiAlgorithm::_perp_fourier
protected

Definition at line 73 of file VoronoiAlgorithm.h.

double VoronoiAlgorithm::_positive_bound_scale
protected

Definition at line 70 of file VoronoiAlgorithm.h.

double VoronoiAlgorithm::_radial_distance_square_max
protected

Definition at line 69 of file VoronoiAlgorithm.h.

std::vector<std::pair<size_t, size_t> > VoronoiAlgorithm::_recombine
protected

Definition at line 76 of file VoronoiAlgorithm.h.

std::vector<std::vector<size_t> > VoronoiAlgorithm::_recombine_index
protected

Definition at line 77 of file VoronoiAlgorithm.h.

std::vector<double> VoronoiAlgorithm::_recombine_tie
protected

Definition at line 79 of file VoronoiAlgorithm.h.

std::vector<std::vector<size_t> > VoronoiAlgorithm::_recombine_unsigned
protected

Definition at line 78 of file VoronoiAlgorithm.h.

bool VoronoiAlgorithm::_remove_nonpositive
protected

Definition at line 67 of file VoronoiAlgorithm.h.

bool VoronoiAlgorithm::_subtracted
protected

Definition at line 71 of file VoronoiAlgorithm.h.

const size_t VoronoiAlgorithm::nfourier = 5
static

Definition at line 62 of file VoronoiAlgorithm.h.

const size_t VoronoiAlgorithm::nreduced_particle_flow_id = 3
static

Definition at line 61 of file VoronoiAlgorithm.h.

const UECalibration* VoronoiAlgorithm::ue
protected

Definition at line 85 of file VoronoiAlgorithm.h.