]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONLocalTrigger.cxx
- Adding comment lines to class description needed for Root documentation
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTrigger.cxx
CommitLineData
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"
8aac6cce 22#include <Riostream.h>
89976fde 23#include <TArrayS.h>
a9e2aefa 24
5398f946 25/// \class AliMUONLocalTrigger
8d7dfec2 26/// Local Trigger algorithm data outputs
5398f946 27/// (contains local trigger decision and bit patterns) \n
28/// Add SetLocalStruct method for rawdata (Ch. Finck)
29/// \author Ph. Crochet
30
31/// \cond CLASSIMP
32ClassImp(AliMUONLocalTrigger)
33/// \endcond
8d7dfec2 34
a9e2aefa 35//----------------------------------------------------------------------
36AliMUONLocalTrigger::AliMUONLocalTrigger()
8d7dfec2 37 : TObject(),
38 fLoCircuit(0),
39 fLoStripX(0),
40 fLoDev(0),
8aac6cce 41 fLoSdev(1),
42 fLoTrigY(1),
43 fLoStripY(15),
8d7dfec2 44 fLoLpt(0),
45 fLoHpt(0),
8d7dfec2 46
47 fX1Pattern(0),
48 fX2Pattern(0),
49 fX3Pattern(0),
50 fX4Pattern(0),
51
52 fY1Pattern(0),
53 fY2Pattern(0),
54 fY3Pattern(0),
89976fde 55 fY4Pattern(0)
a9e2aefa 56{
5398f946 57/// Default constructor
a9e2aefa 58}
e9b63742 59//----------------------------------------------------------------------
30178c30 60AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocalTrig)
1657f946 61 : TObject(theMUONLocalTrig),
62 fLoCircuit(theMUONLocalTrig.fLoCircuit),
63 fLoStripX(theMUONLocalTrig.fLoStripX),
64 fLoDev(theMUONLocalTrig.fLoDev),
8aac6cce 65 fLoSdev(theMUONLocalTrig.fLoSdev),
66 fLoTrigY(theMUONLocalTrig.fLoTrigY),
1657f946 67 fLoStripY(theMUONLocalTrig.fLoStripY),
68 fLoLpt(theMUONLocalTrig.fLoLpt),
69 fLoHpt(theMUONLocalTrig.fLoHpt),
1657f946 70
71 fX1Pattern(theMUONLocalTrig.fX1Pattern),
72 fX2Pattern(theMUONLocalTrig.fX2Pattern),
73 fX3Pattern(theMUONLocalTrig.fX3Pattern),
74 fX4Pattern(theMUONLocalTrig.fX4Pattern),
75
76 fY1Pattern(theMUONLocalTrig.fY1Pattern),
77 fY2Pattern(theMUONLocalTrig.fY2Pattern),
78 fY3Pattern(theMUONLocalTrig.fY3Pattern),
89976fde 79 fY4Pattern(theMUONLocalTrig.fY4Pattern)
e9b63742 80{
5398f946 81/// Copy constructor (useful for TClonesArray)
82
e9b63742 83}
71a2d3aa 84
85//----------------------------------------------------------------------
86AliMUONLocalTrigger::~AliMUONLocalTrigger()
87{
88/// Destructor
89}
90
e9b63742 91//----------------------------------------------------------------------
30178c30 92AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& theMUONLocalTrig)
e9b63742 93{
5398f946 94/// Assigment operator;
95/// equal operator (useful for non-pointer member in TClonesArray)
8d7dfec2 96
30178c30 97 if (this == &theMUONLocalTrig)
e9b63742 98 return *this;
99
30178c30 100 // base class assignement
101 TObject::operator=(theMUONLocalTrig);
102
103 fLoCircuit = theMUONLocalTrig.fLoCircuit;
104 fLoStripX = theMUONLocalTrig.fLoStripX;
105 fLoDev = theMUONLocalTrig.fLoDev;
8aac6cce 106 fLoSdev = theMUONLocalTrig.fLoSdev;
107 fLoTrigY = theMUONLocalTrig.fLoTrigY;
30178c30 108 fLoStripY = theMUONLocalTrig.fLoStripY;
109 fLoLpt = theMUONLocalTrig.fLoLpt;
110 fLoHpt = theMUONLocalTrig.fLoHpt;
e9b63742 111
6dc7fcdf 112 fX1Pattern = theMUONLocalTrig.fX1Pattern;
113 fX2Pattern = theMUONLocalTrig.fX2Pattern;
114 fX3Pattern = theMUONLocalTrig.fX3Pattern;
115 fX4Pattern = theMUONLocalTrig.fX4Pattern;
116
117 fY1Pattern = theMUONLocalTrig.fY1Pattern;
118 fY2Pattern = theMUONLocalTrig.fY2Pattern;
119 fY3Pattern = theMUONLocalTrig.fY3Pattern;
120 fY4Pattern = theMUONLocalTrig.fY4Pattern;
121
e9b63742 122 return *this;
123}
124
1657f946 125
6dc7fcdf 126//----------------------------------------------------------------------
89976fde 127Char_t AliMUONLocalTrigger::GetLoDecision() const
6dc7fcdf 128{
5398f946 129/// Get local decision
130/// from H(L)pt;
131/// returns local trigger decision
8d7dfec2 132
89976fde 133 Char_t rv = (fLoLpt & 0x3);
134 rv |= (fLoHpt << 2) & 0xC;
402fb06e 135
89976fde 136 return rv;
6dc7fcdf 137}
2be06f1e 138
9016450b 139//___________________________________________
140void AliMUONLocalTrigger::GetXPattern(TArrayS& array) const
141{
142 /// return array of X pattern
143 Short_t vec[4] = {GetX1Pattern(), GetX2Pattern(), GetX3Pattern(), GetX4Pattern()};
144 array.Set(4, vec);
145}
146
147//___________________________________________
148void AliMUONLocalTrigger::GetYPattern(TArrayS& array) const
149{
150 /// return array of Y pattern
151 Short_t vec[4] = {GetY1Pattern(), GetY2Pattern(), GetY3Pattern(), GetY4Pattern()};
152 array.Set(4, vec);
153}
2be06f1e 154
89976fde 155//___________________________________________
156Bool_t
157AliMUONLocalTrigger::IsNull() const
158{
159 /// Whether or not this card has something usefull to say or not
160 return ( fX1Pattern == 0 &&
161 fX2Pattern == 0 &&
162 fX3Pattern == 0 &&
163 fX4Pattern == 0 &&
164 fY1Pattern == 0 &&
165 fY2Pattern == 0 &&
166 fY3Pattern == 0 &&
167 fY4Pattern == 0 );
168}
169
8d7dfec2 170//----------------------------------------------------------------------
171void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct)
172{
5398f946 173/// Set local trigger info from rawdata localStruct
8d7dfec2 174
175 // set id'
176 SetLoCircuit(loCircuit);
177
8aac6cce 178 // set X, Y, dev, Sdev and TrigY
8d7dfec2 179 SetLoStripX((Int_t)localStruct.GetXPos());
180 SetLoStripY((Int_t)localStruct.GetYPos());
181 SetLoDev((Int_t)localStruct.GetXDev());
8aac6cce 182 SetLoSdev((Int_t)localStruct.GetSXDev());
183 SetLoTrigY((Int_t)localStruct.GetTriggerY());
8d7dfec2 184
185 // set L(H)pt
186 SetLoLpt(localStruct.GetLpt());
187 SetLoHpt(localStruct.GetHpt());
188
189 // set pattern X
190 SetX1Pattern(localStruct.GetX1());
191 SetX2Pattern(localStruct.GetX2());
192 SetX3Pattern(localStruct.GetX3());
193 SetX4Pattern(localStruct.GetX4());
194
195 // set pattern Y
196 SetY1Pattern(localStruct.GetY1());
197 SetY2Pattern(localStruct.GetY2());
198 SetY3Pattern(localStruct.GetY3());
199 SetY4Pattern(localStruct.GetY4());
200
201}
eba3379e 202
89976fde 203namespace
204{
205 const char* AsString(Int_t t)
206 {
207 switch (t)
208 {
209 case 0:
210 return "no";
211 break;
212 case 1:
213 return "minus";
214 break;
215 case 2:
216 return "plus";
217 break;
218 case 3:
219 return "undef";
220 break;
221 default:
222 return "";
223 break;
224 }
225 }
226}
227
eba3379e 228//----------------------------------------------------------------------
229void AliMUONLocalTrigger::Print(Option_t* opt) const
230{
71a2d3aa 231/// Printing Local Trigger information
232
eba3379e 233 TString sopt(opt);
234 sopt.ToUpper();
eba3379e 235
89976fde 236 cout << Form("Circuit %3d Decision %2d StripX %2d Dev %2d(%1d) StripY %2d Lpt %6s Hpt %6s",
237 LoCircuit(), GetLoDecision(),
238 LoStripX(), LoDev(), LoSdev(), LoStripY(),
239 AsString(LoLpt()),AsString(LoHpt()),IsNull()) << endl;
240
241 if ( sopt.Contains("FULL") ) {
eba3379e 242
89976fde 243 cout << Form("Xpatterns = 0x %04x %04x %04x %04x",
244 fX1Pattern,fX2Pattern,fX3Pattern,fX4Pattern) << endl;
245 cout << Form("Ypatterns = 0x %04x %04x %04x %04x",
246 fY1Pattern,fY2Pattern,fY3Pattern,fY4Pattern) << endl;
eba3379e 247 }
248}
249
89976fde 250//----------------------------------------------------------------------
251const char*
252AliMUONLocalTrigger::GetName() const
253{
254/// Generate name
255
256 return Form("LocalBoard%3d",LoCircuit());
257}