]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONLocalTrigger.cxx
Updated list of MUON libraries
[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>
a9e2aefa 23
5398f946 24/// \class AliMUONLocalTrigger
8d7dfec2 25/// Local Trigger algorithm data outputs
5398f946 26/// (contains local trigger decision and bit patterns) \n
27/// Add SetLocalStruct method for rawdata (Ch. Finck)
28/// \author Ph. Crochet
29
30/// \cond CLASSIMP
31ClassImp(AliMUONLocalTrigger)
32/// \endcond
8d7dfec2 33
a9e2aefa 34//----------------------------------------------------------------------
35AliMUONLocalTrigger::AliMUONLocalTrigger()
8d7dfec2 36 : TObject(),
37 fLoCircuit(0),
38 fLoStripX(0),
39 fLoDev(0),
8aac6cce 40 fLoSdev(1),
41 fLoTrigY(1),
42 fLoStripY(15),
8d7dfec2 43 fLoLpt(0),
44 fLoHpt(0),
8d7dfec2 45
46 fX1Pattern(0),
47 fX2Pattern(0),
48 fX3Pattern(0),
49 fX4Pattern(0),
50
51 fY1Pattern(0),
52 fY2Pattern(0),
53 fY3Pattern(0),
54 fY4Pattern(0),
55
2f013ecd 56 fLoDecision(0)
a9e2aefa 57{
5398f946 58/// Default constructor
a9e2aefa 59}
e9b63742 60//----------------------------------------------------------------------
30178c30 61AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocalTrig)
1657f946 62 : TObject(theMUONLocalTrig),
63 fLoCircuit(theMUONLocalTrig.fLoCircuit),
64 fLoStripX(theMUONLocalTrig.fLoStripX),
65 fLoDev(theMUONLocalTrig.fLoDev),
8aac6cce 66 fLoSdev(theMUONLocalTrig.fLoSdev),
67 fLoTrigY(theMUONLocalTrig.fLoTrigY),
1657f946 68 fLoStripY(theMUONLocalTrig.fLoStripY),
69 fLoLpt(theMUONLocalTrig.fLoLpt),
70 fLoHpt(theMUONLocalTrig.fLoHpt),
1657f946 71
72 fX1Pattern(theMUONLocalTrig.fX1Pattern),
73 fX2Pattern(theMUONLocalTrig.fX2Pattern),
74 fX3Pattern(theMUONLocalTrig.fX3Pattern),
75 fX4Pattern(theMUONLocalTrig.fX4Pattern),
76
77 fY1Pattern(theMUONLocalTrig.fY1Pattern),
78 fY2Pattern(theMUONLocalTrig.fY2Pattern),
79 fY3Pattern(theMUONLocalTrig.fY3Pattern),
80 fY4Pattern(theMUONLocalTrig.fY4Pattern),
81
2f013ecd 82 fLoDecision(theMUONLocalTrig.fLoDecision)
e9b63742 83{
5398f946 84/// Copy constructor (useful for TClonesArray)
85
e9b63742 86}
71a2d3aa 87
88//----------------------------------------------------------------------
89AliMUONLocalTrigger::~AliMUONLocalTrigger()
90{
91/// Destructor
92}
93
e9b63742 94//----------------------------------------------------------------------
30178c30 95AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& theMUONLocalTrig)
e9b63742 96{
5398f946 97/// Assigment operator;
98/// equal operator (useful for non-pointer member in TClonesArray)
8d7dfec2 99
30178c30 100 if (this == &theMUONLocalTrig)
e9b63742 101 return *this;
102
30178c30 103 // base class assignement
104 TObject::operator=(theMUONLocalTrig);
105
106 fLoCircuit = theMUONLocalTrig.fLoCircuit;
107 fLoStripX = theMUONLocalTrig.fLoStripX;
108 fLoDev = theMUONLocalTrig.fLoDev;
8aac6cce 109 fLoSdev = theMUONLocalTrig.fLoSdev;
110 fLoTrigY = theMUONLocalTrig.fLoTrigY;
30178c30 111 fLoStripY = theMUONLocalTrig.fLoStripY;
112 fLoLpt = theMUONLocalTrig.fLoLpt;
113 fLoHpt = theMUONLocalTrig.fLoHpt;
e9b63742 114
6dc7fcdf 115 fX1Pattern = theMUONLocalTrig.fX1Pattern;
116 fX2Pattern = theMUONLocalTrig.fX2Pattern;
117 fX3Pattern = theMUONLocalTrig.fX3Pattern;
118 fX4Pattern = theMUONLocalTrig.fX4Pattern;
119
120 fY1Pattern = theMUONLocalTrig.fY1Pattern;
121 fY2Pattern = theMUONLocalTrig.fY2Pattern;
122 fY3Pattern = theMUONLocalTrig.fY3Pattern;
123 fY4Pattern = theMUONLocalTrig.fY4Pattern;
124
125 fLoDecision = theMUONLocalTrig.fLoDecision;
126
e9b63742 127 return *this;
128}
129
1657f946 130
6dc7fcdf 131//----------------------------------------------------------------------
132Char_t AliMUONLocalTrigger::GetLoDecision()
133{
5398f946 134/// Get local decision
135/// from H(L)pt;
136/// returns local trigger decision
8d7dfec2 137
6dc7fcdf 138 fLoDecision = (fLoLpt & 0x3);
139 fLoDecision |= (fLoHpt << 2) & 0xC;
402fb06e 140
6dc7fcdf 141 return fLoDecision;
142}
2be06f1e 143
9016450b 144//___________________________________________
145void AliMUONLocalTrigger::GetXPattern(TArrayS& array) const
146{
147 /// return array of X pattern
148 Short_t vec[4] = {GetX1Pattern(), GetX2Pattern(), GetX3Pattern(), GetX4Pattern()};
149 array.Set(4, vec);
150}
151
152//___________________________________________
153void AliMUONLocalTrigger::GetYPattern(TArrayS& array) const
154{
155 /// return array of Y pattern
156 Short_t vec[4] = {GetY1Pattern(), GetY2Pattern(), GetY3Pattern(), GetY4Pattern()};
157 array.Set(4, vec);
158}
2be06f1e 159
8d7dfec2 160//----------------------------------------------------------------------
161void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct)
162{
5398f946 163/// Set local trigger info from rawdata localStruct
8d7dfec2 164
165 // set id'
166 SetLoCircuit(loCircuit);
167
8aac6cce 168 // set X, Y, dev, Sdev and TrigY
8d7dfec2 169 SetLoStripX((Int_t)localStruct.GetXPos());
170 SetLoStripY((Int_t)localStruct.GetYPos());
171 SetLoDev((Int_t)localStruct.GetXDev());
8aac6cce 172 SetLoSdev((Int_t)localStruct.GetSXDev());
173 SetLoTrigY((Int_t)localStruct.GetTriggerY());
8d7dfec2 174
175 // set L(H)pt
176 SetLoLpt(localStruct.GetLpt());
177 SetLoHpt(localStruct.GetHpt());
178
179 // set pattern X
180 SetX1Pattern(localStruct.GetX1());
181 SetX2Pattern(localStruct.GetX2());
182 SetX3Pattern(localStruct.GetX3());
183 SetX4Pattern(localStruct.GetX4());
184
185 // set pattern Y
186 SetY1Pattern(localStruct.GetY1());
187 SetY2Pattern(localStruct.GetY2());
188 SetY3Pattern(localStruct.GetY3());
189 SetY4Pattern(localStruct.GetY4());
190
191}
eba3379e 192
193//----------------------------------------------------------------------
194void AliMUONLocalTrigger::Print(Option_t* opt) const
195{
71a2d3aa 196/// Printing Local Trigger information
197
eba3379e 198 TString sopt(opt);
199 sopt.ToUpper();
200
201 if ( sopt.Contains("FULL") ) {
202
ad705f30 203 printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt());
eba3379e 204
205 }
206}
207