AliRoot Core  da88d91 (da88d91)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMpPCB.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: AliMpPCB.h,v 1.9 2006/05/24 13:58:24 ivana Exp $
6 
11 // Author: Laurent Aphecetche
12 
13 #ifndef ALIMPPCB_H
14 #define ALIMPPCB_H
15 
16 #ifndef ALI_MP_VPAD_ITERATOR_H
17 # include "AliMpVPadIterator.h"
18 #endif
19 
20 #ifndef ALI_MP_AREA_H
21 # include "AliMpArea.h"
22 #endif
23 
24 
25 #ifndef ROOT_TObject
26 # include "TObject.h"
27 #endif
28 
29 #ifndef ROOT_TString
30 # include "TString.h"
31 #endif
32 
33 #ifndef ROOT_TArraI
34 # include "TArrayI.h"
35 #endif
36 
37 #ifndef ROOT_TObjArray
38 # include "TObjArray.h"
39 #endif
40 
41 class AliMpSlatMotifMap;
42 class AliMpMotifPosition;
43 class AliMpMotifType;
44 class AliMpMotifSpecial;
45 
46 class AliMpPCB : public TObject
47 {
48  public:
49 
50  AliMpPCB();
54  AliMpPCB(AliMpSlatMotifMap* motifMap,
55  const char* id, Double_t padSizeX, Double_t padSizeY,
56  Double_t enveloppeSizeX, Double_t enveloppeSizeY);
57 
58  AliMpPCB(const char* id, AliMpMotifSpecial* ms);
59 
60  AliMpPCB(const AliMpPCB& o);
61  AliMpPCB& operator=(const AliMpPCB& o);
62 
63  virtual ~AliMpPCB();
64 
65  TObject* Clone(const char* newname="") const;
66 
71  AliMpPCB* Clone(const TArrayI& manuids,
72  Int_t ixOffset, Double_t xOffset) const;
73 
74  void Copy(TObject& o) const;
75 
83  void Add(AliMpMotifType* motifType, Int_t ix, Int_t iy);
84 
85  AliMpArea Area() const;
86 
87  void Print(Option_t* option = "") const;
88 
89  Bool_t HasMotifPositionID(Int_t manuId) const;
90 
91  Double_t ActiveDX() const;
92  Double_t ActiveDY() const;
93 
94  Double_t DX() const;
95  Double_t DY() const;
96 
97  Double_t X() const;
98  Double_t Y() const;
99 
100  Double_t Xmin() const;
101  Double_t Xmax() const;
102 
103  Double_t ActiveXmin() const;
104  Double_t ActiveXmax() const;
105 
106  Double_t Ymin() const;
107  Double_t Ymax() const;
108 
109  Double_t PadSizeX() const;
110  Double_t PadSizeY() const;
111 
115  AliMpMotifPosition* GetMotifPosition(Int_t i) const;
116 
118  AliMpMotifPosition* FindMotifPosition(Int_t ix, Int_t iy) const;
119 
121  AliMpMotifPosition* FindMotifPosition(Double_t x, Double_t y) const;
122 
124  Int_t GetSize() const;
125 
126  Int_t GetNofPadsX() const;
127  Int_t GetNofPadsY() const;
128 
129  Int_t Ixmin() const;
130  Int_t Ixmax() const;
131 
132  Int_t Iymin() const;
133  Int_t Iymax() const;
134 
135  const char* GetID() const;
136 
138  Int_t NofPads() const { return fNofPads; }
139 
141  AliMpSlatMotifMap* MotifMap() const { return fMotifMap; }
142 
143  void Save() const;
144 
145  private:
146  TString fId;
147  Double_t fPadSizeX;
148  Double_t fPadSizeY;
149  Double_t fEnveloppeSizeX;
150  Double_t fEnveloppeSizeY;
151  Double_t fXoffset;
152  Double_t fActiveXmin;
153  Double_t fActiveXmax;
154  Int_t fIxmin;
155  Int_t fIxmax;
156  Int_t fIymin;
157  Int_t fIymax;
159  Int_t fNofPads;
161 
162  ClassDef(AliMpPCB,3) // A PCB for Stations 3,4,5
163 };
164 
165 #endif
AliMpSlatMotifMap * MotifMap() const
Return the motif map.
Definition: AliMpPCB.h:141
void Print(Option_t *option="") const
Definition: AliMpPCB.cxx:681
Double_t DX() const
Definition: AliMpPCB.cxx:454
Bool_t HasMotifPositionID(Int_t manuId) const
Definition: AliMpPCB.cxx:599
Int_t Ixmin() const
Definition: AliMpPCB.cxx:615
void Copy(TObject &o) const
Definition: AliMpPCB.cxx:398
TString fId
PCB name.
Definition: AliMpPCB.h:146
#define TObjArray
Double_t ActiveDY() const
Definition: AliMpPCB.cxx:469
A special motif with varying pad dimensions.
AliMpSlatMotifMap * fMotifMap
to keep track of things to avoid duplications of motif and motiftypes, and get proper deletion ...
Definition: AliMpPCB.h:160
Int_t fNofPads
number of pads in this PCB
Definition: AliMpPCB.h:159
Int_t GetNofPadsX() const
Definition: AliMpPCB.cxx:566
Int_t Ixmax() const
Definition: AliMpPCB.cxx:626
AliMpPCB & operator=(const AliMpPCB &o)
Definition: AliMpPCB.cxx:186
Double_t X() const
Definition: AliMpPCB.cxx:756
A PCB for station 3,4 or 5.
Definition: AliMpPCB.h:46
AliMpMotifPosition * FindMotifPosition(Int_t ix, Int_t iy) const
Returns the motifPosition which contains the pad at (ix,iy).
Definition: AliMpPCB.cxx:495
AliMpArea Area() const
Definition: AliMpPCB.cxx:319
Double_t Ymin() const
Definition: AliMpPCB.cxx:800
Int_t GetSize() const
The number of motifs, aka manus.
Definition: AliMpPCB.cxx:588
virtual ~AliMpPCB()
Definition: AliMpPCB.cxx:197
A rectangle area positioned in plane..
Definition: AliMpArea.h:20
Double_t PadSizeX() const
Definition: AliMpPCB.cxx:659
Double_t Xmin() const
Definition: AliMpPCB.cxx:767
Int_t GetNofPadsY() const
Definition: AliMpPCB.cxx:577
A container to keep track of allocated motifs and motifTypes for slats (both St345 and trigger ones)...
Double_t ActiveDX() const
Definition: AliMpPCB.cxx:443
Int_t fIxmax
max pad index in x
Definition: AliMpPCB.h:155
Int_t Iymin() const
Definition: AliMpPCB.cxx:637
Double_t fEnveloppeSizeY
max y-size of this PCB (cm)
Definition: AliMpPCB.h:150
Int_t fIxmin
min pad index in x
Definition: AliMpPCB.h:154
AliMpPCB()
Definition: AliMpPCB.cxx:62
A placed motif.
Double_t fPadSizeY
y-size of this PCB's pads (cm)
Definition: AliMpPCB.h:148
void Add(AliMpMotifType *motifType, Int_t ix, Int_t iy)
Definition: AliMpPCB.cxx:231
const char * GetID() const
Definition: AliMpPCB.cxx:542
Double_t ActiveXmin() const
Definition: AliMpPCB.cxx:207
void Save() const
Definition: AliMpPCB.cxx:706
Double_t ActiveXmax() const
Definition: AliMpPCB.cxx:219
Double_t fPadSizeX
x-size of this PCB's pads (cm)
Definition: AliMpPCB.h:147
Int_t fIymax
max pad index in y
Definition: AliMpPCB.h:157
AliMpMotifPosition * GetMotifPosition(Int_t i) const
Definition: AliMpPCB.cxx:553
TObjArray fMotifPositions
array of motifs
Definition: AliMpPCB.h:158
Int_t fIymin
min pad index in y
Definition: AliMpPCB.h:156
Double_t DY() const
Definition: AliMpPCB.cxx:480
Double_t fXoffset
x-offset = x of first pad of this PCB (cm)
Definition: AliMpPCB.h:151
TObject * Clone(const char *newname="") const
Definition: AliMpPCB.cxx:328
Int_t Iymax() const
Definition: AliMpPCB.cxx:648
Double_t Xmax() const
Definition: AliMpPCB.cxx:778
Double_t Y() const
Definition: AliMpPCB.cxx:789
Double_t fActiveXmax
max x of an actual pad in this PCB (cm)
Definition: AliMpPCB.h:153
Double_t fActiveXmin
min x of an actual pad in this PCB (cm)
Definition: AliMpPCB.h:152
Int_t NofPads() const
Return the number of pads in this PCB.
Definition: AliMpPCB.h:138
Double_t PadSizeY() const
Definition: AliMpPCB.cxx:670
Double_t fEnveloppeSizeX
max x-size of this PCB (cm)
Definition: AliMpPCB.h:149
Class that defines the motif properties.
Double_t Ymax() const
Definition: AliMpPCB.cxx:811