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