Fast online clusterizer now working (Oystein)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSClusterizer.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3   
4 /** @file   AliHLTPHOSClusterizer.h
5     @author Ã\98ystein Djuvsland
6     @date   
7     @brief  A temporary clusterizer for PHOS
8 */
9
10
11 #ifndef ALIHLTPHOSCLUSTERIZER_H
12 #define ALIHLTPHOSCLUSTERIZER_H
13
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"
22
23 class AliHLTPHOSClusterizer : public AliHLTPHOSBase
24 {
25   
26 public:
27   
28   AliHLTPHOSClusterizer();    
29   
30   virtual ~AliHLTPHOSClusterizer();
31   
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);
49   
50   Int_t GetNEvents();
51
52   virtual void ScanForNeighbourDigits(Int_t, AliHLTPHOSRecPointDataStruct*);
53   virtual Int_t AreNeighbours(AliHLTPHOSDigitDataStruct*, AliHLTPHOSDigitDataStruct*);
54   virtual void CalculateCenterOfGravity();
55
56 private:
57   
58   Float_t fEmcClusteringThreshold;
59   Float_t fEmcMinEnergyThreshold;
60   Float_t fEmcTimeGate;
61   Float_t fLogWeight;
62   Int_t fDigitsInCluster;
63
64   Bool_t fOnlineMode;
65  
66   TClonesArray *fDigitArrayPtr; 
67   TObjArray *fEmcRecPointsPtr;
68   AliPHOSDigit *fDigitPtr;
69
70   AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr;
71   AliHLTPHOSRecPointContainerStruct *fRecPointContainerPtr;
72   AliPHOSGeometry *fPHOSGeometry;
73   
74   AliPHOSGetter *fGetterPtr;
75   
76   ClassDef(AliHLTPHOSClusterizer, 1);
77 };
78
79 #endif