]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h
New interface for shared memory. The AliHLTPHOSValidDataStruct now has a pointer...
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRawAnalyzerComponent.h
1 #ifndef ALIHLTPHOSRAWANALYZERCOMPONENT_H
2 #define ALIHLTPHOSRAWANALYZERCOMPONENT_H
3
4 /* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                          */
6 #include "AliHLTPHOSRcuProcessor.h"
7
8 class AliHLTPHOSRawAnalyzer;
9 class AliHLTPHOSRcuCellEnergyDataStruct;
10 class AliHLTPHOSMapper;
11 class AliHLTPHOSSanityInspector;
12 class AliAltroDecoder;      // decoder for altro payload
13 class AliAltroData;         // container for altro payload
14 class AliAltroBunch;        // container for altro bunches
15
16
17 class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
18 {
19  public:
20   AliHLTPHOSRawAnalyzerComponent();
21   virtual ~AliHLTPHOSRawAnalyzerComponent();
22   virtual int DoInit(int argc =0, const char** argv  = 0);
23   virtual int Deinit();
24   virtual const char* GetComponentID() = 0;
25   virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
26   virtual AliHLTComponentDataType GetOutputDataType();
27   virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
28   virtual AliHLTComponent* Spawn() = 0; 
29  protected:
30   AliHLTPHOSRawAnalyzer *fAnalyzerPtr;  /**<Pointer to an analyzer object used for raw data anlysis*/ 
31
32   using AliHLTPHOSRcuProcessor::DoEvent;
33   virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
34                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
35                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks ); 
36
37  private:
38   void Reset();
39   void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
40   void SetBaselines(const char* baselineFile);
41   Bool_t fSendChannelData;       /**<wether or not to send raw data from the component into shared memory*/
42   Double_t fTmpChannelData[ALTRO_MAX_SAMPLES];                        /**<temporary variable to store raw samples from a single altro channel*/
43   Double_t fMaxValues[N_MODULES][N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; /**<array to store cell energies*/
44
45   AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr;  //comment
46   AliHLTPHOSMapper *fMapperPtr; //Mapping from harware address to geometrical address
47   AliHLTPHOSSanityInspector *fSanityInspectorPtr; //comment
48   Bool_t fUseBaselineSubtraction; //comment
49   Float_t fBaselines[N_XCOLUMNS_RCU][N_ZROWS_RCU][N_GAINS]; //comment
50
51   AliAltroDecoder *fDecoderPtr;           // decoder for altro payload
52   AliAltroData    *fAltroDataPtr;         // container for altro payload
53   AliAltroBunch   *fAltroBunchPtr;        // container for altro bunches
54 };
55 #endif
56