|
ATLAS Offline Software
|
Go to the documentation of this file.
25 class point_t :
public std::pair<float , float>{
69 template<
class inT,
class ouT>
106 template<
class T ,
class T2>
107 void recenter_set(T &inSet, T2 &outSet,
float phicenter);
110 template<
class T ,
class T2>
123 inline float deltaPhi(
float phi1,
float phi2);
144 #ifndef G__DICTIONARY
150 it_t
it = container.begin();
151 it_t
itE = container.end();
158 it_t
it = container.begin();
159 it_t
itE = container.end();
166 it_t
it =
set.begin();
186 a += ( (*it).first*(*itp).second - (*itp).first*(*it).second );
207 float d = fabs(phi1 - phi2);
237 return (
p1.first-
p2.first)*(
p1.first-
p2.first) +
244 template<
class T ,
class T2>
248 it_t
it = inSet.begin();
249 it_t
itE = inSet.end();
250 it_t2 it2 = outSet.begin();
252 it2 = outSet.insert(it2,
recenter(*
it,phicenter));
255 template<
class T ,
class T2>
258 if (phicenter <-9)
return;
266 it_t
it =
set.begin();
316 template<
class inT,
class ouT>
320 it_t
it = inSet.begin();
321 it_t
itE = inSet.end();
335 outSet.insert(outSet.begin(), inSet.begin(), inSet.end() );
342 while(point01.first == point00.first){
346 --s_it; point01 = *s_it;
348 s_it = inSet.end(); --s_it;
351 while(point10.first == point11.first){
355 ++s_it; point10 = *s_it;
358 line_t lmin(point00, point10);
360 line_t lmax(point01, point11);
365 s_it = inSet.begin();
366 if(point00 == point01 ){
367 lowPoints.push_back(point00);
368 upPoints.push_back(point00);
374 for(; s_it!= s_itE; ++s_it){
378 lowPoints.push_back(
p);
382 upPoints.push_front(
p);
387 if(point11 == point10 ){
388 lowPoints.push_back(point11);
389 upPoints.push_front(point11);
392 lowPoints.push_back(point10);
393 upPoints.push_front(point00);
402 lowHull.push_back(point00);
404 lowHull.push_back(*
it);
406 unsigned int nn = lowPoints.size();
416 it = upPoints.begin();
417 itE = upPoints.end();
418 upHull.push_back(point11);
420 upHull.push_back(*
it);
422 if(upPoints.size()>2){
432 outSet.insert(outSet.begin(), lowHull.begin(), lowHull.end() );
433 outSet.insert((outSet.end()), ++(upHull.begin()), --(upHull.end()) );
JetConstituentVector::iterator iterator
void listToSet(point_list_t &inList, point_set_t &outSet)
void fix2pi(point_t &p)
convert
point_t recenter(const point_t &p, const point_t ¢er)
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
void clear_delete(T &container)
point_t intercept_y(float y)
bool is_above(point_t &p)
void recenter_set(T &inSet, T2 &outSet, float phicenter)
copy
point_t(float x, float y)
float max_deltaR(point_t p, T &set)
Return max distance betweens point.
float abs_dphi(float phi1, float phi2)
std::list< point_t > point_list_t
float deltaR(point_t &p1, point_t &p2)
distances between points
void _findConvexHull(point_set_t &inSet, inT &outSet)
void phi_shift(float dphi)
float getMeanPhi(T &set)
return average phi (i.e.
void testHullLine(point_list_t &hull, point_t p)
line_t(float cx, float cy, float cc, bool to_r)
constructor by giving the coeff of equation of the line (
Very basic point objects.
A collection of routines for geometric tasks in 2D and on a cylinder.
void delete_content(T &container)
void findConvexHull(inT &inSet, ouT &outSet)
Find convex hull of a set of points in euclidian plan.
float deltaPhi(point_t &p1, point_t &p2)
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
float polygon_area(T &line)
bool is_below(point_t &p)
float polygon_lenght(T &line)
point_t intercept_x(float x)
bool is_right(point_t &p)
float in_mPI_pPI(float phi)
convert
float deltaR2(point_t &p1, point_t &p2)