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