4 // Class AliMpMotifType
5 // --------------------
6 // Class that defines the motif properties.
8 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
10 #ifndef ALI_MP_MOTIF_TYPE_H
11 #define ALI_MP_MOTIF_TYPE_H
16 #include <TObjArray.h>
18 #include "AliMpMotifTypes.h"
19 #include "AliMpIntPair.h"
21 class AliMpConnection;
22 class AliMpVPadIterator;
24 class AliMpMotifType : public TObject
27 AliMpMotifType(const TString &id);
29 virtual ~AliMpMotifType();
31 virtual AliMpVPadIterator* CreateIterator() const;
34 AliMpConnection *FindConnectionByPadNum(Int_t padNum) const;
35 AliMpConnection *FindConnectionByLocalIndices(AliMpIntPair localIndices) const;
36 AliMpConnection *FindConnectionByGassiNum(Int_t gassiNum) const;
37 AliMpConnection *FindConnectionByKaptonNum(Int_t kaptonNum) const;
38 AliMpConnection *FindConnectionByBergNum(Int_t bergNum) const;
40 AliMpIntPair FindLocalIndicesByPadNum(Int_t padNum) const;
41 AliMpIntPair FindLocalIndicesByGassiNum(Int_t gassiNum) const;
42 AliMpIntPair FindLocalIndicesByKaptonNum(Int_t kaptonNum) const;
43 AliMpIntPair FindLocalIndicesByBergNum(Int_t bergNum) const;
44 AliMpIntPair FindLocalIndicesByConnection(const AliMpConnection* connection);
47 void SetNofPads(Int_t nofPadsX, Int_t nofPadY);
48 void SetVerboseLevel(Int_t level){fVerboseLevel=level;}
51 TString GetID() const {return fID;}
52 Int_t GetNofPadsX() const {return fNofPadsX;}
53 Int_t GetNofPadsY() const {return fNofPadsY;}
54 Int_t GetNofPads() const {return fConnections.size();}
57 void AddConnection(const AliMpIntPair &localIndices,
58 AliMpConnection* connection);
59 virtual void Print(Option_t *option) const;
60 Int_t PadNum(const TString &padName) const;
61 TString PadName(Int_t padNum) const;
62 Bool_t HasPad(const AliMpIntPair& localIndices) const;
63 Bool_t IsFull() const;
66 // static data members
67 static const Int_t fgkPadNumForA;
70 TString fID; // unique motif ID
71 Int_t fNofPadsX; // number of pads in x direction
72 Int_t fNofPadsY; // number of pads in y direction
73 Int_t fVerboseLevel; // verbose level
75 ConnectionMap_t fConnections; //! Map (ix,iy) of connections
76 // EXCLUDED FOR CINT (does not compile on HP)
78 ClassDef(AliMpMotifType,1) //Motif type
83 inline Bool_t AliMpMotifType::IsFull() const
84 { return GetNofPads() == fNofPadsX*fNofPadsY; }
86 #endif //ALI_MP_MOTIF_TYPE_H