]>
Commit | Line | Data |
---|---|---|
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 | 18 | Revision 1.2 2007/03/28 10:50:33 decaro |
19 | Rounding off problem in rawData coding/decoding: solved | |
20 | ||
d11fc181 | 21 | Revision 1.1 2007/02/20 15:57:00 decaro |
22 | Raw data update: to read the TOF raw data defined in UNPACKED mode | |
23 | ||
15ec34b9 | 24 | Revision 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 | ||
39 | ClassImp(AliTOFrawData) | |
40 | ||
41 | //_____________________________________________________________________________ | |
42 | AliTOFrawData::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 | 64 | AliTOFrawData::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 | 87 | AliTOFrawData::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 | //_____________________________________________________________________________ | |
110 | AliTOFrawData::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 | //_____________________________________________________________________________ | |
146 | AliTOFrawData& 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 | 169 | void 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 | ||
178 | AliDebug(2,Form(" %10.0f %10.0f %10.0f %1i %1i %1i",tof, tot, leading, psBit, acq, errorFlag)); | |
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 | //_____________________________________________________________________________ | |
191 | Int_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 | } |