New macro to keep track of timing performances of the segmentation methods (Laurent)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpZone.h
CommitLineData
dee1d5f1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
5f91c9e8 4// $Id$
13985652 5// $MpId: AliMpZone.h,v 1.10 2006/05/24 13:58:21 ivana Exp $
dee1d5f1 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///
13985652 14/// \author David Guez, Ivana Hrivnacova; IPN Orsay
5f91c9e8 15
16#ifndef ALI_MP_ZONE_H
17#define ALI_MP_ZONE_H
18
2a7ea2e6 19#include <TObject.h>
5006ec94 20
2a7ea2e6 21#include "AliMpContainers.h"
5006ec94 22
2a7ea2e6 23#include <TVector2.h>
5006ec94 24#ifdef WITH_ROOT
25#include <TObjArray.h>
26#endif
27
2a7ea2e6 28#ifdef WITH_STL
29#include <vector>
30#endif
5f91c9e8 31
2998a151 32class AliMpSubZone;
5006ec94 33class AliMpVMotif;
5f91c9e8 34
35class AliMpZone : public TObject
36{
37 public:
5006ec94 38#ifdef WITH_STL
f5671fc3 39 /// Sub zone vector type
5006ec94 40 typedef std::vector<AliMpSubZone*> SubZoneVector;
41#endif
42#ifdef WITH_ROOT
f5671fc3 43 /// Sub zone vector type
5006ec94 44 typedef TObjArray SubZoneVector;
45#endif
46
47 public:
5f91c9e8 48 AliMpZone(Int_t id);
49 AliMpZone();
50 virtual ~AliMpZone();
51
52 // methods
53 void AddSubZone(AliMpSubZone* subZone);
54
55 // find methods
56 AliMpSubZone* FindSubZone(AliMpVMotif* motif) const;
57
58 // set methods
59 void SetPadDimensions(const TVector2& padDimensions);
60
61 // access methods
62 UInt_t GetID() const;
63 Int_t GetNofSubZones() const;
64 AliMpSubZone* GetSubZone(Int_t i) const;
65 TVector2 GetPadDimensions() const;
66
67 private:
68 // data members
829425a5 69 UInt_t fID; ///< ID
70 SubZoneVector fSubZones; ///< subzones
71 TVector2 fPadDimensions;///< pad dimensions
5f91c9e8 72
829425a5 73 ClassDef(AliMpZone,1) // Zone
5f91c9e8 74};
75
76// inline functions
77
f5671fc3 78/// Set pad dimensions
5f91c9e8 79inline void AliMpZone::SetPadDimensions(const TVector2& padDimensions)
80{ fPadDimensions = padDimensions; }
81
f5671fc3 82/// Return ID
5f91c9e8 83inline UInt_t AliMpZone::GetID() const
84{ return fID; }
85
f5671fc3 86/// Return pad dimensions
5f91c9e8 87inline TVector2 AliMpZone::GetPadDimensions() const
88{ return fPadDimensions;}
89
90#endif //ALI_MP_ZONE_H