]>
Commit | Line | Data |
---|---|---|
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 | 12 | class AliAltroDecoder; // decoder for altro payload |
13 | class AliAltroData; // container for altro payload | |
14 | class AliAltroBunch; // container for altro bunches | |
15 | ||
2b7cf4fb | 16 | class AliHLTPHOSRawAnalyzer; |
2bcb5a06 | 17 | class AliHLTPHOSRcuCellEnergyDataStruct; |
e0c124c5 | 18 | class AliHLTPHOSMapper; |
dbd79fad | 19 | class AliHLTPHOSSanityInspector; |
25b7f84c | 20 | class AliHLTPHOSDigitMaker; |
21 | class AliHLTPHOSDigitContainerDataStruct; | |
147f4878 | 22 | class AliRawReaderMemory; |
23 | class AliAltroRawStreamV3; | |
2bcb5a06 | 24 | |
8efbf5fe | 25 | |
b60bd496 | 26 | class 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 |