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 */
6 #include "AliHLTPHOSRcuProcessor.h"
8 class AliHLTPHOSRawAnalyzer;
9 class AliHLTPHOSRcuCellEnergyDataStruct;
10 class AliHLTPHOSMapper;
11 class AliHLTPHOSSanityInspector;
12 class AliAltroDecoder; // decoder for altro payload
13 class AliAltroData; // container for altro payload
14 class AliAltroBunch; // container for altro bunches
17 class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
20 AliHLTPHOSRawAnalyzerComponent();
21 virtual ~AliHLTPHOSRawAnalyzerComponent();
22 virtual int DoInit(int argc =0, const char** argv = 0);
24 virtual const char* GetComponentID() = 0;
25 virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
26 virtual AliHLTComponentDataType GetOutputDataType();
27 virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
28 virtual AliHLTComponent* Spawn() = 0;
30 AliHLTPHOSRawAnalyzer *fAnalyzerPtr; /**<Pointer to an analyzer object used for raw data anlysis*/
32 using AliHLTPHOSRcuProcessor::DoEvent;
33 virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
34 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
35 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
39 void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
40 void SetBaselines(const char* baselineFile);
41 Bool_t fSendChannelData; /**<wether or not to send raw data from the component into shared memory*/
42 Double_t fTmpChannelData[ALTRO_MAX_SAMPLES]; /**<temporary variable to store raw samples from a single altro channel*/
43 Double_t fMaxValues[N_MODULES][N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; /**<array to store cell energies*/
45 AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr; //comment
46 AliHLTPHOSMapper *fMapperPtr; //Mapping from harware address to geometrical address
47 AliHLTPHOSSanityInspector *fSanityInspectorPtr; //comment
48 Bool_t fUseBaselineSubtraction; //comment
49 Float_t fBaselines[N_XCOLUMNS_RCU][N_ZROWS_RCU][N_GAINS]; //comment
51 AliAltroDecoder *fDecoderPtr; // decoder for altro payload
52 AliAltroData *fAltroDataPtr; // container for altro payload
53 AliAltroBunch *fAltroBunchPtr; // container for altro bunches