Code for MUON Station1 (I.Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpZone.cxx
1 // $Id$
2 // Category: sector
3 //
4 // Class AliMpZone
5 // ---------------
6 // Class describing a zone composed of the zone segments.
7 // The zone contains pads of the same dimensions.
8 //
9 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
10
11 #include "AliMpZone.h"
12
13 ClassImp(AliMpZone)
14
15 //_____________________________________________________________________________
16 AliMpZone::AliMpZone(Int_t id) 
17   : TObject(),
18     fID(id),
19     fPadDimensions(TVector2())
20 {
21 //
22 }
23
24 //_____________________________________________________________________________
25 AliMpZone::AliMpZone() 
26   : TObject(),
27     fID(0),
28     fPadDimensions(TVector2())
29 {
30 //
31 }
32
33 //_____________________________________________________________________________
34 AliMpZone::~AliMpZone() {
35 //
36
37   for (Int_t i=0; i<GetNofSubZones(); i++)
38     delete fSubZones[i];  
39 }
40
41 //
42 // public methods
43 //
44
45 //_____________________________________________________________________________
46 void AliMpZone::AddSubZone(AliMpSubZone* subZone)
47 {
48 // Adds row segment.
49 // ---
50
51   fSubZones.push_back(subZone);
52 }  
53   
54 //_____________________________________________________________________________
55 AliMpSubZone* AliMpZone::FindSubZone(AliMpVMotif* motif) const
56 {
57 // Finds a subzone with a specified motif;
58 // returns 0 if not found.
59 // ---
60
61   for (Int_t i=0; i<GetNofSubZones(); i++) {
62     AliMpSubZone* subZone = GetSubZone(i);
63     if (subZone->GetMotif() == motif) return subZone;
64   }
65   
66   return 0;  
67 }
68
69 //_____________________________________________________________________________
70 Int_t AliMpZone::GetNofSubZones() const 
71 {
72 // Returns number of row segments.
73
74   return fSubZones.size();
75 }  
76
77 //_____________________________________________________________________________
78 AliMpSubZone* AliMpZone::GetSubZone(Int_t i) const 
79 {
80   if (i<0 || i>=GetNofSubZones()) {
81     Warning("GetSubZone", "Index outside range");
82     return 0;
83   }
84   
85   return fSubZones[i];  
86 }