]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpZone.cxx
Updates (N. Bastid)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpZone.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 // $Id$
17 // $MpId: AliMpZone.cxx,v 1.7 2006/05/24 13:58:46 ivana Exp $
18 // Category: sector
19 //
20 // Class AliMpZone
21 // ---------------
22 // Class describing a zone composed of the zone segments.
23 // The zone contains pads of the same dimensions.
24 // Included in AliRoot: 2003/05/02
25 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
26
27 #include "AliMpZone.h"
28 #include "AliMpSubZone.h"
29
30 /// \cond CLASSIMP
31 ClassImp(AliMpZone)
32 /// \endcond
33
34 //_____________________________________________________________________________
35 AliMpZone::AliMpZone(Int_t id) 
36   : TObject(),
37     fID(id),
38     fPadDimensions(TVector2())
39 {
40 /// Standard constructor
41 }
42
43 //_____________________________________________________________________________
44 AliMpZone::AliMpZone() 
45   : TObject(),
46     fID(0),
47     fPadDimensions(TVector2())
48 {
49 /// Default constructor
50 }
51
52 //_____________________________________________________________________________
53 AliMpZone::~AliMpZone() 
54 {
55 /// Destructor
56
57   for (Int_t i=0; i<GetNofSubZones(); i++)
58     delete fSubZones[i];  
59 }
60
61 //
62 // public methods
63 //
64
65 //_____________________________________________________________________________
66 void AliMpZone::AddSubZone(AliMpSubZone* subZone)
67 {
68 /// Add row segment.
69
70 #ifdef WITH_STL
71   fSubZones.push_back(subZone);
72 #endif
73
74 #ifdef WITH_ROOT
75   fSubZones.Add(subZone);
76 #endif
77 }  
78   
79 //_____________________________________________________________________________
80 AliMpSubZone* AliMpZone::FindSubZone(AliMpVMotif* motif) const
81 {
82 /// Find a subzone with a specified motif;
83 /// return 0 if not found.
84
85   for (Int_t i=0; i<GetNofSubZones(); i++) {
86     AliMpSubZone* subZone = GetSubZone(i);
87     if (subZone->GetMotif() == motif) return subZone;
88   }
89   
90   return 0;  
91 }
92
93 //_____________________________________________________________________________
94 Int_t AliMpZone::GetNofSubZones() const 
95 {
96 /// Return number of row segments.
97
98 #ifdef WITH_STL
99   return fSubZones.size();
100 #endif
101
102 #ifdef WITH_ROOT
103   return fSubZones.GetEntriesFast();
104 #endif
105 }  
106
107 //_____________________________________________________________________________
108 AliMpSubZone* AliMpZone::GetSubZone(Int_t i) const 
109 {
110 /// Return i-th sub zone.
111
112   if (i<0 || i>=GetNofSubZones()) {
113     Warning("GetSubZone", "Index outside range");
114     return 0;
115   }
116   
117 #ifdef WITH_STL
118   return fSubZones[i];  
119 #endif
120
121 #ifdef WITH_ROOT
122   return (AliMpSubZone*)fSubZones[i];  
123 #endif
124 }