80c3bbf5fd8d7ff4ab7883ab3a730fe4ac7e6970
[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 #include "AliHLTPHOSRcuProcessor.h"
7
8 class AliHLTPHOSRawAnalyzer;
9 class AliHLTPHOSRcuCellEnergyDataStruct;
10 class AliHLTPHOSRcuChannelDataStruct;
11 class AliHLTPHOSMapper;
12 class AliHLTDDLDecoder;
13 class AliHLTAltroData;
14 class AliHLTAltroBunch;
15
16 class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
17 {
18  public:
19   AliHLTPHOSRawAnalyzerComponent();
20   virtual ~AliHLTPHOSRawAnalyzerComponent();
21   virtual int DoInit(int argc =0, const char** argv  = 0);
22   virtual int Deinit();
23   virtual const char* GetComponentID() = 0;
24   virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
25   virtual AliHLTComponentDataType GetOutputDataType();
26   virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
27   virtual AliHLTComponent* Spawn() = 0; 
28  protected:
29   AliHLTPHOSRawAnalyzer *fAnalyzerPtr;  /**<Pointer to an analyzer object used for raw data anlysis*/ 
30
31  private:
32   virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
33                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
34                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks ); 
35   void Reset();
36   void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
37   Bool_t fSendChannelData;       /**<wether or not to send raw data from the component into shared memory*/
38   Double_t fTmpChannelData[ALTRO_MAX_SAMPLES];                        /**<temporary variable to store raw samples from a single altro channel*/
39   Double_t fMaxValues[N_MODULES][N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; /**<array to store cell energies*/
40   AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr;         /**<Pointer to outputbuffer to write results from the component into shared memory*/
41   AliHLTPHOSMapper *fMapperPtr;
42   AliHLTDDLDecoder *fDecoderPtr;
43   AliHLTAltroData  *fAltroDataPtr;
44   AliHLTAltroBunch *fAltroBunchPtr;
45 };
46 #endif
47