]>
Commit | Line | Data |
---|---|---|
a9e2aefa | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
30178c30 | 16 | /* $Id$ */ |
a9e2aefa | 17 | |
8d7dfec2 | 18 | |
a9e2aefa | 19 | #include "AliMUONLocalTrigger.h" |
2be06f1e | 20 | #include "AliLog.h" |
8d7dfec2 | 21 | #include "AliMUONLocalStruct.h" |
a9e2aefa | 22 | |
5398f946 | 23 | /// \class AliMUONLocalTrigger |
8d7dfec2 | 24 | /// Local Trigger algorithm data outputs |
5398f946 | 25 | /// (contains local trigger decision and bit patterns) \n |
26 | /// Add SetLocalStruct method for rawdata (Ch. Finck) | |
27 | /// \author Ph. Crochet | |
28 | ||
29 | /// \cond CLASSIMP | |
30 | ClassImp(AliMUONLocalTrigger) | |
31 | /// \endcond | |
8d7dfec2 | 32 | |
a9e2aefa | 33 | //---------------------------------------------------------------------- |
34 | AliMUONLocalTrigger::AliMUONLocalTrigger() | |
8d7dfec2 | 35 | : TObject(), |
36 | fLoCircuit(0), | |
37 | fLoStripX(0), | |
38 | fLoDev(0), | |
39 | fLoStripY(0), | |
40 | fLoLpt(0), | |
41 | fLoHpt(0), | |
8d7dfec2 | 42 | |
43 | fX1Pattern(0), | |
44 | fX2Pattern(0), | |
45 | fX3Pattern(0), | |
46 | fX4Pattern(0), | |
47 | ||
48 | fY1Pattern(0), | |
49 | fY2Pattern(0), | |
50 | fY3Pattern(0), | |
51 | fY4Pattern(0), | |
52 | ||
2f013ecd | 53 | fLoDecision(0) |
a9e2aefa | 54 | { |
5398f946 | 55 | /// Default constructor |
a9e2aefa | 56 | } |
e9b63742 | 57 | //---------------------------------------------------------------------- |
30178c30 | 58 | AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocalTrig) |
1657f946 | 59 | : TObject(theMUONLocalTrig), |
60 | fLoCircuit(theMUONLocalTrig.fLoCircuit), | |
61 | fLoStripX(theMUONLocalTrig.fLoStripX), | |
62 | fLoDev(theMUONLocalTrig.fLoDev), | |
63 | fLoStripY(theMUONLocalTrig.fLoStripY), | |
64 | fLoLpt(theMUONLocalTrig.fLoLpt), | |
65 | fLoHpt(theMUONLocalTrig.fLoHpt), | |
1657f946 | 66 | |
67 | fX1Pattern(theMUONLocalTrig.fX1Pattern), | |
68 | fX2Pattern(theMUONLocalTrig.fX2Pattern), | |
69 | fX3Pattern(theMUONLocalTrig.fX3Pattern), | |
70 | fX4Pattern(theMUONLocalTrig.fX4Pattern), | |
71 | ||
72 | fY1Pattern(theMUONLocalTrig.fY1Pattern), | |
73 | fY2Pattern(theMUONLocalTrig.fY2Pattern), | |
74 | fY3Pattern(theMUONLocalTrig.fY3Pattern), | |
75 | fY4Pattern(theMUONLocalTrig.fY4Pattern), | |
76 | ||
2f013ecd | 77 | fLoDecision(theMUONLocalTrig.fLoDecision) |
e9b63742 | 78 | { |
5398f946 | 79 | /// Copy constructor (useful for TClonesArray) |
80 | ||
e9b63742 | 81 | } |
71a2d3aa | 82 | |
83 | //---------------------------------------------------------------------- | |
84 | AliMUONLocalTrigger::~AliMUONLocalTrigger() | |
85 | { | |
86 | /// Destructor | |
87 | } | |
88 | ||
e9b63742 | 89 | //---------------------------------------------------------------------- |
30178c30 | 90 | AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& theMUONLocalTrig) |
e9b63742 | 91 | { |
5398f946 | 92 | /// Assigment operator; |
93 | /// equal operator (useful for non-pointer member in TClonesArray) | |
8d7dfec2 | 94 | |
30178c30 | 95 | if (this == &theMUONLocalTrig) |
e9b63742 | 96 | return *this; |
97 | ||
30178c30 | 98 | // base class assignement |
99 | TObject::operator=(theMUONLocalTrig); | |
100 | ||
101 | fLoCircuit = theMUONLocalTrig.fLoCircuit; | |
102 | fLoStripX = theMUONLocalTrig.fLoStripX; | |
103 | fLoDev = theMUONLocalTrig.fLoDev; | |
104 | fLoStripY = theMUONLocalTrig.fLoStripY; | |
105 | fLoLpt = theMUONLocalTrig.fLoLpt; | |
106 | fLoHpt = theMUONLocalTrig.fLoHpt; | |
e9b63742 | 107 | |
6dc7fcdf | 108 | fX1Pattern = theMUONLocalTrig.fX1Pattern; |
109 | fX2Pattern = theMUONLocalTrig.fX2Pattern; | |
110 | fX3Pattern = theMUONLocalTrig.fX3Pattern; | |
111 | fX4Pattern = theMUONLocalTrig.fX4Pattern; | |
112 | ||
113 | fY1Pattern = theMUONLocalTrig.fY1Pattern; | |
114 | fY2Pattern = theMUONLocalTrig.fY2Pattern; | |
115 | fY3Pattern = theMUONLocalTrig.fY3Pattern; | |
116 | fY4Pattern = theMUONLocalTrig.fY4Pattern; | |
117 | ||
118 | fLoDecision = theMUONLocalTrig.fLoDecision; | |
119 | ||
e9b63742 | 120 | return *this; |
121 | } | |
122 | ||
1657f946 | 123 | |
6dc7fcdf | 124 | //---------------------------------------------------------------------- |
125 | Char_t AliMUONLocalTrigger::GetLoDecision() | |
126 | { | |
5398f946 | 127 | /// Get local decision |
128 | /// from H(L)pt; | |
129 | /// returns local trigger decision | |
8d7dfec2 | 130 | |
6dc7fcdf | 131 | fLoDecision = (fLoLpt & 0x3); |
132 | fLoDecision |= (fLoHpt << 2) & 0xC; | |
402fb06e | 133 | |
6dc7fcdf | 134 | return fLoDecision; |
135 | } | |
2be06f1e | 136 | |
2be06f1e | 137 | |
8d7dfec2 | 138 | //---------------------------------------------------------------------- |
139 | void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct) | |
140 | { | |
5398f946 | 141 | /// Set local trigger info from rawdata localStruct |
8d7dfec2 | 142 | |
143 | // set id' | |
144 | SetLoCircuit(loCircuit); | |
145 | ||
146 | // set X, Y dev | |
147 | SetLoStripX((Int_t)localStruct.GetXPos()); | |
148 | SetLoStripY((Int_t)localStruct.GetYPos()); | |
149 | SetLoDev((Int_t)localStruct.GetXDev()); | |
150 | ||
151 | // set L(H)pt | |
152 | SetLoLpt(localStruct.GetLpt()); | |
153 | SetLoHpt(localStruct.GetHpt()); | |
154 | ||
155 | // set pattern X | |
156 | SetX1Pattern(localStruct.GetX1()); | |
157 | SetX2Pattern(localStruct.GetX2()); | |
158 | SetX3Pattern(localStruct.GetX3()); | |
159 | SetX4Pattern(localStruct.GetX4()); | |
160 | ||
161 | // set pattern Y | |
162 | SetY1Pattern(localStruct.GetY1()); | |
163 | SetY2Pattern(localStruct.GetY2()); | |
164 | SetY3Pattern(localStruct.GetY3()); | |
165 | SetY4Pattern(localStruct.GetY4()); | |
166 | ||
167 | } | |
eba3379e | 168 | |
169 | //---------------------------------------------------------------------- | |
170 | void AliMUONLocalTrigger::Print(Option_t* opt) const | |
171 | { | |
71a2d3aa | 172 | /// Printing Local Trigger information |
173 | ||
eba3379e | 174 | TString sopt(opt); |
175 | sopt.ToUpper(); | |
176 | ||
177 | if ( sopt.Contains("FULL") ) { | |
178 | ||
ad705f30 | 179 | printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt()); |
eba3379e | 180 | |
181 | } | |
182 | } | |
183 |