Line data Source code
1 : #ifndef ALIPHOSTRIGGERSTURAWSTREAM_H
2 : #define ALIPHOSTRIGGERSTURAWSTREAM_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : /*
7 : Author: H. Yokoyama (Univ. of TSUKUBA/ Univ. of Grenoble)
8 : */
9 :
10 : #ifndef ROOT_TObject
11 : # include "TObject.h"
12 : #endif
13 : //#include <map>
14 :
15 : class AliRawReader;
16 :
17 : class AliPHOSTriggerSTURawStream: public TObject
18 : {
19 : public:
20 : AliPHOSTriggerSTURawStream();
21 : AliPHOSTriggerSTURawStream(AliRawReader* rawReader);
22 : virtual ~AliPHOSTriggerSTURawStream();
23 :
24 : virtual void Reset();
25 : virtual Bool_t ReadPayLoad();
26 :
27 : virtual void DumpPayLoad(const Option_t *option = "ALL") const;
28 :
29 : virtual void GetADC( Int_t iTRU, UInt_t ADC[] );
30 0 : virtual UInt_t GetL1GammaThreshold(const int i) const {return fL1GammaThreshold[i];}
31 :
32 0 : virtual Int_t GetNL0GammaPatch() const {return fNL0GammaPatch ;}
33 0 : virtual Int_t GetNL1GammaPatch( const int i) const {return fNL1GammaPatch[i] ;}
34 :
35 : virtual Bool_t GetL0GammaPatch(const Int_t i, Int_t& tru, Int_t& idx ) const;
36 : virtual Bool_t GetL1GammaPatch(const Int_t i, const Int_t j, Int_t& tru, Int_t& col, Int_t& row) const;
37 :
38 0 : virtual UInt_t GetV0A() const {return fV0A ;}
39 0 : virtual UInt_t GetV0C() const {return fV0C ;}
40 0 : virtual UInt_t GetG(int i, int j) const {return fG[i][j] ;}//[ABC][high/low]
41 0 : virtual UInt_t GetRegionEnable() const {return fRegionEnable ;}
42 0 : virtual UInt_t GetFrameReceived() const {return fFrameReceived ;}
43 0 : virtual UInt_t GetFwVersion() const {return fFwVersion ;}
44 0 : virtual Int_t GetRawData() const {return fGetRawData ;}
45 :
46 : private:
47 :
48 : AliPHOSTriggerSTURawStream(const AliPHOSTriggerSTURawStream& rhs);
49 : AliPHOSTriggerSTURawStream& operator = (const AliPHOSTriggerSTURawStream& rhs);
50 :
51 : UShort_t GetThreshold(Short_t A, Short_t B, Short_t C, UShort_t V0A, UShort_t V0C) const;
52 :
53 : AliRawReader* fRawReader; // object for reading the raw data
54 :
55 : enum fPayloadType {
56 : V2PHOS = 8 ,
57 : V2PHOSRaw = 9
58 : };
59 :
60 : Int_t fGetRawData ;//Set by word size
61 : fPayloadType fPayload ;//Set by word size
62 :
63 : static const Int_t kPayLoadSizeV2_PHOS = 433 ;//13+ 0+ 0+84+112+112+112
64 : static const Int_t kPayLoadSizeV2_PHOS_Raw = 1568 ;//112*28/2
65 :
66 : //static const Int_t max_payload_size = kPayLoadSizeV2_PHOS + kPayLoadSizeV2_PHOS_Raw ;
67 : static const Int_t max_payload_size = 2001 ;
68 :
69 : static const Int_t max_L0GammaPatchIndex = 3100 ; // (28-1)*(112-1) = 2997 (PHOS)
70 : static const Int_t max_L1Gamma = 3 ; // L1Gamma_low,mid,high (PHOS)
71 : static const Int_t max_L1GammaPatchIndex = 3100 ; // (28-1)*(112-1) = 2997 (PHOS)
72 :
73 : static const Int_t max_nTRU = 28 ; // 28 (PHOS)
74 : static const Int_t max_nmoduleInTRU = 112 ; // 112 (PHOS)
75 :
76 : static const Int_t nTRU_PHOS = 28 ;
77 : static const Int_t nMod_PHOS = 112 ;
78 :
79 : Int_t fNL0GammaPatch ; // N L0 Gamma Patch
80 : UShort_t fL0GammaPatchIndex[max_L0GammaPatchIndex] ; // L0 Gamma Patch Index
81 :
82 : Int_t fNL1GammaPatch [max_L1Gamma]; // N L1 Gamma Patch
83 : UInt_t fG [3][max_L1Gamma]; // Gamma threshold parameter:A,B,C
84 : UInt_t fL1GammaThreshold [max_L1Gamma]; // L1 Gamma Threshold
85 : UShort_t fL1GammaPatchIndex[max_L1GammaPatchIndex][max_L1Gamma]; // L1 Gamma Patch Index
86 :
87 : UInt_t fADC[max_nTRU][max_nmoduleInTRU];
88 :
89 : UInt_t fV0A ; // V0A
90 : UInt_t fV0C ; // V0C
91 :
92 : UInt_t fRegionEnable ; // Region Enable
93 : UInt_t fFrameReceived ; // Frame Received
94 : UInt_t fFwVersion ; // Fw Version
95 :
96 0 : Int_t GetnTRU()const{ return nTRU_PHOS;}
97 0 : Int_t GetnMod()const{ return nMod_PHOS;}
98 :
99 : virtual void DecodeL1GammaPatchIndexes(const int i, UInt_t *word32, const int offset);
100 : virtual void DecodeL0GammaPatchIndexes( UInt_t *word32, const int offset);
101 : virtual void DecodeTRUADC( UInt_t *word32, const int offset);
102 :
103 :
104 30 : ClassDef(AliPHOSTriggerSTURawStream,2) // class for reading PHOS STU DDL raw data
105 : };
106 :
107 : #endif
|