]>
Commit | Line | Data |
---|---|---|
f51151a0 | 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 | /* $Id$ */ | |
17 | ||
18 | /////////////////////////////////////////////////////////////////////////////// | |
19 | /// | |
20 | /// This class provides access to EMCAL digits in raw data. | |
21 | /// | |
22 | /// It loops over all EMCAL digits in the raw data given by the AliRawReader. | |
23 | /// The Next method goes to the next digit. If there are no digits left | |
24 | /// it returns kFALSE. | |
25 | /// Several getters provide information about the current digit. | |
26 | /// usage: | |
27 | /// root > AliRawReaderFile rawReader(#event) ; | |
28 | /// root > AliPHOSRawStream input(&rawReader) ; | |
29 | /// root > while (input.Next()) ..... | |
30 | /// | |
31 | /////////////////////////////////////////////////////////////////////////////// | |
32 | ||
33 | #include "AliEMCALRawStream.h" | |
34 | #include "AliRawReader.h" | |
35 | ||
36 | ClassImp(AliEMCALRawStream) | |
37 | ||
38 | ||
39 | //_____________________________________________________________________________ | |
40 | AliEMCALRawStream::AliEMCALRawStream(AliRawReader* rawReader) : | |
a5514f03 | 41 | AliAltroRawStream(rawReader), |
42 | fId(-1), | |
43 | fPrevId(-1), | |
44 | fModule(-1), | |
45 | fPrevModule(-1) | |
f51151a0 | 46 | { |
47 | // create an object to read EMCAL raw digits | |
48 | ||
a5514f03 | 49 | SelectRawData(8); |
50 | ||
51 | fNoAltroMapping = kTRUE; | |
52 | } | |
53 | ||
54 | //_____________________________________________________________________________ | |
55 | AliEMCALRawStream::AliEMCALRawStream(const AliEMCALRawStream& stream) : | |
56 | AliAltroRawStream(stream), | |
57 | fId(-1), | |
58 | fPrevId(-1), | |
59 | fModule(-1), | |
60 | fPrevModule(-1) | |
61 | { | |
62 | Fatal("AliEMCALRawStream", "copy constructor not implemented"); | |
63 | } | |
64 | ||
65 | //_____________________________________________________________________________ | |
66 | AliEMCALRawStream& AliEMCALRawStream::operator = (const AliEMCALRawStream& | |
67 | /* stream */) | |
68 | { | |
69 | Fatal("operator =", "assignment operator not implemented"); | |
70 | return *this; | |
71 | } | |
72 | ||
73 | //_____________________________________________________________________________ | |
74 | AliEMCALRawStream::~AliEMCALRawStream() | |
75 | { | |
76 | // destructor | |
77 | } | |
78 | ||
79 | //_____________________________________________________________________________ | |
80 | void AliEMCALRawStream::Reset() | |
81 | { | |
82 | // reset emcal raw stream params | |
83 | AliAltroRawStream::Reset(); | |
84 | fId = fPrevId = fModule = fPrevModule = -1; | |
85 | } | |
86 | ||
87 | //_____________________________________________________________________________ | |
88 | Bool_t AliEMCALRawStream::Next() | |
89 | { | |
90 | // Read next EMCAL signal | |
91 | // Apply the EMCAL altro mapping to get | |
92 | // the module and id indeces | |
93 | fPrevModule = fModule; | |
94 | fPrevId = fId; | |
95 | if (AliAltroRawStream::Next()) { | |
96 | // if (IsNewHWAddress()) | |
97 | ApplyAltroMapping(); | |
98 | return kTRUE; | |
99 | } | |
100 | else | |
101 | return kFALSE; | |
102 | } | |
103 | ||
104 | //_____________________________________________________________________________ | |
105 | void AliEMCALRawStream::ApplyAltroMapping() | |
106 | { | |
107 | // Take the DDL index, load | |
108 | // the corresponding altro mapping | |
109 | // object and fill the module and id indeces | |
110 | fModule = fSegmentation[0]; | |
111 | fId = fSegmentation[2]; | |
f51151a0 | 112 | } |