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