]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpZone.h
Moving kNoAliases setting in Process() to the right place
[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
21 #include "AliMpContainers.h"
22
23 #include <TVector2.h>
24 #ifdef WITH_ROOT
25 #include <TObjArray.h>
26 #endif
27
28 #ifdef WITH_STL
29 #include <vector>
30 #endif
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