Line data Source code
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 mptrigger
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 : #include "AliMpEncodePair.h"
20 :
21 : class TString;
22 :
23 : class AliMpLocalBoard : public TNamed
24 : {
25 :
26 : public:
27 : AliMpLocalBoard(Int_t id, const Char_t* name, Int_t slot);
28 : AliMpLocalBoard(TRootIOCtor* /*ioCtor*/);
29 : virtual ~AliMpLocalBoard();
30 :
31 : // detElem
32 : Bool_t AddDE(Int_t detElemId);
33 : Int_t GetNofDEs() const;
34 : Int_t GetDEId(Int_t index) const;
35 : Int_t GetDEIdByChamber(Int_t chamberId) const;
36 : Bool_t HasDEId(Int_t detElemId) const;
37 :
38 : // get methods
39 : //
40 : /// Return the identifier (unique)
41 353098 : Int_t GetId() const {return fId;}
42 : /// Return the slot Identifier in the given crate
43 5808 : Int_t GetSlot() const {return fSlot;}
44 :
45 : /// set slot
46 0 : void SetSlot(Int_t slot) {fSlot = slot;}
47 :
48 : // Switches
49 : //
50 : /// Get switch bit wise (return a inteter for backware compatibility)
51 : Int_t GetSwitch(Int_t index) const;
52 : /// Set switch in a compact way
53 : void SetSwitch(UInt_t swit);
54 : /// Get switch in a compact way
55 0 : UInt_t GetSwitch() const {return fSwitch;}
56 :
57 : // switch enum for local board (see PRR, chpt: 2.4.4)
58 : enum {kX2d, kX2m, kX2u, ///< (1) indicate a change of strip pitch in Y circuit
59 : kOR0, kOR1, ///< taking into account the different segmentation in Y from MT1 to MT2
60 : kENY, ///< (0) enable communication in Y to n+/-1 board via tranverse connector, (1) disable
61 : kZeroAllYLSB,///< (1) reset the LSB for special configuration of board RC2L5B4 & RC2L6B1
62 : kZeroDown, ///< (0) information is expected from n-1 board for X input, (1) not
63 : kZeroMiddle, ///< (0) always, not used
64 : kZeroUp }; ///< (0) information is expected from n+1 board for X input, (1) not
65 :
66 : // Transverse connector
67 : //
68 : /// Set transverse connector
69 726 : void SetTC(Bool_t connect) {fTC = connect;}
70 : /// Return transverse connector
71 0 : Bool_t GetTC() const {return fTC;}
72 :
73 : // Crate name
74 : //
75 : /// Set crate name
76 1452 : void SetCrate(TString name) {fCrate = name;}
77 : /// Return crate name
78 0 : TString GetCrate() const {return fCrate;}
79 :
80 : // Notify
81 : //
82 : /// Set notified flag (not copy card)
83 24 : void SetNotified(Bool_t notify) {fNotified = notify;}
84 : /// Return notified flag (not copy card)
85 351288 : Bool_t IsNotified() const {return fNotified;}
86 :
87 :
88 : /// given position (line, col)
89 : MpPair_t GetPosition() const;
90 :
91 : // Id to be copy to or from
92 :
93 : /// Get Id from where the X input are copied
94 2112 : Int_t GetInputXfrom() const {return fInputXfrom;}
95 : /// Get Id to where the X input are copied
96 179848 : Int_t GetInputXto() const {return fInputXto;}
97 : /// Get Id from where the Y input are copied
98 64 : Int_t GetInputYfrom() const {return fInputYfrom;}
99 : /// Get Id to where the Y input are copied
100 0 : Int_t GetInputYto() const {return fInputYto;}
101 :
102 : /// Set Id from where the X input are copied
103 1452 : void SetInputXfrom(Int_t id) {fInputXfrom = id;}
104 : /// Set Id to where the X input are copied
105 1452 : void SetInputXto(Int_t id) {fInputXto = id;}
106 : /// Set Id from where the Y input are copied
107 1452 : void SetInputYfrom(Int_t id) {fInputYfrom = id;}
108 : /// Set Id to where the Y input are copied
109 1452 : void SetInputYto(Int_t id) {fInputYto = id;}
110 :
111 : private:
112 : /// Not implemented
113 : AliMpLocalBoard();
114 : /// Not implemented
115 : AliMpLocalBoard(const AliMpLocalBoard& src);
116 : /// Not implemented
117 : AliMpLocalBoard& operator = (const AliMpLocalBoard& src) ;
118 :
119 : Int_t GetIndex(Int_t chamberId) const;
120 :
121 : Int_t fId; ///< Identifier (unique)
122 : Int_t fSlot; ///< Slot Identifier in the given crate
123 : Bool_t fTC; ///< Transverse connector
124 : TString fCrate; ///< Crate name
125 : UInt_t fSwitch; ///< switches in compact way
126 : Bool_t fNotified; ///< notified flag (not copy card)
127 : AliMpArrayI fDEId; ///< list of Detection element to which this local board is connected
128 : Int_t fInputXfrom;///< local id of x3-4 inputs copied from (zero: not copied)
129 : Int_t fInputXto; ///< local id of x3-4 inputs copied to (zero: not copied)
130 : Int_t fInputYfrom;///< local id of y1-4 inputs copied from (zero: not copied)
131 : Int_t fInputYto; ///< local id of y1-4 inputs copied to (zero: not copied)
132 :
133 18 : ClassDef(AliMpLocalBoard,3) //utility class for the motif type
134 : };
135 :
136 :
137 : #endif
|