15#ifndef O2_MCH_CONTOUR_EDGE_H
16#define O2_MCH_CONTOUR_EDGE_H
71 throw std::invalid_argument(
"edge should be either horizontal or vertical");
92 return std::max(edge.
begin().y, edge.
end().y);
98 return std::min(edge.
begin().y, edge.
end().y);
104 return edge.
begin().y > edge.
end().y;
128 return std::min(edge.
begin().x, edge.
end().x);
134 return std::max(edge.
begin().x, edge.
end().x);
140 return edge.
begin().x < edge.
end().x;
152 os <<
"[" << edge.
begin() <<
"," << edge.
end() <<
"]";
159 os << static_cast<const ManhattanEdge<T>>(edge);
167 os << static_cast<const ManhattanEdge<T>>(edge);
175 return lhs.begin() == rhs.begin() && rhs.end() == rhs.end();
181 return !(rhs == lhs);
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error First event to Number of events to Number of iterations to Number of iterations to Number of initial iterations excluded from const char e
HorizontalEdge(T y={}, T x1={}, T x2={})
ManhattanEdge(Vertex< T > b={}, Vertex< T > e={})
Vertex< T > begin() const
VerticalEdge(T x={}, T y1={}, T y2={})
GLuint GLfloat GLfloat GLfloat GLfloat y1
GLuint GLfloat GLfloat GLfloat x1
GLdouble GLdouble GLdouble GLdouble top
GLboolean GLboolean GLboolean b
bool operator!=(const ManhattanEdge< T > &&lhs, const ManhattanEdge< T > &rhs)
bool isLeftEdge(const VerticalEdge< T > &edge)
bool isVertical(const ManhattanEdge< T > &edge)
bool isTopToBottom(const VerticalEdge< T > &edge)
bool operator==(const ManhattanEdge< T > &lhs, const ManhattanEdge< T > &rhs)
bool isBottomToTop(const VerticalEdge< T > &edge)
bool isLeftToRight(const HorizontalEdge< T > &edge)
bool isHorizontal(const ManhattanEdge< T > &edge)
bool isRightEdge(const VerticalEdge< T > &edge)
std::ostream & operator<<(std::ostream &os, const ManhattanEdge< T > &edge)
bool isRightToLeft(const HorizontalEdge< T > &edge)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...