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

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

/// \ingroup motif
/// \class AliMpConnection
/// \brief A connection properties.
///
/// \author David Guez, Ivana Hrivnacova; IPN Orsay

#ifndef ALI_MP_CONNECTION_H
#define ALI_MP_CONNECTION_H

#include <TObject.h>

#include "AliMpMotifType.h"
#include "AliMpEncodePair.h"

#include <TString.h>

class AliMpConnection : public TObject
{
  public:
    AliMpConnection(Int_t padNum, 
                    Int_t bergNum,
                    Int_t kaptonNum,
                    Int_t gassiNum,
                    MpPair_t localIndices);
    AliMpConnection(TRootIOCtor* /*ioCtor*/);
    //AliMpConnection();
    virtual ~AliMpConnection();

    //
    // accessors
    //
          /// Return Berg connector number
    Int_t GetBergNum()   const     { return fBergNum; }
          /// Return kapton connector number
    Int_t GetKaptonNum() const     { return fKaptonNum; }
          /// Return manu channel number
    Int_t GetManuChannel() const   { return fGassiNum; }
          /// Return pad number
    Int_t GetPadNum()  const       { return GetUniqueID(); }

          /// Return encoded local indices
    MpPair_t GetLocalIndices() const { return fLocalIndices; }
    Int_t  GetLocalIx() const;
    Int_t  GetLocalIy() const;
    
          /// Return the motif type which contains this connection
    AliMpMotifType *GetOwner() const { return fOwner; }
    
    TString  PadName() const;
    
    //
    // modifiers
    //

          /// Set Gassiplex channel number
    void SetGassiNum(Int_t n)            { fGassiNum = n; }
          /// Set the motif type which contains this connection
    void SetOwner(AliMpMotifType *owner) { fOwner=owner; }
    
  private:
    /// Not implemented
    AliMpConnection();
    /// Not implemented
    AliMpConnection(const AliMpConnection& right);
    /// Not implemented
    AliMpConnection& operator=(const AliMpConnection& right);

    // data members
    Int_t   fBergNum;   ///< Berg connector number
    Int_t   fKaptonNum; ///< Kapton connector number
    Int_t   fGassiNum;  ///< Gassiplex channel number
    MpPair_t  fLocalIndices;  ///< Local indices
    AliMpMotifType *fOwner; ///< The motif type which contains this connection

  ClassDef(AliMpConnection,2)  // Connection description
};

// inline functions

/// Return the pad number converted to a name
inline TString AliMpConnection::PadName() const 
{ return fOwner->PadName(GetUniqueID()); }

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