]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONGlobalTrigger.cxx
New versions of GDC and CDH raw data headers. Some CDH getters are added
[u/mrichter/AliRoot.git] / MUON / AliMUONGlobalTrigger.cxx
... / ...
CommitLineData
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
17/* $Id$ */
18
19
20#include "AliMUONGlobalTrigger.h"
21#include <assert.h>
22#include "AliLog.h"
23#include "AliMUONLocalStruct.h"
24
25/// \class AliMUONGlobalTrigger
26/// Global Trigger algorithm data output.
27/// Built from Local and Regional algorithms. \n
28/// Update for copy & assigment operator,
29/// add SetGlobalPattern and GetGlobalPattern method for rawdata
30/// (Ch. Finck)
31/// \author Ph. Crochet
32
33/// \cond CLASSIMP
34ClassImp(AliMUONGlobalTrigger)
35/// \endcond
36
37//----------------------------------------------------------------------
38AliMUONGlobalTrigger::AliMUONGlobalTrigger()
39 : TObject(),
40 fSinglePlusLpt(0),
41 fSinglePlusHpt(0),
42 fSinglePlusApt(0),
43
44 fSingleMinusLpt(0),
45 fSingleMinusHpt(0),
46 fSingleMinusApt(0),
47
48 fSingleUndefLpt(0),
49 fSingleUndefHpt(0),
50 fSingleUndefApt(0),
51
52 fPairUnlikeLpt(0),
53 fPairUnlikeHpt(0),
54 fPairUnlikeApt(0),
55
56 fPairLikeLpt(0),
57 fPairLikeHpt(0),
58 fPairLikeApt(0)
59{
60 /// Default constructor
61}
62
63//----------------------------------------------------------------------
64AliMUONGlobalTrigger::AliMUONGlobalTrigger(const AliMUONGlobalTrigger& theMUONGlobalTrig)
65 : TObject(theMUONGlobalTrig),
66
67 fSinglePlusLpt(theMUONGlobalTrig.fSinglePlusLpt),
68 fSinglePlusHpt(theMUONGlobalTrig.fSinglePlusHpt),
69 fSinglePlusApt(theMUONGlobalTrig.fSinglePlusApt),
70
71 fSingleMinusLpt(theMUONGlobalTrig.fSingleMinusLpt),
72 fSingleMinusHpt(theMUONGlobalTrig.fSingleMinusHpt),
73 fSingleMinusApt(theMUONGlobalTrig.fSingleMinusApt),
74
75 fSingleUndefLpt(theMUONGlobalTrig.fSingleUndefLpt),
76 fSingleUndefHpt(theMUONGlobalTrig.fSingleUndefHpt),
77 fSingleUndefApt(theMUONGlobalTrig.fSingleUndefApt),
78
79 fPairUnlikeLpt(theMUONGlobalTrig.fPairUnlikeLpt),
80 fPairUnlikeHpt(theMUONGlobalTrig.fPairUnlikeHpt),
81 fPairUnlikeApt(theMUONGlobalTrig.fPairUnlikeApt),
82
83 fPairLikeLpt(theMUONGlobalTrig.fPairLikeLpt),
84 fPairLikeHpt(theMUONGlobalTrig.fPairLikeHpt),
85 fPairLikeApt(theMUONGlobalTrig.fPairLikeApt)
86{
87 /// Copy constructor
88}
89
90//----------------------------------------------------------------------
91AliMUONGlobalTrigger::~AliMUONGlobalTrigger()
92{
93 /// Destructor
94}
95
96//----------------------------------------------------------------------
97AliMUONGlobalTrigger& AliMUONGlobalTrigger::operator=(const AliMUONGlobalTrigger& theMUONGlobalTrig)
98{
99 /// Assignement operator;
100 /// equal operator (useful for non-pointer member in TClonesArray)
101
102 if (this == &theMUONGlobalTrig)
103 return *this;
104
105 // base class assignement
106 TObject::operator=(theMUONGlobalTrig);
107
108 fSinglePlusLpt = theMUONGlobalTrig.fSinglePlusLpt;
109 fSinglePlusHpt = theMUONGlobalTrig.fSinglePlusHpt;
110 fSinglePlusApt = theMUONGlobalTrig.fSinglePlusApt;
111
112 fSingleMinusLpt = theMUONGlobalTrig.fSingleMinusLpt;
113 fSingleMinusHpt = theMUONGlobalTrig.fSingleMinusHpt;
114 fSingleMinusApt = theMUONGlobalTrig.fSingleMinusApt;
115
116 fSingleUndefLpt = theMUONGlobalTrig.fSingleUndefLpt;
117 fSingleUndefHpt = theMUONGlobalTrig.fSingleUndefHpt;
118 fSingleUndefApt = theMUONGlobalTrig.fSingleUndefApt;
119
120 fPairUnlikeLpt = theMUONGlobalTrig.fPairUnlikeLpt;
121 fPairUnlikeHpt = theMUONGlobalTrig.fPairUnlikeHpt;
122 fPairUnlikeApt = theMUONGlobalTrig.fPairUnlikeApt;
123
124 fPairLikeLpt = theMUONGlobalTrig.fPairLikeLpt;
125 fPairLikeHpt = theMUONGlobalTrig.fPairLikeHpt;
126 fPairLikeApt = theMUONGlobalTrig.fPairLikeApt;
127
128 return *this;
129}
130
131//----------------------------------------------------------------------
132AliMUONGlobalTrigger::AliMUONGlobalTrigger(Int_t *singlePlus,
133 Int_t *singleMinus,
134 Int_t *singleUndef,
135 Int_t *pairUnlike, Int_t *pairLike)
136 : TObject(),
137
138 fSinglePlusLpt(singlePlus[0]),
139 fSinglePlusHpt(singlePlus[1]),
140 fSinglePlusApt(singlePlus[2]),
141
142 fSingleMinusLpt(singleMinus[0]),
143 fSingleMinusHpt(singleMinus[1]),
144 fSingleMinusApt(singleMinus[2]),
145
146 fSingleUndefLpt(singleUndef[0]),
147 fSingleUndefHpt(singleUndef[1]),
148 fSingleUndefApt(singleUndef[2]),
149
150 fPairUnlikeLpt(pairUnlike[0]),
151 fPairUnlikeHpt(pairUnlike[1]),
152 fPairUnlikeApt(pairUnlike[2]),
153
154 fPairLikeLpt(pairLike[0]),
155 fPairLikeHpt(pairLike[1]),
156 fPairLikeApt(pairLike[2])
157
158{
159 /// Set the Global Trigger object
160}
161
162//-----------------------------------------------------------
163void AliMUONGlobalTrigger:: SetGlobalPattern(Int_t gloTrigPat)
164{
165 /// Set class member from global pattern
166 /// coming from rawdata
167
168 fSinglePlusLpt = (gloTrigPat ) & 0x1;
169 fSinglePlusHpt = (gloTrigPat >> 1) & 0x1;
170 fSinglePlusApt = (gloTrigPat >> 2) & 0x1;
171
172 fSingleMinusLpt = (gloTrigPat >> 3) & 0x1;
173 fSingleMinusHpt = (gloTrigPat >> 4) & 0x1;
174 fSingleMinusApt = (gloTrigPat >> 5) & 0x1;
175
176 fSingleUndefLpt = (gloTrigPat >> 6) & 0x1;
177 fSingleUndefHpt = (gloTrigPat >> 7) & 0x1;
178 fSingleUndefApt = (gloTrigPat >> 8) & 0x1;
179
180 fPairUnlikeLpt = (gloTrigPat >> 9) & 0x1;
181 fPairUnlikeHpt = (gloTrigPat >> 10) & 0x1;
182 fPairUnlikeApt = (gloTrigPat >> 11) & 0x1;
183
184 fPairLikeLpt = (gloTrigPat >> 12) & 0x1;
185 fPairLikeHpt = (gloTrigPat >> 13) & 0x1;
186 fPairLikeApt = (gloTrigPat >> 14) & 0x1;
187
188}
189
190//-----------------------------------------------------------
191Int_t AliMUONGlobalTrigger::GetGlobalPattern() const
192{
193 /// Global trigger pattern calculation
194 /// from class member values
195
196 Int_t gloTrigPat = 0;
197
198 if (SinglePlusLpt()) gloTrigPat|= 0x1;
199 if (SinglePlusHpt()) gloTrigPat|= 0x2;
200 if (SinglePlusApt()) gloTrigPat|= 0x4;
201
202 if (SingleMinusLpt()) gloTrigPat|= 0x8;
203 if (SingleMinusHpt()) gloTrigPat|= 0x10;
204 if (SingleMinusApt()) gloTrigPat|= 0x20;
205
206 if (SingleUndefLpt()) gloTrigPat|= 0x40;
207 if (SingleUndefHpt()) gloTrigPat|= 0x80;
208 if (SingleUndefApt()) gloTrigPat|= 0x100;
209
210 if (PairUnlikeLpt()) gloTrigPat|= 0x200;
211 if (PairUnlikeHpt()) gloTrigPat|= 0x400;
212 if (PairUnlikeApt()) gloTrigPat|= 0x800;
213
214 if (PairLikeLpt()) gloTrigPat|= 0x1000;
215 if (PairLikeHpt()) gloTrigPat|= 0x2000;
216 if (PairLikeApt()) gloTrigPat|= 0x4000;
217
218 return gloTrigPat;
219
220}
221
222//----------------------------------------------------------------------
223void AliMUONGlobalTrigger::Print(Option_t* opt) const
224{
225 //
226 // Printing Global Trigger information
227 //
228 TString sopt(opt);
229 sopt.ToUpper();
230 if ( sopt.Contains("FULL") ) {
231
232 printf("===================================================\n");
233 printf(" Global Trigger output Low pt High pt All\n");
234 printf(" number of Single Plus :\t");
235 printf("%i\t%i\t%i\t",SinglePlusLpt(),SinglePlusHpt(),SinglePlusApt());
236 printf("\n");
237
238 printf(" number of Single Minus :\t");
239 printf("%i\t%i\t%i\t",SingleMinusLpt(),SingleMinusHpt(),SingleMinusApt());
240 printf("\n");
241
242 printf(" number of Single Undefined :\t");
243 printf("%i\t%i\t%i\t",SingleUndefLpt(),SingleUndefHpt(),SingleUndefApt());
244 printf("\n");
245
246 printf(" number of UnlikeSign pair :\t");
247 printf("%i\t%i\t%i\t",PairUnlikeLpt(),PairUnlikeHpt(),PairUnlikeApt());
248 printf("\n");
249
250 printf(" number of LikeSign pair :\t");
251 printf("%i\t%i\t%i\t",PairLikeLpt(),PairLikeHpt(),PairLikeApt());
252 printf("\n");
253
254 printf("===================================================\n");
255 }
256}
257
258