MUON + CheckCompiler
[u/mrichter/AliRoot.git] / MUON / MUONgraphics / AliMUONContourMaker.h
CommitLineData
0b936dc0 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
23class AliMUONContour;
24class TObjArray;
25class TArrayD;
26
27class AliMUONContourMaker : public TObject
28{
29public:
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
37private:
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