]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpSlatSegmentation.h
- Updated for modifs in AliMpFiles
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSlatSegmentation.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: AliMpSlatSegmentation.h,v 1.4 2005/09/19 19:01:09 ivana Exp $
6
7 /// \ingroup slat
8 /// \class AliMpSlatSegmentation
9 /// \brief Implementation of AliMpVSegmentation for St345 slats.
10 /// 
11 /// Note that integer indices start at (0,0) on the bottom-left of the slat,
12 /// while floating point positions are relative to the center of the slat
13 /// (where the slat is to be understood as N PCBs of fixed size = 40cm
14 /// even if not all pads of a given PCBs are actually physically there).
15 ///
16 /// Author: Laurent Aphecetche
17
18 #ifndef ALI_MP_SLAT_SEGMENTATION_H
19 #define ALI_MP_SLAT_SEGMENTATION_H
20
21 #ifndef ROOT_TString
22 #include "TString.h"
23 #endif
24
25 #ifndef ALI_MP_V_SEGMENTATION_H
26 #include "AliMpVSegmentation.h"
27 #endif
28
29 #ifndef ALI_MP_PAD_H
30 #include "AliMpPad.h"
31 #endif
32
33 class AliMpMotifPosition;
34 class AliMpPCB;
35 class AliMpSlat;
36
37 class AliMpSlatSegmentation : public AliMpVSegmentation
38 {
39  public:
40   AliMpSlatSegmentation();
41   AliMpSlatSegmentation(const AliMpSlat* slat);
42   virtual ~AliMpSlatSegmentation();
43
44   virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
45
46   const char* GetName() const;
47   
48   Bool_t HasPad(const AliMpIntPair& indices) const;
49
50   Int_t MaxPadIndexX();
51   Int_t MaxPadIndexY();
52   
53   virtual AliMpPad PadByLocation(const AliMpIntPair& location, 
54                          Bool_t warning) const;
55
56   virtual AliMpPad PadByIndices(const AliMpIntPair& indices,  
57                         Bool_t warning) const;
58
59   virtual AliMpPad PadByPosition(const TVector2& position,
60                          Bool_t warning) const;
61
62   const AliMpSlat* Slat() const;
63   
64  private:
65   const AliMpSlat* fkSlat; // Slat
66
67   ClassDef(AliMpSlatSegmentation,1) // A slat for stations 3,4,5
68 };
69
70 #endif