Adding a reminder for coders
[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
149 // dummy assignment operator
150
151 this->fACQflag = r.fACQflag;
152 this->fPSbit = r.fPSbit;
153 this->fTRM = r.fTRM;
154 this->fTRMchain = r.fTRMchain;
155 this->fTDC = r.fTDC;
156 this->fTDCchannel = r.fTDCchannel;
157 this->fLeading = r.fLeading;
158 this->fTrailing = r.fTrailing;
159 this->fToT = r.fToT;
160 this->fTime = r.fTime;
161 this->fError = r.fError;
2bf4d9d6 162 this->fDeltaBC = r.fDeltaBC;
163 this->fL0L1Latency = r.fL0L1Latency;
15ec34b9 164 return *this;
165
166}
167
168//_____________________________________________________________________________
bf33f8f0 169void AliTOFrawData::Update(Int_t tof, Int_t tot, Int_t leading, Int_t trailing, Int_t psBit, Int_t acq, Int_t errorFlag)
15ec34b9 170{
171 //
172 // To update a raw data object:
173 // if there is just a leading edge measurement,
174 // this method adds the trailing edge measurement
175 // to evaluate the time-of-flight and time-over-threshold measurements
176 //
177
4682c56e 178 AliDebug(2,Form(" %d %d %d %d %d %d",tof, tot, leading, psBit, acq, errorFlag));
15ec34b9 179
0192b95f 180 if (fLeading!=-1 /*&& fTime==-1*/ && fToT==-1 && trailing!=-1) { // adc
15ec34b9 181
182 fTrailing = trailing;
183 fTime = fLeading;
184 fToT = Int_t((trailing - fLeading)*AliTOFGeometry::TdcBinWidth()/AliTOFGeometry::ToTBinWidth());
185
186 }
15ec34b9 187
0192b95f 188}
189
190//_____________________________________________________________________________
191Int_t AliTOFrawData::GetTOT() const
192{
193 //
18f005ac 194 // Return the TOT measurement
0192b95f 195 //
196
197 Int_t dummyToT = 0;
198 if (fLeading!=-1 && fToT==-1) dummyToT = 0;
199 else dummyToT = fToT;
200
201 return dummyToT;
15ec34b9 202
203}