ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// $Id$
// $MpId: AliMpMotifPosition.h,v 1.9 2006/05/24 13:58:18 ivana Exp $

/// \ingroup motif
/// \class AliMpMotifPosition
/// \brief A placed motif.
///
/// \author David Guez, Ivana Hrivnacova; IPN Orsay

#ifndef ALI_MP_MOTIF_POSITION_H
#define ALI_MP_MOTIF_POSITION_H

#include "AliMpVIndexed.h"
#include "AliMpVMotif.h"

class AliMpVPadIterator;

class AliMpMotifPosition : public AliMpVIndexed
{
 public:
  AliMpMotifPosition(Int_t id, AliMpVMotif* motif, Double_t x, Double_t y);
  AliMpMotifPosition();
  virtual ~AliMpMotifPosition();

  // methods
  virtual AliMpVPadIterator* CreateIterator() const;

  // get methods
  Int_t        GetID() const;
  AliMpVMotif* GetMotif() const;
  Bool_t       HasPadByIndices(MpPair_t indices) const;
  Bool_t       HasPadByManuChannel(Int_t manuChannel) const;

  // Geometry
  Double_t  GetPositionX() const;
  Double_t  GetPositionY() const;
  Double_t  GetDimensionX() const;
  Double_t  GetDimensionY() const;
  
  // Sets the ID (which is the MANU ID)
  void SetID(Int_t id); 
  // Sets the position.
  void SetPosition(Double_t x, Double_t y);

  void Print(Option_t* option="") const;

 private:
  /// Not implemented
  AliMpMotifPosition(const AliMpMotifPosition& right);
  /// Not implemented
  AliMpMotifPosition&  operator = (const AliMpMotifPosition& right);

  // methods
  // data members 
  Int_t         fID;        ///< identifier=manu id
  AliMpVMotif*  fMotif;     ///< motif
  Double_t      fPositionX; ///< x position
  Double_t      fPositionY; ///< y position

  ClassDef(AliMpMotifPosition,2) // A motif position
};

// inline functions

/// Return motif position ID = manu id
inline Int_t  AliMpMotifPosition::GetID() const 
{ return fID; }

/// Return motif 
inline AliMpVMotif*  AliMpMotifPosition::GetMotif() const
{ return fMotif; }
 
/// Return x position
inline Double_t AliMpMotifPosition::GetPositionX() const
{ return fPositionX; }

/// Return y position
inline Double_t AliMpMotifPosition::GetPositionY() const
{ return fPositionY; }

/// Return x dimension
inline Double_t AliMpMotifPosition::GetDimensionX() const
{ return fMotif->DimensionX(); }

/// Return y dimension
inline Double_t AliMpMotifPosition::GetDimensionY() const
{ return fMotif->DimensionY(); }

#endif //ALI_MP_MOTIF_POSITION_H
 AliMpMotifPosition.h:1
 AliMpMotifPosition.h:2
 AliMpMotifPosition.h:3
 AliMpMotifPosition.h:4
 AliMpMotifPosition.h:5
 AliMpMotifPosition.h:6
 AliMpMotifPosition.h:7
 AliMpMotifPosition.h:8
 AliMpMotifPosition.h:9
 AliMpMotifPosition.h:10
 AliMpMotifPosition.h:11
 AliMpMotifPosition.h:12
 AliMpMotifPosition.h:13
 AliMpMotifPosition.h:14
 AliMpMotifPosition.h:15
 AliMpMotifPosition.h:16
 AliMpMotifPosition.h:17
 AliMpMotifPosition.h:18
 AliMpMotifPosition.h:19
 AliMpMotifPosition.h:20
 AliMpMotifPosition.h:21
 AliMpMotifPosition.h:22
 AliMpMotifPosition.h:23
 AliMpMotifPosition.h:24
 AliMpMotifPosition.h:25
 AliMpMotifPosition.h:26
 AliMpMotifPosition.h:27
 AliMpMotifPosition.h:28
 AliMpMotifPosition.h:29
 AliMpMotifPosition.h:30
 AliMpMotifPosition.h:31
 AliMpMotifPosition.h:32
 AliMpMotifPosition.h:33
 AliMpMotifPosition.h:34
 AliMpMotifPosition.h:35
 AliMpMotifPosition.h:36
 AliMpMotifPosition.h:37
 AliMpMotifPosition.h:38
 AliMpMotifPosition.h:39
 AliMpMotifPosition.h:40
 AliMpMotifPosition.h:41
 AliMpMotifPosition.h:42
 AliMpMotifPosition.h:43
 AliMpMotifPosition.h:44
 AliMpMotifPosition.h:45
 AliMpMotifPosition.h:46
 AliMpMotifPosition.h:47
 AliMpMotifPosition.h:48
 AliMpMotifPosition.h:49
 AliMpMotifPosition.h:50
 AliMpMotifPosition.h:51
 AliMpMotifPosition.h:52
 AliMpMotifPosition.h:53
 AliMpMotifPosition.h:54
 AliMpMotifPosition.h:55
 AliMpMotifPosition.h:56
 AliMpMotifPosition.h:57
 AliMpMotifPosition.h:58
 AliMpMotifPosition.h:59
 AliMpMotifPosition.h:60
 AliMpMotifPosition.h:61
 AliMpMotifPosition.h:62
 AliMpMotifPosition.h:63
 AliMpMotifPosition.h:64
 AliMpMotifPosition.h:65
 AliMpMotifPosition.h:66
 AliMpMotifPosition.h:67
 AliMpMotifPosition.h:68
 AliMpMotifPosition.h:69
 AliMpMotifPosition.h:70
 AliMpMotifPosition.h:71
 AliMpMotifPosition.h:72
 AliMpMotifPosition.h:73
 AliMpMotifPosition.h:74
 AliMpMotifPosition.h:75
 AliMpMotifPosition.h:76
 AliMpMotifPosition.h:77
 AliMpMotifPosition.h:78
 AliMpMotifPosition.h:79
 AliMpMotifPosition.h:80
 AliMpMotifPosition.h:81
 AliMpMotifPosition.h:82
 AliMpMotifPosition.h:83
 AliMpMotifPosition.h:84
 AliMpMotifPosition.h:85
 AliMpMotifPosition.h:86
 AliMpMotifPosition.h:87
 AliMpMotifPosition.h:88
 AliMpMotifPosition.h:89
 AliMpMotifPosition.h:90
 AliMpMotifPosition.h:91
 AliMpMotifPosition.h:92