Correct use of ROOT_INCLUDE_DIR
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpSlatSegmentation.h
CommitLineData
dee1d5f1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
4// $Id$
13985652 5// $MpId: AliMpSlatSegmentation.h,v 1.12 2006/05/24 13:58:24 ivana Exp $
dee1d5f1 6
7/// \ingroup slat
8/// \class AliMpSlatSegmentation
9/// \brief Implementation of AliMpVSegmentation for St345 slats.
10///
1964cd2e 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///
13985652 16/// \author Laurent Aphecetche
dee1d5f1 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
33class AliMpMotifPosition;
34class AliMpPCB;
35class AliMpSlat;
36
37class AliMpSlatSegmentation : public AliMpVSegmentation
38{
39 public:
40 AliMpSlatSegmentation();
41af6fb0 41 AliMpSlatSegmentation(const AliMpSlat* slat, Bool_t own = false);
dee1d5f1 42 virtual ~AliMpSlatSegmentation();
43
44 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
264a9c47 45 virtual AliMpVPadIterator* CreateIterator() const;
dee1d5f1 46
264a9c47 47 virtual Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours,
48 Bool_t includeSelf=kFALSE,
49 Bool_t includeVoid=kFALSE) const;
50
1faed5a9 51 const char* GetName() const;
52
026b7442 53 Int_t MaxPadIndexX() const;
54 Int_t MaxPadIndexY() const;
55 Int_t NofPads() const;
1faed5a9 56
168e9c4d 57 virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel,
dee1d5f1 58 Bool_t warning) const;
59
168e9c4d 60 virtual AliMpPad PadByIndices(Int_t ix, Int_t iy,
dee1d5f1 61 Bool_t warning) const;
62
6e97fbb8 63 virtual AliMpPad PadByPosition(Double_t x, Double_t y,
dee1d5f1 64 Bool_t warning) const;
65
85fec35d 66 virtual void Print(Option_t* opt) const;
63bcb3c3 67
dee1d5f1 68 const AliMpSlat* Slat() const;
69
63bcb3c3 70 void GetAllElectronicCardIDs(TArrayI& ecn) const;
71
f3ed9a44 72 virtual AliMp::PlaneType PlaneType() const;
73
74 virtual AliMp::StationType StationType() const;
63bcb3c3 75
6e97fbb8 76 virtual Double_t GetDimensionX() const;
77 virtual Double_t GetDimensionY() const;
63bcb3c3 78
168e9c4d 79 virtual Bool_t HasPadByIndices(Int_t ix, Int_t iy) const;
3635f34f 80
168e9c4d 81 virtual Bool_t HasPadByLocation(Int_t manuId, Int_t manuChannel) const;
3635f34f 82
83 virtual Int_t GetNofElectronicCards() const;
84
6e97fbb8 85 virtual Double_t GetPositionX() const;
86 virtual Double_t GetPositionY() const;
3635f34f 87
88 virtual Bool_t HasMotifPosition(Int_t manuId) const;
89
90 virtual AliMpMotifPosition* MotifPosition(Int_t manuId) const;
91
13e7956b 92 private:
71a2d3aa 93 /// Not implemented
884a73f1 94 AliMpSlatSegmentation(const AliMpSlatSegmentation& right);
71a2d3aa 95 /// Not implemented
884a73f1 96 AliMpSlatSegmentation& operator = (const AliMpSlatSegmentation& right);
13e7956b 97
41af6fb0 98 const AliMpSlat* fkSlat; ///< Slat
99 Bool_t fIsOwner;///< Slat ownership
dee1d5f1 100
41af6fb0 101 ClassDef(AliMpSlatSegmentation,2) // A slat for stations 3,4,5
dee1d5f1 102};
103
f3ed9a44 104/// Return station type
105inline AliMp::StationType AliMpSlatSegmentation::StationType() const
106{ return AliMp::kStation345; }
107
dee1d5f1 108#endif