1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // Revision of includes 07/05/2004
7 #ifndef AliMUONTriggerDecisionV1V1_H
8 #define AliMUONTriggerDecisionV1V1_H
11 /// \class AliMUONTriggerDecisionV1
12 /// \brief MUON trigger decision class
14 /// interim solution (but needed so far)
28 class AliMUONTriggerDecisionV1 : public TTask
31 AliMUONTriggerDecisionV1(AliMUONData* data); // constructor
32 AliMUONTriggerDecisionV1(); // constructor
33 virtual ~AliMUONTriggerDecisionV1(); // destructor
40 void TrigX(Int_t ch1q[16], Int_t ch2q[16], Int_t ch3q[32], Int_t ch4q[32],
41 Int_t coinc44, Int_t minDevStrip[5], Int_t minDev[5]);
42 void Sort2x5(Int_t dev1[6], Int_t dev2[6],
43 Int_t minDev[6], Int_t &dev1GTdev2);
44 void TrigY(Int_t y1[16], Int_t y2[16], Int_t y3[16], Int_t y4[16],
45 Int_t y3u[16], Int_t y3d[16], Int_t y4u[16], Int_t y4d[16],
46 Int_t x2m, Int_t x2ud, Int_t orMud[2], Int_t resetMid,
47 Int_t coinc44, Int_t coordY[5]);
48 void LocalTrigger(Int_t icirc, Int_t minDevStrip[5],
49 Int_t minDev[5], Int_t coordY[5],
53 void Exec(Option_t* opt="");
56 void PrintBitPatXInput(Int_t icirc);
57 void PrintBitPatYInput(Int_t icirc);
58 void PrintLocalOutput(Int_t minDevStrip[5], Int_t minDev[5],
61 // return member data information
62 Int_t GetITrigger(Int_t icirc) const;
63 Int_t GetStripX11(Int_t icirc) const;
64 Int_t GetDev(Int_t icirc) const;
65 Int_t GetStripY11(Int_t icirc) const;
66 void GetLutOutput(Int_t icirc, Int_t lpt[2], Int_t hpt[2], Int_t apt[2]) const;
67 void GetGlobalTrigger(Int_t singlePlus[3], Int_t singleMinus[3],
68 Int_t singleUndef[3], Int_t pairUnlike[3],
69 Int_t pairLike[3]) const;
72 ClassDef(AliMUONTriggerDecisionV1,1) // Trigger Decision class
77 AliMUONTriggerDecisionV1(const AliMUONTriggerDecisionV1& rhs);
78 AliMUONTriggerDecisionV1& operator=(const AliMUONTriggerDecisionV1& rhs);
80 void ClearDigitNumbers();
82 void DigitFiredCircuit(
83 Int_t circuit, Int_t cathode,
84 Int_t chamber, Int_t digit
87 // Global Trigger information [0] : Low pt, [1] : High pt, [2] : All pt
88 Int_t fGlobalSinglePlus[3]; // tot num of single plus
89 Int_t fGlobalSingleMinus[3]; // tot num of single minus
90 Int_t fGlobalSingleUndef[3]; // tot num of single undefined
91 Int_t fGlobalPairUnlike[3]; // tot num of unlike-sign pairs
92 Int_t fGlobalPairLike[3]; // tot num of like-sign pairs
94 // Local Trigger information
95 Int_t fTrigger[234]; // fTrigger = 0 : no trigger, 1 : trigger
96 Int_t fStripX11[234]; // X strip in MC11 which triggers
97 Int_t fDev[234]; // deviation which triggers
98 Int_t fStripY11[234]; // Y strip in MC11 which triggers
99 Int_t fLutLpt[234][2]; // Local Trigger info Low pt
100 Int_t fLutHpt[234][2]; // Local Trigger info High pt
101 Int_t fLutApt[234][2]; // Local Trigger info All pt
104 Int_t fXbit11[234][16]; // bit pattern XM11
105 Int_t fXbit12[234][16]; // bit pattern XM12
106 Int_t fXbit21[234][32]; // bit pattern XM21
107 Int_t fXbit22[234][32]; // bit pattern XM22
108 Int_t fYbit11[234][16]; // bit pattern YM11
109 Int_t fYbit12[234][16]; // bit pattern YM12
110 Int_t fYbit21[234][16]; // bit pattern YM21
111 Int_t fYbit22[234][16]; // bit pattern YM22
113 Int_t fYbit21U[234][16]; // bit pattern YM21 Up
114 Int_t fYbit22U[234][16]; // bit pattern YM22 Up
115 Int_t fYbit21D[234][16]; // bit pattern YM21 Down
116 Int_t fYbit22D[234][16]; // bit pattern YM22 Down
118 TArrayI fDigitNumbers[234]; //! The digit number that fired a circuit.
120 TObjArray* fTriggerCircuit; //! List of Trigger Circuit
121 AliMUONData* fMUONData; //! Data container for MUON subsystem
122 AliMUON* fMUON; //! pointer to MUON