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

// $Id$
// $MpId: AliMpVPadRowSegment.h,v 1.7 2006/05/24 13:58:21 ivana Exp $

/// \ingroup sector
/// \class AliMpVPadRowSegment
/// \brief The abstract base class for a pad row segment composed of the 
/// the identic pads.
///
/// \author David Guez, Ivana Hrivnacova; IPN Orsay

#ifndef ALI_MP_V_PAD_ROW_SEGMENT_H
#define ALI_MP_V_PAD_ROW_SEGMENT_H

#include <TObject.h>

class AliMpPadRow;
class AliMpMotif;

class AliMpVPadRowSegment : public TObject
{
  public:
    AliMpVPadRowSegment(AliMpPadRow* padRow, AliMpMotif* motif, 
                       Int_t motifPositionId, Int_t nofPads);
    AliMpVPadRowSegment();
    virtual ~AliMpVPadRowSegment();

    // methods
                      /// Return the x coordinate of the left border
                      /// in the global coordinate system.
    virtual Double_t  LeftBorderX() const = 0;
                      /// Return the x coordinate of the right border
                      /// in the global coordinate system.
    virtual Double_t  RightBorderX() const = 0;
    virtual Double_t  HalfSizeY() const;

    // get methods
    virtual AliMpPadRow*  GetPadRow() const;
    virtual AliMpMotif*   GetMotif() const;    
    virtual Int_t     GetMotifPositionId() const;
                      /// Return number of pads
            Int_t     GetNofPads() const {return fNofPads;}     

    // set methods
    void  SetOffsetX(Double_t offsetX);  

  protected:
                      /// Return the x position of the right/left border
    Double_t  GetOffsetX() const { return fOffsetX; }

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

    // data members
    Int_t         fNofPads;  ///< number of pads
    Double_t      fOffsetX;  ///< the x position of the right/left border
    AliMpPadRow*  fPadRow;   ///< the pad row containing this segment 
    AliMpMotif*   fMotif;    ///< the motif 
    Int_t         fMotifPositionId;  ///< the motif position id
    
  ClassDef(AliMpVPadRowSegment,1)  // Row segment
};

#endif //ALI_MP_V_PAD_ROW_SEGMENT_H

 AliMpVPadRowSegment.h:1
 AliMpVPadRowSegment.h:2
 AliMpVPadRowSegment.h:3
 AliMpVPadRowSegment.h:4
 AliMpVPadRowSegment.h:5
 AliMpVPadRowSegment.h:6
 AliMpVPadRowSegment.h:7
 AliMpVPadRowSegment.h:8
 AliMpVPadRowSegment.h:9
 AliMpVPadRowSegment.h:10
 AliMpVPadRowSegment.h:11
 AliMpVPadRowSegment.h:12
 AliMpVPadRowSegment.h:13
 AliMpVPadRowSegment.h:14
 AliMpVPadRowSegment.h:15
 AliMpVPadRowSegment.h:16
 AliMpVPadRowSegment.h:17
 AliMpVPadRowSegment.h:18
 AliMpVPadRowSegment.h:19
 AliMpVPadRowSegment.h:20
 AliMpVPadRowSegment.h:21
 AliMpVPadRowSegment.h:22
 AliMpVPadRowSegment.h:23
 AliMpVPadRowSegment.h:24
 AliMpVPadRowSegment.h:25
 AliMpVPadRowSegment.h:26
 AliMpVPadRowSegment.h:27
 AliMpVPadRowSegment.h:28
 AliMpVPadRowSegment.h:29
 AliMpVPadRowSegment.h:30
 AliMpVPadRowSegment.h:31
 AliMpVPadRowSegment.h:32
 AliMpVPadRowSegment.h:33
 AliMpVPadRowSegment.h:34
 AliMpVPadRowSegment.h:35
 AliMpVPadRowSegment.h:36
 AliMpVPadRowSegment.h:37
 AliMpVPadRowSegment.h:38
 AliMpVPadRowSegment.h:39
 AliMpVPadRowSegment.h:40
 AliMpVPadRowSegment.h:41
 AliMpVPadRowSegment.h:42
 AliMpVPadRowSegment.h:43
 AliMpVPadRowSegment.h:44
 AliMpVPadRowSegment.h:45
 AliMpVPadRowSegment.h:46
 AliMpVPadRowSegment.h:47
 AliMpVPadRowSegment.h:48
 AliMpVPadRowSegment.h:49
 AliMpVPadRowSegment.h:50
 AliMpVPadRowSegment.h:51
 AliMpVPadRowSegment.h:52
 AliMpVPadRowSegment.h:53
 AliMpVPadRowSegment.h:54
 AliMpVPadRowSegment.h:55
 AliMpVPadRowSegment.h:56
 AliMpVPadRowSegment.h:57
 AliMpVPadRowSegment.h:58
 AliMpVPadRowSegment.h:59
 AliMpVPadRowSegment.h:60
 AliMpVPadRowSegment.h:61
 AliMpVPadRowSegment.h:62
 AliMpVPadRowSegment.h:63
 AliMpVPadRowSegment.h:64
 AliMpVPadRowSegment.h:65
 AliMpVPadRowSegment.h:66
 AliMpVPadRowSegment.h:67
 AliMpVPadRowSegment.h:68
 AliMpVPadRowSegment.h:69
 AliMpVPadRowSegment.h:70