ebd3af7aed6be2ed0e14e92f2da1cf2e6b4b3d21
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSProcessor.h
1 #ifndef ALIHLTPHOSPROCESSOR_H
2 #define ALIHLTPHOSPROCESSOR_H
3
4 #include "AliHLTProcessor.h"
5 #include "AliHLTPHOSConstants.h"
6 #include "AliHLTPHOSCommonDefs.h"
7
8 using namespace PhosHLTConst;
9
10 class AliHLTPHOSProcessor:public AliHLTProcessor
11 {
12  public:
13   AliHLTPHOSProcessor();
14   virtual ~AliHLTPHOSProcessor();
15   AliHLTPHOSProcessor(const AliHLTPHOSProcessor & );
16   AliHLTPHOSProcessor & operator = (const AliHLTPHOSProcessor &)
17    {
18       return *this;
19    };
20
21   virtual int DoInit(int argc, const char** argv) = 0;
22   virtual int Deinit() = 0;
23   virtual const char* GetComponentID() = 0;
24   const AliHLTUInt16_t  GetEquippmentID() const;
25   virtual void GetInputDataTypes( std::vector <AliHLTComponentDataType>& list) =0;
26   virtual AliHLTComponentDataType GetOutputDataType() =0;
27   virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier) =0;
28   virtual AliHLTComponent* Spawn() = 0; 
29  protected:
30   int fPhosEventCount;                  /**<Global event counter for this component*/
31   const AliHLTUInt16_t fkEquippmentID;  /**<Equippment ID as defined by ALICE*/
32   AliHLTUInt8_t  fModuleID;             /**<ID of the module this component read data from (0-4)*/
33   AliHLTUInt8_t  fRcuX;                 /**<X position of RCU the data from this Equippment comes from (0 or 1)*/
34   AliHLTUInt8_t  fRcuZ;                 /**<Z position of RCU the data from this Equippment comes from (0 or 1)*/
35   AliHLTUInt8_t  fRcuZOffset;           /**<offset in therms of towers in the Z direction relative to the module*/ 
36   AliHLTUInt8_t  fRcuXOffset;           /**<offset in therms of towers in the X direction relative to the module*/ 
37   Bool_t fPrintInfo;                    /**<wether or not to print debugg info to std out*/
38   Bool_t fIsSetEquippmentID;            /**<wether or not the EquippmentID is set*/ 
39   int fPrintInfoFrequncy;               /**<Defines the update frequency for information printet to std out*/
40   void SetEquippmentID(AliHLTUInt16_t id);
41   void SetCoordinates(AliHLTUInt16_t equippmentID);
42   int ScanArguments(int argc, const char** argv);
43   static const AliHLTComponentDataType fgkInputDataTypes[]; /**<List of  datatypes that can be given to this component*/
44  private:
45   
46
47 };
48
49
50 #endif