Line data Source code
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 : /// \ingroup trigger
11 : /// \class AliMUONLocalTrigger
12 : /// \brief Reconstructed Local Trigger object
13 : // Author Ph. Crochet
14 :
15 : #include <TObject.h>
16 : #include "AliMUONRawStreamTriggerHP.h"
17 :
18 : class AliMUONLocalStruct;
19 : class TArrayS;
20 :
21 : class AliMUONLocalTrigger : public TObject {
22 : public:
23 : AliMUONLocalTrigger();
24 : AliMUONLocalTrigger(const AliMUONLocalTrigger& rhs); // copy constructor !
25 : virtual ~AliMUONLocalTrigger();
26 : AliMUONLocalTrigger& operator=(const AliMUONLocalTrigger& rhs);
27 :
28 : // getter methods
29 : //
30 : /// Return Circuit number
31 447030 : Int_t LoCircuit() const {return fLoCircuit;}
32 : /// Return X strip in MT11
33 2168 : Int_t LoStripX() const {return fLoStripX;}
34 : /// Return Deviation
35 2088 : Int_t LoDev() const {return fLoDev;}
36 : /// Return Sign of Deviation
37 2228 : Int_t LoSdev() const {return fLoSdev;}
38 : /// Return Trig Y
39 1932 : Int_t LoTrigY() const {return fLoTrigY;}
40 : /// Return Y strip in MT11
41 1960 : Int_t LoStripY() const {return fLoStripY;}
42 : /// Return Low pt
43 52 : Int_t LoLpt() const {return fLoLpt;}
44 : /// Return High p
45 52 : Int_t LoHpt() const {return fLoHpt;}
46 :
47 : /// Return X strip pattern for chamber 11
48 3446 : UShort_t GetX1Pattern() const {return fX1Pattern;}
49 : /// Return X strip pattern for chamber 12
50 3446 : UShort_t GetX2Pattern() const {return fX2Pattern;}
51 : /// Return X strip pattern for chamber 21
52 3510 : UShort_t GetX3Pattern() const {return fX3Pattern;}
53 : /// Return X strip pattern for chamber 22
54 3510 : UShort_t GetX4Pattern() const {return fX4Pattern;}
55 : /// return X pattern array
56 : void GetXPattern(TArrayS& array) const;
57 :
58 :
59 : /// Return Y strip pattern for chamber 11
60 3510 : UShort_t GetY1Pattern() const {return fY1Pattern;}
61 : /// Return Y strip pattern for chamber 12
62 3510 : UShort_t GetY2Pattern() const {return fY2Pattern;}
63 : /// Return Y strip pattern for chamber 21
64 3510 : UShort_t GetY3Pattern() const {return fY3Pattern;}
65 : /// Return Y strip pattern for chamber 22
66 3510 : UShort_t GetY4Pattern() const {return fY4Pattern;}
67 : /// return Y pattern array
68 : void GetYPattern(TArrayS& array) const;
69 :
70 : Char_t GetLoDecision() const;
71 :
72 : Int_t GetDeviation() const;
73 : void SetDeviation(Int_t deviation);
74 :
75 : /// Trigger response X strips
76 : Bool_t IsTrigX() const;
77 : /// Trigger response Y strips
78 : Bool_t IsTrigY() const;
79 :
80 : /// Hit pattern from the re-calculated trigger response after removing chambers one-by-one
81 0 : UShort_t GetHitPatternFromResponse() const {return fHitPatternFromResponse; }
82 :
83 : /// Triggers from the re-calculated trigger response after removing chambers one-by-one
84 28 : UChar_t GetTriggerWithoutChamber() const {return fTriggerWithoutChamber; }
85 :
86 : // setter methods
87 : //
88 : /// Set Circuit number
89 346920 : void SetLoCircuit(Int_t loCir) {fLoCircuit = loCir;}
90 : /// Set X strip in MT11
91 345092 : void SetLoStripX(Int_t loStrX) {fLoStripX = loStrX;}
92 : /// Set Deviation
93 345092 : void SetLoDev(Int_t loDev) {fLoDev = loDev;}
94 : /// Set Sign of Deviation
95 345092 : void SetLoSdev(Int_t loSdev) {fLoSdev = loSdev;}
96 : /// Set Trig Y
97 345092 : void SetLoTrigY(Int_t loTrigY) {fLoTrigY = loTrigY;}
98 : /// Set Y strip in MT11
99 345092 : void SetLoStripY(Int_t loStrY) {fLoStripY = loStrY;}
100 : /// Set Low pt
101 345092 : void SetLoLpt(Int_t loLpt) {fLoLpt = loLpt;}
102 : /// Set High pt
103 345092 : void SetLoHpt(Int_t loHpt) {fLoHpt = loHpt;}
104 :
105 : /// Set X strip pattern for chamber 11
106 345092 : void SetX1Pattern(UShort_t pat) {fX1Pattern = pat;}
107 : /// Set X strip pattern for chamber 12
108 345092 : void SetX2Pattern(UShort_t pat) {fX2Pattern = pat;}
109 : /// Set X strip pattern for chamber 21
110 345092 : void SetX3Pattern(UShort_t pat) {fX3Pattern = pat;}
111 : /// Set X strip pattern for chamber 22
112 345092 : void SetX4Pattern(UShort_t pat) {fX4Pattern = pat;}
113 :
114 : /// Set Y strip pattern for chamber 11
115 345092 : void SetY1Pattern(UShort_t pat) {fY1Pattern = pat;}
116 : /// Set Y strip pattern for chamber 12
117 345092 : void SetY2Pattern(UShort_t pat) {fY2Pattern = pat;}
118 : /// Set Y strip pattern for chamber 21
119 345092 : void SetY3Pattern(UShort_t pat) {fY3Pattern = pat;}
120 : /// Set Y strip pattern for chamber 22
121 345092 : void SetY4Pattern(UShort_t pat) {fY4Pattern = pat;}
122 :
123 : void SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct);
124 : void SetLocalStruct(Int_t loCircuit, const AliMUONRawStreamTriggerHP::AliLocalStruct& localStruct);
125 :
126 : Bool_t IsNull() const;
127 :
128 : virtual void Print(Option_t* opt="") const;
129 :
130 : virtual const char* GetName() const;
131 :
132 : /// The board would provide a trigger even after removing chamber ich [0,3]
133 100 : void SetTriggerWithoutChamber(Int_t ich){ fTriggerWithoutChamber |= 1 << (3 - ich); }
134 :
135 : /// Trigger algorithm did NOT find hit in the specified chamber and cathode
136 4 : void SetNoHitInPlane(Int_t icath, Int_t ich){ fHitPatternFromResponse &= ~(1 << (7 - 4*icath - ich)); }
137 :
138 : private:
139 : Int_t fLoCircuit; ///< Circuit number
140 : Int_t fLoStripX; ///< X strip in MT11
141 : Int_t fLoDev; ///< Deviation
142 : Int_t fLoSdev; ///< Sign of Deviation
143 : Int_t fLoTrigY; ///< Trig Y
144 : Int_t fLoStripY; ///< Y strip in MT11
145 : Int_t fLoLpt; ///< Low pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
146 : Int_t fLoHpt; ///< High pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
147 :
148 : UShort_t fX1Pattern; ///< X strip pattern for chamber 11
149 : UShort_t fX2Pattern; ///< X strip pattern for chamber 12
150 : UShort_t fX3Pattern; ///< X strip pattern for chamber 21
151 : UShort_t fX4Pattern; ///< X strip pattern for chamber 22
152 :
153 : UShort_t fY1Pattern; ///< Y strip pattern for chamber 11
154 : UShort_t fY2Pattern; ///< Y strip pattern for chamber 12
155 : UShort_t fY3Pattern; ///< Y strip pattern for chamber 21
156 : UShort_t fY4Pattern; ///< Y strip pattern for chamber 22
157 :
158 : UShort_t fHitPatternFromResponse; ///< Fired plane according to re-computed repsonse
159 : UChar_t fTriggerWithoutChamber; ///< Pattern of triggers after chamber removal
160 :
161 24 : ClassDef(AliMUONLocalTrigger,5) // reconstructed Local Trigger object
162 : };
163 : #endif
164 :
165 :
166 :
167 :
168 :
169 :
|