]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSClusterizer.h
Possiblity to run the simulation starting from an external root file containing geome...
[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
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
15struct AliHLTPHOSClusterDataStruct;
16struct AliHLTPHOSRecPointDataStruct;
17struct AliHLTPHOSValidCellDataStruct;
18struct AliHLTPHOSRecPointListDataStruct;
19struct AliHLTPHOSRcuCellEnergyDataStruct;
aac22523 20
21class 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