]>
Commit | Line | Data |
---|---|---|
483b0559 | 1 | #ifndef ALIEMCALCLUSTERIZERV1_H |
2 | #define ALIEMCALCLUSTERIZERV1_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | //_________________________________________________________________________ | |
9 | // Implementation version 1 of the clusterization algorithm | |
10 | // Performs clusterization (collects neighbouring active cells) and | |
11 | // unfolding of the clusters with several local maxima. | |
ee08edde | 12 | // results are stored in TreeR |
483b0559 | 13 | // |
14 | //*-- Author: Yves Schutz (SUBATECH) | |
ee08edde | 15 | //-- Gustavo Conesa (LPSC-Grenoble), move common clusterizer functionalities to mother class |
16 | ||
483b0559 | 17 | |
18 | // --- ROOT system --- | |
19 | ||
20 | // --- Standard library --- | |
21 | ||
22 | // --- AliRoot header files --- | |
483b0559 | 23 | #include "AliEMCALClusterizer.h" |
70a93198 | 24 | class AliEMCALRecPoint ; |
483b0559 | 25 | class AliEMCALDigit ; |
483b0559 | 26 | |
27 | class AliEMCALClusterizerv1 : public AliEMCALClusterizer { | |
28 | ||
29 | public: | |
30 | ||
31 | AliEMCALClusterizerv1() ; | |
5544799a | 32 | AliEMCALClusterizerv1(AliEMCALGeometry* geometry); |
40164976 | 33 | AliEMCALClusterizerv1(AliEMCALGeometry* geometry, AliEMCALCalibData * calib, AliCaloCalibPedestal * pedestal); |
0c5b726e | 34 | |
483b0559 | 35 | virtual ~AliEMCALClusterizerv1() ; |
18a21c7c | 36 | |
25bb3dcb | 37 | virtual Int_t AreNeighbours(AliEMCALDigit * d1, AliEMCALDigit * d2, Bool_t & shared)const ; |
ee08edde | 38 | // Checks if digits are in neighbour cells |
c47157cd | 39 | virtual void Digits2Clusters(Option_t *option); // Does the job |
483b0559 | 40 | |
225cd96d | 41 | static Double_t ShowerShape(Double_t x, Double_t y) ; // Shape of EM shower used in unfolding; |
483b0559 | 42 | //class member function (not object member function) |
43 | static void UnfoldingChiSquare(Int_t & nPar, Double_t * Grad, Double_t & fret, Double_t * x, Int_t iflag) ; | |
44 | // Chi^2 of the fit. Should be static to be passes to MINUIT | |
45 | virtual const char * Version() const { return "clu-v1" ; } | |
7ea6391b | 46 | |
483b0559 | 47 | protected: |
48 | ||
0e7c6655 | 49 | virtual void MakeClusters(); |
7ea6391b | 50 | |
483b0559 | 51 | private: |
c47157cd | 52 | AliEMCALClusterizerv1(const AliEMCALClusterizerv1 &); //copy ctor |
53 | AliEMCALClusterizerv1 & operator = (const AliEMCALClusterizerv1 &); | |
483b0559 | 54 | |
40164976 | 55 | |
d804d556 | 56 | Bool_t FindFit(AliEMCALRecPoint * emcRP, AliEMCALDigit ** MaxAt, const Float_t * maxAtEnergy, |
483b0559 | 57 | Int_t NPar, Float_t * FitParametres) const; //Used in UnfoldClusters, calls TMinuit |
483b0559 | 58 | |
225cd96d | 59 | virtual void MakeUnfolding(); |
60 | void UnfoldCluster(AliEMCALRecPoint * iniEmc, Int_t Nmax, | |
ee08edde | 61 | AliEMCALDigit ** maxAt, |
62 | Float_t * maxAtEnergy ); //Unfolds cluster using TMinuit package | |
a5c60732 | 63 | |
483b0559 | 64 | private: |
40164976 | 65 | |
c8be63ae | 66 | |
ee08edde | 67 | ClassDef(AliEMCALClusterizerv1,10) // Clusterizer implementation version 1 |
483b0559 | 68 | |
69 | }; | |
70 | ||
71 | #endif // AliEMCALCLUSTERIZERV1_H |