Reconstruction of raw data from beam test 2006 (B.Polichtchouk)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSRawStream2004.h
1 #ifndef ALIPHOSRAWSTREAM2004_H
2 #define ALIPHOSRAWSTREAM2004_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 PHOS digits in raw data.
11 ///
12 ///////////////////////////////////////////////////////////////////////////////
13
14 // --- ROOT system ---
15 class TClonesArray ;
16
17 // --- AliRoot header files ---
18 #include "AliAltroRawStream.h"
19 class AliRawReader;
20 class AliPHOSConTableDB ;
21
22
23 class AliPHOSRawStream2004: public TObject {
24
25 public :
26   
27   AliPHOSRawStream2004(AliRawReader* rawReader);
28   
29
30  Bool_t ReadDigits(TClonesArray * digits) ;
31  
32 //PHOS does not need this method
33  virtual Bool_t    Next(){return kFALSE ;} ; 
34  
35  
36  Int_t            GetColumn() const {return 0;}
37  Int_t            GetModule() const {return 0;}
38  Int_t            GetPrevColumn() const {return 0;}
39  Int_t            GetPrevModule() const {return 0;}
40  Int_t            GetPrevRow() const {return 0;}
41  Int_t            GetRow() const {return 0;}
42  Int_t            GetSignal() const {return 0;}
43  Int_t            GetTime() const {return 0;}
44  Bool_t           IsNewColumn() const {return kFALSE; }
45  Bool_t           IsNewModule() const {return kFALSE;}
46  Bool_t           IsNewRow() const {return kFALSE ;}
47  
48
49  void SetConTableDB(AliPHOSConTableDB * ctdb){fctdb = ctdb ;}
50
51  Int_t GetTrigger(void) const {return fTrig ;}
52  Bool_t IsLEDevent(void)const {return fTrig == kLED;}
53  Bool_t IsPULevent(void)const {return fTrig == kPUL;}
54  Bool_t IsPEDevent(void)const {return fTrig == kPED;}
55  Bool_t IsWELevent(void)const {return fTrig == kWEL;}
56  Bool_t IsNELevent(void)const {return fTrig == kNEL;}
57
58
59  public:
60  enum { kLED = 129,     // Physics pattern unit for LED events
61         kPUL =  33,     // Physics pattern unit for PULSER events
62         kPED = 257,     // Physics pattern unit for PEDESTAL events
63         kNEL =1029,     // Physics pattern unit for NARROW ELECTRON events
64         kWEL =1027,     // Physics pattern unit for WIDE ELECTRON events
65         kSOB =2048,     // Pattern unit mask for Start Of Burst trigger or 0 to disable SOB trigger
66         kEOB =4096,     // Pattern unit mask for End   Of Burst trigger or 0 to disable EOB trigger
67
68         kPattUnitMarker = 27,  // Equipment type marker for Pattern Unit
69         kPattUnitEquipId= 64,  // Equipment ID for Pattern Unit
70
71         kPhosAdcMarker = 22,   // Equipment type marker for PhosAdc (Kurchatov ADC)
72         kPhosAdcEquipId= 16,   // Equipment ID for PhosAdc
73
74         kTdcMarker = 26,       // Equipment type marker for Tdc
75         kTdcEquipId=128,       // Equipment ID for Tdc
76
77         kChargeAdcMarker = 24, // Equipment type marker for ChargeAdc
78         kChargeAdcEquipId= 32, // Equipment ID for ChargeAdc
79
80         kScalerMarker = 25,    // Equipment type marker for Scaler
81         kScalerEquipId=256};   // Equipment ID for Scaler
82
83
84 protected :
85   AliRawReader*       fRawReader; //! object for reading the raw data
86   UChar_t*            fData;      //! raw data
87   AliPHOSConTableDB * fctdb ;     //! connection between RAW index and AbsId of crystal 
88
89   Int_t fTrig ; //current trigger
90
91   ClassDef(AliPHOSRawStream2004, 0)   // class for reading PHOS raw digits
92 };
93
94 #endif