]>
Commit | Line | Data |
---|---|---|
be972727 | 1 | #ifndef ALIMUONLOCALTRIGGERBOARD_H |
2 | #define ALIMUONLOCALTRIGGERBOARD_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | //*-- Author: Rachid Guernane (LPCCFd) | |
9 | ||
10 | #include "AliMUONTriggerBoard.h" | |
11 | ||
12 | class AliMUONTriggerLut; | |
13 | ||
14 | class AliMUONLocalTriggerBoard : public AliMUONTriggerBoard | |
15 | { | |
16 | public: | |
17 | AliMUONLocalTriggerBoard(); | |
18 | AliMUONLocalTriggerBoard(const char *name, Int_t a); | |
19 | virtual ~AliMUONLocalTriggerBoard() {;} | |
20 | ||
21 | virtual void Setbit(Int_t strip, Int_t cathode, Int_t chamber); | |
8af755f4 | 22 | virtual void SetbitM(Int_t strip, Int_t cathode, Int_t chamber); |
be972727 | 23 | |
8af755f4 | 24 | virtual void Pattern(Option_t *option = "X Y"); // default option displays X then Y bp |
be972727 | 25 | |
26 | virtual void Reset(); | |
27 | ||
28 | virtual void SetSwitch(Int_t i, Int_t value) {fSwitch[i] = value;} | |
29 | ||
30 | virtual UShort_t GetSwitch(Int_t i) {return fSwitch[i];} | |
31 | ||
32 | virtual void SetTC(Bool_t con) {fTC = con;} | |
33 | ||
34 | virtual Bool_t GetTC() {return fTC;} | |
35 | ||
8af755f4 | 36 | virtual void SetNumber(Int_t nb) {fNumber = nb;} |
37 | ||
38 | virtual Int_t GetNumber() {return fNumber;} | |
39 | ||
be972727 | 40 | virtual void Module(char *mod); |
41 | ||
42 | virtual void GetX34(UShort_t *X) {for (Int_t i=0;i<2;i++) X[i] = fXY[0][i+2];} | |
43 | ||
44 | virtual void SetX34(UShort_t *X) {for (Int_t i=0;i<2;i++) fXY[0][i+2] = X[i];} | |
45 | ||
46 | virtual void GetY(UShort_t *Y) {for (Int_t i=0;i<4;i++) Y[i] = fXY[1][i];} | |
47 | ||
48 | virtual void SetY(UShort_t *Y) {for (Int_t i=0;i<4;i++) fXY[1][i] = Y[i];} | |
49 | ||
50 | virtual void GetXY(UShort_t XY[2][4]) {for (Int_t i=0;i<2;i++) for (Int_t j=0;j<4;j++) XY[i][j] = fXY[i][j];} | |
51 | ||
52 | virtual UShort_t GetXY(Int_t i, Int_t j) {return fXY[i][j];} | |
53 | ||
54 | virtual void SetXY(UShort_t XY[2][4]) {for (Int_t i=0;i<2;i++) for (Int_t j=0;j<4;j++) fXY[i][j] = XY[i][j];} | |
55 | ||
56 | virtual void Conf(); | |
57 | ||
58 | virtual void Response(); | |
59 | ||
60 | // inclusive masking | |
61 | virtual void Mask(UShort_t M[2][4]); | |
62 | ||
63 | // exclusive masking | |
64 | virtual void Mask(char *in, UShort_t M); | |
65 | ||
66 | virtual void TrigX(Int_t ch1q[16], Int_t ch2q[16], Int_t ch3q[32], Int_t ch4q[32], | |
67 | Int_t coinc44); | |
68 | ||
69 | virtual void Sort2x5(Int_t dev1[6], Int_t dev2[6], | |
70 | Int_t minDev[6], Int_t &dev1GTdev2); | |
71 | ||
72 | virtual void TrigY(Int_t y1[16], Int_t y2[16], Int_t y3[16], Int_t y4[16], | |
73 | Int_t y3u[16], Int_t y3d[16], Int_t y4u[16], Int_t y4d[16], | |
74 | Int_t coinc44); | |
75 | ||
76 | virtual void SetXYU(UShort_t V[2][4]) {for (Int_t i=0;i<2;i++) for (Int_t j=0;j<4;j++) fXYU[i][j] = V[i][j];} | |
77 | ||
78 | virtual void SetXYD(UShort_t V[2][4]) {for (Int_t i=0;i<2;i++) for (Int_t j=0;j<4;j++) fXYD[i][j] = V[i][j];} | |
79 | ||
80 | virtual void Scan(Option_t *option = ""); | |
81 | ||
82 | virtual Int_t GetI(); | |
83 | ||
84 | virtual void LocalTrigger(); | |
85 | ||
86 | virtual Int_t Triggered() {return fOutput;} | |
87 | ||
88 | virtual Int_t GetStripX11() {return fStripX11;} | |
89 | ||
90 | virtual Int_t GetStripY11() {return fStripY11;} | |
91 | ||
92 | virtual Int_t GetDev() {return fDev;} | |
93 | ||
8af755f4 | 94 | virtual void SetCrate(TString crate) {fCrate = crate;} |
95 | virtual TString GetCrate() {return fCrate;} | |
96 | ||
97 | ||
be972727 | 98 | |
99 | protected: | |
100 | ||
101 | virtual void Resp(Option_t *option); // local trigger info before ("I") and after ("F") LUT | |
102 | ||
103 | virtual void BP(Option_t *option); // display X/Y bp | |
104 | ||
105 | private: | |
106 | ||
107 | Int_t fNumber; | |
108 | ||
8af755f4 | 109 | TString fCrate; |
110 | ||
be972727 | 111 | UShort_t fSwitch[10], fXY[2][4], fXYU[2][4], fXYD[2][4], fMask[2][4]; |
112 | ||
113 | // Transverse connector | |
114 | Bool_t fTC; | |
115 | ||
116 | // MT1 X position of the valid road | |
117 | Int_t fStripX11; | |
118 | ||
119 | // MT1 Y position of the valid road | |
120 | Int_t fStripY11; | |
121 | ||
122 | // Deviation in [0;+30] | |
123 | Int_t fDev; | |
124 | ||
125 | // Pt cuts estimated from LUT | |
126 | Int_t fLutLpt[2]; | |
127 | Int_t fLutHpt[2]; | |
128 | Int_t fLutApt[2]; | |
129 | ||
130 | // Outputs of the local logic | |
131 | Int_t fOutput; | |
132 | Int_t fMinDevStrip[5]; | |
133 | Int_t fMinDev[5]; | |
134 | Int_t fCoordY[5]; | |
135 | ||
136 | AliMUONTriggerLut *fLUT; | |
137 | ||
138 | ClassDef(AliMUONLocalTriggerBoard,1) | |
139 | }; | |
140 | #endif |