]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFrawData.cxx
Change in comment
[u/mrichter/AliRoot.git] / TOF / AliTOFrawData.cxx
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$
18 Revision 1.2  2007/03/28 10:50:33  decaro
19 Rounding off problem in rawData coding/decoding: solved
20
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
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),
54   fError(-1),
55   fDeltaBC(-1),
56   fL0L1Latency(-1)
57 {
58
59   // default ctr
60
61 }
62
63 //_____________________________________________________________________________
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) :
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 //_____________________________________________________________________________
87 AliTOFrawData::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 //_____________________________________________________________________________
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),
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 //_____________________________________________________________________________
146 AliTOFrawData& 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 //_____________________________________________________________________________
173 void 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 //_____________________________________________________________________________
195 Int_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 }