]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpLocalBoard.h
Adding a missing include (Laurent)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpLocalBoard.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 // $MpId: AliMpManuGeo.h,v 1.5 2006/05/24 13:58:16 ivana Exp $
6
7 /// \ingroup management
8 /// \class AliMpLocalBoard
9 /// \brief Class that manages the properties of the local board
10 ///
11 /// \author Ch. Finck; Subatech Nantes
12
13 #ifndef ALI_MP_LOCAL_BOARD_H
14 #define ALI_MP_LOCAL_BOARD_H
15
16 #include <TNamed.h>
17
18 #include  "AliMpArrayI.h"
19
20 class TString;
21
22 class AliMpLocalBoard : public TNamed
23 {
24
25  public:
26     AliMpLocalBoard(Int_t id, const Char_t* name, Int_t slot);
27     AliMpLocalBoard(TRootIOCtor* /*ioCtor*/);
28     virtual ~AliMpLocalBoard();
29     
30     // detElem
31     Bool_t AddDE(Int_t detElemId);
32     Int_t  GetNofDEs() const;
33     Int_t  GetDEId(Int_t index) const;
34     Int_t  GetDEIdByChamber(Int_t chamberId) const;
35     Bool_t HasDEId(Int_t detElemId) const;
36
37     // get methods
38     //
39            /// Return the identifier (unique)
40     Int_t  GetId()   const {return fId;}
41            /// Return the slot Identifier in the given crate
42     Int_t  GetSlot() const {return fSlot;}
43
44     // Switches
45     //
46     Bool_t AddSwitch(Int_t swit);
47     Int_t  GetNofSwitches() const;
48     Int_t  GetSwitch(Int_t index) const;
49
50     // switch enum for local board (see PRR, chpt: 2.4.4)
51     enum {kX2d, kX2m, kX2u, ///< (1) indicate a change of strip pitch in Y circuit
52           kOR0, kOR1,  ///< taking into account the different segmentation in Y from MT1 to MT2
53           kENY,        ///< (0) enable communication in Y to n+/-1 board via tranverse connector, (1) disable
54           kZeroAllYLSB,///< (1) reset the LSB for special configuration of board RC2L5B4 & RC2L6B1
55           kZeroDown,   ///< (0) information is expected from n-1 board for X input, (1) not
56           kZeroMiddle, ///< (0) always, not used
57           kZeroUp };   ///< (0) information is expected from n+1 board for X input, (1) not
58
59     // Transverse connector
60     //     
61              /// Set transverse connector
62     void     SetTC(Bool_t connect) {fTC = connect;}
63              /// Return transverse connector
64     Bool_t   GetTC() const {return fTC;}
65
66     // Crate name
67     //
68              /// Set crate name
69     void     SetCrate(TString name) {fCrate = name;}
70              /// Return crate name
71     TString  GetCrate() const {return fCrate;}
72
73     // Notify
74     //
75              /// Set notified flag (not copy card)
76     void     SetNotified(Bool_t notify) {fNotified = notify;}
77              /// Return notified flag (not copy card) 
78     Bool_t   IsNotified() const {return fNotified;}
79
80     // given position (line, col)
81     AliMpIntPair GetPosition() const;
82
83     // Id to be copy to or from
84     Int_t GetInputXfrom() {return fInputXfrom;}
85     Int_t GetInputXto()   {return fInputXto;}
86     Int_t GetInputYfrom() {return fInputYfrom;}
87     Int_t GetInputYto()   {return fInputYto;}
88
89     void SetInputXfrom(Int_t id) {fInputXfrom = id;}
90     void SetInputXto(Int_t id)   {fInputXto   = id;}
91     void SetInputYfrom(Int_t id) {fInputYfrom = id;}
92     void SetInputYto(Int_t id)   {fInputYto   = id;}
93
94  private:
95   /// Not implemented
96    AliMpLocalBoard();
97   /// Not implemented
98    AliMpLocalBoard(const AliMpLocalBoard& src);
99    /// Not implemented
100    AliMpLocalBoard& operator = (const AliMpLocalBoard& src) ;
101
102    Int_t GetIndex(Int_t chamberId) const;
103    
104    Int_t       fId;       ///< Identifier (unique)
105    Int_t       fSlot;     ///< Slot Identifier in the given crate 
106
107    Bool_t      fTC;       ///< Transverse connector
108    TString     fCrate;    ///< Crate name
109    AliMpArrayI fSwitches; ///< switches
110    Bool_t      fNotified; ///< notified flag (not copy card)
111    AliMpArrayI fDEId;     ///< list of Detection element to which this local board is connected
112    Int_t       fInputXfrom;///< local id of x3-4 inputs copied from (zero: not copied)
113    Int_t       fInputXto;  ///< local id of x3-4 inputs copied to (zero: not copied)
114    Int_t       fInputYfrom;///< local id of y1-4 inputs copied from (zero: not copied)
115    Int_t       fInputYto;  ///< local id of y1-4 inputs copied to (zero: not copied)
116
117   ClassDef(AliMpLocalBoard,1) //utility class for the motif type
118 };
119
120
121 #endif