1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
19 #include "AliMUONLocalTrigger.h"
21 #include "AliMUONLocalStruct.h"
22 #include <Riostream.h>
24 /// \class AliMUONLocalTrigger
25 /// Local Trigger algorithm data outputs
26 /// (contains local trigger decision and bit patterns) \n
27 /// Add SetLocalStruct method for rawdata (Ch. Finck)
28 /// \author Ph. Crochet
31 ClassImp(AliMUONLocalTrigger)
34 //----------------------------------------------------------------------
35 AliMUONLocalTrigger::AliMUONLocalTrigger()
58 /// Default constructor
60 //----------------------------------------------------------------------
61 AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocalTrig)
62 : TObject(theMUONLocalTrig),
63 fLoCircuit(theMUONLocalTrig.fLoCircuit),
64 fLoStripX(theMUONLocalTrig.fLoStripX),
65 fLoDev(theMUONLocalTrig.fLoDev),
66 fLoSdev(theMUONLocalTrig.fLoSdev),
67 fLoTrigY(theMUONLocalTrig.fLoTrigY),
68 fLoStripY(theMUONLocalTrig.fLoStripY),
69 fLoLpt(theMUONLocalTrig.fLoLpt),
70 fLoHpt(theMUONLocalTrig.fLoHpt),
72 fX1Pattern(theMUONLocalTrig.fX1Pattern),
73 fX2Pattern(theMUONLocalTrig.fX2Pattern),
74 fX3Pattern(theMUONLocalTrig.fX3Pattern),
75 fX4Pattern(theMUONLocalTrig.fX4Pattern),
77 fY1Pattern(theMUONLocalTrig.fY1Pattern),
78 fY2Pattern(theMUONLocalTrig.fY2Pattern),
79 fY3Pattern(theMUONLocalTrig.fY3Pattern),
80 fY4Pattern(theMUONLocalTrig.fY4Pattern),
82 fLoDecision(theMUONLocalTrig.fLoDecision)
84 /// Copy constructor (useful for TClonesArray)
88 //----------------------------------------------------------------------
89 AliMUONLocalTrigger::~AliMUONLocalTrigger()
94 //----------------------------------------------------------------------
95 AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& theMUONLocalTrig)
97 /// Assigment operator;
98 /// equal operator (useful for non-pointer member in TClonesArray)
100 if (this == &theMUONLocalTrig)
103 // base class assignement
104 TObject::operator=(theMUONLocalTrig);
106 fLoCircuit = theMUONLocalTrig.fLoCircuit;
107 fLoStripX = theMUONLocalTrig.fLoStripX;
108 fLoDev = theMUONLocalTrig.fLoDev;
109 fLoSdev = theMUONLocalTrig.fLoSdev;
110 fLoTrigY = theMUONLocalTrig.fLoTrigY;
111 fLoStripY = theMUONLocalTrig.fLoStripY;
112 fLoLpt = theMUONLocalTrig.fLoLpt;
113 fLoHpt = theMUONLocalTrig.fLoHpt;
115 fX1Pattern = theMUONLocalTrig.fX1Pattern;
116 fX2Pattern = theMUONLocalTrig.fX2Pattern;
117 fX3Pattern = theMUONLocalTrig.fX3Pattern;
118 fX4Pattern = theMUONLocalTrig.fX4Pattern;
120 fY1Pattern = theMUONLocalTrig.fY1Pattern;
121 fY2Pattern = theMUONLocalTrig.fY2Pattern;
122 fY3Pattern = theMUONLocalTrig.fY3Pattern;
123 fY4Pattern = theMUONLocalTrig.fY4Pattern;
125 fLoDecision = theMUONLocalTrig.fLoDecision;
131 //----------------------------------------------------------------------
132 Char_t AliMUONLocalTrigger::GetLoDecision()
134 /// Get local decision
136 /// returns local trigger decision
138 fLoDecision = (fLoLpt & 0x3);
139 fLoDecision |= (fLoHpt << 2) & 0xC;
144 //___________________________________________
145 void AliMUONLocalTrigger::GetXPattern(TArrayS& array) const
147 /// return array of X pattern
148 Short_t vec[4] = {GetX1Pattern(), GetX2Pattern(), GetX3Pattern(), GetX4Pattern()};
152 //___________________________________________
153 void AliMUONLocalTrigger::GetYPattern(TArrayS& array) const
155 /// return array of Y pattern
156 Short_t vec[4] = {GetY1Pattern(), GetY2Pattern(), GetY3Pattern(), GetY4Pattern()};
160 //----------------------------------------------------------------------
161 void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct)
163 /// Set local trigger info from rawdata localStruct
166 SetLoCircuit(loCircuit);
168 // set X, Y, dev, Sdev and TrigY
169 SetLoStripX((Int_t)localStruct.GetXPos());
170 SetLoStripY((Int_t)localStruct.GetYPos());
171 SetLoDev((Int_t)localStruct.GetXDev());
172 SetLoSdev((Int_t)localStruct.GetSXDev());
173 SetLoTrigY((Int_t)localStruct.GetTriggerY());
176 SetLoLpt(localStruct.GetLpt());
177 SetLoHpt(localStruct.GetHpt());
180 SetX1Pattern(localStruct.GetX1());
181 SetX2Pattern(localStruct.GetX2());
182 SetX3Pattern(localStruct.GetX3());
183 SetX4Pattern(localStruct.GetX4());
186 SetY1Pattern(localStruct.GetY1());
187 SetY2Pattern(localStruct.GetY2());
188 SetY3Pattern(localStruct.GetY3());
189 SetY4Pattern(localStruct.GetY4());
193 //----------------------------------------------------------------------
194 void AliMUONLocalTrigger::Print(Option_t* opt) const
196 /// Printing Local Trigger information
201 if ( sopt.Contains("FULL") ) {
203 printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt());