1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpManuGeo.h,v 1.5 2006/05/24 13:58:16 ivana Exp $
7 /// \ingroup management
8 /// \class AliMpLocalBoard
9 /// \brief Class that manages the properties of the local board
11 /// \author Ch. Finck; Subatech Nantes
13 #ifndef ALI_MP_LOCAL_BOARD_H
14 #define ALI_MP_LOCAL_BOARD_H
18 #include "AliMpArrayI.h"
22 class AliMpLocalBoard : public TNamed
26 AliMpLocalBoard(Int_t id, const Char_t* name, Int_t slot);
27 AliMpLocalBoard(TRootIOCtor* /*ioCtor*/);
28 virtual ~AliMpLocalBoard();
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;
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;}
45 void SetSlot(Int_t slot) {fSlot = slot;}
49 Bool_t AddSwitch(Int_t swit);
50 Int_t GetNofSwitches() const;
51 Int_t GetSwitch(Int_t index) const;
53 /// Set switch in a compact way
54 void SetSwitch(UInt_t swit) {fSwitch = swit;}
55 /// Get switch in a compact way
56 UInt_t GetSwitch() const {return fSwitch;}
58 // switch enum for local board (see PRR, chpt: 2.4.4)
59 enum {kX2d, kX2m, kX2u, ///< (1) indicate a change of strip pitch in Y circuit
60 kOR0, kOR1, ///< taking into account the different segmentation in Y from MT1 to MT2
61 kENY, ///< (0) enable communication in Y to n+/-1 board via tranverse connector, (1) disable
62 kZeroAllYLSB,///< (1) reset the LSB for special configuration of board RC2L5B4 & RC2L6B1
63 kZeroDown, ///< (0) information is expected from n-1 board for X input, (1) not
64 kZeroMiddle, ///< (0) always, not used
65 kZeroUp }; ///< (0) information is expected from n+1 board for X input, (1) not
67 // Transverse connector
69 /// Set transverse connector
70 void SetTC(Bool_t connect) {fTC = connect;}
71 /// Return transverse connector
72 Bool_t GetTC() const {return fTC;}
77 void SetCrate(TString name) {fCrate = name;}
79 TString GetCrate() const {return fCrate;}
83 /// Set notified flag (not copy card)
84 void SetNotified(Bool_t notify) {fNotified = notify;}
85 /// Return notified flag (not copy card)
86 Bool_t IsNotified() const {return fNotified;}
88 // given position (line, col)
89 AliMpIntPair GetPosition() const;
91 // Id to be copy to or from
93 /// Get Id from where the X input are copied
94 Int_t GetInputXfrom() {return fInputXfrom;}
95 /// Get Id to where the X input are copied
96 Int_t GetInputXto() {return fInputXto;}
97 /// Get Id from where the Y input are copied
98 Int_t GetInputYfrom() {return fInputYfrom;}
99 /// Get Id to where the Y input are copied
100 Int_t GetInputYto() {return fInputYto;}
102 /// Set Id from where the X input are copied
103 void SetInputXfrom(Int_t id) {fInputXfrom = id;}
104 /// Set Id to where the X input are copied
105 void SetInputXto(Int_t id) {fInputXto = id;}
106 /// Set Id from where the Y input are copied
107 void SetInputYfrom(Int_t id) {fInputYfrom = id;}
108 /// Set Id to where the Y input are copied
109 void SetInputYto(Int_t id) {fInputYto = id;}
115 AliMpLocalBoard(const AliMpLocalBoard& src);
117 AliMpLocalBoard& operator = (const AliMpLocalBoard& src) ;
119 Int_t GetIndex(Int_t chamberId) const;
121 Int_t fId; ///< Identifier (unique)
122 Int_t fSlot; ///< Slot Identifier in the given crate
124 Bool_t fTC; ///< Transverse connector
125 TString fCrate; ///< Crate name
126 AliMpArrayI fSwitches; ///< switches
127 UInt_t fSwitch; ///< switches in compact way
128 Bool_t fNotified; ///< notified flag (not copy card)
129 AliMpArrayI fDEId; ///< list of Detection element to which this local board is connected
130 Int_t fInputXfrom;///< local id of x3-4 inputs copied from (zero: not copied)
131 Int_t fInputXto; ///< local id of x3-4 inputs copied to (zero: not copied)
132 Int_t fInputYfrom;///< local id of y1-4 inputs copied from (zero: not copied)
133 Int_t fInputYto; ///< local id of y1-4 inputs copied to (zero: not copied)
135 ClassDef(AliMpLocalBoard,2) //utility class for the motif type