AliRoot Core  3dc7879 (3dc7879)
AliMUONContourMaker Class Reference

Creator/merger of AliMUONContour objects. More...

#include <AliMUONContourMaker.h>

Inheritance diagram for AliMUONContourMaker:

Public Member Functions

 AliMUONContourMaker ()
 
virtual ~AliMUONContourMaker ()
 
AliMUONContourCreateContour (const TObjArray &polygons, const char *name=0x0) const
 
AliMUONContourMergeContour (const TObjArray &contours, const char *name=0x0) const
 

Private Member Functions

AliMUONContourFinalizeContour (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
 

Detailed Description

Creator/merger of AliMUONContour objects.

Definition at line 27 of file AliMUONContourMaker.h.

Constructor & Destructor Documentation

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...

Author
Laurent Aphecetche, Subatech

Default constructor

Definition at line 52 of file AliMUONContourMaker.cxx.

AliMUONContourMaker::~AliMUONContourMaker ( )
virtual

Destructor

Definition at line 59 of file AliMUONContourMaker.cxx.

Member Function Documentation

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().

AliMUONContour * AliMUONContourMaker::FinalizeContour ( const TObjArray verticals,
const TObjArray horizontals 
) const
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().

void AliMUONContourMaker::GetVerticalEdges ( const TObjArray polygons,
TObjArray polygonVerticalEdges 
) const
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().

void AliMUONContourMaker::GetYPositions ( const TObjArray polygonVerticalEdges,
TArrayD &  yPositions 
) const
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().

void AliMUONContourMaker::SortPoints ( const TObjArray polygonVerticalEdges,
TObjArray sortedPoints 
) const
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().

void AliMUONContourMaker::Sweep ( const TObjArray polygonVerticalEdges,
TObjArray contourVerticalEdges 
) const
private

This is the meat of the algorithm of the contour merging...

Definition at line 352 of file AliMUONContourMaker.cxx.

Referenced by CreateContour().

void AliMUONContourMaker::VerticalToHorizontal ( const TObjArray verticalEdges,
TObjArray horizontalEdges 
) const
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().


The documentation for this class was generated from the following files: