e1f8999bba2cd12a7e9524e4519828ced1e6c784
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpZone.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 // $MpId: AliMpZone.h,v 1.7 2005/09/26 16:12:11 ivana Exp $
6
7 /// \ingroup sector
8 /// \class AliMpZone
9 /// \brief A region of pads of the same dimensions composed of subzones.
10 ///
11 /// The zone contains pads of the same dimensions,
12 /// it is composed of the subzones.
13 ///
14 /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
15
16 #ifndef ALI_MP_ZONE_H
17 #define ALI_MP_ZONE_H
18
19 #include "AliMpContainers.h"
20
21 #ifdef WITH_STL
22 #include <vector>
23 #endif
24
25 #ifdef WITH_ROOT
26 #include <TObjArray.h>
27 #endif
28
29 #include <TObject.h>
30 #include <TVector2.h>
31
32 class AliMpSubZone;
33 class AliMpVMotif;
34
35 class AliMpZone : public TObject
36 {
37   public:
38 #ifdef WITH_STL
39     typedef std::vector<AliMpSubZone*>  SubZoneVector;
40 #endif
41 #ifdef WITH_ROOT
42     typedef TObjArray  SubZoneVector;
43 #endif
44
45   public:
46     AliMpZone(Int_t id);
47     AliMpZone();
48     virtual ~AliMpZone();
49   
50     // methods
51     void AddSubZone(AliMpSubZone* subZone);
52
53     // find methods
54     AliMpSubZone* FindSubZone(AliMpVMotif* motif) const;
55     
56     // set methods
57     void SetPadDimensions(const TVector2& padDimensions);
58     
59     // access methods
60     UInt_t    GetID() const;
61     Int_t     GetNofSubZones() const;
62     AliMpSubZone*  GetSubZone(Int_t i) const;
63     TVector2  GetPadDimensions() const;
64
65   private:
66     // data members
67     UInt_t        fID;           // ID
68     SubZoneVector fSubZones;     // subzones
69     TVector2      fPadDimensions;// pad dimensions
70
71   ClassDef(AliMpZone,1)  //Zone
72 };
73
74 // inline functions
75
76 inline  void AliMpZone::SetPadDimensions(const TVector2& padDimensions)
77 { fPadDimensions = padDimensions; }
78
79 inline  UInt_t  AliMpZone::GetID() const 
80 { return fID; }
81
82 inline  TVector2  AliMpZone::GetPadDimensions() const 
83 { return fPadDimensions;}
84
85 #endif //ALI_MP_ZONE_H