1 #ifndef ALIMUONLOCALTRIGGER_H
2 #define ALIMUONLOCALTRIGGER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
8 // Revision of includes 07/05/2004
11 /// \class AliMUONLocalTrigger
12 /// \brief Reconstructed Local Trigger object
16 #include "AliMUONRawStreamTriggerHP.h"
18 class AliMUONLocalStruct;
21 class AliMUONLocalTrigger : public TObject {
23 AliMUONLocalTrigger();
24 AliMUONLocalTrigger(const AliMUONLocalTrigger& rhs); // copy constructor !
25 virtual ~AliMUONLocalTrigger();
26 AliMUONLocalTrigger& operator=(const AliMUONLocalTrigger& rhs);
30 /// Return Circuit number
31 Int_t LoCircuit() const {return fLoCircuit;}
32 /// Return X strip in MT11
33 Int_t LoStripX() const {return fLoStripX;}
35 Int_t LoDev() const {return fLoDev;}
36 /// Return Sign of Deviation
37 Int_t LoSdev() const {return fLoSdev;}
39 Int_t LoTrigY() const {return fLoTrigY;}
40 /// Return Y strip in MT11
41 Int_t LoStripY() const {return fLoStripY;}
43 Int_t LoLpt() const {return fLoLpt;}
45 Int_t LoHpt() const {return fLoHpt;}
47 /// Return X strip pattern for chamber 11
48 UShort_t GetX1Pattern() const {return fX1Pattern;}
49 /// Return X strip pattern for chamber 12
50 UShort_t GetX2Pattern() const {return fX2Pattern;}
51 /// Return X strip pattern for chamber 21
52 UShort_t GetX3Pattern() const {return fX3Pattern;}
53 /// Return X strip pattern for chamber 22
54 UShort_t GetX4Pattern() const {return fX4Pattern;}
55 /// return X pattern array
56 void GetXPattern(TArrayS& array) const;
59 /// Return Y strip pattern for chamber 11
60 UShort_t GetY1Pattern() const {return fY1Pattern;}
61 /// Return Y strip pattern for chamber 12
62 UShort_t GetY2Pattern() const {return fY2Pattern;}
63 /// Return Y strip pattern for chamber 21
64 UShort_t GetY3Pattern() const {return fY3Pattern;}
65 /// Return Y strip pattern for chamber 22
66 UShort_t GetY4Pattern() const {return fY4Pattern;}
67 /// return Y pattern array
68 void GetYPattern(TArrayS& array) const;
70 Char_t GetLoDecision() const;
72 Int_t GetDeviation() const;
73 void SetDeviation(Int_t deviation);
75 /// Trigger response X strips
77 /// Trigger response Y strips
80 /// Hit pattern from the re-calculated trigger response after removing chambers one-by-one
81 UShort_t GetHitPatternFromResponse() const {return fHitPatternFromResponse; }
83 /// Triggers from the re-calculated trigger response after removing chambers one-by-one
84 UChar_t GetTriggerWithoutChamber() const {return fTriggerWithoutChamber; }
88 /// Set Circuit number
89 void SetLoCircuit(Int_t loCir) {fLoCircuit = loCir;}
90 /// Set X strip in MT11
91 void SetLoStripX(Int_t loStrX) {fLoStripX = loStrX;}
93 void SetLoDev(Int_t loDev) {fLoDev = loDev;}
94 /// Set Sign of Deviation
95 void SetLoSdev(Int_t loSdev) {fLoSdev = loSdev;}
97 void SetLoTrigY(Int_t loTrigY) {fLoTrigY = loTrigY;}
98 /// Set Y strip in MT11
99 void SetLoStripY(Int_t loStrY) {fLoStripY = loStrY;}
101 void SetLoLpt(Int_t loLpt) {fLoLpt = loLpt;}
103 void SetLoHpt(Int_t loHpt) {fLoHpt = loHpt;}
105 /// Set X strip pattern for chamber 11
106 void SetX1Pattern(UShort_t pat) {fX1Pattern = pat;}
107 /// Set X strip pattern for chamber 12
108 void SetX2Pattern(UShort_t pat) {fX2Pattern = pat;}
109 /// Set X strip pattern for chamber 21
110 void SetX3Pattern(UShort_t pat) {fX3Pattern = pat;}
111 /// Set X strip pattern for chamber 22
112 void SetX4Pattern(UShort_t pat) {fX4Pattern = pat;}
114 /// Set Y strip pattern for chamber 11
115 void SetY1Pattern(UShort_t pat) {fY1Pattern = pat;}
116 /// Set Y strip pattern for chamber 12
117 void SetY2Pattern(UShort_t pat) {fY2Pattern = pat;}
118 /// Set Y strip pattern for chamber 21
119 void SetY3Pattern(UShort_t pat) {fY3Pattern = pat;}
120 /// Set Y strip pattern for chamber 22
121 void SetY4Pattern(UShort_t pat) {fY4Pattern = pat;}
123 void SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct);
124 void SetLocalStruct(Int_t loCircuit, const AliMUONRawStreamTriggerHP::AliLocalStruct& localStruct);
126 Bool_t IsNull() const;
128 virtual void Print(Option_t* opt="") const;
130 virtual const char* GetName() const;
132 /// The board would provide a trigger even after removing chamber ich [0,3]
133 void SetTriggerWithoutChamber(Int_t ich){ fTriggerWithoutChamber |= 1 << (3 - ich); }
135 /// Trigger algorithm did NOT find hit in the specified chamber and cathode
136 void SetNoHitInPlane(Int_t icath, Int_t ich){ fHitPatternFromResponse &= ~(1 << (7 - 4*icath - ich)); }
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
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
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
158 UShort_t fHitPatternFromResponse; ///< Fired plane according to re-computed repsonse
159 UChar_t fTriggerWithoutChamber; ///< Pattern of triggers after chamber removal
161 ClassDef(AliMUONLocalTrigger,5) // reconstructed Local Trigger object