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

// $Id$
// $MpId: AliMpTriggerSegmentation.h,v 1.8 2006/05/24 13:58:27 ivana Exp $

/// \ingroup mptrigger
/// \class AliMpTriggerSegmentation
/// \brief Implementation of AliMpVSegmentation for trigger slats.
///
//  Author: Laurent Aphecetche

#ifndef ALI_MP_TRIGGER_SEGMENTATION_H
#define ALI_MP_TRIGGER_SEGMENTATION_H

#ifndef ROOT_TString
#include "TString.h"
#endif

#ifndef ALI_MP_V_SEGMENTATION_H
#include "AliMpVSegmentation.h"
#endif

#ifndef ALI_MP_PAD_H
#include "AliMpPad.h"
#endif

class AliMpMotifPosition;
class AliMpPCB;
class AliMpTrigger;

class AliMpTriggerSegmentation : public AliMpVSegmentation
{
public:
  AliMpTriggerSegmentation();
  AliMpTriggerSegmentation(const AliMpTrigger* slat, Bool_t own = false);
  virtual ~AliMpTriggerSegmentation();
  
  virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
  virtual AliMpVPadIterator* CreateIterator() const;
  virtual Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours,
                              Bool_t includeSelf=kFALSE,
                              Bool_t includeVoid=kFALSE) const;
  const char* GetName() const;
  
  Int_t MaxPadIndexX() const;
  Int_t MaxPadIndexY() const;
  Int_t NofPads() const { return fNofStrips; }
    
  virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel, 
                                 Bool_t warning) const;
  
  virtual AliMpPad PadByIndices(Int_t ix, Int_t iy,  
                                Bool_t warning) const;
  
  virtual AliMpPad PadByPosition(Double_t x, Double_t y,
                                 Bool_t warning) const;
  
  const AliMpTrigger* Slat() const;
   
  virtual void GetAllElectronicCardIDs(TArrayI& ecn) const;
  
  virtual AliMp::PlaneType PlaneType() const;
   
  virtual AliMp::StationType StationType() const;
 
  virtual Double_t  GetDimensionX() const;
  virtual Double_t  GetDimensionY() const;
  
  virtual Int_t GetNofElectronicCards() const;
  
  virtual Double_t  GetPositionX() const;
  virtual Double_t  GetPositionY() const;
  
  virtual Bool_t HasMotifPosition(Int_t manuId) const;
  
  virtual AliMpMotifPosition* MotifPosition(Int_t manuId) const;
  
private:
  /// Not implemented
  AliMpTriggerSegmentation(const AliMpTriggerSegmentation& right);
  /// Not implemented
  AliMpTriggerSegmentation&  operator = (const AliMpTriggerSegmentation& right);
  
  const AliMpTrigger* fkSlat;  ///< Slat
  Bool_t              fIsOwner;///< Trigger slat ownership     
  Int_t fNofStrips; ///< Number of strips in this slat

  ClassDef(AliMpTriggerSegmentation,3) // Segmentation for slat trigger stations
};

/// Return station type
inline AliMp::StationType AliMpTriggerSegmentation::StationType() const
{ return AliMp::kStationTrigger; }


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