]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSClusterizerComponent.h
Effective c++, committed on behalf of �ystein Djuvsland
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSClusterizerComponent.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 /** @file   AliHLTPHOSClusterizerComponent.h
5     @author Øystein Djuvsland
6     @date   
7     @brief  A clusterizer component for PHOS HLT
8 */
9
10
11 #ifndef ALIHLTPHOSCLUSTERIZERCOMPONENT_H
12 #define ALIHLTPHOSCLUSTERIZERCOMPONENT_H
13
14 #include "AliHLTProcessor.h"
15
16
17 class AliHLTPHOSClusterizer;
18 class Rtypes;
19 struct AliHLTPHOSRcuCellEnergyDataStruct;
20 struct AliHLTPHOSClusterDataStruct;
21 struct AliHLTPHOSRecPointDataStruct;
22 struct AliHLTPHOSRecPointListDataStruct;
23
24
25 class AliHLTPHOSClusterizerComponent: public AliHLTProcessor
26 {
27  public:
28
29   AliHLTPHOSClusterizerComponent();
30   ~AliHLTPHOSClusterizerComponent();
31   AliHLTPHOSClusterizerComponent(const AliHLTPHOSClusterizerComponent &);
32   AliHLTPHOSClusterizerComponent & operator = (const AliHLTPHOSClusterizerComponent &)
33     {
34       return *this;
35     }
36   const char* GetComponentID();
37   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
38
39   AliHLTComponentDataType GetOutputDataType();
40
41   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
42
43   int DoEvent(const AliHLTComponentEventData&, const AliHLTComponentBlockData*,
44                 AliHLTComponentTriggerData&, AliHLTUInt8_t*, AliHLTUInt32_t&,
45                 std::vector<AliHLTComponentBlockData>&);
46
47   AliHLTComponent* Spawn();
48
49  protected:
50
51   int DoInit(int argc, const char** argv);
52   int Deinit();
53   int DoDeinit();
54
55  private:
56   AliHLTPHOSClusterizer* fClusterizerPtr;                       //Pointer to the clusterizer
57   AliHLTPHOSClusterDataStruct* fOutPtr;                         //Pointer to the struct of output clusters
58   AliHLTPHOSRecPointDataStruct* fRecPointStructArrayPtr;        //Pointer to the struct of output recpoints
59   AliHLTPHOSRecPointListDataStruct* fRecPointListPtr;           //Pointer to the struct of list of output recpoints
60   static const AliHLTComponentDataType fgkInputDataTypes[];     //HLT input data type
61
62 };
63
64 #endif