Fast online clusterizer now working (Oystein)
[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 Ã\98ystein Djuvsland
6     @date   
7     @brief  A clusterizer component for PHOS HLT
8 */
9
10
11 #ifndef ALIHLTPHOSCLUSTERIZERCOMPONENT_H
12 #define ALIHLTPHOSCLUSTERIZERCOMPONENT_H
13
14
15
16 #include "AliHLTPHOSProcessor.h"
17
18 //#include "AliHLTPHOSBase.h"
19 //#include "AliHLTPHOSDefinitions.h"
20 //#include "AliHLTProcessor.h"
21
22 class AliHLTPHOSClusterizer;
23
24 //class Rtypes;
25
26 class AliHLTPHOSRcuCellEnergyDataStruct;
27 class AliHLTPHOSClusterDataStruct;
28 class AliHLTPHOSRecPointDataStruct;
29 class AliHLTPHOSRecPointContainerStruct;
30 class AliHLTPHOSRecPointListDataStruct;
31 class AliHLTPHOSDigitContainerDataStruct;
32
33
34
35 // PTH class AliHLTPHOSClusterizerComponent:  public AliHLTPHOSBase, public AliHLTProcessor
36 class AliHLTPHOSClusterizerComponent: public AliHLTPHOSProcessor
37 //class AliHLTPHOSClusterizerComponent:  public AliHLTPHOSBase, public AliHLTProcessor
38 {
39  public:
40
41   AliHLTPHOSClusterizerComponent();
42   ~AliHLTPHOSClusterizerComponent();
43
44   //  AliHLTPHOSClusterizerComponent(const AliHLTPHOSClusterizerComponent &);
45   //  AliHLTPHOSClusterizerComponent & operator = (const AliHLTPHOSClusterizerComponent &)
46   //   {
47
48   //     return *this;
49   //   }
50
51
52
53   const char* GetComponentID();
54   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
55
56   AliHLTComponentDataType GetOutputDataType();
57
58   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
59
60   int DoEvent(const AliHLTComponentEventData&, const AliHLTComponentBlockData*,
61                 AliHLTComponentTriggerData&, AliHLTUInt8_t*, AliHLTUInt32_t&,
62                 std::vector<AliHLTComponentBlockData>&);
63
64   AliHLTComponent* Spawn();
65   
66  // void SetNoCrazyness(Bool_t val);
67
68  protected:
69
70
71   int DoInit(int argc, const char** argv);
72   virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
73   int DoDeinit();
74
75  private:
76   AliHLTPHOSDigitContainerDataStruct *fAllDigitsPtr;
77   AliHLTPHOSClusterizer* fClusterizerPtr;                       //Pointer to the clusterizer
78   AliHLTPHOSRecPointContainerStruct* fOutPtr;                         //Pointer to the struct of output clusters
79   AliHLTPHOSRecPointDataStruct* fRecPointStructArrayPtr;        //Pointer to the struct of output recpoints
80   AliHLTPHOSRecPointListDataStruct* fRecPointListPtr;           //Pointer to the struct of list of output recpoints
81   Int_t fDigitCount;
82   Bool_t fNoCrazyness;
83   
84   static const AliHLTComponentDataType fgkInputDataTypes[];     //HLT input data type
85
86 };
87
88 #endif