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