New classes for online analysis
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSClusterizer.h
1
2
3 #ifndef ALIHLTPHOSCLUSTERIZER
4 #define ALIHLTPHOSCLUSTERIZER
5
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8
9 /** @file   AliHLTPHOSClusterizer.h
10     @author Ã˜ystein Djuvsland
11     @date   
12     @brief  A temporary clusterizer for PHOS
13 */
14
15
16 #include "AliHLTPHOSCommonDefs.h"
17 #include "AliHLTPHOSRcuCellEnergyDataStruct.h"
18 #include "AliHLTPHOSClusterDataStruct.h"
19 #include "AliHLTPHOSRecPointDataStruct.h"
20 #include "AliHLTPHOSValidCellDataStruct.h"
21 #include "AliHLTPHOSRecPointListDataStruct.h"
22
23 class AliHLTPHOSClusterizer
24 {
25   
26  public:
27   
28   AliHLTPHOSClusterizer();
29   virtual ~AliHLTPHOSClusterizer();
30   AliHLTPHOSClusterizer(const AliHLTPHOSClusterizer &);
31   AliHLTPHOSClusterizer & operator = (const AliHLTPHOSClusterizer &) {return *this;}
32    
33   void    SetThreshold(Float_t threshold) {fThreshold = threshold;}
34   void    SetClusterThreshold(Float_t clusterThreshold) {fClusterThreshold = clusterThreshold;}
35   
36   void    SetHighGainFactor(Float_t highGain) {fHighGainFactor = highGain;}
37   void    SetLowGainFactor(Float_t lowGain) {fLowGainFactor = lowGain;}
38   void    SetArraySize(Int_t size) 
39   { 
40     fArraySize = size;
41     fMultiplicity = fArraySize * fArraySize;
42   }
43   
44   Float_t GetHighGainFactor() {return fHighGainFactor;}
45   Float_t GetLowGainFactor() {return fLowGainFactor;}
46  
47   Int_t   BuildCellEnergyArray(AliHLTPHOSRcuCellEnergyDataStruct *structPtr, AliHLTPHOSRecPointListDataStruct* recPointList);
48   Int_t   CreateRecPointStructArray(AliHLTPHOSRecPointDataStruct* rectStructsPtr, AliHLTPHOSRecPointListDataStruct* list, Int_t nPoints);
49   Int_t   CalculateCenterOfGravity(AliHLTPHOSRecPointDataStruct* recPointPtr);
50   Int_t   ClusterizeStruct(AliHLTPHOSRecPointDataStruct* recArrayPtr, AliHLTPHOSClusterDataStruct* clusterArrayPtr);
51   Int_t   ResetCellEnergyArray();
52
53   
54  private:
55
56   AliHLTPHOSRcuCellEnergyDataStruct* fStructArray;               /**<Array containing the cell data struct*/
57   AliHLTUInt8_t fPHOSModule;                                     /**<Number of the PHOSModule*/
58   Float_t fEnergyArray[N_COLUMNS_MOD][N_ROWS_MOD];               /**<2D array of cell energies*/
59   Float_t fThreshold;                                            /**<Energy threshold*/
60   Float_t fClusterThreshold;                                     /**<Cluster threshold*/
61   Float_t fHighGainFactor;                                       
62   Float_t fLowGainFactor;
63   Int_t   fArraySize;                                            /**<Size of the array which the energies are summed*/
64   Int_t   fMultiplicity;                                         /**<Number of crystals the energies are summed for*/
65
66   ClassDef(AliHLTPHOSClusterizer, 1);
67 };
68
69 #endif