* See cxx source for full Copyright notice */
// $Id$
-// $MpId: AliMpPCB.h,v 1.6 2006/03/17 16:42:28 ivana Exp $
+// $MpId: AliMpPCB.h,v 1.9 2006/05/24 13:58:24 ivana Exp $
/// \ingroup slat
/// \class AliMpPCB
/// \brief A PCB for station 3,4 or 5
///
-/// Author: Laurent Aphecetche
+// Author: Laurent Aphecetche
#ifndef ALIMPPCB_H
#define ALIMPPCB_H
# include <vector>
#endif
+#ifndef ALI_MP_AREA_H
+# include "AliMpArea.h"
+#endif
+
+class AliMpSlatMotifMap;
class AliMpMotifPosition;
class AliMpMotifType;
class AliMpMotifSpecial;
/** Ctor. The sizes are given in mm.
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(AliMpSlatMotifMap* motifMap,
+ const char* id, Double_t padSizeX, Double_t padSizeY,
+ Double_t enveloppeSizeX, Double_t enveloppeSizeY);
AliMpPCB(const char* id, AliMpMotifSpecial* ms);
*/
void Add(AliMpMotifType* motifType, Int_t ix, Int_t iy);
+ AliMpArea Area() const;
+
void Print(Option_t* option = "") const;
Double_t ActiveDX() const;
Int_t NofPads() const { return fNofPads; }
+ AliMpSlatMotifMap* MotifMap() const { return fMotifMap; }
+
+ void Save() const;
+
private:
- 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)
+ 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
+ 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; // array of motifs
+ TObjArray fMotifPositions; ///< array of motifs
#else
- std::vector<AliMpMotifPosition*> fMotifs; // array of motifs
+ std::vector<AliMpMotifPosition*> fMotifPositions; ///< array of motif positions
#endif
- Int_t fNofPads; // number of pads in this PCB
+ Int_t fNofPads; ///< number of pads in this PCB
+ AliMpSlatMotifMap* fMotifMap; ///< to keep track of things to avoid duplications of motif and motiftypes, and get proper deletion
- ClassDef(AliMpPCB,2) // A PCB for Stations 3,4,5
+ ClassDef(AliMpPCB,3) // A PCB for Stations 3,4,5
};
#endif