]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONLocalTriggerBoard.h
4150de9b925e9acc49a18a521c0c51cab0ccec90
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTriggerBoard.h
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);
22       virtual void     SetbitM(Int_t strip, Int_t cathode, Int_t chamber);
23
24       virtual void     Pattern(Option_t *option = "X Y"); // default option displays X then Y bp
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
36                 virtual void     SetNumber(Int_t nb) {fNumber = nb;}
37
38                 virtual Int_t    GetNumber() {return fNumber;}
39
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       
94                 virtual void     SetCrate(TString crate) {fCrate = crate;}
95                 virtual TString  GetCrate() {return fCrate;}
96
97                 
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
109                 TString  fCrate;
110
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