]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONTriggerDecision.h
MUON trigger classes to collaborate with CTP (E. Lopez Torres)
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerDecision.h
CommitLineData
a9e2aefa 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
30178c30 3
a9e2aefa 4/* $Id$ */
30178c30 5// Revision of includes 07/05/2004
6
a9e2aefa 7#ifndef ALIMUONTRIGGERDECISION_H
8#define ALIMUONTRIGGERDECISION_H
30178c30 9
692de412 10/// \ingroup sim
11/// \class AliMUONTriggerDecision
12/// \brief MUON trigger decision class
13///
14/////////////////////////////////////////////////
15/// MUON Trigger Decision Class //
16/////////////////////////////////////////////////
30178c30 17
18#include <TObject.h>
2be06f1e 19#include "AliMUONLocalTrigger.h"
30178c30 20
0693bbb3 21class TClonesArray;
a9e2aefa 22
52c9bc11 23class AliLoader;
52c9bc11 24class AliMUONData;
25class AliMUON;
8210cb40 26class AliRawReader;
52c9bc11 27
a9e2aefa 28
30178c30 29class AliMUONTriggerDecision : public TObject
30{
a9e2aefa 31 public:
ce3e25a8 32 AliMUONTriggerDecision(AliLoader* loader, Int_t iprint = 0, AliMUONData* data = 0); // constructor
30178c30 33 AliMUONTriggerDecision(); // constructor
a9e2aefa 34 ~AliMUONTriggerDecision(); // destructor
35
52c9bc11 36 AliMUONData* GetMUONData() {return fMUONData;}
a9e2aefa 37 void Trigger();
38 void ResetBit();
39 void SetBit();
40 void SetBitUpDownY();
41
42 void TrigX(Int_t ch1q[16], Int_t ch2q[16], Int_t ch3q[32], Int_t ch4q[32],
43 Int_t coinc44, Int_t minDevStrip[5], Int_t minDev[5]);
44 void Sort2x5(Int_t dev1[6], Int_t dev2[6],
45 Int_t minDev[6], Int_t &dev1GTdev2);
46 void TrigY(Int_t y1[16], Int_t y2[16], Int_t y3[16], Int_t y4[16],
47 Int_t y3u[16], Int_t y3d[16], Int_t y4u[16], Int_t y4d[16],
48 Int_t x2m, Int_t x2ud, Int_t orMud[2], Int_t resetMid,
49 Int_t coinc44, Int_t coordY[5]);
50 void LocalTrigger(Int_t icirc, Int_t minDevStrip[5],
51 Int_t minDev[5], Int_t coordY[5],
52 Int_t &iTrigger);
53 void GlobalTrigger();
54
8210cb40 55 void Digits2Trigger(); // main function for digitizer
ce3e25a8 56
ce3e25a8 57 void ClearDigits();
58 TClonesArray* Digits(Int_t DetectionPlane);
2be06f1e 59
60 void AddDigit(
61 Int_t id, Int_t* tracks, Int_t* charges, Int_t* digits,
b812d393 62 Int_t digitindex
2be06f1e 63 );
52c9bc11 64
a9e2aefa 65 // print-debug
66 void PrintBitPatXInput(Int_t icirc);
67 void PrintBitPatYInput(Int_t icirc);
68 void PrintLocalOutput(Int_t minDevStrip[5], Int_t minDev[5],
69 Int_t coordY[5]);
70
71 // return member data information
30178c30 72 Int_t GetITrigger(Int_t icirc) const;
73 Int_t GetStripX11(Int_t icirc) const;
74 Int_t GetDev(Int_t icirc) const;
75 Int_t GetStripY11(Int_t icirc) const;
76 void GetLutOutput(Int_t icirc, Int_t lpt[2], Int_t hpt[2], Int_t apt[2]) const;
a9e2aefa 77 void GetGlobalTrigger(Int_t singlePlus[3], Int_t singleMinus[3],
78 Int_t singleUndef[3], Int_t pairUnlike[3],
30178c30 79 Int_t pairLike[3]) const;
8210cb40 80
a9e2aefa 81
82 ClassDef(AliMUONTriggerDecision,1) // Trigger Decision class
83
2be06f1e 84
85protected:
86
e3ea1889 87 AliMUONTriggerDecision(const AliMUONTriggerDecision& rhs);
88 AliMUONTriggerDecision& operator=(const AliMUONTriggerDecision& rhs);
89
2be06f1e 90 void ClearDigitNumbers();
91
92 void DigitFiredCircuit(
b812d393 93 Int_t circuit, Int_t cathode,
94 Int_t chamber, Int_t digit
2be06f1e 95 );
96
97
ecfa008b 98 Int_t fDebug; // print option
a9e2aefa 99
100 // Global Trigger information [0] : Low pt, [1] : High pt, [2] : All pt
101 Int_t fGlobalSinglePlus[3]; // tot num of single plus
102 Int_t fGlobalSingleMinus[3]; // tot num of single minus
103 Int_t fGlobalSingleUndef[3]; // tot num of single undefined
104 Int_t fGlobalPairUnlike[3]; // tot num of unlike-sign pairs
105 Int_t fGlobalPairLike[3]; // tot num of like-sign pairs
106
107 // Local Trigger information
ecfa008b 108 Int_t fTrigger[234]; // fTrigger = 0 : no trigger, 1 : trigger
a9e2aefa 109 Int_t fStripX11[234]; // X strip in MC11 which triggers
ecfa008b 110 Int_t fDev[234]; // deviation which triggers
a9e2aefa 111 Int_t fStripY11[234]; // Y strip in MC11 which triggers
112 Int_t fLutLpt[234][2]; // Local Trigger info Low pt
113 Int_t fLutHpt[234][2]; // Local Trigger info High pt
114 Int_t fLutApt[234][2]; // Local Trigger info All pt
115
116 // bit pattern
117 Int_t fXbit11[234][16]; // bit pattern XM11
118 Int_t fXbit12[234][16]; // bit pattern XM12
119 Int_t fXbit21[234][32]; // bit pattern XM21
120 Int_t fXbit22[234][32]; // bit pattern XM22
121 Int_t fYbit11[234][16]; // bit pattern YM11
122 Int_t fYbit12[234][16]; // bit pattern YM12
123 Int_t fYbit21[234][16]; // bit pattern YM21
124 Int_t fYbit22[234][16]; // bit pattern YM22
125
126 Int_t fYbit21U[234][16]; // bit pattern YM21 Up
127 Int_t fYbit22U[234][16]; // bit pattern YM22 Up
128 Int_t fYbit21D[234][16]; // bit pattern YM21 Down
129 Int_t fYbit22D[234][16]; // bit pattern YM22 Down
130
2be06f1e 131 TArrayI fDigitNumbers[234]; //! The digit number that fired a circuit.
52c9bc11 132
133 AliLoader* fLoader; //! alice loader
134 TObjArray* fTriggerCircuit; //! List of Trigger Circuit
ce3e25a8 135 TObjArray* fDigits; // temp array for digits (both cathodes !) for trigger
2be06f1e 136 TArrayI* fDigitIndices; //! Array of digit index numbers, one for each entry in fDigits.
ce3e25a8 137
52c9bc11 138 AliMUONData* fMUONData; //! Data container for MUON subsystem
139 AliMUON* fMUON; //! pointer to MUON
140
a9e2aefa 141 // ???
142 // TClonesArray* fLocalTriggers; // Local Triggers
143 // Int_t fNLocalTriggers; // Number of Local Triggers
144
145};
146#endif
147
148
149
150
151
152
153