Changes needed for ZDC trigger class
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTriggerBoard.h
CommitLineData
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
12class AliMUONTriggerLut;
13
14class 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
23 virtual void Pattern(Option_t *option = ""); // default option displays X then Y bp
24
25 virtual void Reset();
26
27 virtual void SetSwitch(Int_t i, Int_t value) {fSwitch[i] = value;}
28
29 virtual UShort_t GetSwitch(Int_t i) {return fSwitch[i];}
30
31 virtual void SetTC(Bool_t con) {fTC = con;}
32
33 virtual Bool_t GetTC() {return fTC;}
34
35 virtual void Module(char *mod);
36
37 virtual void GetX34(UShort_t *X) {for (Int_t i=0;i<2;i++) X[i] = fXY[0][i+2];}
38
39 virtual void SetX34(UShort_t *X) {for (Int_t i=0;i<2;i++) fXY[0][i+2] = X[i];}
40
41 virtual void GetY(UShort_t *Y) {for (Int_t i=0;i<4;i++) Y[i] = fXY[1][i];}
42
43 virtual void SetY(UShort_t *Y) {for (Int_t i=0;i<4;i++) fXY[1][i] = Y[i];}
44
45 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];}
46
47 virtual UShort_t GetXY(Int_t i, Int_t j) {return fXY[i][j];}
48
49 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];}
50
51 virtual void Conf();
52
53 virtual void Response();
54
55// inclusive masking
56 virtual void Mask(UShort_t M[2][4]);
57
58// exclusive masking
59 virtual void Mask(char *in, UShort_t M);
60
61 virtual void TrigX(Int_t ch1q[16], Int_t ch2q[16], Int_t ch3q[32], Int_t ch4q[32],
62 Int_t coinc44);
63
64 virtual void Sort2x5(Int_t dev1[6], Int_t dev2[6],
65 Int_t minDev[6], Int_t &dev1GTdev2);
66
67 virtual void TrigY(Int_t y1[16], Int_t y2[16], Int_t y3[16], Int_t y4[16],
68 Int_t y3u[16], Int_t y3d[16], Int_t y4u[16], Int_t y4d[16],
69 Int_t coinc44);
70
71 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];}
72
73 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];}
74
75 virtual void Scan(Option_t *option = "");
76
77 virtual Int_t GetI();
78
79 virtual void LocalTrigger();
80
81 virtual Int_t Triggered() {return fOutput;}
82
83 virtual Int_t GetStripX11() {return fStripX11;}
84
85 virtual Int_t GetStripY11() {return fStripY11;}
86
87 virtual Int_t GetDev() {return fDev;}
88
89
90 protected:
91
92 virtual void Resp(Option_t *option); // local trigger info before ("I") and after ("F") LUT
93
94 virtual void BP(Option_t *option); // display X/Y bp
95
96 private:
97
98 Int_t fNumber;
99
100 UShort_t fSwitch[10], fXY[2][4], fXYU[2][4], fXYD[2][4], fMask[2][4];
101
102// Transverse connector
103 Bool_t fTC;
104
105// MT1 X position of the valid road
106 Int_t fStripX11;
107
108// MT1 Y position of the valid road
109 Int_t fStripY11;
110
111// Deviation in [0;+30]
112 Int_t fDev;
113
114// Pt cuts estimated from LUT
115 Int_t fLutLpt[2];
116 Int_t fLutHpt[2];
117 Int_t fLutApt[2];
118
119// Outputs of the local logic
120 Int_t fOutput;
121 Int_t fMinDevStrip[5];
122 Int_t fMinDev[5];
123 Int_t fCoordY[5];
124
125 AliMUONTriggerLut *fLUT;
126
127 ClassDef(AliMUONLocalTriggerBoard,1)
128};
129#endif