]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TOF/AliTOFrawData.cxx
task update
[u/mrichter/AliRoot.git] / TOF / AliTOFrawData.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$Log$
18Revision 1.2 2007/03/28 10:50:33 decaro
19Rounding off problem in rawData coding/decoding: solved
20
21Revision 1.1 2007/02/20 15:57:00 decaro
22Raw data update: to read the TOF raw data defined in UNPACKED mode
23
24Revision 0.1 2006/12/15 A.De Caro
25 Introuction
26*/
27
28//////////////////////////////////////////////////////
29// //
30// This class provides the TOF raw data object //
31// //
32//////////////////////////////////////////////////////
33
34#include "AliLog.h"
35
36#include "AliTOFGeometry.h"
37#include "AliTOFrawData.h"
38
39ClassImp(AliTOFrawData)
40
41//_____________________________________________________________________________
42AliTOFrawData::AliTOFrawData() :
43 TObject(),
44 fACQflag(-1),
45 fPSbit(-1),
46 fTRM(-1),
47 fTRMchain(-1),
48 fTDC(-1),
49 fTDCchannel(-1),
50 fLeading(-1),
51 fTrailing(-1),
52 fToT(-1),
53 fTime(-1),
54 fError(-1),
55 fDeltaBC(-1),
56 fL0L1Latency(-1)
57{
58
59 // default ctr
60
61}
62
63//_____________________________________________________________________________
64AliTOFrawData::AliTOFrawData(Int_t a, Int_t b, Int_t c, Int_t d, Int_t e,
65 Int_t f, Int_t g, Int_t h, Int_t l) :
66 TObject(),
67 fACQflag(h),
68 fPSbit(g),
69 fTRM(a),
70 fTRMchain(b),
71 fTDC(c),
72 fTDCchannel(d),
73 fLeading(-1),
74 fTrailing(-1),
75 fToT(f),
76 fTime(e),
77 fError(l),
78 fDeltaBC(0),
79 fL0L1Latency(0)
80{
81
82// ctr
83
84}
85
86//_____________________________________________________________________________
87AliTOFrawData::AliTOFrawData(Int_t a, Int_t b, Int_t c, Int_t d, Int_t e,
88 Int_t f, Int_t ee, Int_t ff, Int_t g, Int_t h, Int_t l, Int_t deltaBC, Int_t l0l1) :
89 TObject(),
90 fACQflag(h),
91 fPSbit(g),
92 fTRM(a),
93 fTRMchain(b),
94 fTDC(c),
95 fTDCchannel(d),
96 fLeading(ee),
97 fTrailing(ff),
98 fToT(f),
99 fTime(e),
100 fError(l),
101 fDeltaBC(deltaBC),
102 fL0L1Latency(l0l1)
103{
104
105 // ctr
106 if (fTime==-1) fTime = fLeading;
107}
108
109//_____________________________________________________________________________
110AliTOFrawData::AliTOFrawData(const AliTOFrawData& r) :
111 TObject(),
112 fACQflag(-1),
113 fPSbit(-1),
114 fTRM(-1),
115 fTRMchain(-1),
116 fTDC(-1),
117 fTDCchannel(-1),
118 fLeading(-1),
119 fTrailing(-1),
120 fToT(-1),
121 fTime(-1),
122 fError(-1),
123 fDeltaBC(-1),
124 fL0L1Latency(-1)
125{
126
127 // dummy copy constructor
128
129 fACQflag = r.fACQflag;
130 fPSbit = r.fPSbit;
131 fTRM = r.fTRM;
132 fTRMchain = r.fTRMchain;
133 fTDC = r.fTDC;
134 fTDCchannel = r.fTDCchannel;
135 fLeading = r.fLeading;
136 fTrailing = r.fTrailing;
137 fToT = r.fToT;
138 fTime = r.fTime;
139 fError = r.fError;
140 fDeltaBC = r.fDeltaBC;
141 fL0L1Latency = r.fL0L1Latency;
142
143}
144
145//_____________________________________________________________________________
146AliTOFrawData& AliTOFrawData::operator=(const AliTOFrawData& r)
147{
148
149 // Assignment operator
150
151 if (this == &r)
152 return *this;
153
154 TObject::operator=(r);
155 fACQflag = r.fACQflag;
156 fPSbit = r.fPSbit;
157 fTRM = r.fTRM;
158 fTRMchain = r.fTRMchain;
159 fTDC = r.fTDC;
160 fTDCchannel = r.fTDCchannel;
161 fLeading = r.fLeading;
162 fTrailing = r.fTrailing;
163 fToT = r.fToT;
164 fTime = r.fTime;
165 fError = r.fError;
166 fDeltaBC = r.fDeltaBC;
167 fL0L1Latency= r.fL0L1Latency;
168 return *this;
169
170}
171
172//_____________________________________________________________________________
173void AliTOFrawData::Update(Int_t tof, Int_t tot, Int_t leading, Int_t trailing, Int_t psBit, Int_t acq, Int_t errorFlag)
174{
175 //
176 // To update a raw data object:
177 // if there is just a leading edge measurement,
178 // this method adds the trailing edge measurement
179 // to evaluate the time-of-flight and time-over-threshold measurements
180 //
181
182 AliDebug(2,Form(" %d %d %d %d %d %d",tof, tot, leading, psBit, acq, errorFlag));
183
184 if (fLeading!=-1 /*&& fTime==-1*/ && fToT==-1 && trailing!=-1) { // adc
185
186 fTrailing = trailing;
187 fTime = fLeading;
188 fToT = Int_t((trailing - fLeading)*AliTOFGeometry::TdcBinWidth()/AliTOFGeometry::ToTBinWidth());
189
190 }
191
192}
193
194//_____________________________________________________________________________
195Int_t AliTOFrawData::GetTOT() const
196{
197 //
198 // Return the TOT measurement
199 //
200
201 Int_t dummyToT = 0;
202 if (fLeading!=-1 && fToT==-1) dummyToT = 0;
203 else dummyToT = fToT;
204
205 return dummyToT;
206
207}