]>
Commit | Line | Data |
---|---|---|
0b936dc0 | 1 | #ifndef ALIMUONCONTOUR_H |
2 | #define ALIMUONCONTOUR_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 AliMUONContour | |
11 | /// \brief 2D contour | |
12 | /// | |
13 | // Author Laurent Aphecetche, Subatech | |
14 | ||
15 | #ifndef ROOT_TNamed | |
16 | # include "TNamed.h" | |
17 | #endif | |
18 | ||
19 | #ifndef ALI_MP_AREA_H | |
20 | # include "AliMpArea.h" | |
21 | #endif | |
22 | ||
23 | class AliMUONPolygon; | |
24 | class TGeoHMatrix; | |
25 | class TObjArray; | |
26 | ||
27 | class AliMUONContour : public TNamed | |
28 | { | |
29 | public: | |
30 | AliMUONContour(const char* name=""); | |
31 | AliMUONContour(const char* name, const AliMpArea& area); | |
32 | AliMUONContour(const AliMUONContour& rhs); | |
33 | AliMUONContour& operator=(const AliMUONContour& rhs); | |
34 | virtual ~AliMUONContour(); | |
35 | ||
36 | AliMpArea Area() const; | |
37 | ||
38 | /// Get a full copy of this object. | |
39 | virtual TObject* Clone(const char* /*newname*/="") const { return new AliMUONContour(*this); } | |
40 | ||
41 | /// Add an offset to all points | |
42 | void Offset(Double_t x, Double_t y); | |
43 | ||
44 | /// Apply a global transformation to all points | |
45 | void Transform(const TGeoHMatrix& matrix); | |
46 | ||
47 | void Add(const AliMUONPolygon& polygon); | |
48 | ||
49 | virtual void Copy(TObject& obj) const; | |
50 | ||
51 | Bool_t IsInside(Double_t x, Double_t y) const; | |
52 | ||
53 | virtual void Print(Option_t* opt="") const; | |
54 | ||
55 | /// Get the number of vertices of this contour | |
56 | Int_t NumberOfVertices() const { return fNofVertices; } | |
57 | ||
58 | Bool_t IsValid() const; | |
59 | ||
60 | /// Get the list of polygons we have | |
61 | const TObjArray* Polygons() const { return fPolygons; } | |
62 | ||
63 | void AssertOrientation(Bool_t autoCorrect=kFALSE); | |
64 | ||
65 | private: | |
66 | TObjArray* fPolygons; ///< the polygons that this contour is made of | |
67 | Double_t fXmin; ///< min x-value | |
68 | Double_t fXmax; ///< max x-value | |
69 | Double_t fYmin; ///< min y-value | |
70 | Double_t fYmax; ///< max y-value | |
71 | Int_t fNofVertices; ///< total number of vertices | |
72 | ||
73 | ClassDef(AliMUONContour,1) // 2D-contour of an object | |
74 | }; | |
75 | ||
76 | #endif |