]>
Commit | Line | Data |
---|---|---|
2134176d | 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 | /* $Id$ */ | |
16 | ||
17 | #include <stdio.h> | |
18 | #include <stdlib.h> | |
19 | #include <iostream.h> | |
20 | #include <iomanip.h> | |
21 | #include <TObjArray.h> | |
22 | #include <TRandom.h> | |
23 | #include <TMath.h> | |
24 | ||
25 | #include "AliITSpList.h" | |
26 | ||
27 | //______________________________________________________________________ | |
28 | ||
29 | ClassImp(AliITSpList); | |
30 | //______________________________________________________________________ | |
31 | AliITSpList::AliITSpList(){ | |
32 | // Default constructor | |
c7d528c6 | 33 | // Inputs: |
34 | // none. | |
35 | // Outputs: | |
36 | // none. | |
37 | // Return: | |
38 | // A zeroed/empty AliITSpList class. | |
2134176d | 39 | |
40 | fNi = 0; | |
41 | fNj = 0; | |
42 | fa = 0; | |
43 | } | |
44 | //______________________________________________________________________ | |
45 | AliITSpList::AliITSpList(Int_t imax,Int_t jmax){ | |
46 | // Standard constructor | |
c7d528c6 | 47 | // Inputs: |
48 | // none. | |
49 | // Outputs: | |
50 | // none. | |
51 | // Return: | |
52 | // A setup AliITSpList class. | |
2134176d | 53 | |
54 | fNi = imax; | |
55 | fNj = jmax; | |
9ce4d38b | 56 | fEnteries = 0; |
2134176d | 57 | fa = new TObjArray(fNi*fNj); // elements are zeroed by |
58 | // TObjArray creator | |
59 | } | |
60 | //______________________________________________________________________ | |
61 | AliITSpList::~AliITSpList(){ | |
62 | // Default destructor | |
c7d528c6 | 63 | // Inputs: |
64 | // none. | |
65 | // Outputs: | |
66 | // none. | |
67 | // Return: | |
68 | // a properly destroyed class | |
2134176d | 69 | |
70 | for(Int_t i=0;i<GetMaxIndex();i++) if(fa->At(i)!=0){ | |
c7d528c6 | 71 | delete fa->At(i); |
72 | fa->AddAt(0,i); // zero content | |
2134176d | 73 | } // end for i && if |
74 | fNi = 0; | |
75 | fNj = 0; | |
76 | delete fa; | |
77 | fa = 0; | |
9ce4d38b | 78 | fEnteries = 0; |
2134176d | 79 | } |
80 | //______________________________________________________________________ | |
81 | void AliITSpList::ClearMap(){ | |
82 | // Delete all AliITSpListItems and zero TObjArray. | |
c7d528c6 | 83 | // Inputs: |
84 | // none. | |
85 | // Outputs: | |
86 | // none. | |
87 | // Return: | |
88 | // A zeroed AliITSpList class. | |
2134176d | 89 | |
9ce4d38b | 90 | fa->Delete(); |
cab0142f | 91 | /* |
92 | for(Int_t i=0;i<GetMaxIndex();i++) if(fa->At(i)!=0){ | |
93 | delete fa->At(i); | |
94 | fa->AddAt(0,i); // zero content | |
95 | } // end for i && if | |
96 | */ | |
9ce4d38b | 97 | fEnteries = 0; |
2134176d | 98 | } |
99 | //______________________________________________________________________ | |
100 | void AliITSpList::DeleteHit(Int_t i,Int_t j){ | |
101 | // Delete a particular AliITSpListItems and zero TObjArray. | |
c7d528c6 | 102 | // Inputs: |
103 | // Int_t i Row number | |
104 | // Int_t j Columns number | |
105 | // Outputs: | |
106 | // none. | |
107 | // Return: | |
108 | // none. | |
2134176d | 109 | Int_t k = GetIndex(i,j); |
110 | ||
111 | if(fa->At(k)!=0){ | |
c7d528c6 | 112 | delete fa->At(k); |
113 | fa->AddAt(0,k); // zero content | |
2134176d | 114 | } // end for i && if |
9ce4d38b | 115 | if(k==fEnteries-1) fEnteries--; |
2134176d | 116 | } |
117 | //______________________________________________________________________ | |
118 | AliITSpList& AliITSpList::operator=(const AliITSpList &source){ | |
119 | // = operator | |
c7d528c6 | 120 | // Inputs: |
121 | // const AliITSpList &source A AliITSpList object. | |
122 | // Outputs: | |
123 | // none. | |
124 | // Return: | |
125 | // A copied AliITSpList object. | |
2134176d | 126 | |
127 | if(this == &source) return *this; | |
128 | ||
129 | if(this->fa!=0){ // if this->fa exists delete it first. | |
c7d528c6 | 130 | for(Int_t i=0;i<GetMaxIndex();i++) if(fa->At(i)!=0){ |
131 | delete fa->At(i); | |
132 | fa->AddAt(0,i); // zero content | |
133 | } // end for i && if | |
134 | delete this->fa; | |
2134176d | 135 | } // end if this->fa!=0 |
136 | this->fNi = source.fNi; | |
137 | this->fNj = source.fNj; | |
138 | this->fa = new TObjArray(*(source.fa)); | |
9ce4d38b | 139 | this->fEnteries = source.fEnteries; |
2134176d | 140 | |
141 | return *this; | |
142 | } | |
143 | //______________________________________________________________________ | |
144 | AliITSpList::AliITSpList(AliITSpList &source){ | |
145 | // Copy operator | |
c7d528c6 | 146 | // Inputs: |
147 | // AliITSpList &source A AliITSpList Object | |
148 | // Outputs: | |
149 | // none. | |
150 | // Return: | |
151 | // A copied AliITSpList object | |
2134176d | 152 | |
153 | *this = source; | |
154 | } | |
155 | //______________________________________________________________________ | |
c7d528c6 | 156 | void AliITSpList::AddItemTo(Int_t fileIndex, AliITSpListItem *pl) { |
157 | // Adds the contents of pl to the list with track number off set given by | |
158 | // fileIndex. | |
159 | // Creates the AliITSpListItem if needed. | |
160 | // Inputs: | |
161 | // Int_t fileIndex track number offset value | |
162 | // AliITSpListItem *pl an AliITSpListItem to be added to this class. | |
163 | // Outputs: | |
164 | // none. | |
165 | // Return: | |
166 | // none. | |
167 | Int_t index = pl->GetIndex(); | |
168 | ||
169 | if( fa->At( index ) == 0 ) { // most create AliITSpListItem | |
170 | fa->AddAt(new AliITSpListItem(-2,-1,pl->GetModule(),index,0.0),index); | |
171 | } // end if | |
172 | ||
cab0142f | 173 | ((AliITSpListItem*)(fa->At(index)))->AddTo( fileIndex,pl); |
9ce4d38b | 174 | if(index>=fEnteries) fEnteries = index +1; |
c7d528c6 | 175 | } |
176 | //______________________________________________________________________ | |
2134176d | 177 | void AliITSpList::AddSignal(Int_t i,Int_t j,Int_t trk,Int_t ht,Int_t mod, |
c7d528c6 | 178 | Double_t signal){ |
2134176d | 179 | // Adds a Signal value to the TObjArray at i,j. Creates the AliITSpListItem |
180 | // if needed. | |
c7d528c6 | 181 | // Inputs: |
182 | // Int_t i Row number for this signal | |
183 | // Int_t j Column number for this signal | |
184 | // Int_t trk Track number creating this signal | |
185 | // Int_t ht Hit number creating this signal | |
186 | // Int_t mod The module where this signal is in | |
187 | // Double_t signal The signal (ionization) | |
188 | // Outputs: | |
189 | // none. | |
190 | // Return: | |
191 | // none. | |
9ce4d38b | 192 | Int_t index = GetIndex(i,j); |
2134176d | 193 | |
9ce4d38b | 194 | if(GetpListItem(index)==0){ // most create AliITSpListItem |
cab0142f | 195 | fa->AddAt(new AliITSpListItem(trk,ht,mod,index,signal),index); |
2134176d | 196 | }else{ // AliITSpListItem exists, just add signal to it. |
9ce4d38b | 197 | GetpListItem(index)->AddSignal(trk,ht,mod,index,signal); |
2134176d | 198 | } // end if |
9ce4d38b | 199 | if(index>=fEnteries) fEnteries = index +1; |
2134176d | 200 | } |
201 | //______________________________________________________________________ | |
202 | void AliITSpList::AddNoise(Int_t i,Int_t j,Int_t mod,Double_t noise){ | |
203 | // Adds a noise value to the TObjArray at i,j. Creates the AliITSpListItem | |
204 | // if needed. | |
c7d528c6 | 205 | // Inputs: |
206 | // Int_t i Row number for this noise | |
207 | // Int_t j Column number for this noise | |
208 | // Double_t noise The noise signal value. | |
209 | // Outputs: | |
210 | // none. | |
211 | // Return: | |
212 | // none. | |
9ce4d38b | 213 | Int_t index = GetIndex(i,j); |
2134176d | 214 | |
9ce4d38b | 215 | if(GetpListItem(index)==0){ // most create AliITSpListItem |
216 | fa->AddAt(new AliITSpListItem(mod,index,noise),index); | |
2134176d | 217 | }else{ // AliITSpListItem exists, just add signal to it. |
9ce4d38b | 218 | GetpListItem(index)->AddNoise(mod,index,noise); |
2134176d | 219 | } // end if |
9ce4d38b | 220 | if(index>=fEnteries) fEnteries = index +1; |
2134176d | 221 | } |
222 | //______________________________________________________________________ | |
223 | ||
224 | ClassImp(AliITSpListItem) | |
225 | //______________________________________________________________________ | |
226 | AliITSpListItem::AliITSpListItem(){ | |
227 | // Default constructor | |
c7d528c6 | 228 | // Inputs: |
229 | // none. | |
230 | // Outputs: | |
231 | // none. | |
232 | // Return: | |
233 | // A zeroed/empty AliITSpListItem class. | |
2134176d | 234 | |
235 | fmodule = -1; | |
236 | findex = -1; | |
237 | for(Int_t i=0;i<this->fkSize;i++){ | |
c7d528c6 | 238 | this->fTrack[i] = -2; |
239 | this->fHits[i] = -1; | |
240 | this->fSignal[i] = 0.0; | |
2134176d | 241 | } // end if i |
242 | fTsignal = 0.0; | |
243 | fNoise = 0.0; | |
cab0142f | 244 | fSignalAfterElect = 0.0; |
2134176d | 245 | } |
246 | //______________________________________________________________________ | |
247 | AliITSpListItem::AliITSpListItem(Int_t module,Int_t index,Double_t noise){ | |
248 | // Standard noise constructor | |
c7d528c6 | 249 | // Inputs: |
250 | // Int_t module The module where this noise occurred | |
251 | // Int_t index The cell index where this noise occurred | |
252 | // Double_t noise The value of the noise. | |
253 | // Outputs: | |
254 | // none. | |
255 | // Return: | |
256 | // A setup and noise filled AliITSpListItem class. | |
2134176d | 257 | |
258 | this->fmodule = module; | |
259 | this->findex = index; | |
260 | for(Int_t i=0;i<this->fkSize;i++){ | |
c7d528c6 | 261 | this->fTrack[i] = -2; |
262 | this->fSignal[i] = 0.0; | |
263 | this->fHits[i] = -1; | |
2134176d | 264 | } // end if i |
265 | this->fTsignal = 0.0; | |
cab0142f | 266 | this->fSignalAfterElect = 0.0; |
2134176d | 267 | this->fNoise = noise; |
268 | } | |
269 | //______________________________________________________________________ | |
270 | AliITSpListItem::AliITSpListItem(Int_t track,Int_t hit,Int_t module, | |
c7d528c6 | 271 | Int_t index,Double_t signal){ |
2134176d | 272 | // Standard signal constructor |
c7d528c6 | 273 | // Inputs: |
274 | // Int_t track The track number which produced this signal | |
275 | // Int_t hit The hit number which produced this signal | |
276 | // Int_t module The module where this signal occurred | |
277 | // Int_t index The cell index where this signal occurred | |
278 | // Double_t signal The value of the signal (ionization) | |
279 | // Outputs: | |
280 | // none. | |
281 | // Return: | |
282 | // A setup and signal filled AliITSpListItem class. | |
2134176d | 283 | |
284 | this->fmodule = module; | |
285 | this->findex = index; | |
286 | this->fTrack[0] = track; | |
287 | this->fHits[0] = hit; | |
288 | this->fSignal[0] = signal; | |
289 | for(Int_t i=1;i<this->fkSize;i++){ | |
c7d528c6 | 290 | this->fTrack[i] = -2; |
291 | this->fSignal[i] = 0.0; | |
292 | this->fHits[i] = -1; | |
2134176d | 293 | } // end if i |
294 | this->fTsignal = signal; | |
295 | this->fNoise = 0.0; | |
cab0142f | 296 | this->fSignalAfterElect = 0.0; |
2134176d | 297 | } |
298 | //______________________________________________________________________ | |
299 | AliITSpListItem::~AliITSpListItem(){ | |
c7d528c6 | 300 | // Destructor |
301 | // Inputs: | |
302 | // none. | |
303 | // Outputs: | |
304 | // none. | |
305 | // Return: | |
306 | // A properly destroyed AliITSpListItem class. | |
54657caf | 307 | |
2134176d | 308 | } |
309 | //______________________________________________________________________ | |
310 | AliITSpListItem& AliITSpListItem::operator=(const AliITSpListItem &source){ | |
311 | // = operator | |
c7d528c6 | 312 | // Inputs: |
313 | // AliITSpListItem &source A AliITSpListItem Object | |
314 | // Outputs: | |
315 | // none. | |
316 | // Return: | |
317 | // A copied AliITSpListItem object | |
2134176d | 318 | |
319 | if(this == &source) return *this; | |
320 | ||
321 | this->fmodule = source.fmodule; | |
322 | this->findex = source.findex; | |
323 | for(Int_t i=0;i<this->fkSize;i++){ | |
c7d528c6 | 324 | this->fTrack[i] = source.fTrack[i]; |
325 | this->fSignal[i] = source.fSignal[i]; | |
326 | this->fHits[i] = source.fHits[i]; | |
2134176d | 327 | } // end if i |
328 | this->fTsignal = source.fTsignal; | |
329 | this->fNoise = source.fNoise; | |
cab0142f | 330 | this->fSignalAfterElect = source.fSignalAfterElect; |
2134176d | 331 | |
332 | return *this; | |
333 | } | |
334 | //______________________________________________________________________ | |
335 | AliITSpListItem::AliITSpListItem(AliITSpListItem &source){ | |
336 | // Copy operator | |
c7d528c6 | 337 | // Inputs: |
338 | // AliITSpListItem &source A AliITSpListItem Object | |
339 | // Outputs: | |
340 | // none. | |
341 | // Return: | |
342 | // A copied AliITSpListItem object | |
2134176d | 343 | |
344 | *this = source; | |
345 | } | |
346 | //______________________________________________________________________ | |
347 | void AliITSpListItem::AddSignal(Int_t track,Int_t hit,Int_t module, | |
c7d528c6 | 348 | Int_t index,Double_t signal){ |
349 | // Adds this track number and signal to the pList and orders them | |
350 | // Inputs: | |
351 | // Int_t track The track number which produced this signal | |
352 | // Int_t hit The hit number which produced this signal | |
353 | // Int_t module The module where this signal occurred | |
354 | // Int_t index The cell index where this signal occurred | |
355 | // Double_t signal The value of the signal (ionization) | |
356 | // Outputs: | |
357 | // none. | |
358 | // Return: | |
359 | // none. | |
2134176d | 360 | Int_t i,j,trk,hts; |
361 | Double_t sig; | |
362 | Bool_t flg=kFALSE; | |
363 | ||
364 | if(findex!=index || fmodule!=module) | |
c7d528c6 | 365 | Warning("AddSignal","index=%d != findex=%d or module=%d != fmodule=%d", |
366 | index,findex,module,fmodule); | |
2134176d | 367 | fTsignal += signal; // Keep track of sum signal. |
cab0142f | 368 | |
369 | for(i=0;i<fkSize;i++) if( track==fTrack[i] && hit==fHits[i] ){ | |
c7d528c6 | 370 | fSignal[i] += signal; |
371 | flg = kTRUE; | |
2134176d | 372 | } // end for i & if. |
c7d528c6 | 373 | if(flg){ // resort arrays. |
374 | for(i=1;i<fkSize;i++){ | |
375 | j = i; | |
376 | while(j>0 && fSignal[j]>fSignal[j-1]){ | |
377 | trk = fTrack[j-1]; | |
378 | hts = fHits[j-1]; | |
379 | sig = fSignal[j-1]; | |
380 | fTrack[j-1] = fTrack[j]; | |
381 | fHits[j-1] = fHits[j]; | |
382 | fSignal[j-1] = fSignal[j]; | |
383 | fTrack[j] = trk; | |
384 | fHits[j] = hts; | |
385 | fSignal[j] = sig; | |
386 | j--; | |
387 | } // end while | |
388 | } // end if i | |
389 | return; | |
390 | } // end if added to existing and resorted array | |
9176630b | 391 | |
ab5aed76 | 392 | // new entry add it in order. |
393 | // if this signal is <= smallest then don't add it. | |
394 | if(signal <= fSignal[fkSize-1]) return; | |
395 | for(i=fkSize-2;i>=0;i--){ | |
c7d528c6 | 396 | if(signal > fSignal[i]){ |
397 | fSignal[i+1] = fSignal[i]; | |
398 | fTrack[i+1] = fTrack[i]; | |
399 | fHits[i+1] = fHits[i]; | |
400 | }else{ | |
401 | fSignal[i+1] = signal; | |
402 | fTrack[i+1] = track; | |
403 | fHits[i+1] = hit; | |
404 | return; // put it in the right place, now exit. | |
405 | } // end if | |
ab5aed76 | 406 | } // end if; end for i |
407 | // Still haven't found the right place. Must be at top of list. | |
408 | fSignal[0] = signal; | |
409 | fTrack[0] = track; | |
410 | fHits[0] = hit; | |
411 | return; | |
2134176d | 412 | } |
413 | //______________________________________________________________________ | |
414 | void AliITSpListItem::AddNoise(Int_t module,Int_t index,Double_t noise){ | |
c7d528c6 | 415 | // Adds noise to this existing list. |
416 | // Inputs: | |
417 | // Int_t module The module where this noise occurred | |
418 | // Int_t index The cell index where this noise occurred | |
419 | // Double_t noise The value of the noise. | |
420 | // Outputs: | |
421 | // none. | |
422 | // Return: | |
423 | // none. | |
2134176d | 424 | |
425 | if(findex!=index || fmodule!=module) | |
cab0142f | 426 | Warning("AddNoise","index=%d != findex=%d or module=%d != fmodule=%d", |
c7d528c6 | 427 | index,findex,module,fmodule); |
2134176d | 428 | fNoise += noise; // Keep track of sum signal. |
429 | } | |
430 | //______________________________________________________________________ | |
cab0142f | 431 | void AliITSpListItem::AddSignalAfterElect(Int_t module,Int_t index,Double_t signal){ |
432 | // Adds signal after electronics to this existing list. | |
433 | // Inputs: | |
434 | // Int_t module The module where this noise occurred | |
435 | // Int_t index The cell index where this noise occurred | |
436 | // Double_t signal The value of the signal. | |
437 | // Outputs: | |
438 | // none. | |
439 | // Return: | |
440 | // none. | |
441 | ||
442 | if(findex!=index || fmodule!=module) | |
443 | Warning("AddSignalAfterElect","index=%d != findex=%d or module=%d " | |
444 | "!= fmodule=%d",index,findex,module,fmodule); | |
445 | fSignalAfterElect += signal; // Keep track of sum signal. | |
446 | } | |
447 | //______________________________________________________________________ | |
448 | void AliITSpListItem::Add(AliITSpListItem *pl){ | |
449 | // Adds the contents of pl to this | |
450 | // pl could come from different module and index | |
451 | // Inputs: | |
452 | // AliITSpListItem *pl an AliITSpListItem to be added to this class. | |
453 | // Outputs: | |
454 | // none. | |
455 | // Return: | |
456 | // none. | |
457 | Int_t i; | |
458 | Double_t sig = 0.0; | |
459 | Double_t sigT = 0.0; | |
460 | ||
461 | for(i=0;i<pl->GetNsignals();i++){ | |
462 | sig = pl->GetSignal(i); | |
463 | if( sig <= 0.0 ) break; // no more signals | |
464 | AddSignal(pl->GetTrack(i),pl->GetHit(i),fmodule,findex,sig); | |
465 | sigT += sig; | |
466 | } // end for i | |
467 | fTsignal += (pl->fTsignal - sigT); | |
468 | fNoise += pl->fNoise; | |
469 | return; | |
470 | } | |
471 | //______________________________________________________________________ | |
2134176d | 472 | void AliITSpListItem::AddTo(Int_t fileIndex,AliITSpListItem *pl){ |
473 | // Adds the contents of pl to this with track number off set given by | |
474 | // fileIndex. | |
c7d528c6 | 475 | // Inputs: |
476 | // Int_t fileIndex track number offset value | |
477 | // AliITSpListItem *pl an AliITSpListItem to be added to this class. | |
478 | // Outputs: | |
479 | // none. | |
480 | // Return: | |
481 | // none. | |
2134176d | 482 | Int_t i,trk; |
cab0142f | 483 | Double_t sig = 0.0; |
2134176d | 484 | |
cab0142f | 485 | Int_t module = pl->GetModule(); |
486 | Int_t index = pl->GetIndex(); | |
c7d528c6 | 487 | for(i=0;i<pl->GetNsignals();i++){ |
cab0142f | 488 | sig = pl->GetSignal(i); |
489 | if( sig <= 0.0 ) break; // no more signals | |
c7d528c6 | 490 | trk = pl->GetTrack(i); |
cab0142f | 491 | trk += fileIndex; |
492 | AddSignal(trk,pl->GetHit(i),module,index,sig); | |
2134176d | 493 | } // end for i |
cab0142f | 494 | fSignalAfterElect += (pl->fSignalAfterElect + pl->fNoise - fNoise); |
495 | fNoise = pl->fNoise; | |
2134176d | 496 | return; |
497 | } | |
498 | //______________________________________________________________________ | |
499 | Int_t AliITSpListItem::ShiftIndex(Int_t in,Int_t trk){ | |
c7d528c6 | 500 | // Shift an index number to occupy the upper four bits. No longer used. |
501 | // Inputs: | |
502 | // Int_t in The file number | |
503 | // Int_t trk The track number | |
504 | // Outputs: | |
505 | // none. | |
506 | // Return: | |
507 | // Int_t The track number with the file number in the upper bits. | |
2134176d | 508 | Int_t si = sizeof(Int_t) * 8; |
cab0142f | 509 | UInt_t uin,utrk; // use UInt_t to avoid interger overflow-> goes negative. |
2134176d | 510 | |
511 | uin = in; | |
512 | utrk = trk; | |
513 | for(Int_t i=0;i<si-4;i++) uin *= 2; | |
514 | uin += utrk; | |
515 | in = uin; | |
516 | return in; | |
517 | } | |
518 | //______________________________________________________________________ | |
519 | void AliITSpListItem::Print(ostream *os){ | |
520 | //Standard output format for this class | |
c7d528c6 | 521 | // Inputs: |
522 | // ostream *os The output stream | |
523 | // Outputs: | |
524 | // none. | |
525 | // Return: | |
526 | // none. | |
2134176d | 527 | Int_t i; |
528 | ||
529 | *os << fmodule <<","<<findex<<","; | |
530 | *os << fkSize <<","; | |
531 | for(i=0;i<fkSize;i++) *os << fTrack[i] <<","; | |
532 | for(i=0;i<fkSize;i++) *os << fHits[i] <<","; | |
533 | for(i=0;i<fkSize;i++) *os << fSignal[i] <<","; | |
cab0142f | 534 | *os << fTsignal <<","<< fNoise << "," << fSignalAfterElect; |
2134176d | 535 | } |
536 | //______________________________________________________________________ | |
537 | void AliITSpListItem::Read(istream *is){ | |
538 | // Standard output streaming function. | |
c7d528c6 | 539 | // Inputs: |
540 | // istream *is The input stream | |
541 | // Outputs: | |
542 | // none. | |
543 | // Return: | |
544 | // none. | |
2134176d | 545 | Int_t i,iss; |
546 | ||
547 | *is >> fmodule >> findex; | |
548 | *is >> iss; // read in fkSize | |
549 | for(i=0;i<fkSize&&i<iss;i++) *is >> fTrack[i]; | |
550 | for(i=0;i<fkSize&&i<iss;i++) *is >> fHits[i]; | |
551 | for(i=0;i<fkSize&&i<iss;i++) *is >> fSignal[i]; | |
cab0142f | 552 | *is >> fTsignal >> fNoise >> fSignalAfterElect; |
2134176d | 553 | } |
554 | //______________________________________________________________________ | |
555 | ostream &operator<<(ostream &os,AliITSpListItem &source){ | |
556 | // Standard output streaming function. | |
c7d528c6 | 557 | // Inputs: |
558 | // ostream &os The output stream | |
559 | // AliITSpListItem &source The AliITSpListItem object to be written out. | |
560 | // Outputs: | |
561 | // none. | |
562 | // Return: | |
563 | // ostream The output stream | |
2134176d | 564 | |
565 | source.Print(&os); | |
566 | return os; | |
567 | } | |
568 | //______________________________________________________________________ | |
569 | istream &operator>>(istream &os,AliITSpListItem &source){ | |
570 | // Standard output streaming function. | |
c7d528c6 | 571 | // Inputs: |
572 | // istream os The input stream | |
573 | // AliITSpListItem &source The AliITSpListItem object to be inputted | |
574 | // Outputs: | |
575 | // none. | |
576 | // Return: | |
577 | // istream The input stream. | |
2134176d | 578 | |
579 | source.Read(&os); | |
580 | return os; | |
581 | } | |
c7d528c6 | 582 |