]>
Commit | Line | Data |
---|---|---|
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 |
6e709a0d | 5 | @author Øystein Djuvsland |
aac22523 | 6 | @date |
7 | @brief A temporary clusterizer for PHOS | |
8 | */ | |
9 | ||
91b95d47 | 10 | #ifndef ALIHLTPHOSCLUSTERIZER_H |
11 | #define ALIHLTPHOSCLUSTERIZER_H | |
aac22523 | 12 | |
6e709a0d | 13 | #include "AliHLTPHOSCommonDefs.h" |
91b95d47 | 14 | |
15 | struct AliHLTPHOSClusterDataStruct; | |
16 | struct AliHLTPHOSRecPointDataStruct; | |
17 | struct AliHLTPHOSValidCellDataStruct; | |
18 | struct AliHLTPHOSRecPointListDataStruct; | |
19 | struct AliHLTPHOSRcuCellEnergyDataStruct; | |
aac22523 | 20 | |
21 | class AliHLTPHOSClusterizer | |
22 | { | |
23 | ||
91b95d47 | 24 | public: |
aac22523 | 25 | |
26 | AliHLTPHOSClusterizer(); | |
27 | virtual ~AliHLTPHOSClusterizer(); | |
28 | AliHLTPHOSClusterizer(const AliHLTPHOSClusterizer &); | |
29 | AliHLTPHOSClusterizer & operator = (const AliHLTPHOSClusterizer &) {return *this;} | |
30 | ||
6e709a0d | 31 | void SetThreshold(float threshold) {fThreshold = threshold;} |
32 | void SetClusterThreshold(float clusterThreshold) {fClusterThreshold = clusterThreshold;} | |
aac22523 | 33 | |
6e709a0d | 34 | void SetHighGainFactor(float highGain) {fHighGainFactor = highGain;} |
35 | void SetLowGainFactor(float lowGain) {fLowGainFactor = lowGain;} | |
36 | void SetArraySize(int size) | |
aac22523 | 37 | { |
38 | fArraySize = size; | |
39 | fMultiplicity = fArraySize * fArraySize; | |
40 | } | |
6e709a0d | 41 | float GetThreshold() {return fThreshold;} |
42 | float GetClusterThreshold() {return fClusterThreshold;} | |
43 | float GetHighGainFactor() {return fHighGainFactor;} | |
44 | float GetLowGainFactor() {return fLowGainFactor;} | |
45 | float GetArraySize() {return fArraySize;} | |
46 | float GetMultiplicity() {return fMultiplicity;} | |
aac22523 | 47 | |
6e709a0d | 48 | int BuildCellEnergyArray(AliHLTPHOSRcuCellEnergyDataStruct *structPtr, AliHLTPHOSRecPointListDataStruct* recPointList); |
49 | int CreateRecPointStructArray(AliHLTPHOSRecPointDataStruct* rectStructsPtr, AliHLTPHOSRecPointListDataStruct* list, int nPoints); | |
50 | int CalculateCenterOfGravity(AliHLTPHOSRecPointDataStruct* recPointPtr); | |
51 | int CalculateMoments(AliHLTPHOSRecPointDataStruct* recPointPtr, Bool_t axisOnly); | |
52 | int ClusterizeStruct(AliHLTPHOSRecPointDataStruct* recArrayPtr, AliHLTPHOSClusterDataStruct* clusterArrayPtr); | |
53 | int ResetCellEnergyArray(); | |
aac22523 | 54 | |
55 | ||
56 | private: | |
57 | ||
aac22523 | 58 | AliHLTUInt8_t fPHOSModule; /**<Number of the PHOSModule*/ |
59 | Float_t fEnergyArray[N_COLUMNS_MOD][N_ROWS_MOD]; /**<2D array of cell energies*/ | |
60 | Float_t fThreshold; /**<Energy threshold*/ | |
61 | Float_t fClusterThreshold; /**<Cluster threshold*/ | |
91b95d47 | 62 | Float_t fHighGainFactor; /**<High gain factor*/ |
63 | Float_t fLowGainFactor; /**<Low gain factor*/ | |
aac22523 | 64 | Int_t fArraySize; /**<Size of the array which the energies are summed*/ |
65 | Int_t fMultiplicity; /**<Number of crystals the energies are summed for*/ | |
66 | ||
67 | ClassDef(AliHLTPHOSClusterizer, 1); | |
68 | }; | |
69 | ||
70 | #endif |