]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h
- changes to facilitate the move to the new RCU firmware
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRawAnalyzerComponent.h
CommitLineData
1b41ab20 1//-*- Mode: C++ -*-
147f4878 2// $Id: AliHLTPHOSRawAnalyzerComponent.h 31490 2009-03-15 16:27:11Z odjuvsla $
1b41ab20 3
ee7849e6 4#ifndef ALIHLTPHOSRAWANALYZERCOMPONENT_H
5#define ALIHLTPHOSRAWANALYZERCOMPONENT_H
6
cbab66dd 7/* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
8 * See cxx source for full Copyright notice */
b60bd496 9#include "AliHLTPHOSRcuProcessor.h"
cbab66dd 10
04751caa 11
147f4878 12class AliAltroDecoder; // decoder for altro payload
13class AliAltroData; // container for altro payload
14class AliAltroBunch; // container for altro bunches
15
2b7cf4fb 16class AliHLTPHOSRawAnalyzer;
2bcb5a06 17class AliHLTPHOSRcuCellEnergyDataStruct;
e0c124c5 18class AliHLTPHOSMapper;
dbd79fad 19class AliHLTPHOSSanityInspector;
25b7f84c 20class AliHLTPHOSDigitMaker;
21class AliHLTPHOSDigitContainerDataStruct;
147f4878 22class AliRawReaderMemory;
23class AliAltroRawStreamV3;
2bcb5a06 24
8efbf5fe 25
b60bd496 26class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
cbab66dd 27{
28 public:
29 AliHLTPHOSRawAnalyzerComponent();
146c463a 30 virtual ~AliHLTPHOSRawAnalyzerComponent();
2b7cf4fb 31 virtual int DoInit(int argc =0, const char** argv = 0);
cbab66dd 32 virtual int Deinit();
ee7849e6 33 virtual const char* GetComponentID() = 0;
9be2600f 34 virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
cbab66dd 35 virtual AliHLTComponentDataType GetOutputDataType();
25b7f84c 36 virtual int GetOutputDataTypes(AliHLTComponentDataTypeList& list);
eccb54e8 37 virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
eae02153 38 virtual AliHLTComponent* Spawn() = 0;
cbab66dd 39 protected:
2b7cf4fb 40 AliHLTPHOSRawAnalyzer *fAnalyzerPtr; /**<Pointer to an analyzer object used for raw data anlysis*/
d2a0b488 41
14ff16ed 42 using AliHLTPHOSRcuProcessor::DoEvent;
d504c864 43 virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
44 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
45 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
1804b020 46
14ff16ed 47 private:
b444d727 48 AliHLTPHOSRawAnalyzerComponent(const AliHLTPHOSRawAnalyzerComponent & );
49 AliHLTPHOSRawAnalyzerComponent & operator = (const AliHLTPHOSRawAnalyzerComponent &);
94594220 50
51 //AliAltroBunch* GetFirstBunch();
52 void GetFirstBunch(AliAltroData *altrodata, AliAltroBunch *altrobunch);
147f4878 53 void GetFirstBunch();
94594220 54 void FillDataArray(UInt_t *data, const AliAltroData *altrodataptr, const int channel = -1);
147f4878 55 void FillRawData(UInt_t *data);
94594220 56 // bool CheckBuffer();
b444d727 57
d949e02e 58 void Reset(AliHLTPHOSRcuCellEnergyDataStruct* cellDataPtr);
2b7cf4fb 59 void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
25b7f84c 60 void SetBaselines(const char* baselineFile);
61 void SetSelectiveReadOutThresholds(const char* filepath, Int_t nSignams);
94594220 62
2b7cf4fb 63 Bool_t fSendChannelData; /**<wether or not to send raw data from the component into shared memory*/
94594220 64
65
27029341 66 // Double_t fTmpChannelData[ALTROMAXSAMPLES]; /**<temporary variable to store raw samples from a single altro channel*/
67 UInt_t fTmpChannelData[ALTROMAXSAMPLES]; /**<temporary variable to store raw samples from a single altro channel*/
94594220 68
27029341 69 Double_t fMaxValues[NMODULES][NZROWSMOD][NXCOLUMNSMOD][NGAINS]; /**<array to store cell energies*/
dbd79fad 70
ab38011b 71 AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr; //comment
939c67e7 72 AliHLTPHOSMapper *fMapperPtr; //Mapping from harware address to geometrical address
ab38011b 73 AliHLTPHOSSanityInspector *fSanityInspectorPtr; //comment
74 Bool_t fUseBaselineSubtraction; //comment
27029341 75 Float_t fBaselines[NXCOLUMNSRCU][NZROWSRCU][NGAINS]; //comment
14ff16ed 76
939c67e7 77 AliAltroDecoder *fDecoderPtr; // decoder for altro payload
78 AliAltroData *fAltroDataPtr; // container for altro payload
79 AliAltroBunch *fAltroBunchPtr; // container for altro bunches
25b7f84c 80
6f66f946 81 /** Are we pushing the raw data */
82 Bool_t fDoPushRawData; //Added by OD
25b7f84c 83
84 /** Are we making digits? */
85 Bool_t fDoMakeDigits; //Added by OD
86
87 /** The digit maker */
88 AliHLTPHOSDigitMaker *fDigitMakerPtr; //! transient Added by OD
89
90 /** The digit containerto use for digit making */
91 AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr; //! transient Added by OD
92
93 /** Are we doing selective read out? */
94 Bool_t fDoSelectiveReadOut; //Added by OD
95
96 /** Threshold for selective readout ( zero suppression threshold) */
27029341 97 Float_t fSelectiveReadOutThresholds[NXCOLUMNSMOD][NZROWSMOD][NGAINS]; //Added by OD
25b7f84c 98
99 /** The selected HW addresses */
100 AliHLTUInt16_t *fSelectedChannelsList; //! transient Added by OD
101
102 /** Should we check data size? */
103 Bool_t fDoCheckDataSize; //Added by OD
04751caa 104
105 unsigned long fNCorruptedBlocks;
106 unsigned long fNOKBlocks;
107
147f4878 108 /** Pointer to the raw data reader which reads from memory */
109 AliRawReaderMemory* fRawReaderMemoryPtr; //!transient
110
111 /** Pointer to the raw stream */
112 AliAltroRawStreamV3* fAltroRawStreamPtr; //!transient
113
cbab66dd 114};
115#endif
05be0766 116