]>
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 | |
2b7cf4fb | 8 | class AliHLTPHOSRawAnalyzer; |
2bcb5a06 | 9 | class AliHLTPHOSRcuCellEnergyDataStruct; |
e0c124c5 | 10 | class AliHLTPHOSMapper; |
dbd79fad | 11 | class AliHLTPHOSSanityInspector; |
14ff16ed | 12 | class AliAltroDecoder; // decoder for altro payload |
13 | class AliAltroData; // container for altro payload | |
14 | class AliAltroBunch; // container for altro bunches | |
25b7f84c | 15 | class AliHLTPHOSDigitMaker; |
16 | class AliHLTPHOSDigitContainerDataStruct; | |
2bcb5a06 | 17 | |
b60bd496 | 18 | class 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 |