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
15 class AliHLTPHOSDigitMaker;
16 class AliHLTPHOSDigitContainerDataStruct;
18 class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
21 AliHLTPHOSRawAnalyzerComponent();
22 virtual ~AliHLTPHOSRawAnalyzerComponent();
23 virtual int DoInit(int argc =0, const char** argv = 0);
25 virtual const char* GetComponentID() = 0;
26 virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
27 virtual AliHLTComponentDataType GetOutputDataType();
28 virtual int GetOutputDataTypes(AliHLTComponentDataTypeList& list);
29 virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
30 virtual AliHLTComponent* Spawn() = 0;
32 AliHLTPHOSRawAnalyzer *fAnalyzerPtr; /**<Pointer to an analyzer object used for raw data anlysis*/
34 using AliHLTPHOSRcuProcessor::DoEvent;
35 virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
36 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
37 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
40 void Reset(AliHLTPHOSRcuCellEnergyDataStruct* cellDataPtr);
41 void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
42 void SetBaselines(const char* baselineFile);
43 void SetSelectiveReadOutThresholds(const char* filepath, Int_t nSignams);
44 Bool_t fSendChannelData; /**<wether or not to send raw data from the component into shared memory*/
45 Double_t fTmpChannelData[ALTRO_MAX_SAMPLES]; /**<temporary variable to store raw samples from a single altro channel*/
46 Double_t fMaxValues[N_MODULES][N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; /**<array to store cell energies*/
48 AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr; //comment
49 AliHLTPHOSMapper *fMapperPtr; //Mapping from harware address to geometrical address
50 AliHLTPHOSSanityInspector *fSanityInspectorPtr; //comment
51 Bool_t fUseBaselineSubtraction; //comment
52 Float_t fBaselines[N_XCOLUMNS_RCU][N_ZROWS_RCU][N_GAINS]; //comment
54 AliAltroDecoder *fDecoderPtr; // decoder for altro payload
55 AliAltroData *fAltroDataPtr; // container for altro payload
56 AliAltroBunch *fAltroBunchPtr; // container for altro bunches
58 /** Are we pushing the cell energies (raw data) */
59 Bool_t fDoPushCellEnergies; //Added by OD
61 /** Are we making digits? */
62 Bool_t fDoMakeDigits; //Added by OD
64 /** The digit maker */
65 AliHLTPHOSDigitMaker *fDigitMakerPtr; //! transient Added by OD
67 /** The digit containerto use for digit making */
68 AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr; //! transient Added by OD
70 /** Are we doing selective read out? */
71 Bool_t fDoSelectiveReadOut; //Added by OD
73 /** Threshold for selective readout ( zero suppression threshold) */
74 Float_t fSelectiveReadOutThresholds[N_XCOLUMNS_MOD][N_ZROWS_MOD][N_GAINS]; //Added by OD
76 /** The selected HW addresses */
77 AliHLTUInt16_t *fSelectedChannelsList; //! transient Added by OD
79 /** Should we check data size? */
80 Bool_t fDoCheckDataSize; //Added by OD