]>
Commit | Line | Data |
---|---|---|
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 | ||
33 | class AliMpMotifPosition; | |
34 | class AliMpPCB; | |
35 | class AliMpSlat; | |
36 | ||
37 | class 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 |
105 | inline AliMp::StationType AliMpSlatSegmentation::StationType() const | |
106 | { return AliMp::kStation345; } | |
107 | ||
dee1d5f1 | 108 | #endif |