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"
23 /// \class AliMUONLocalTrigger
24 /// Local Trigger algorithm data outputs
25 /// (contains local trigger decision and bit patterns) \n
26 /// Add SetLocalStruct method for rawdata (Ch. Finck)
27 /// \author Ph. Crochet
30 ClassImp(AliMUONLocalTrigger)
33 //----------------------------------------------------------------------
34 AliMUONLocalTrigger::AliMUONLocalTrigger()
56 /// Default constructor
58 //----------------------------------------------------------------------
59 AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocalTrig)
60 : TObject(theMUONLocalTrig),
61 fLoCircuit(theMUONLocalTrig.fLoCircuit),
62 fLoStripX(theMUONLocalTrig.fLoStripX),
63 fLoDev(theMUONLocalTrig.fLoDev),
64 fLoStripY(theMUONLocalTrig.fLoStripY),
65 fLoLpt(theMUONLocalTrig.fLoLpt),
66 fLoHpt(theMUONLocalTrig.fLoHpt),
67 fLoOutput(theMUONLocalTrig.fLoOutput),
69 fX1Pattern(theMUONLocalTrig.fX1Pattern),
70 fX2Pattern(theMUONLocalTrig.fX2Pattern),
71 fX3Pattern(theMUONLocalTrig.fX3Pattern),
72 fX4Pattern(theMUONLocalTrig.fX4Pattern),
74 fY1Pattern(theMUONLocalTrig.fY1Pattern),
75 fY2Pattern(theMUONLocalTrig.fY2Pattern),
76 fY3Pattern(theMUONLocalTrig.fY3Pattern),
77 fY4Pattern(theMUONLocalTrig.fY4Pattern),
79 fLoDecision(theMUONLocalTrig.fLoDecision)
81 /// Copy constructor (useful for TClonesArray)
84 //----------------------------------------------------------------------
85 AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& theMUONLocalTrig)
87 /// Assigment operator;
88 /// equal operator (useful for non-pointer member in TClonesArray)
90 if (this == &theMUONLocalTrig)
93 // base class assignement
94 TObject::operator=(theMUONLocalTrig);
96 fLoCircuit = theMUONLocalTrig.fLoCircuit;
97 fLoStripX = theMUONLocalTrig.fLoStripX;
98 fLoDev = theMUONLocalTrig.fLoDev;
99 fLoStripY = theMUONLocalTrig.fLoStripY;
100 fLoLpt = theMUONLocalTrig.fLoLpt;
101 fLoHpt = theMUONLocalTrig.fLoHpt;
102 fLoOutput = theMUONLocalTrig.fLoOutput;
104 fX1Pattern = theMUONLocalTrig.fX1Pattern;
105 fX2Pattern = theMUONLocalTrig.fX2Pattern;
106 fX3Pattern = theMUONLocalTrig.fX3Pattern;
107 fX4Pattern = theMUONLocalTrig.fX4Pattern;
109 fY1Pattern = theMUONLocalTrig.fY1Pattern;
110 fY2Pattern = theMUONLocalTrig.fY2Pattern;
111 fY3Pattern = theMUONLocalTrig.fY3Pattern;
112 fY4Pattern = theMUONLocalTrig.fY4Pattern;
114 fLoDecision = theMUONLocalTrig.fLoDecision;
120 //----------------------------------------------------------------------
121 Char_t AliMUONLocalTrigger::GetLoDecision()
123 /// Get local decision
125 /// returns local trigger decision
127 fLoDecision = (fLoLpt & 0x3);
128 fLoDecision |= (fLoHpt << 2) & 0xC;
134 //----------------------------------------------------------------------
135 void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct)
137 /// Set local trigger info from rawdata localStruct
140 SetLoCircuit(loCircuit);
143 SetLoStripX((Int_t)localStruct.GetXPos());
144 SetLoStripY((Int_t)localStruct.GetYPos());
145 SetLoDev((Int_t)localStruct.GetXDev());
148 SetLoLpt(localStruct.GetLpt());
149 SetLoHpt(localStruct.GetHpt());
152 SetX1Pattern(localStruct.GetX1());
153 SetX2Pattern(localStruct.GetX2());
154 SetX3Pattern(localStruct.GetX3());
155 SetX4Pattern(localStruct.GetX4());
158 SetY1Pattern(localStruct.GetY1());
159 SetY2Pattern(localStruct.GetY2());
160 SetY3Pattern(localStruct.GetY3());
161 SetY4Pattern(localStruct.GetY4());
165 //----------------------------------------------------------------------
166 void AliMUONLocalTrigger::Print(Option_t* opt) const
169 // Printing Local Trigger information
174 if ( sopt.Contains("FULL") ) {
176 printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt());