Josh, Irakli, David: AliCaloCalibSignal update - replacing possible 10k+ TProfiles...
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALSTURawStream.h
1 #ifndef ALIEMCALSTURAWSTREAM_H
2 #define ALIEMCALSTURAWSTREAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 ///
8 /// This is a class for reading the EMCAL STU (trigger) DDL raw data
9 ///
10 ///  Two different formats foreseen (different by their length and Format Version):
11 ///
12 ///  - The regular one, containing jet patch indices (7x 32 bit words) and
13 ///  gamma jet patch indices (~96 combinations per region x 32 regions / 32
14 ///  bit per words = 96 words).
15 ///
16 ///  - The debug one containing the previous informations (103 words) plus
17 ///  all the time integrated 2x2 sums used for generating the accepted
18 ///  trigger (96 x 32 x 16 bit / 32 = 1536 words).
19 ///
20 ///////////////////////////////////////////////////////////////////////////////
21
22 #include <TObject.h>
23
24 class AliRawReader;
25
26 class AliEMCALSTURawStream: public TObject {
27
28   public :
29
30     enum { kNumJetPatchWords = 7, // max number of jet patch indices words
31            kNumGammaJetPatchWords = 96, // max number of gamma-jet patch indices words
32            kNum2x2Words = 1536,     //  max number of 2x2 indices words
33            kEMCALSTUDDL = 0x12c0 }; // 4800, in EMCAL DDL range but separated from regular FEE
34
35     AliEMCALSTURawStream(AliRawReader* rawReader);
36     virtual ~AliEMCALSTURawStream();
37   
38     virtual void             Reset();
39     virtual Bool_t           Next();
40
41     UInt_t    GetJetPatchWords(int i) const { return fJetPatchWords[i]; }
42     UInt_t    GetGammaJetPatchWords(int i) const { return fGammaJetPatchWords[i]; }
43     UInt_t    Get2x2Words(int i) const { return f2x2Words[i]; }
44     UInt_t    GetNum2x2Words() const { return fNum2x2Words; }
45
46   protected:
47     AliEMCALSTURawStream(const AliEMCALSTURawStream& stream);
48     AliEMCALSTURawStream& operator = (const AliEMCALSTURawStream& stream);
49
50   private:
51
52     AliRawReader*    fRawReader;   // object for reading the raw data
53     UInt_t           fJetPatchWords[kNumJetPatchWords]; // jet patch indices
54     UInt_t           fGammaJetPatchWords[kNumGammaJetPatchWords]; // gamma jet patch indices
55     UInt_t           f2x2Words[kNum2x2Words]; // 2x2 sums
56     UInt_t           fNum2x2Words; // how many 2x2 sums did we actually read?
57
58     ClassDef(AliEMCALSTURawStream, 0)   // class for reading EMCAL STU DDL raw data
59 };
60
61 #endif