]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONLocalTrigger.cxx
7b0e752e6a421ab5c2fede4cb484c72e780236ec
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTrigger.cxx
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
16 /* $Id$ */
17
18
19 #include "AliMUONLocalTrigger.h"
20 #include "AliLog.h"
21 #include "AliMUONLocalStruct.h"
22
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
28
29 /// \cond CLASSIMP
30 ClassImp(AliMUONLocalTrigger)
31 /// \endcond
32
33 //----------------------------------------------------------------------
34 AliMUONLocalTrigger::AliMUONLocalTrigger()
35   : TObject(), 
36     fLoCircuit(0),
37     fLoStripX(0),
38     fLoDev(0),
39     fLoStripY(0),
40     fLoLpt(0),
41     fLoHpt(0),
42     fLoOutput(0),
43     
44     fX1Pattern(0),
45     fX2Pattern(0),
46     fX3Pattern(0),
47     fX4Pattern(0),
48     
49     fY1Pattern(0),
50     fY2Pattern(0),
51     fY3Pattern(0),
52     fY4Pattern(0),
53     
54     fLoDecision(0)
55 {
56 /// Default constructor
57 }
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),
68       
69       fX1Pattern(theMUONLocalTrig.fX1Pattern),
70       fX2Pattern(theMUONLocalTrig.fX2Pattern),
71       fX3Pattern(theMUONLocalTrig.fX3Pattern),
72       fX4Pattern(theMUONLocalTrig.fX4Pattern),
73       
74       fY1Pattern(theMUONLocalTrig.fY1Pattern),
75       fY2Pattern(theMUONLocalTrig.fY2Pattern),
76       fY3Pattern(theMUONLocalTrig.fY3Pattern),
77       fY4Pattern(theMUONLocalTrig.fY4Pattern),
78       
79       fLoDecision(theMUONLocalTrig.fLoDecision)
80 {
81 /// Copy constructor (useful for TClonesArray)
82
83 }
84 //----------------------------------------------------------------------
85 AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& theMUONLocalTrig)
86 {
87 /// Assigment operator;
88 /// equal operator (useful for non-pointer member in TClonesArray)
89
90   if (this == &theMUONLocalTrig)
91     return *this;
92
93   // base class assignement
94   TObject::operator=(theMUONLocalTrig);
95
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;
103
104   fX1Pattern  = theMUONLocalTrig.fX1Pattern;
105   fX2Pattern  = theMUONLocalTrig.fX2Pattern;
106   fX3Pattern  = theMUONLocalTrig.fX3Pattern;
107   fX4Pattern  = theMUONLocalTrig.fX4Pattern;
108
109   fY1Pattern  = theMUONLocalTrig.fY1Pattern;
110   fY2Pattern  = theMUONLocalTrig.fY2Pattern;
111   fY3Pattern  = theMUONLocalTrig.fY3Pattern;
112   fY4Pattern  = theMUONLocalTrig.fY4Pattern;
113
114   fLoDecision =  theMUONLocalTrig.fLoDecision;
115
116   return *this;
117 }
118
119
120 //----------------------------------------------------------------------
121 Char_t AliMUONLocalTrigger::GetLoDecision()
122 {
123 /// Get local decision 
124 /// from H(L)pt;
125 /// returns local trigger decision
126
127   fLoDecision  = (fLoLpt & 0x3);
128   fLoDecision |= (fLoHpt << 2) & 0xC;
129
130   return fLoDecision;
131 }
132
133
134 //----------------------------------------------------------------------
135 void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct)
136 {
137 /// Set local trigger info from rawdata localStruct
138
139   // set id'
140   SetLoCircuit(loCircuit);
141
142   // set X, Y dev  
143   SetLoStripX((Int_t)localStruct.GetXPos());
144   SetLoStripY((Int_t)localStruct.GetYPos());
145   SetLoDev((Int_t)localStruct.GetXDev());
146  
147   // set L(H)pt
148   SetLoLpt(localStruct.GetLpt());
149   SetLoHpt(localStruct.GetHpt());
150
151   // set pattern X
152   SetX1Pattern(localStruct.GetX1());
153   SetX2Pattern(localStruct.GetX2());
154   SetX3Pattern(localStruct.GetX3());
155   SetX4Pattern(localStruct.GetX4());
156
157   // set pattern Y
158   SetY1Pattern(localStruct.GetY1());
159   SetY2Pattern(localStruct.GetY2());
160   SetY3Pattern(localStruct.GetY3());
161   SetY4Pattern(localStruct.GetY4());
162
163 }
164
165 //----------------------------------------------------------------------
166 void AliMUONLocalTrigger::Print(Option_t* opt) const
167 {
168   //
169   // Printing Local Trigger information
170   //
171   TString sopt(opt);
172   sopt.ToUpper();
173  
174   if ( sopt.Contains("FULL") ) { 
175
176       printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt());
177
178   }
179 }
180