From Laurent:
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTrigger.h
1 #ifndef ALIMUONLOCALTRIGGER_H
2 #define ALIMUONLOCALTRIGGER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8 // Revision of includes 07/05/2004
9
10 #include <TObject.h>
11 #include <TArrayI.h>
12
13 class AliMUONLocalTrigger : public TObject {
14  public:
15   AliMUONLocalTrigger();
16   AliMUONLocalTrigger(const AliMUONLocalTrigger& rhs); // copy constructor !
17   AliMUONLocalTrigger(const Int_t* localtr, const TArrayI& digits);
18   virtual ~AliMUONLocalTrigger(){;}
19   AliMUONLocalTrigger& operator=(const AliMUONLocalTrigger& rhs); 
20
21   // getter methods
22   Int_t LoCircuit() const {return fLoCircuit;}
23   Int_t LoStripX() const {return fLoStripX;}   
24   Int_t LoDev() const {return fLoDev;}
25   Int_t LoStripY() const {return fLoStripY;}
26   Int_t LoLpt() const {return fLoLpt;}
27   Int_t LoHpt() const {return fLoHpt;}
28   Int_t LoApt() const {return fLoApt;}
29
30    
31   UShort_t GetX1Pattern() const {return fX1Pattern;}
32   UShort_t GetX2Pattern() const {return fX2Pattern;}
33   UShort_t GetX3Pattern() const {return fX3Pattern;}
34   UShort_t GetX4Pattern() const {return fX4Pattern;}
35
36   UShort_t GetY1Pattern() const {return fY1Pattern;}
37   UShort_t GetY2Pattern() const {return fY2Pattern;}
38   UShort_t GetY3Pattern() const {return fY3Pattern;}
39   UShort_t GetY4Pattern() const {return fY4Pattern;}
40
41   Char_t GetLoDecision();
42
43   // setter methods
44   void SetLoCircuit(Int_t loCir) {fLoCircuit = loCir;}
45   void SetLoStripX(Int_t loStrX) {fLoStripX = loStrX;}   
46   void SetLoDev(Int_t loDev)     {fLoDev = loDev;}
47   void SetLoStripY(Int_t loStrY) {fLoStripY = loStrY;}
48   void SetLoLpt(Int_t loLpt)     {fLoLpt = loLpt;}
49   void SetLoHpt(Int_t loHpt)     {fLoHpt = loHpt;}
50   void SetLoApt(Int_t loApt)     {fLoApt = loApt;}
51
52   void SetX1Pattern(UShort_t pat) {fX1Pattern = pat;}
53   void SetX2Pattern(UShort_t pat) {fX2Pattern = pat;}
54   void SetX3Pattern(UShort_t pat) {fX3Pattern = pat;}
55   void SetX4Pattern(UShort_t pat) {fX4Pattern = pat;}
56
57   void SetY1Pattern(UShort_t pat) {fY1Pattern = pat;}
58   void SetY2Pattern(UShort_t pat) {fY2Pattern = pat;}
59   void SetY3Pattern(UShort_t pat) {fY3Pattern = pat;}
60   void SetY4Pattern(UShort_t pat) {fY4Pattern = pat;}
61
62   // data link
63   Int_t NumberOfDigits() const { return fDigits.GetSize(); }
64   Int_t GetDigitNumber(Int_t i) const { return fDigits[i]; }
65   void GetDigit(Int_t i, Int_t& chamber, Int_t& cathode, Int_t& digit) const;
66
67   static Int_t EncodeDigitNumber(Int_t chamber, Int_t cathode, Int_t digit);
68   static void DecodeDigitNumber(Int_t digitnumber, Int_t& chamber, Int_t& cathode, Int_t& digit);
69
70 private:
71   Int_t fLoCircuit; // circuit number 
72   Int_t fLoStripX;  // X strip in MT11 
73   Int_t fLoDev;     // deviation 
74   Int_t fLoStripY;  // Y strip in MT11 
75   Int_t fLoLpt;     // Low pt  0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
76   Int_t fLoHpt;     // High pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
77   Int_t fLoApt;     // All pt  0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
78
79   UShort_t fX1Pattern; // X and Y strip pattern for each chamber
80   UShort_t fX2Pattern;
81   UShort_t fX3Pattern;
82   UShort_t fX4Pattern;
83  
84   UShort_t fY1Pattern;
85   UShort_t fY2Pattern;
86   UShort_t fY3Pattern;
87   UShort_t fY4Pattern;
88
89   Char_t fLoDecision; // local decision word (4 bits)
90
91   TArrayI fDigits;    // List of digit numbers from which this object was created.
92
93   ClassDef(AliMUONLocalTrigger,2)  // reconstructed Local Trigger object
94 };
95 #endif
96
97
98
99
100
101