Coverity fixes
[u/mrichter/AliRoot.git] / TOF / AliTOFrawData.cxx
CommitLineData
15ec34b9 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$
bf33f8f0 18Revision 1.2 2007/03/28 10:50:33 decaro
19Rounding off problem in rawData coding/decoding: solved
20
d11fc181 21Revision 1.1 2007/02/20 15:57:00 decaro
22Raw data update: to read the TOF raw data defined in UNPACKED mode
23
15ec34b9 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),
2bf4d9d6 54 fError(-1),
55 fDeltaBC(-1),
56 fL0L1Latency(-1)
15ec34b9 57{
58
59 // default ctr
60
61}
62
63//_____________________________________________________________________________
bf33f8f0 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) :
15ec34b9 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),
2bf4d9d6 77 fError(l),
78 fDeltaBC(0),
79 fL0L1Latency(0)
15ec34b9 80{
81
82// ctr
83
84}
85
86//_____________________________________________________________________________
bf33f8f0 87AliTOFrawData::AliTOFrawData(Int_t a, Int_t b, Int_t c, Int_t d, Int_t e,
2bf4d9d6 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) :
15ec34b9 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),
2bf4d9d6 100 fError(l),
101 fDeltaBC(deltaBC),
102 fL0L1Latency(l0l1)
15ec34b9 103{
104
105 // ctr
17ebc9c0 106 if (fTime==-1) fTime = fLeading;
15ec34b9 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),
2bf4d9d6 122 fError(-1),
123 fDeltaBC(-1),
124 fL0L1Latency(-1)
15ec34b9 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;
2bf4d9d6 140 fDeltaBC = r.fDeltaBC;
141 fL0L1Latency = r.fL0L1Latency;
15ec34b9 142
143}
144
145//_____________________________________________________________________________
146AliTOFrawData& AliTOFrawData::operator=(const AliTOFrawData& r)
147{
148
ce4b5362 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;
15ec34b9 168 return *this;
169
170}
171
172//_____________________________________________________________________________
bf33f8f0 173void AliTOFrawData::Update(Int_t tof, Int_t tot, Int_t leading, Int_t trailing, Int_t psBit, Int_t acq, Int_t errorFlag)
15ec34b9 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
4682c56e 182 AliDebug(2,Form(" %d %d %d %d %d %d",tof, tot, leading, psBit, acq, errorFlag));
15ec34b9 183
0192b95f 184 if (fLeading!=-1 /*&& fTime==-1*/ && fToT==-1 && trailing!=-1) { // adc
15ec34b9 185
186 fTrailing = trailing;
187 fTime = fLeading;
188 fToT = Int_t((trailing - fLeading)*AliTOFGeometry::TdcBinWidth()/AliTOFGeometry::ToTBinWidth());
189
190 }
15ec34b9 191
0192b95f 192}
193
194//_____________________________________________________________________________
195Int_t AliTOFrawData::GetTOT() const
196{
197 //
18f005ac 198 // Return the TOT measurement
0192b95f 199 //
200
201 Int_t dummyToT = 0;
202 if (fLeading!=-1 && fToT==-1) dummyToT = 0;
203 else dummyToT = fToT;
204
205 return dummyToT;
15ec34b9 206
207}