]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h
Included AliHLTPHOSConstnts.h where needed
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRawAnalyzerComponent.h
1 #ifndef ALIHLTPHOSRAWANALYZERCOMPONENT_H
2 #define ALIHLTPHOSRAWANALYZERCOMPONENT_H
3
4 /* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                          */
6
7 //
8 //Base class for PHOS HLT raw data analysis components
9 // see cxx file for more details
10
11 //#include "AliHLTPHOSDefinitions.h"
12 //#include "AliHLTPHOSCommonDefs.h"
13
14 #include "AliHLTPHOSProcessor.h"
15
16
17 //class AliRawReaderMemory;
18 //class AliCaloRawStream;
19 class AliHLTPHOSRawAnalyzer;
20 class AliHLTPHOSRcuCellEnergyDataStruct;
21 class AliHLTPHOSRcuChannelDataStruct;
22 class AliHLTPHOSMapper;
23 class AliHLTDDLDecoder;
24 class AliHLTAltroData;
25
26 class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSProcessor
27 {
28  public:
29   AliHLTPHOSRawAnalyzerComponent();
30   virtual ~AliHLTPHOSRawAnalyzerComponent();
31   AliHLTPHOSRawAnalyzerComponent(const AliHLTPHOSRawAnalyzerComponent & );
32   AliHLTPHOSRawAnalyzerComponent & operator = (const AliHLTPHOSRawAnalyzerComponent &)
33    {
34       return *this;
35    };
36
37   virtual int DoInit(int argc =0, const char** argv  = 0);
38   virtual int Deinit();
39
40   //  void DumpData(int gain =0) const;
41   //  void DumpChannelData(Double_t *data =0) const; 
42
43   virtual const char* GetComponentID() = 0;
44   virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
45   virtual AliHLTComponentDataType GetOutputDataType();
46   virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
47   virtual AliHLTComponent* Spawn() = 0; 
48  protected:
49   AliHLTPHOSRawAnalyzer *fAnalyzerPtr;  /**<Pointer to an analyzer object used for raw data anlysis*/ 
50
51  private:
52   virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
53                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
54                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks ); 
55   void Reset();
56   void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
57   Bool_t fSendChannelData;       /**<wether or not to send raw data from the component into shared memory*/
58   Double_t fTmpChannelData[ALTRO_MAX_SAMPLES];                        /**<temporary variable to store raw samples from a single altro channel*/
59   Double_t fMaxValues[N_MODULES][N_ROWS_MOD][N_COLUMNS_MOD][N_GAINS]; /**<array to store cell energies*/
60
61   //  AliCaloRawStream *fPHOSRawStream;                   /**<Streamer for PHOS raw data, used by fPHOSRawMemory reader*/ 
62   //  AliRawReaderMemory *fRawMemoryReader;               /**<Decoder to read PHOS raw data on the altro format*/  
63
64   AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr;         /**<Pointer to outputbuffer to write results from the component into shared memory*/
65  
66   AliHLTPHOSMapper *fMapperPtr;
67
68   AliHLTDDLDecoder *fDecoderPtr;
69   AliHLTAltroData  *fAltroDataPtr;
70 };
71 #endif
72