]> git.uio.no Git - u/mrichter/AliRoot.git/blame - START/AliSTARTRawReader.cxx
Code cleanup, removing debug printouts (Alla)
[u/mrichter/AliRoot.git] / START / AliSTARTRawReader.cxx
CommitLineData
ee74718b 1#include "AliSTARTRawReader.h"
2#include "AliSTARTRawData.h"
db173afc 3#include "AliSTARTdigit.h"
460b4363 4#include "AliBitPacking.h"
ee74718b 5
6#include <Riostream.h>
7#include "TMath.h"
8#include "TH1F.h"
9#include "TArrayI.h"
10#include "AliLog.h"
11
12ClassImp(AliSTARTRawReader)
db173afc 13
14 AliSTARTRawReader::AliSTARTRawReader (AliRawReader *rawReader, TTree* tree)
15 : TTask("STARTRawReader","read raw START data"),
16 fTree(tree),
17 fRawReader(rawReader)
ee74718b 18{
19 //
20// create an object to read STARTraw digits
21 AliDebug(1,"Start ");
db173afc 22
ee74718b 23
24}
25 AliSTARTRawReader::~AliSTARTRawReader ()
26{
db173afc 27 //
ee74718b 28}
ee74718b 29
4c7da157 30Bool_t AliSTARTRawReader::Next()
ee74718b 31{
32// read the next raw digit
33// returns kFALSE if there is no digit left
460b4363 34 AliBitPacking *pack ;
35
ee74718b 36 UInt_t word, unpackword;
db173afc 37 Int_t time, adc, pmt;
38 TArrayI *timeTDC1 = new TArrayI(24);
39 TArrayI * chargeTDC1 = new TArrayI(24);
40 TArrayI *timeTDC2 = new TArrayI(24);
41 TArrayI *chargeTDC2 = new TArrayI(24);
db173afc 42
a93ccc90 43 fRawReader->Reset();
4c7da157 44 fRawReader->Select(13,0,1);
ee74718b 45
4c7da157 46
db173afc 47 if (!fRawReader->ReadHeader()){
48 Error("ReadSTARTRaw","Couldn't read header");
4c7da157 49 return kFALSE;
db173afc 50 }
51 AliSTARTdigit *fDigits = new AliSTARTdigit();
52 fTree->Branch("START","AliSTARTdigit",&fDigits,400,1);
4c7da157 53 if (!fRawReader->ReadNextInt(word)) return kFALSE;
54
460b4363 55 for (Int_t i=0; i<24; i++) //time LED
ee74718b 56 {
57 word=0;
58 unpackword=0;
59 fRawReader->ReadNextInt(word);
4c7da157 60 unpackword=pack->UnpackWord(word,0,8);
db173afc 61 pmt=unpackword;
4c7da157 62
ee74718b 63 word=0;
64 unpackword=0;
ee74718b 65 fRawReader->ReadNextInt(word);
460b4363 66 unpackword=pack->UnpackWord(word,8,31);
db173afc 67 time=unpackword;
4c7da157 68 timeTDC1->AddAt(time,i);
460b4363 69 word=0;
70 unpackword=0;
71 }
72 cout<<endl;
73 for (Int_t i=0; i<24; i++) //time CFD
74 {
ee74718b 75 word=0;
76 unpackword=0;
ee74718b 77 fRawReader->ReadNextInt(word);
4c7da157 78 unpackword=pack->UnpackWord(word,0,8);
db173afc 79 pmt=unpackword;
ee74718b 80 word=0;
81 unpackword=0;
ee74718b 82 fRawReader->ReadNextInt(word);
460b4363 83 unpackword=pack->UnpackWord(word,8,31);
db173afc 84 time=unpackword;
4c7da157 85 timeTDC2->AddAt(time,pmt-24);
ee74718b 86 word=0;
87 unpackword=0;
460b4363 88 }
89 cout<<endl;
90
91 for (Int_t i=0; i<24; i++)
92 {
93 // QTC
ee74718b 94 word=0;
95 unpackword=0;
ee74718b 96 fRawReader->ReadNextInt(word);
4c7da157 97 unpackword=pack->UnpackWord(word,0,8);
db173afc 98 pmt=unpackword;
99 word=0;
100 unpackword=0;
101 fRawReader->ReadNextInt(word);
460b4363 102 unpackword= pack->UnpackWord(word,8,31);
103 adc=unpackword; //
4c7da157 104 chargeTDC1->AddAt(adc,pmt-48);
ee74718b 105
106 word=0;
107 unpackword=0;
460b4363 108 }
109 cout<<endl;
db173afc 110
460b4363 111 for (Int_t i=0; i<24; i++) //QTC amplified
112 {
db173afc 113 word=0;
114 unpackword=0;
460b4363 115
db173afc 116 fRawReader->ReadNextInt(word);
4c7da157 117 unpackword=pack->UnpackWord(word,0,8);
db173afc 118 pmt=unpackword;
119 word=0;
120 unpackword=0;
121 fRawReader->ReadNextInt(word);
460b4363 122 unpackword= pack->UnpackWord(word,8,31);
123 adc=unpackword;
4c7da157 124 chargeTDC2->AddAt(adc,pmt-72);
460b4363 125 }
126 cout<<endl;
127 fDigits->SetTime(*timeTDC2);
db173afc 128 fDigits->SetADC(*chargeTDC1);
129
460b4363 130 fDigits->SetTimeAmp(*timeTDC1);
131 fDigits->SetADCAmp(*chargeTDC2);
db173afc 132
133 word=0;
134 unpackword=0;
135
136 fRawReader->ReadNextInt(word);
4c7da157 137 unpackword=pack->UnpackWord(word,0,8);
db173afc 138 pmt=unpackword;
139
140 word=0;
141 unpackword=0;
142
143 fRawReader->ReadNextInt(word);
460b4363 144 unpackword=pack->UnpackWord(word,8,31);
db173afc 145 time=unpackword;
146 fDigits->SetMeanTime(time);
147
148 // Best time right &left
149 word=0;
150 unpackword=0;
151
152 fRawReader->ReadNextInt(word);
4c7da157 153 unpackword=pack->UnpackWord(word,0,8);
db173afc 154 pmt=unpackword;
155
156 word=0;
157 unpackword=0;
158
159 fRawReader->ReadNextInt(word);
460b4363 160 unpackword=pack->UnpackWord(word,8,31);
db173afc 161 time=unpackword;
162 fDigits->SetTimeBestRight(time);
163
164
165 // best time left
166 word=0;
167 unpackword=0;
168
169 fRawReader->ReadNextInt(word);
4c7da157 170 unpackword=pack->UnpackWord(word,0,8);
db173afc 171 pmt=unpackword;
172
173 word=0;
174 unpackword=0;
175
176 fRawReader->ReadNextInt(word);
460b4363 177 unpackword=pack->UnpackWord(word,8,31);
db173afc 178 time=unpackword;
179 fDigits->SetTimeBestLeft(time);
180
181
182 // best time differece
183 word=0;
184 unpackword=0;
185
186 fRawReader->ReadNextInt(word);
4c7da157 187 unpackword=pack->UnpackWord(word,0,8);
db173afc 188 pmt=unpackword;
189
190 word=0;
191 unpackword=0;
192
193 fRawReader->ReadNextInt(word);
460b4363 194 unpackword=pack->UnpackWord(word,8,31);
db173afc 195 time=unpackword;
196 fDigits->SetDiffTime(time);
197
198 // multiplicity
460b4363 199 word=0;
200 unpackword=0;
201 fRawReader->ReadNextInt(word);
4c7da157 202 unpackword=pack->UnpackWord(word,0,8);
460b4363 203 pmt=unpackword;
204 word=0;
205 unpackword=0;
206 fRawReader->ReadNextInt(word);
207 unpackword=pack->UnpackWord(word,8,31);
208 time=unpackword;
209 fDigits->SetSumMult(time);
4c7da157 210
db173afc 211 fTree->Fill();
212
4c7da157 213 return kTRUE;
ee74718b 214}
db173afc 215