Update HFE v2 analyses
[u/mrichter/AliRoot.git] / MUON / AliMUONContourMaker.h
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 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   ClassDef(AliMUONContourMaker,1) // Maker/merger of AliMUONContour objects
52 };
53
54 #endif