]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h
Follow moving energy to CaloCells
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRawAnalyzerComponent.h
CommitLineData
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 */
b60bd496 6#include "AliHLTPHOSRcuProcessor.h"
cbab66dd 7
2b7cf4fb 8class AliHLTPHOSRawAnalyzer;
2bcb5a06 9class AliHLTPHOSRcuCellEnergyDataStruct;
e0c124c5 10class AliHLTPHOSMapper;
dbd79fad 11class AliHLTPHOSSanityInspector;
14ff16ed 12class AliAltroDecoder; // decoder for altro payload
13class AliAltroData; // container for altro payload
14class AliAltroBunch; // container for altro bunches
25b7f84c 15class AliHLTPHOSDigitMaker;
16class AliHLTPHOSDigitContainerDataStruct;
2bcb5a06 17
b60bd496 18class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
cbab66dd 19{
20 public:
21 AliHLTPHOSRawAnalyzerComponent();
146c463a 22 virtual ~AliHLTPHOSRawAnalyzerComponent();
2b7cf4fb 23 virtual int DoInit(int argc =0, const char** argv = 0);
cbab66dd 24 virtual int Deinit();
ee7849e6 25 virtual const char* GetComponentID() = 0;
9be2600f 26 virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
cbab66dd 27 virtual AliHLTComponentDataType GetOutputDataType();
25b7f84c 28 virtual int GetOutputDataTypes(AliHLTComponentDataTypeList& list);
eccb54e8 29 virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
eae02153 30 virtual AliHLTComponent* Spawn() = 0;
cbab66dd 31 protected:
2b7cf4fb 32 AliHLTPHOSRawAnalyzer *fAnalyzerPtr; /**<Pointer to an analyzer object used for raw data anlysis*/
d2a0b488 33
14ff16ed 34 using AliHLTPHOSRcuProcessor::DoEvent;
d504c864 35 virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
36 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
37 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
1804b020 38
14ff16ed 39 private:
b444d727 40 AliHLTPHOSRawAnalyzerComponent(const AliHLTPHOSRawAnalyzerComponent & );
41 AliHLTPHOSRawAnalyzerComponent & operator = (const AliHLTPHOSRawAnalyzerComponent &);
42
d949e02e 43 void Reset(AliHLTPHOSRcuCellEnergyDataStruct* cellDataPtr);
2b7cf4fb 44 void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
25b7f84c 45 void SetBaselines(const char* baselineFile);
46 void SetSelectiveReadOutThresholds(const char* filepath, Int_t nSignams);
2b7cf4fb 47 Bool_t fSendChannelData; /**<wether or not to send raw data from the component into shared memory*/
48 Double_t fTmpChannelData[ALTRO_MAX_SAMPLES]; /**<temporary variable to store raw samples from a single altro channel*/
b60bd496 49 Double_t fMaxValues[N_MODULES][N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; /**<array to store cell energies*/
dbd79fad 50
ab38011b 51 AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr; //comment
939c67e7 52 AliHLTPHOSMapper *fMapperPtr; //Mapping from harware address to geometrical address
ab38011b 53 AliHLTPHOSSanityInspector *fSanityInspectorPtr; //comment
54 Bool_t fUseBaselineSubtraction; //comment
55 Float_t fBaselines[N_XCOLUMNS_RCU][N_ZROWS_RCU][N_GAINS]; //comment
14ff16ed 56
939c67e7 57 AliAltroDecoder *fDecoderPtr; // decoder for altro payload
58 AliAltroData *fAltroDataPtr; // container for altro payload
59 AliAltroBunch *fAltroBunchPtr; // container for altro bunches
25b7f84c 60
61 /** Are we pushing the cell energies (raw data) */
62 Bool_t fDoPushCellEnergies; //Added by OD
63
64 /** Are we making digits? */
65 Bool_t fDoMakeDigits; //Added by OD
66
67 /** The digit maker */
68 AliHLTPHOSDigitMaker *fDigitMakerPtr; //! transient Added by OD
69
70 /** The digit containerto use for digit making */
71 AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr; //! transient Added by OD
72
73 /** Are we doing selective read out? */
74 Bool_t fDoSelectiveReadOut; //Added by OD
75
76 /** Threshold for selective readout ( zero suppression threshold) */
77 Float_t fSelectiveReadOutThresholds[N_XCOLUMNS_MOD][N_ZROWS_MOD][N_GAINS]; //Added by OD
78
79 /** The selected HW addresses */
80 AliHLTUInt16_t *fSelectedChannelsList; //! transient Added by OD
81
82 /** Should we check data size? */
83 Bool_t fDoCheckDataSize; //Added by OD
cbab66dd 84};
85#endif
05be0766 86