PMD module
[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.10 2006/05/24 13:58:21 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 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
15
16 #ifndef ALI_MP_ZONE_H
17 #define ALI_MP_ZONE_H
18
19 #include <TObject.h>
20 #include <TObjArray.h>
21
22 class AliMpSubZone;
23 class AliMpVMotif;
24
25 class AliMpZone : public TObject
26 {
27   public:
28     AliMpZone(Int_t id);
29     AliMpZone();
30     virtual ~AliMpZone();
31   
32     // methods
33     void AddSubZone(AliMpSubZone* subZone);
34
35     // find methods
36     AliMpSubZone* FindSubZone(const AliMpVMotif* motif) const;
37     
38     // set methods
39     void SetPadDimensions(Double_t dx, Double_t dy);
40     
41     // access methods
42     UInt_t    GetID() const;
43     Int_t     GetNofSubZones() const;
44     AliMpSubZone*  GetSubZone(Int_t i) const;
45
46     Double_t  GetPadDimensionX() const;
47     Double_t  GetPadDimensionY() const;
48
49   private:
50     // data members
51     UInt_t        fID;           ///< ID
52     TObjArray     fSubZones;     ///< subzones
53     Double_t      fPadDimensionX;///< pad x dimension
54     Double_t      fPadDimensionY;///< pad y dimension
55
56   ClassDef(AliMpZone,2)  // Zone
57 };
58
59 // inline functions
60
61 /// Return ID
62 inline  UInt_t  AliMpZone::GetID() const 
63 { return fID; }
64
65 /// Return pad x dimensions
66 inline  Double_t AliMpZone::GetPadDimensionX() const 
67 { return fPadDimensionX; }
68
69 /// Return pad y dimensions
70 inline  Double_t AliMpZone::GetPadDimensionY() const 
71 { return fPadDimensionY; }
72
73 #endif //ALI_MP_ZONE_H