]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSHistogramProducerComponent.h
documentation
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSHistogramProducerComponent.h
1 #ifndef ALIHLTPHOSHISTOGRAMPRODUCERCOMPONENT_H
2 #define ALIHLTPHOSHISTOGRAMPRODUCERCOMPONENT_H 
3
4
5 /* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice  */ 
7
8 #include "AliHLTPHOSProcessor.h"
9 #include "AliHLTPHOSDefinitions.h"
10 #include "AliHLTPHOSCommonDefs.h"
11
12
13 class AliHLTPHOSModuleCellAccumulatedEnergyDataStruct;
14
15 class AliHLTPHOSHistogramProducerComponent:public AliHLTPHOSProcessor
16 {
17  public:
18   AliHLTPHOSHistogramProducerComponent();
19   virtual ~AliHLTPHOSHistogramProducerComponent();
20   AliHLTPHOSHistogramProducerComponent(const AliHLTPHOSHistogramProducerComponent & );
21   AliHLTPHOSHistogramProducerComponent & operator = (const AliHLTPHOSHistogramProducerComponent &)
22    {
23       return *this;
24    };
25   virtual int DoInit( int argc = 0, const char** argv = 0);
26   virtual int Deinit();
27   virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
28                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
29                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
30
31   void DumpData(int gain = 0);
32   virtual const char* GetComponentID();
33   virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
34   virtual AliHLTComponentDataType GetOutputDataType();
35   virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
36   virtual AliHLTComponent* Spawn();
37  protected:
38   void Reset();
39   void ResetDataPtr();
40
41  private:
42   Double_t fEnergyAverageValues[N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; /**<Accumulated energy divided by the number of hits for each readout channel*/  
43   Double_t fAccumulatedValues[N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS];   /**<Accumulated energy for each readout channel of one RCU*/
44   //  Double_t fTimingAverageValues[N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; 
45   AliHLTUInt32_t fHits[N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS];         /**<Total number of hits for each cell of one RCU*/
46   Double_t fTmpChannelData[ALTRO_MAX_SAMPLES];                        /**<Array to temporarily store dat fro a single altro channel*/                        
47   AliHLTPHOSModuleCellAccumulatedEnergyDataStruct*  fOutPtr;          /**<Pointer to outputbuffer to write results from the component into shared memory*/
48   static const AliHLTComponentDataType fgkInputDataTypes[];           /**<List of  datatypes that can be given to this component*/  
49   static const AliHLTComponentDataType fgkOutputDataType;             /**<Output datatype produced by this component*/
50 };
51
52 #endif