]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RAW/AliCaloRawStreamV3.h
New hex-dump method + changed the warning messages (Stefan)
[u/mrichter/AliRoot.git] / RAW / AliCaloRawStreamV3.h
CommitLineData
0021af02 1#ifndef ALICALORAWSTREAMV3_H
2#define ALICALORAWSTREAMV3_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id: $ */
7
8///////////////////////////////////////////////////////////////////////////////
9///
10/// This class provides access to Calo digits in raw data.
11///
12/// Yuri Kharlov. 23 June 2009
13///
14///////////////////////////////////////////////////////////////////////////////
15
16// --- ROOT system ---
17#include "TString.h"
18
19// --- AliRoot header files ---
20#include "AliAltroRawStreamV3.h"
21class AliRawReader;
22class AliAltroMapping;
23
24class AliCaloRawStreamV3: public AliAltroRawStreamV3 {
25
26public :
27 AliCaloRawStreamV3(AliRawReader* rawReader, TString calo, AliAltroMapping **mapping = NULL);
28 virtual ~AliCaloRawStreamV3();
29
30 virtual void Reset();
31 virtual Bool_t NextChannel();
32
33 Int_t GetModule() const {return fModule;}
34 Int_t GetRow() const {return fRow ;} // EMCAL notation
35 Int_t GetColumn() const {return fColumn;} // EMCAL notation
36 Int_t GetCellX() const {return fRow ;} // PHOS notation
37 Int_t GetCellZ() const {return fColumn;} // PHOS notation
38 Int_t GetNRCU() const {return fNRCU ;}
39 Int_t GetNSides() const {return fNSides;}
40 TString GetCalorimeter() const {return fCalo ;}
41
42 enum EAliCaloFlag { kLowGain=0, kHighGain=1, kTRUData=2, kLEDMonData=3 };
43 Bool_t IsLowGain() const {return (fCaloFlag == kLowGain) ;}
44 Bool_t IsHighGain() const {return (fCaloFlag == kHighGain) ;}
45 Bool_t IsTRUData() const {return (fCaloFlag == kTRUData) ;}
46 Bool_t IsLEDMonData() const {return (fCaloFlag == kLEDMonData);}
47
48 Int_t GetCaloFlag() const { return fCaloFlag; }
49 Int_t GetFilter() const { return fFilter; }
50
51 void SkipData(EAliCaloFlag caloFlag=kLEDMonData)
52 { fFilter |= (1<<caloFlag); }
53
54protected:
55
56 AliCaloRawStreamV3& operator = (const AliCaloRawStreamV3& stream);
57 AliCaloRawStreamV3(const AliCaloRawStreamV3& stream);
58
59 virtual void ApplyAltroMapping();
60
61 Int_t fModule; // index of current module
62 Int_t fRow; // index of current row
63 Int_t fColumn; // index of current column
64 Int_t fCaloFlag; // low (0) or (1) high gain; see enum EAliCaloFlag above
65 Int_t fFilter; // default 0 = let everything through
4feb8cb3 66 Int_t fNModules; // number of (super)modules
0021af02 67 Int_t fNRCU; // number of RCU per (super)module
68 Int_t fNSides; // Division of EMCal in "A" "C" sides
69 TString fCalo; // Calorimeter name
4feb8cb3 70 Bool_t fExternalMapping; // use external mapping or create a default one
71 AliAltroMapping *fMapping[20]; // pointers to ALTRO mapping
0021af02 72
4feb8cb3 73 ClassDef(AliCaloRawStreamV3, 2) // class for reading PHOS/EMCAL raw digits
0021af02 74
75};
76
77#endif