X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=MUON%2Fmapping%2FAliMpPCB.h;h=ec095543000be30013dd39be080feb1d8e6483f6;hp=c7e6a88f641b7de2f7971a0fec56f4740f63524e;hb=829425a512355433c2b59d05ddb13e541094c2ea;hpb=dee1d5f18d249b20534cefbbba1f0a292b1c9a5d diff --git a/MUON/mapping/AliMpPCB.h b/MUON/mapping/AliMpPCB.h index c7e6a88f641..ec095543000 100644 --- a/MUON/mapping/AliMpPCB.h +++ b/MUON/mapping/AliMpPCB.h @@ -2,7 +2,7 @@ * See cxx source for full Copyright notice */ // $Id$ -// $MpId: AliMpPCB.h,v 1.4 2005/09/19 19:01:09 ivana Exp $ +// $MpId: AliMpPCB.h,v 1.8 2006/05/23 13:07:47 ivana Exp $ /// \ingroup slat /// \class AliMpPCB @@ -37,6 +37,7 @@ class AliMpMotifPosition; class AliMpMotifType; +class AliMpMotifSpecial; class AliMpPCB : public TObject { @@ -50,18 +51,15 @@ class AliMpPCB : public TObject AliMpPCB(); /** Ctor. The sizes are given in mm. - enveloppe is due to the fact that not all PCBs are "full" of pads, - e.g. the rounded or short ones miss some pads, but the enveloppe - is a virtual size that should be constant across the slats, - and is 400x400 mm. - It's a usefull notion to compute e.g. slat center in a uniform way, - considering that a slat is N PCBs, of the same "virtual" size, that of - the enveloppe. + See full doc for the meaning of enveloppe parameters. */ AliMpPCB(const char* id, Double_t padSizeX, Double_t padSizeY, Double_t enveloppeSizeX, Double_t enveloppeSizeY); - AliMpPCB(const AliMpPCB&); - AliMpPCB& operator=(const AliMpPCB&); + + AliMpPCB(const char* id, AliMpMotifSpecial* ms); + + AliMpPCB(const AliMpPCB& o); + AliMpPCB& operator=(const AliMpPCB& o); virtual ~AliMpPCB(); @@ -74,11 +72,15 @@ class AliMpPCB : public TObject AliMpPCB* Clone(const TArrayI& manuids, Int_t ixOffset, Double_t xOffset) const; - void Copy(TObject&) const; + void Copy(TObject& o) const; - /** Add a motif to this PCB. (ix,iy) are the coordinates of the lower-left - of the motif, in pad-units, starting at 0,0 on the lower-left of the PCB. - */ + /** Add a motif to this PCB. (ix,iy) are the coordinates of one corner + of the motif, in pad-units. Which corner depends on the sign(s) of (ix,iy): + (ix>0,iy>0) : bottom-left corner + (ix<0,iy>0) : bottom-right corner + (ix<0,iy<0) : top-right corner + (ix>0,iy<0) : top-left corner. + */ void Add(AliMpMotifType* motifType, Int_t ix, Int_t iy); void Print(Option_t* option = "") const; @@ -123,29 +125,35 @@ class AliMpPCB : public TObject Int_t Ixmin() const; Int_t Ixmax() const; - + + Int_t Iymin() const; + Int_t Iymax() const; + const char* GetID() const; + Int_t NofPads() const { return fNofPads; } + private: - TString fId; - Double_t fPadSizeX; - Double_t fPadSizeY; - Double_t fEnveloppeSizeX; - Double_t fEnveloppeSizeY; - Double_t fXoffset; - Double_t fActiveXmin; - Double_t fActiveXmax; - Int_t fIxmin; - Int_t fIxmax; - Int_t fIymin; - Int_t fIymax; + TString fId; ///< PCB name + Double_t fPadSizeX; ///< x-size of this PCB's pads (cm) + Double_t fPadSizeY; ///< y-size of this PCB's pads (cm) + Double_t fEnveloppeSizeX; ///< max x-size of this PCB (cm) + Double_t fEnveloppeSizeY; // max y-size of this PCB (cm) + Double_t fXoffset; ///< x-offset = x of first pad of this PCB (cm) + Double_t fActiveXmin; ///< min x of an actual pad in this PCB (cm) + Double_t fActiveXmax; ///< max x of an actual pad in this PCB (cm) + Int_t fIxmin; ///< min pad index in x + Int_t fIxmax; ///< max pad index in x + Int_t fIymin; ///< min pad index in y + Int_t fIymax; ///< max pad index in y #ifdef WITH_ROOT - TObjArray fMotifs; + TObjArray fMotifs; ///< array of motifs #else - std::vector fMotifs; + std::vector fMotifs; ///< array of motifs #endif - - ClassDef(AliMpPCB,1) // A PCB for Stations 3,4,5 + Int_t fNofPads; ///< number of pads in this PCB + + ClassDef(AliMpPCB,2) // A PCB for Stations 3,4,5 }; #endif