AliRoot Core  v5-06-15 (45dab64)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMpSlat.h
Go to the documentation of this file.
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: AliMpSlat.h,v 1.8 2006/05/24 13:58:24 ivana Exp $
6 
11 // Author: Laurent Aphecetche
12 
13 #ifndef ALI_MP_SLAT_H
14 #define ALI_MP_SLAT_H
15 
16 #ifndef ALI_MP_PAD_H
17 # include "AliMpPad.h"
18 #endif
19 
20 #ifndef ALI_MP_V_SEGMENTATION_H
21 # include "AliMpVSegmentation.h"
22 #endif
23 
24 #ifndef ALI_MP_PLANE_TYPE_H
25 # include "AliMpPlaneType.h"
26 #endif
27 
28 #ifndef ALI_MP_EX_MAP_H
29  #include "AliMpExMap.h"
30 #endif
31 
32 #ifndef ROOT_TObject
33  #include <TObject.h>
34 #endif
35 
36 #ifndef ROOT_TString
37 # include "TString.h"
38 #endif
39 
40 #ifndef ROOT_TObjArray
41 # include "TObjArray.h"
42 #endif
43 
44 class TArrayI;
45 
46 
47 class AliMpMotifPosition;
48 class AliMpPCB;
49 class TArrayI;
50 
51 class AliMpSlat : public TObject
52 {
53  public:
54 
55  AliMpSlat(TRootIOCtor* ioCtor);
56  AliMpSlat(const char* id, AliMp::PlaneType bendingOrNonBending);
57  virtual ~AliMpSlat();
58 
60  Double_t GetPositionX() const { return fPositionX; }
62  Double_t GetPositionY() const { return fPositionY; }
63 
64  const char* GetName() const;
65 
66  const char* GetID() const;
67 
68  void Add(const AliMpPCB& pcbType, const TArrayI& manuList);
69 
70  Double_t DX() const;
71  Double_t DY() const;
72 
74  AliMpPCB* FindPCB(Int_t ix) const;
75 
77  Int_t FindPCBIndex(Int_t ix) const;
78 
80  Int_t FindPCBIndexByMotifPositionID(Int_t manuId) const;
81 
83  AliMpPCB* FindPCB(Double_t x, Double_t y) const;
84 
86  Int_t FindPCBIndex(Double_t x, Double_t y) const;
87 
89  AliMpPCB* GetPCB(Int_t i) const;
90 
92  AliMpMotifPosition* FindMotifPosition(Double_t x, Double_t y) const;
93 
95  AliMpMotifPosition* FindMotifPosition(Int_t manuid) const;
96 
98  AliMpMotifPosition* FindMotifPosition(Int_t ix, Int_t iy) const;
99 
101  void GetAllMotifPositionsIDs(TArrayI& ecn) const;
102 
107  Int_t GetMaxNofPadsY() const;
108 
112  Int_t GetMaxPadIndexX() const;
113 
115  Int_t GetNofElectronicCards() const;
116 
118  Int_t GetNofPadsX() const;
119 
121  Int_t GetSize() const;
122 
123  void Print(Option_t* option="") const;
124 
128  void ForcePosition(Double_t x, Double_t y);
129 
132 
134  Int_t NofPads() const { return fNofPads; }
135 
136  private:
138  AliMpSlat();
140  AliMpSlat(const AliMpSlat& rhs);
142  AliMpSlat& operator=(const AliMpSlat& rhs);
143 
144  TString fId;
146  Double_t fDX;
147  Double_t fDY;
148  Int_t fNofPadsX;
149  Int_t fMaxNofPadsY;
152  Double_t fPositionX;
153  Double_t fPositionY;
154  Int_t fNofPads;
155 
156  ClassDef(AliMpSlat,3) // A slat for stations 3,4,5
157 };
158 
159 #endif
TObjArray fPCBs
array of AliMpPCB*
Definition: AliMpSlat.h:151
AliMpPCB * FindPCB(Int_t ix) const
Find the PCB containing the pad at location (ix,any iy).
Definition: AliMpSlat.cxx:228
void GetAllMotifPositionsIDs(TArrayI &ecn) const
Return the ids of the electronic cards (either manu or local board).
Definition: AliMpSlat.cxx:335
#define TObjArray
Double_t GetPositionY() const
Return y position.
Definition: AliMpSlat.h:62
AliMp::PlaneType fPlaneType
Whether it's bending or non-bending plane.
Definition: AliMpSlat.h:145
A PCB for station 3,4 or 5.
Definition: AliMpPCB.h:46
void Add(const AliMpPCB &pcbType, const TArrayI &manuList)
Definition: AliMpSlat.cxx:112
Int_t fNofPadsX
Actual number of pads in x direction.
Definition: AliMpSlat.h:148
Int_t FindPCBIndexByMotifPositionID(Int_t manuId) const
Find the index of the PCB containing a given manu.
Definition: AliMpSlat.cxx:308
Double_t fPositionX
x Position of the slat center.
Definition: AliMpSlat.h:152
A slat (building block of stations 3, 4 and 5)
Definition: AliMpSlat.h:51
Double_t fPositionY
y Position of the slat center.
Definition: AliMpSlat.h:153
AliMpMotifPosition * FindMotifPosition(Double_t x, Double_t y) const
Returns the MotifPosition containing location (x,y).
Definition: AliMpSlat.cxx:210
void ForcePosition(Double_t x, Double_t y)
Definition: AliMpSlat.cxx:321
Double_t DY() const
Definition: AliMpSlat.cxx:171
Int_t fNofPads
number of pads in this slat
Definition: AliMpSlat.h:154
void Print(Option_t *option="") const
Definition: AliMpSlat.cxx:456
virtual ~AliMpSlat()
Definition: AliMpSlat.cxx:100
A placed motif.
Double_t DX() const
Definition: AliMpSlat.cxx:161
AliMpPCB * GetPCB(Int_t i) const
Returns the i-th PCB of this slat.
Definition: AliMpSlat.cxx:435
const char * GetName() const
Definition: AliMpSlat.cxx:391
Int_t GetNofPadsX() const
Returns the number of pads in the x-direction contained in this slat.
Definition: AliMpSlat.cxx:425
Int_t fMaxNofPadsY
Maximum number of pads in y direction.
Definition: AliMpSlat.h:149
Double_t fDY
Half-size in Y (cm)
Definition: AliMpSlat.h:147
Int_t GetMaxNofPadsY() const
Definition: AliMpSlat.cxx:366
Double_t fDX
Half-size in X (cm)
Definition: AliMpSlat.h:146
const char * GetID() const
Definition: AliMpSlat.cxx:356
Int_t FindPCBIndex(Int_t ix) const
Find the index of the PCB containing the pad at location ix.
Definition: AliMpSlat.cxx:246
Double_t GetPositionX() const
Return x position.
Definition: AliMpSlat.h:60
AliMpSlat()
Not implemented.
Int_t GetMaxPadIndexX() const
Definition: AliMpSlat.cxx:376
Int_t NofPads() const
Return the number of pads in this slat.
Definition: AliMpSlat.h:134
AliMp::PlaneType PlaneType() const
Return the plane type.
Definition: AliMpSlat.h:131
TString fId
The name of this slat, e.g. 112233N.
Definition: AliMpSlat.h:144
AliMpExMap fManuMap
map of int to AliMpMotifPosition*
Definition: AliMpSlat.h:150
AliMpSlat & operator=(const AliMpSlat &rhs)
Not implemented.
Int_t GetNofElectronicCards() const
Return the number of electronic cards (either manu or local board).
Definition: AliMpSlat.cxx:415
Int_t GetSize() const
Returns the number of PCBs of this slat.
Definition: AliMpSlat.cxx:446
Helper class making Root persistent TExMap.
Definition: AliMpExMap.h:28