Line data Source code
1 : #ifndef ALIMUONCONTOURMAKER_H
2 : #define ALIMUONCONTOURMAKER_H
3 :
4 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 : * See cxx source for full Copyright notice */
6 :
7 : // $Id$
8 :
9 : /// \ingroup geometry
10 : /// \class AliMUONContourMaker
11 : /// \brief Creator/merger of AliMUONContour objects
12 : ///
13 : // Author Laurent Aphecetche, Subatech
14 :
15 : #ifndef ROOT_TObject
16 : # include "TObject.h"
17 : #endif
18 :
19 : #ifndef ROOT_TMap
20 : #include "TMap.h"
21 : #endif
22 :
23 : class AliMUONContour;
24 : class TObjArray;
25 : class TArrayD;
26 :
27 0 : class AliMUONContourMaker : public TObject
28 : {
29 : public:
30 : AliMUONContourMaker();
31 : virtual ~AliMUONContourMaker();
32 :
33 : AliMUONContour* CreateContour(const TObjArray& polygons, const char* name=0x0) const;
34 :
35 : AliMUONContour* MergeContour(const TObjArray& contours, const char* name=0x0) const;
36 :
37 : private:
38 :
39 : AliMUONContour* FinalizeContour(const TObjArray& verticals, const TObjArray& horizontals) const;
40 :
41 : void GetYPositions(const TObjArray& polygonVerticalEdges, TArrayD& yPositions) const;
42 :
43 : void GetVerticalEdges(const TObjArray& polygons, TObjArray& polygonVerticalEdges) const;
44 :
45 : void SortPoints(const TObjArray& polygonVerticalEdges, TObjArray& sortedPoints) const;
46 :
47 : void Sweep(const TObjArray& polygonVerticalEdges, TObjArray& contourVerticalEdges) const;
48 :
49 : void VerticalToHorizontal(const TObjArray& verticalEdges, TObjArray& horizontalEdges) const;
50 :
51 12 : ClassDef(AliMUONContourMaker,1) // Maker/merger of AliMUONContour objects
52 : };
53 :
54 : #endif
|