Updated comments for Doxygen
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpMotifType.h
CommitLineData
dee1d5f1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
5f91c9e8 4// $Id$
829425a5 5// $MpId: AliMpMotifType.h,v 1.10 2006/05/23 13:07:42 ivana Exp $
dee1d5f1 6
7/// \ingroup motif
8/// \class AliMpMotifType
9/// \brief Class that defines the motif properties.
10///
11/// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
5f91c9e8 12
13#ifndef ALI_MP_MOTIF_TYPE_H
14#define ALI_MP_MOTIF_TYPE_H
15
2a7ea2e6 16#include <TObject.h>
5006ec94 17
2a7ea2e6 18#include "AliMpContainers.h"
5006ec94 19
2a7ea2e6 20#include "AliMpIntPair.h"
5006ec94 21#ifdef WITH_ROOT
22#include "AliMpExMap.h"
23#endif
24
5f91c9e8 25#include <TString.h>
5f91c9e8 26
2a7ea2e6 27#ifdef WITH_STL
28#include <map>
29#endif
5f91c9e8 30
31class AliMpConnection;
32class AliMpVPadIterator;
33
34class AliMpMotifType : public TObject
35{
36 public:
5006ec94 37#ifdef WITH_STL
38 typedef std::map< AliMpIntPair, AliMpConnection* > ConnectionMap;
39 typedef ConnectionMap::const_iterator ConnectionMapCIterator;
40#endif
41#ifdef WITH_ROOT
42 typedef AliMpExMap ConnectionMap;
43#endif
44
45 public:
5f91c9e8 46 AliMpMotifType(const TString &id);
47 AliMpMotifType();
48 virtual ~AliMpMotifType();
49
50 virtual AliMpVPadIterator* CreateIterator() const;
51
52 // find methods
53 AliMpConnection *FindConnectionByPadNum(Int_t padNum) const;
ffb47139 54 AliMpConnection *FindConnectionByLocalIndices(
55 const AliMpIntPair& localIndices) const;
5f91c9e8 56 AliMpConnection *FindConnectionByGassiNum(Int_t gassiNum) const;
57 AliMpConnection *FindConnectionByKaptonNum(Int_t kaptonNum) const;
58 AliMpConnection *FindConnectionByBergNum(Int_t bergNum) const;
59
60 AliMpIntPair FindLocalIndicesByPadNum(Int_t padNum) const;
61 AliMpIntPair FindLocalIndicesByGassiNum(Int_t gassiNum) const;
62 AliMpIntPair FindLocalIndicesByKaptonNum(Int_t kaptonNum) const;
63 AliMpIntPair FindLocalIndicesByBergNum(Int_t bergNum) const;
f79c58a5 64 AliMpIntPair FindLocalIndicesByConnection(
65 const AliMpConnection* connection) const;
5f91c9e8 66
67 // set methods
68 void SetNofPads(Int_t nofPadsX, Int_t nofPadY);
69 void SetVerboseLevel(Int_t level){fVerboseLevel=level;}
70
71 // get methods
72 TString GetID() const {return fID;}
73 Int_t GetNofPadsX() const {return fNofPadsX;}
74 Int_t GetNofPadsY() const {return fNofPadsY;}
f79c58a5 75 Int_t GetNofPads() const;
5f91c9e8 76
77 // Other methods
78 void AddConnection(const AliMpIntPair &localIndices,
79 AliMpConnection* connection);
80 virtual void Print(Option_t *option) const;
81 Int_t PadNum(const TString &padName) const;
82 TString PadName(Int_t padNum) const;
83 Bool_t HasPad(const AliMpIntPair& localIndices) const;
84 Bool_t IsFull() const;
85
86 private:
87 // static data members
829425a5 88 static const Int_t fgkPadNumForA; ///< the pad number for the pad "A"
f79c58a5 89
5f91c9e8 90 // data members
829425a5 91 TString fID; ///< unique motif ID
92 Int_t fNofPadsX; ///< number of pads in x direction
93 Int_t fNofPadsY; ///< number of pads in y direction
94 Int_t fVerboseLevel; ///< verbose level
95 ConnectionMap fConnections; ///< Map (ix,iy) of connections
f79c58a5 96
829425a5 97 ClassDef(AliMpMotifType,1) // Motif type
5f91c9e8 98};
99
100// inline functions
101
102inline Bool_t AliMpMotifType::IsFull() const
103{ return GetNofPads() == fNofPadsX*fNofPadsY; }
104
105#endif //ALI_MP_MOTIF_TYPE_H
106