]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALRawStream.cxx
New methods in geometry, update geometry for 3x3 case
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALRawStream.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 /* $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) :
41   AliAltroRawStream(rawReader),
42   fId(-1),
43   fPrevId(-1),
44   fModule(-1),
45   fPrevModule(-1)
46 {
47 // create an object to read EMCAL raw digits
48
49   SelectRawData("EMCAL");
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];
112 }