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