Updated comments for Doxygen
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpPCB.h
index c7e6a88..ec09554 100644 (file)
@@ -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<AliMpMotifPosition*> fMotifs;
+  std::vector<AliMpMotifPosition*> 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