1 #ifndef ALIHLTPHOSRAWANALYZERCOMPONENT_H
2 #define ALIHLTPHOSRAWANALYZERCOMPONENT_H
4 /* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
8 //Base class for PHOS HLT raw data analysis components
9 // see cxx file for more details
11 //#include "AliHLTPHOSDefinitions.h"
12 //#include "AliHLTPHOSCommonDefs.h"
14 #include "AliHLTPHOSProcessor.h"
17 //class AliRawReaderMemory;
18 //class AliCaloRawStream;
19 class AliHLTPHOSRawAnalyzer;
20 class AliHLTPHOSRcuCellEnergyDataStruct;
21 class AliHLTPHOSRcuChannelDataStruct;
22 class AliHLTPHOSMapper;
23 class AliHLTDDLDecoder;
24 class AliHLTAltroData;
26 class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSProcessor
29 AliHLTPHOSRawAnalyzerComponent();
30 virtual ~AliHLTPHOSRawAnalyzerComponent();
31 AliHLTPHOSRawAnalyzerComponent(const AliHLTPHOSRawAnalyzerComponent & );
32 AliHLTPHOSRawAnalyzerComponent & operator = (const AliHLTPHOSRawAnalyzerComponent &)
37 virtual int DoInit(int argc =0, const char** argv = 0);
40 // void DumpData(int gain =0) const;
41 // void DumpChannelData(Double_t *data =0) const;
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;
49 AliHLTPHOSRawAnalyzer *fAnalyzerPtr; /**<Pointer to an analyzer object used for raw data anlysis*/
52 virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
53 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
54 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
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*/
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*/
64 AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr; /**<Pointer to outputbuffer to write results from the component into shared memory*/
66 AliHLTPHOSMapper *fMapperPtr;
68 AliHLTDDLDecoder *fDecoderPtr;
69 AliHLTAltroData *fAltroDataPtr;