Fast online clusterizer now working (Oystein)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSClusterizer.h
CommitLineData
aac22523 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
6e709a0d 3
aac22523 4/** @file AliHLTPHOSClusterizer.h
2ef3c547 5 @author Ã\98ystein Djuvsland
aac22523 6 @date
7 @brief A temporary clusterizer for PHOS
8*/
9
2ef3c547 10
91b95d47 11#ifndef ALIHLTPHOSCLUSTERIZER_H
12#define ALIHLTPHOSCLUSTERIZER_H
aac22523 13
9cc0deb1 14#include "AliHLTPHOSBase.h"
15#include "AliHLTPHOSRecPointContainerStruct.h"
16#include "AliHLTPHOSDigitContainerDataStruct.h"
17#include "AliPHOSGeometry.h"
18#include "TClonesArray.h"
19#include "AliPHOSDigit.h"
20#include "AliPHOSGetter.h"
21#include "AliPHOSRecoParamEmc.h"
2ef3c547 22
9cc0deb1 23class AliHLTPHOSClusterizer : public AliHLTPHOSBase
aac22523 24{
25
9cc0deb1 26public:
27
28 AliHLTPHOSClusterizer();
aac22523 29
aac22523 30 virtual ~AliHLTPHOSClusterizer();
aac22523 31
9cc0deb1 32 AliHLTPHOSClusterizer(const AliHLTPHOSClusterizer &);
33 AliHLTPHOSClusterizer & operator = (const AliHLTPHOSClusterizer &) {return *this;}
34
35 void SetRecPointContainer(AliHLTPHOSRecPointContainerStruct *RecPointContainerPtr)
36 { fRecPointContainerPtr = RecPointContainerPtr; }
37
38 void SetRecoParameters(AliPHOSRecoParamEmc*);
39
40 void SetEmcClusteringThreshold(Float_t threshold) { fEmcClusteringThreshold = threshold; }
41 void SetEmcMinEnergyThreshold(Float_t threshold) { fEmcMinEnergyThreshold = threshold; }
42 void SetEmcTimeGate(Float_t gate) { fEmcTimeGate = gate; }
43 void SetLogWeight(Float_t weight) { fLogWeight = weight; }
44
45 void SetOfflineMode(AliPHOSGetter*);
46
47 virtual Int_t ClusterizeEvent();
48 virtual Int_t GetEvent(Int_t);
aac22523 49
9cc0deb1 50 Int_t GetNEvents();
aac22523 51
9cc0deb1 52 virtual void ScanForNeighbourDigits(Int_t, AliHLTPHOSRecPointDataStruct*);
53 virtual Int_t AreNeighbours(AliHLTPHOSDigitDataStruct*, AliHLTPHOSDigitDataStruct*);
54 virtual void CalculateCenterOfGravity();
55
56private:
aac22523 57
9cc0deb1 58 Float_t fEmcClusteringThreshold;
59 Float_t fEmcMinEnergyThreshold;
60 Float_t fEmcTimeGate;
61 Float_t fLogWeight;
62 Int_t fDigitsInCluster;
aac22523 63
9cc0deb1 64 Bool_t fOnlineMode;
65
66 TClonesArray *fDigitArrayPtr;
67 TObjArray *fEmcRecPointsPtr;
68 AliPHOSDigit *fDigitPtr;
aac22523 69
9cc0deb1 70 AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr;
71 AliHLTPHOSRecPointContainerStruct *fRecPointContainerPtr;
72 AliPHOSGeometry *fPHOSGeometry;
73
74 AliPHOSGetter *fGetterPtr;
75
aac22523 76 ClassDef(AliHLTPHOSClusterizer, 1);
77};
78
79#endif