![]() |
AliRoot Core
3dc7879 (3dc7879)
|
Creator/merger of AliMUONContour objects. More...
#include <AliMUONContourMaker.h>
Public Member Functions | |
AliMUONContourMaker () | |
virtual | ~AliMUONContourMaker () |
AliMUONContour * | CreateContour (const TObjArray &polygons, const char *name=0x0) const |
AliMUONContour * | MergeContour (const TObjArray &contours, const char *name=0x0) const |
Private Member Functions | |
AliMUONContour * | FinalizeContour (const TObjArray &verticals, const TObjArray &horizontals) const |
void | GetYPositions (const TObjArray &polygonVerticalEdges, TArrayD &yPositions) const |
void | GetVerticalEdges (const TObjArray &polygons, TObjArray &polygonVerticalEdges) const |
void | SortPoints (const TObjArray &polygonVerticalEdges, TObjArray &sortedPoints) const |
void | Sweep (const TObjArray &polygonVerticalEdges, TObjArray &contourVerticalEdges) const |
void | VerticalToHorizontal (const TObjArray &verticalEdges, TObjArray &horizontalEdges) const |
Creator/merger of AliMUONContour objects.
Definition at line 27 of file AliMUONContourMaker.h.
AliMUONContourMaker::AliMUONContourMaker | ( | ) |
Maker/merger of contours. Can create contour from a set polygons or merger a set of contours into a single one.
This is based on (one of the) algorithm found in Diane L. Souvaine and Iliana Bjorling-Sachs, Proceedings of the IEEE, Vol. 80, No. 9, September 1992, p. 1449
Note that besides the AliMUON prefix, nothing is really MUON specific in this class...
Default constructor
Definition at line 52 of file AliMUONContourMaker.cxx.
|
virtual |
Destructor
Definition at line 59 of file AliMUONContourMaker.cxx.
AliMUONContour * AliMUONContourMaker::CreateContour | ( | const TObjArray & | polygons, |
const char * | name = 0x0 |
||
) | const |
Create the contour of the polygon array and get back the intermediate verticals and horizontal segments both arrays are arrays of AliMUONSegment objects.
Definition at line 66 of file AliMUONContourMaker.cxx.
Referenced by AliMUONManuContourMaker::CreateMotifContour(), and MergeContour().
|
private |
For a list of vertical and horizontal edges, we build the final contour object.
Definition at line 135 of file AliMUONContourMaker.cxx.
Referenced by CreateContour().
|
private |
From an array of polygons, extract the list of vertical edges. Output array polygonVerticalEdges should be empty before calling.
Definition at line 229 of file AliMUONContourMaker.cxx.
Referenced by CreateContour().
|
private |
Fill the array yPositions with the different y positions found in polygonVerticalEdges
Definition at line 252 of file AliMUONContourMaker.cxx.
Referenced by Sweep().
AliMUONContour * AliMUONContourMaker::MergeContour | ( | const TObjArray & | contours, |
const char * | name = 0x0 |
||
) | const |
Merge all the polygons of all contours into a single contour
Definition at line 298 of file AliMUONContourMaker.cxx.
Referenced by AliMUONContourHandler::GenerateAllContours(), and AliMUONPainterHelper::MergeContours().
|
private |
Sort the point of the vertical edges in ascending order, first on ordinate, then on abcissa, and put them in output vector sortedPoints. Output array sortedPoints should be empty before calling this method.
Definition at line 329 of file AliMUONContourMaker.cxx.
Referenced by VerticalToHorizontal().
|
private |
This is the meat of the algorithm of the contour merging...
Definition at line 352 of file AliMUONContourMaker.cxx.
Referenced by CreateContour().
|
private |
Deduce the set of horizontal edges from the vertical edges Output array horizontalEdges should be empty before calling this method
Definition at line 421 of file AliMUONContourMaker.cxx.
Referenced by CreateContour().